r1265 - in trunk/simexplorer-is: . src/site src/site/fr/rst src/site/fr/rst/devel src/site/fr/rst/devel/old
Author: glandais Date: 2008-02-29 18:06:48 +0000 (Fri, 29 Feb 2008) New Revision: 1265 Added: trunk/simexplorer-is/src/site/fr/rst/devel/authorization.jpg trunk/simexplorer-is/src/site/fr/rst/devel/diagramme1.png trunk/simexplorer-is/src/site/fr/rst/devel/enviro.rst trunk/simexplorer-is/src/site/fr/rst/devel/implementation.rst trunk/simexplorer-is/src/site/fr/rst/devel/index.rst trunk/simexplorer-is/src/site/fr/rst/devel/nok.png trunk/simexplorer-is/src/site/fr/rst/devel/ok.png trunk/simexplorer-is/src/site/fr/rst/devel/old/ trunk/simexplorer-is/src/site/fr/rst/devel/old/architecture.abw trunk/simexplorer-is/src/site/fr/rst/devel/old/architecture.txt trunk/simexplorer-is/src/site/fr/rst/devel/old/architecture.xhtml trunk/simexplorer-is/src/site/fr/rst/devel/old/authorization.uxf trunk/simexplorer-is/src/site/fr/rst/devel/old/developpement.abw trunk/simexplorer-is/src/site/fr/rst/devel/old/diagramme1.dia trunk/simexplorer-is/src/site/fr/rst/devel/old/glassfish.txt trunk/simexplorer-is/src/site/fr/rst/devel/old/maven.rst trunk/simexplorer-is/src/site/fr/rst/devel/old/migration.txt trunk/simexplorer-is/src/site/fr/rst/devel/old/sequence1.uxf trunk/simexplorer-is/src/site/fr/rst/devel/old/template.uxf trunk/simexplorer-is/src/site/fr/rst/devel/old/version.uxf trunk/simexplorer-is/src/site/fr/rst/devel/uok.png trunk/simexplorer-is/src/site/fr/rst/index.rst Removed: trunk/simexplorer-is/src/site/fr/rst/devel/architecture.abw trunk/simexplorer-is/src/site/fr/rst/devel/architecture.txt trunk/simexplorer-is/src/site/fr/rst/devel/architecture.xhtml trunk/simexplorer-is/src/site/fr/rst/devel/authorization.jpg trunk/simexplorer-is/src/site/fr/rst/devel/authorization.uxf trunk/simexplorer-is/src/site/fr/rst/devel/developpement.abw trunk/simexplorer-is/src/site/fr/rst/devel/diagramme1.dia trunk/simexplorer-is/src/site/fr/rst/devel/diagramme1.png trunk/simexplorer-is/src/site/fr/rst/devel/glassfish.txt trunk/simexplorer-is/src/site/fr/rst/devel/implementation.rst trunk/simexplorer-is/src/site/fr/rst/devel/index.rst trunk/simexplorer-is/src/site/fr/rst/devel/maven.rst trunk/simexplorer-is/src/site/fr/rst/devel/migration.txt trunk/simexplorer-is/src/site/fr/rst/devel/nok.png trunk/simexplorer-is/src/site/fr/rst/devel/ok.png trunk/simexplorer-is/src/site/fr/rst/devel/sequence1.uxf trunk/simexplorer-is/src/site/fr/rst/devel/template.uxf trunk/simexplorer-is/src/site/fr/rst/devel/uok.png trunk/simexplorer-is/src/site/fr/rst/devel/version.uxf Modified: trunk/simexplorer-is/pom.xml trunk/simexplorer-is/src/site/site_fr.xml Log: Doc update Modified: trunk/simexplorer-is/pom.xml =================================================================== --- trunk/simexplorer-is/pom.xml 2008-02-29 18:04:51 UTC (rev 1264) +++ trunk/simexplorer-is/pom.xml 2008-02-29 18:06:48 UTC (rev 1265) @@ -81,7 +81,7 @@ <site> <id>labs</id> <url> - scp://labs.libre-entreprise.org/home/groups/lutinbuilder/htdocs/maven2/ + scp://labs.libre-entreprise.org/home/groups/simexplorer-si/htdocs/ </url> </site> </distributionManagement> Deleted: trunk/simexplorer-is/src/site/fr/rst/devel/architecture.abw =================================================================== --- trunk/simexplorer-is/src/site/fr/rst/devel/architecture.abw 2008-02-29 18:04:51 UTC (rev 1264) +++ trunk/simexplorer-is/src/site/fr/rst/devel/architecture.abw 2008-02-29 18:06:48 UTC (rev 1265) @@ -1,420 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE abiword PUBLIC "-//ABISOURCE//DTD AWML 1.0 Strict//EN" "http://www.abisource.com/awml.dtd"> -<abiword template="false" version="2.4.6" xmlns:svg="http://www.w3.org/2000/svg" xid-max="480" xmlns:dc="http://purl.org/dc/elements/1.1/" fileformat="1.1" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:awml="http://www.abisource.com/awml.dtd" xmlns="http://www.abisource.com/awml.dtd" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" props="dom-dir:ltr; document-footnote-restart-section:0; document-endnote-type:numeric; document-endnote-place-enddoc:1; document-endnote-initial:1; lang:fr-FR; document-endnote-restart-section:0; document-footnote-restart-page:0; document-footnote-type:numeric; document-footnote-initial:1; document-endnote-place-endsection:0"> -<!-- ======================================================================== --> -<!-- This file is an AbiWord document. --> -<!-- AbiWord is a free, Open Source word processor. --> -<!-- More information about AbiWord is available at http://www.abisource.com/ --> -<!-- You should not edit this file by hand. --> -<!-- ======================================================================== --> - -<metadata> -<m key="dc.format">application/x-abiword</m> -<m key="abiword.generator">AbiWord</m> -</metadata> -<history version="60" edit-time="56556" last-saved="1196101722" uid="e5b61a06-9845-11dc-84e0-f93525e6000d"> -<version id="1" started="1195658750" uid="0abf655a-9846-11dc-84e0-f93525e6000d" auto="0" top-xid="328"/> -<version id="3" started="1195658775" uid="55ff20f0-984b-11dc-97cb-8f99009bf653" auto="0" top-xid="330"/> -<version id="11" started="1195723478" uid="2b673fac-990a-11dc-8d16-acd61ab3f596" auto="0" top-xid="332"/> -<version id="14" started="1195813646" uid="5d32eb8a-99af-11dc-8b35-982ad6d9719b" auto="0" top-xid="437"/> -<version id="60" started="1196067628" uid="6a36dbb6-9c4d-11dc-9e05-9e041a8dd754" auto="0" top-xid="468"/> -</history> -<styles> -<s type="P" name="Normal" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; text-align:left; font-variant:normal; margin-left:0pt; bgcolor:transparent; widows:2; font-style:normal; text-indent:0in; text-position:normal; font-weight:normal; margin-right:0pt; font-size:12pt; margin-bottom:0pt; text-decoration:none; line-height:1.0; color:000000; lang:fr-FR; font-stretch:normal"/> -<s type="C" name="Reference" props="font-size:10pt"/> -</styles> -<pagesize pagetype="Custom" orientation="portrait" width="17.715278" height="11.691667" units="in" page-scale="1.000000"/> -<section xid="1" props="page-margin-right:25.4mm; columns:1; page-margin-header:0.0mm; page-margin-left:25.4mm; page-margin-footer:0.0mm; page-margin-top:25.4mm; page-margin-bottom:25.4mm"> -<p style="Normal" xid="2"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">=======================================</c></p> -<p style="Normal" xid="3" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">SimExplorer SI - Dossier d'architecture</c></p> -<p style="Normal" xid="4"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">=======================================</c></p> -<p style="Normal" xid="5"></p> -<p style="Normal" xid="6" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. contents:: :depth: 3</c></p> -<p style="Normal" xid="7" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. sectnum::</c></p> -<p style="Normal" xid="8"></p> -<p style="Normal" xid="9" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Introduction</c></p> -<p style="Normal" xid="10"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">============</c></p> -<p style="Normal" xid="11"></p> -<p style="Normal" xid="12" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Ce document détaille la solution proposée en réponse à la demande d'un outil d'exploration de simulation.</c></p> -<p style="Normal" xid="13"></p> -<p style="Normal" xid="14" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Architecture conceptuelle</c></p> -<p style="Normal" xid="15"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">=========================</c></p> -<p style="Normal" xid="16"></p> -<p style="Normal" xid="17" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Rappel des fonctions de l'application</c></p> -<p style="Normal" xid="18"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">-------------------------------------</c></p> -<p style="Normal" xid="19"></p> -<p style="Normal" xid="20" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">L'application permet l'utilisation d'outils de simulation dans un environnement multi-utilisateurs. Un mode client léger met à disposition la gestion des utilisateurs et la consultation des paramÚtres des simulations. Ce mode est accessible avec un simple navigateur. Avec un logiciel fourni (nommé aussi client lourd), l'utilisateur peut de même gérer les utilisateurs, mais aussi les simulations afin de les lancer. Une fonction de synchronisation met à jour les données locales par rapport aux données centralisées.</c></p> -<p style="Normal" xid="21"></p> -<p style="Normal" xid="22" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Chaque fonction est limitée en fonction des droits de l'utilisateur connecté. Cet utilisateur, en fonction des groupes auxquels il appartient, obtient des droits sur les simulations et les utilisateurs (création, modification, suppression).</c></p> -<p style="Normal" xid="23"></p> -<p style="Normal" xid="24" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Les modifications des paramÚtres des simulations sont sauvegardé afin de conserver un historique. Cet historique se synchronise avec les données centralisées et les données de l'utilisateur.</c></p> -<p style="Normal" xid="25"></p> -<p style="Normal" xid="26" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Décomposition de l'application en modules</c></p> -<p style="Normal" xid="27"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">-----------------------------------------</c></p> -<p style="Normal" xid="28"></p> -<p style="Normal" xid="29" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">L'authentification s'appuie sur un module unique. Celui ci permet d'authentifier les utilisateurs se connectant via le client léger ou le client lourd. Un premier niveau impératif nécessite l'appartenance de l'utilisateur à un groupe destiné à contenir les accrédités à utiliser l'application. Ce module fourni aussi les groupes d'appartenance d'un utilisateur, afin de déterminer ses droits. Enfin, ce module permet l'édition des utilisateurs et des groupes par les utilisateurs avec pouvoir.</c></p> -<p style="Normal" xid="30"></p> -<p style="Normal" xid="31" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Les autorisations sont gérées conjointement avec l'authentification. Une simulation a des droits associés en fonction de son propriétaire et son groupe d'appartenance. Ses droits sont décorélés des données métier, seul un identifiant technique permet aux services d'interroger le module d'autorisation afin de valider l'accÚs à une simulation. Le niveau de granularité des droits est similaire à la gestion des modes sur les fichiers. Les droits sur les actions création/modification/exécution sont alloués en fonction de l'utilisateur/groupe/autre.</c></p> -<p style="Normal" xid="32"></p> -<p style="Normal" xid="33" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Le stockage est un module dupliqué à la fois sur le serveur gérant les données centralisées et sur chaque client lourd. Celui-ci a la charge de conserver les données dans une base, et de stocker les données volumineuses dans le systÚme de fichier. Il est capable de persister les objets utilisés par l'application. Un mécanisme de synchronisation permet de mettre à jour les données locales et les données centralisées en fonction de rÚgles de gestion de versionnement.</c></p> -<p style="Normal" xid="34"></p> -<p style="Normal" xid="35" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">La logique métier de l'application est contenue dans des services. Ceux ci peuvent être exécutés localement, lors de l'exécution d'une simulation sur le client lourd par exemple. Certains services sont présents uniquement sur le serveur, parce qu'ils nécessitent les modules d'autorisation et les données centralisées. Le client lourd fait alors appel à ces services dans un mode appel distant.</c></p> -<p style="Normal" xid="36"></p> -<p style="Normal" xid="37" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Le module d'interface est composé de deux parties. CÃŽté serveur, l'utilisateur accÚde avec un navigateur Internet standard à l'application. Les pages sont servies par un serveur web utilisant un contrÃŽleur. Celui ci interagit avec les services afin de présenter les données à l'utilisateur. CÃŽté client, l'interface graphique s'appuie aussi sur un contrÃŽleur utilisant les services.</c></p> -<p style="Normal" xid="38"></p> -<p style="Normal" xid="39"></p> -<p style="Normal" xid="40" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Exigences et contraintes</c></p> -<p style="Normal" xid="41"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">------------------------</c></p> -<p style="Normal" xid="42"></p> -<p style="Normal" xid="43" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Contraintes d'urbanisme</c></p> -<p style="Normal" xid="44"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">_______________________</c></p> -<p style="Normal" xid="45"></p> -<p style="Normal" xid="46" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Le client lourd doit s'intégrer dans SimExplorer RCP.</c></p> -<p style="Normal" xid="47"></p> -<p style="Normal" xid="48" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Les services déployés sur le serveur et mis à disposition du client lourd doivent pouvoir être réutilisés par des applications tierces.</c></p> -<p style="Normal" xid="49"></p> -<p style="Normal" xid="50" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Le serveur doit être en mesure de lancer des simulations et de récupérer les résultats.</c></p> -<p style="Normal" xid="51"></p> -<p style="Normal" xid="52" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Exigences et contraintes liées à des fonctionnalités particuliÚres</c></p> -<p style="Normal" xid="53"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">__________________________________________________________________</c></p> -<p style="Normal" xid="54"></p> -<p style="Normal" xid="55" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Un serveur d'authentification.existant pourra être réutilisé dans la mesure où il est accessible via des protocoles standards. Une note précisant le fonctionnement de ce serveur devra être fourni afin de rendre possible son utilisation. ex : LDAP</c></p> -<p style="Normal" xid="56"></p> -<p style="Normal" xid="57" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Les appels de lancement des simulations devra être formalisés dans une note. Ceux ci pourront alors être intégrés dans les services.</c></p> -<p style="Normal" xid="58"></p> -<p style="Normal" xid="59" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">L'authentification implique l'établissement d'une connexion sécurisée entre le client et le serveur, afin de ne pas faire passer en clair les mots de passe sur le réseau. Le serveur disposera d'un certificat afin de crypter les flux.</c></p> -<p style="Normal" xid="60"></p> -<p style="Normal" xid="61" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Contraintes d'ergonomie</c></p> -<p style="Normal" xid="62"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">_______________________</c></p> -<p style="Normal" xid="63"></p> -<p style="Normal" xid="64" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">L'application web se doit d'être compatible avec les navigateurs récents : Firefox2+ et IE6+.</c></p> -<p style="Normal" xid="331" props="text-align:left; dom-dir:ltr"></p> -<p style="Normal" xid="332" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">L'application client lourd est un application standard type bureautique, et doit être compatible avec le maximum de plateformes. Le lancement de l'application doit se faire simplement par un raccourci.</c></p> -<p style="Normal" xid="65"></p> -<p style="Normal" xid="66" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Volumétrie</c></p> -<p style="Normal" xid="67"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">__________</c></p> -<p style="Normal" xid="68"></p> -<p style="Normal" xid="69" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Les données associées aux simulations sont parfois trÚs volumineuses (>100Mo). Ces données doivent être stockées en local mais aussi sur le serveur, avec des transferts entre le client et le serveur.</c></p> -<p style="Normal" xid="70"></p> -<p style="Normal" xid="71" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Contraintes et exigences liées à l'exploitation</c></p> -<p style="Normal" xid="72"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">_______________________________________________</c></p> -<p style="Normal" xid="73"></p> -<p style="Normal" xid="74" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Lors de la mise à jour de l'application, la base de données doit être synchrone avec l'applicatif. De même, le client lourd doit être à jour par rapport à la version déployée sur le serveur.</c></p> -<p style="Normal" xid="75"></p> -<p style="Normal" xid="76" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Les données doivent pouvoir être simplement sauvegardées et restaurées.</c></p> -<p style="Normal" xid="77"></p> -<p style="Normal" xid="78" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Architecture logique</c></p> -<p style="Normal" xid="79"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">====================</c></p> -<p style="Normal" xid="80"></p> -<p style="Normal" xid="81" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Schéma d'architecture logique</c></p> -<p style="Normal" xid="82"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">-----------------------------</c></p> -<p style="Normal" xid="83"></p> -<p style="Normal" xid="84" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:fr-FR">.. image::</c><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> diagramme1.png</c></p> -<p style="Normal" xid="85" props="text-align:left; dom-dir:ltr"></p> -<p style="Normal" xid="87" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Description des flux</c></p> -<p style="Normal" xid="88"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">--------------------</c></p> -<p style="Normal" xid="89"></p> -<p style="Normal" xid="90" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> #. Serveur web</c></p> -<p style="Normal" xid="91"></p> -<p style="Normal" xid="92" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> L'interface client léger passe par ce flux. L'authentification se fera en HTTPS, le reste de l'application pourra être au choix en HTTP ou en HTTPS. Le contenu sera constitué de pages XHTML compatibles avec les navigateurs récents.</c></p> -<p style="Normal" xid="93"></p> -<p style="Normal" xid="94" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> #. Interface client lourd</c></p> -<p style="Normal" xid="95"></p> -<p style="Normal" xid="96" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> C'est à travers ce canal que l'utilisateur interagit avec l'application.</c></p> -<p style="Normal" xid="97"></p> -<p style="Normal" xid="98" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> #. Serveur d'authentification</c></p> -<p style="Normal" xid="99"></p> -<p style="Normal" xid="100" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> Le framework d'authentification utilise un serveur externe afin d'authentifier les utilisateurs. Ce flux dépend du serveur.</c></p> -<p style="Normal" xid="101"></p> -<p style="Normal" xid="102" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> #. Autorisations</c></p> -<p style="Normal" xid="103"></p> -<p style="Normal" xid="104" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> Toutes les informations relatives à la protection des accÚs aux simulations sont retrouvées via ce lien vers une base de données.</c></p> -<p style="Normal" xid="105"></p> -<p style="Normal" xid="106" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> #. Persistance cÃŽté serveur</c></p> -<p style="Normal" xid="107"></p> -<p style="Normal" xid="108" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> Les objets sont stockés dans une base de donnée à travers ce flux.</c></p> -<p style="Normal" xid="109"></p> -<p style="Normal" xid="110" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> #. Persistance cÃŽté client</c></p> -<p style="Normal" xid="111"></p> -<p style="Normal" xid="112" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> De même, les objets sont stockés dans une base de données. Nous sommes ici en présence d'une base de données embarquée, afin de rendre le client lourd autonome.</c></p> -<p style="Normal" xid="113"></p> -<p style="Normal" xid="114" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> #. SystÚme de fichiers serveur</c></p> -<p style="Normal" xid="115"></p> -<p style="Normal" xid="116" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> Les données volumineuses sont stockées dans le systÚme de fichier plutÃŽt que dans la base.</c></p> -<p style="Normal" xid="117"></p> -<p style="Normal" xid="118" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> #. SystÚme de fichiers client</c></p> -<p style="Normal" xid="119"></p> -<p style="Normal" xid="120" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> De la même façon que sur le serveur, les données sont stockées sous forme de fichiers dans le systÚme de fichier de l'utilisateur.</c></p> -<p style="Normal" xid="121"></p> -<p style="Normal" xid="122" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> #. Services distants</c></p> -<p style="Normal" xid="123"></p> -<p style="Normal" xid="124" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> La communication entre le client lourd et le serveur passe par ce flux. Celui ci est crypté et intégré à haut niveau dans l'application. Les appels de service se font de façon transparente, de façon similaire à un appel local.</c></p> -<p style="Normal" xid="125"></p> -<p style="Normal" xid="126"></p> -<p style="Normal" xid="127" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Initialisation des entrepÃŽts de données</c></p> -<p style="Normal" xid="128"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">---------------------------------------</c></p> -<p style="Normal" xid="129"></p> -<p style="Normal" xid="130" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Pour l'authentification, un groupe d'utilisateur doit être créé afin d'accueillir les personnes accréditées. De plus, un groupe d'administrateur avec un utilisateur doit exister afin de permettre l'administration des utilisateurs. Ces deux groupes seront à spécifier lors de l'installation.</c></p> -<p style="Normal" xid="131"></p> -<p style="Normal" xid="132" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Si l'application doit utiliser un serveur d'authentification existant, le groupe des administrateurs doit avoir les droits de lister les utilisateurs amenés à être ajouté aux personnes accréditées.</c></p> -<p style="Normal" xid="133"></p> -<p style="Normal" xid="134" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Les bases de données d'autorisation et de stockage peuvent être initialisés lors du lancement de l'application de façon automatique. Si les droits de création de table et de champs n'est pas autorisé pour l'application, un script doit être exécuté avant le déploiement d'une nouvelle version afin de mettre à jour la base et migrer les données.</c></p> -<p style="Normal" xid="135"></p> -<p style="Normal" xid="136" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">CÃŽté client, le problÚme ne se pose pas, la base de données est embarquée dans l'application.</c></p> -<p style="Normal" xid="137"></p> -<p style="Normal" xid="138" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Les modules de l'application</c></p> -<p style="Normal" xid="139"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">----------------------------</c></p> -<p style="Normal" xid="140"></p> -<p style="Normal" xid="141" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Le module authentification</c></p> -<p style="Normal" xid="142"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">__________________________</c></p> -<p style="Normal" xid="143"></p> -<p style="Normal" xid="144" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">La technologie JAAS (Java Authentication and Authorization Service) a été retenue. La partie autorisation est utilisée uniquement pour valider l'accÚs de l'utilisateur authentifié à l'application.</c></p> -<p style="Normal" xid="145"></p> -<p style="Normal" xid="146" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Plusieurs méthodes d'authentification sont déjà implantées (login/mot de passe/groupes dans une base de données avec JDBC, LDAP, ...).</c></p> -<p style="Normal" xid="147"></p> -<p style="Normal" xid="148" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Les modules services</c></p> -<p style="Normal" xid="149"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">____________________</c></p> -<p style="Normal" xid="150"></p> -<p style="Normal" xid="151" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Les services sont contenus dans des EJB (Entreprise Java Bean). Chaque service est un composant disposant d'outils facilitant la mise en oeuvre des transactions et la distribution.</c></p> -<p style="Normal" xid="152"></p> -<p style="Normal" xid="153" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Ces services sont destinés à contenir toute la logique métier.</c></p> -<p style="Normal" xid="154"></p> -<p style="Normal" xid="155" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Les services contiennent aussi le contexte d'authentification de l'appelant.</c></p> -<p style="Normal" xid="156"></p> -<p style="Normal" xid="157" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Le module autorisation </c></p> -<p style="Normal" xid="158"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">______________________</c></p> -<p style="Normal" xid="159"></p> -<p style="Normal" xid="160" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Grâce au contexte d'authentification des EJB, les appels au module d'autorisation vont sécurisés les accÚs aux données.</c></p> -<p style="Normal" xid="161"></p> -<p style="Normal" xid="162" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Le module stockage</c></p> -<p style="Normal" xid="163"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">__________________</c></p> -<p style="Normal" xid="164"></p> -<p style="Normal" xid="165" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Ce module repose en grande partie sur la technologie JPA (Java Persistence API). Elle permet un mapping entre les objets et la base de données de façon transparente et interropérable. Le choix de la base de données n'est alors plus vérouillé, de nombreux systÚmes étant compatibles. Afin de gérer les volumétries associées aux simulations, certaines propriétés seront stockées sur le disque dur.</c></p> -<p style="Normal" xid="166"></p> -<p style="Normal" xid="167" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Lors de l'accÚs à une donnée, le module gérant les autorisations est appelé afin de vérifier les droits. De même, lorsque l'utilisateur crée une nouvelle entité, les droits lui sont associés via ce service.</c></p> -<p style="Normal" xid="168"></p> -<p style="Normal" xid="169" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Le module interface</c></p> -<p style="Normal" xid="170"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">___________________</c></p> -<p style="Normal" xid="171"></p> -<p style="Normal" xid="172" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">CÃŽté client léger, le site est réalisé avec Tapestry 5. Ce framework apporte le développement orienté objet au applications web. De nombreuses fonctionnalités sont incluses et facilitent le développement.</c></p> -<p style="Normal" xid="173"></p> -<p style="Normal" xid="174" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">CÃŽté client lourd, le framework JAXX est utilisé. Ce framework transforme des XML décrivant l'interface en classes Java.</c></p> -<p style="Normal" xid="175"></p> -<p style="Normal" xid="474"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Développement de l'application</c></p> -<p style="Normal" xid="177"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">------------------------------</c></p> -<p style="Normal" xid="178"></p> -<p style="Normal" xid="179" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Lors de la construction de Simexplorer SI, nous utilisons le framework ToPIA ainsi que différents outils développés par Code Lutin. Ceux ci sont tous sous licence LGPL.</c></p> -<p style="Normal" xid="180"></p> -<p style="Normal" xid="181" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">A partir du modÚle conceptuel, le process de développement génÚre une partie de l'application, entre autre sous la forme d'interfaces à implémenter. Nous obtenons alors :</c></p> -<p style="Normal" xid="182" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> - les entités persistées</c></p> -<p style="Normal" xid="183" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> - les interfaces des services</c></p> -<p style="Normal" xid="184" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> - les interfaces des composants des pages web</c></p> -<p style="Normal" xid="185"></p> -<p style="Normal" xid="186"></p> -<p style="Normal" xid="187" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Architecture physique</c></p> -<p style="Normal" xid="188"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">=====================</c></p> -<p style="Normal" xid="189"></p> -<p style="Normal" xid="190" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Architecture logicielle</c></p> -<p style="Normal" xid="191"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">-----------------------</c></p> -<p style="Normal" xid="192"></p> -<p style="Normal" xid="193" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">L'ensemble de l'application est développée avec le langage Java. La version de référence lors du développement de l'application est JRE 6 Update 3.</c></p> -<p style="Normal" xid="194"></p> -<p style="Normal" xid="195" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Serveur Web</c></p> -<p style="Normal" xid="196"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">___________</c></p> -<p style="Normal" xid="197"></p> -<p style="Normal" xid="198" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Le serveur web est constitué d'un Apache 2.2. Le module mod_proxy_ajp permet de ne pas lancer le serveur d'application en root et d'avoir accÚs au port HTTP et HTTPS.</c></p> -<p style="Normal" xid="200"></p> -<p style="Normal" xid="201" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Serveur Applicatif</c></p> -<p style="Normal" xid="202"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">__________________</c></p> -<p style="Normal" xid="203"></p> -<p style="Normal" xid="204"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">+------------------------+------------------------+------------------------+------------------------+------------------------+</c></p> -<p style="Normal" xid="205" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">| |JBoss 4.2.2 GA |Geronimo JEE5 2.0.2 |JOnAS 5.0 M1 |GlassFish V2 |</c></p> -<p style="Normal" xid="206"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">+========================+========================+========================+========================+========================+</c></p> -<p style="Normal" xid="207" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">|EJB3 | |ok| [#jba]_ | |ok| [#grc]_ | |ok| [#joa]_ | |uok| |</c></p> -<p style="Normal" xid="208"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">+------------------------+------------------------+------------------------+------------------------+------------------------+</c></p> -<p style="Normal" xid="209" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">|- RemoteBinding | |ok| [#jbb]_ | |ok| [#grd]_ | |uok| | |uok| |</c></p> -<p style="Normal" xid="210"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">+------------------------+------------------------+------------------------+------------------------+------------------------+</c></p> -<p style="Normal" xid="211" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">|- SSL | |ok| [#jbc]_ | |ok| [#gra]_ | |uok| | |ok| [#gfd]_ |</c></p> -<p style="Normal" xid="212"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">+------------------------+------------------------+------------------------+------------------------+------------------------+</c></p> -<p style="Normal" xid="213" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">|- SecurityDomain | |ok| [#jbd]_ | |uok| | |ok| [#joc]_ | |ok| [#gfe]_ |</c></p> -<p style="Normal" xid="214"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">+------------------------+------------------------+------------------------+------------------------+------------------------+</c></p> -<p style="Normal" xid="215" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">|- WebService | |ok| [#jbe]_ | |ok| [#gre]_ | |ok| [#job]_ | |ok| [#gfa]_ |</c></p> -<p style="Normal" xid="216"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">+------------------------+------------------------+------------------------+------------------------+------------------------+</c></p> -<p style="Normal" xid="217" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">| * Sécurisé | |ok| [#jbe]_ | |uok| [#gre]_ | |uok| | |ok| [#gff]_ |</c></p> -<p style="Normal" xid="218"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">+------------------------+------------------------+------------------------+------------------------+------------------------+</c></p> -<p style="Normal" xid="219" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">| * WebServiceContext | |ok| [#jbe]_ | |ok| [#gre]_ | |ok| [#job]_ | |uok| |</c></p> -<p style="Normal" xid="220"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">+------------------------+------------------------+------------------------+------------------------+------------------------+</c></p> -<p style="Normal" xid="221" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">|- SessionContext | |uok| | |uok| | |uok| | |uok| |</c></p> -<p style="Normal" xid="222"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">+------------------------+------------------------+------------------------+------------------------+------------------------+</c></p> -<p style="Normal" xid="223" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">|JPA | |ok| [#jbf]_ | |ok| [#grf]_ | |ok| [#jof]_ | |ok| [#gfb]_ |</c></p> -<p style="Normal" xid="224"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">+------------------------+------------------------+------------------------+------------------------+------------------------+</c></p> -<p style="Normal" xid="225" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">|- XML datasource | |ok| [#jbg]_ | |ok| [#grj]_ | |ok| [#joe]_ | |uok| |</c></p> -<p style="Normal" xid="226"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">+------------------------+------------------------+------------------------+------------------------+------------------------+</c></p> -<p style="Normal" xid="227" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">|- persistence.xml | |ok| [#jbh]_ | |ok| [#grg]_ | |ok| [#jog]_ | |uok| |</c></p> -<p style="Normal" xid="228"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">+------------------------+------------------------+------------------------+------------------------+------------------------+</c></p> -<p style="Normal" xid="229" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">|- orm.xml | |uok| | |ok| [#grh]_ | |ok| [#joh]_ | |ok| [#gfc]_ |</c></p> -<p style="Normal" xid="230"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">+------------------------+------------------------+------------------------+------------------------+------------------------+</c></p> -<p style="Normal" xid="231" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">|Servlet | |ok| [#jbi]_ | |ok| [#gri]_ | |uok| | |uok| |</c></p> -<p style="Normal" xid="232"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">+------------------------+------------------------+------------------------+------------------------+------------------------+</c></p> -<p style="Normal" xid="233" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">|- JAAS | |ok| [#jbj]_ | |ok| [#grb]_ | |ok| [#jod]_ | |uok| |</c></p> -<p style="Normal" xid="234"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">+------------------------+------------------------+------------------------+------------------------+------------------------+</c></p> -<p style="Normal" xid="235" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">|Corba | |uok| | |uok| | |uok| | |uok| |</c></p> -<p style="Normal" xid="236"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">+------------------------+------------------------+------------------------+------------------------+------------------------+</c></p> -<p style="Normal" xid="237"></p> -<p style="Normal" xid="238" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. |ok| image:: ok.png</c></p> -<p style="Normal" xid="239" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. |nok| image:: nok.png</c></p> -<p style="Normal" xid="240" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. |uok| image:: uok.png</c></p> -<p style="Normal" xid="241"></p> -<p style="Normal" xid="242" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#jba] http://docs.jboss.org/ejb3/app-server/reference/build/reference/en/html/index.html</c></p> -<p style="Normal" xid="243" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#jbb] http://docs.jboss.org/ejb3/app-server/tutorial/jndibinding/jndi.html</c></p> -<p style="Normal" xid="244" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#jbc] http://docs.jboss.org/ejb3/app-server/reference/build/reference/en/html/transport.html</c></p> -<p style="Normal" xid="245" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#jbd] http://docs.jboss.org/ejb3/app-server/tutorial/security/security.html</c></p> -<p style="Normal" xid="246" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#jbe] http://labs.jboss.com/jbossws/docs/jaxws_userguide-2.0/index.html</c></p> -<p style="Normal" xid="247" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#jbf] http://labs.jboss.com/file-access/default/members/jbossas/freezone/docs/Server_Configuration_Guide/beta422/html/EJB3_Services-Entity_Beans.html</c></p> -<p style="Normal" xid="248" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#jbg] http://labs.jboss.com/file-access/default/members/jbossas/freezone/docs/Server_Configuration_Guide/beta422/html/Connectors_on_JBoss-Configuring_JDBC_DataSources.html</c></p> -<p style="Normal" xid="249" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#jbh] http://labs.jboss.com/file-access/default/members/jbossas/freezone/docs/Server_Configuration_Guide/beta422/html/ch01s02s01.html</c></p> -<p style="Normal" xid="250" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#jbi] http://labs.jboss.com/file-access/default/members/jbossas/freezone/docs/Getting_Started_Guide/beta422/html/ch01s07.html</c></p> -<p style="Normal" xid="251" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#jbj] http://labs.jboss.com/file-access/default/members/jbossas/freezone/docs/Server_Configuration_Guide/beta422/html/Security_on_JBoss-J2EE_Declarative_Security_Overview.html</c></p> -<p style="Normal" xid="252"></p> -<p style="Normal" xid="253" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#grc] http://openejb.apache.org/</c></p> -<p style="Normal" xid="254" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#grd] http://openejb.apache.org/jndi-names.html</c></p> -<p style="Normal" xid="255" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#gra] http://www.ibm.com/developerworks/opensource/library/os-ag-corba1/</c></p> -<p style="Normal" xid="256" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#gre] http://cwiki.apache.org/GMOxPMGT/geronimo-20-web-services-support.html</c></p> -<p style="Normal" xid="257" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#grf] http://openjpa.apache.org/builds/1.0.1/apache-openjpa-1.0.1/docs/manual/jpa_overview_intro.html</c></p> -<p style="Normal" xid="258" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#grj] http://cwiki.apache.org/GMOxDOC11/geronimo-connector-11xsd.html#geronimo-connector-1.1.xsd-definitioninstanceType</c></p> -<p style="Normal" xid="259" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#grg] http://openjpa.apache.org/builds/1.0.1/apache-openjpa-1.0.1/docs/manual/jpa_overview_persistence.html</c></p> -<p style="Normal" xid="260" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#grh] http://openjpa.apache.org/builds/1.0.1/apache-openjpa-1.0.1/docs/manual/jpa_overview_meta.html</c></p> -<p style="Normal" xid="261" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#gri] http://cwiki.apache.org/GMOxKB/jetty-or-tomcat.html</c></p> -<p style="Normal" xid="262" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#grb] http://www.ibm.com/developerworks/opensource/library/os-ag-security/</c></p> -<p style="Normal" xid="263"></p> -<p style="Normal" xid="264" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#joa] http://www.easybeans.org/doc/userguide/en/chunk-integrated/ejb3_introduction.html</c></p> -<p style="Normal" xid="265" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#joc] http://jonas.objectweb.org/current/doc/doc-en/integrated/configuration_guide.html#config.security</c></p> -<p style="Normal" xid="266" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#job] http://wiki.easybeans.org/xwiki/bin/view/Main/JAXWS</c></p> -<p style="Normal" xid="267"></p> -<p style="Normal" xid="268" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#jof] http://www.jpox.org/docs/jpa/index.html</c></p> -<p style="Normal" xid="269" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#joe] http://jonas.objectweb.org/current/doc/doc-en/integrated/configuration_guide.html#N11268</c></p> -<p style="Normal" xid="270" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#jog] http://www.jpox.org/docs/jpa/persistence_xml.html</c></p> -<p style="Normal" xid="271" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#joh] http://www.jpox.org/docs/jpa/orm_xml.html</c></p> -<p style="Normal" xid="272"></p> -<p style="Normal" xid="273" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#jod] http://jonas.objectweb.org/current/doc/doc-en/integrated/configuration_guide.html#N10F4F</c></p> -<p style="Normal" xid="274"></p> -<p style="Normal" xid="275" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#gfd] http://blogs.sun.com/swchan/entry/enterprise_java_bean_over_ssl</c></p> -<p style="Normal" xid="276" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#gfe] http://java.sun.com/developer/technicalArticles/J2EE/security_annotation/</c></p> -<p style="Normal" xid="277" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#gfa] http://wiki.glassfish.java.net/Wiki.jsp?page=WebServicesTechnologies</c></p> -<p style="Normal" xid="278" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#gff] https://glassfish.dev.java.net/javaee5/docs/AG/ablrk.html#ablry</c></p> -<p style="Normal" xid="279" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#gfb] https://glassfish.dev.java.net/javaee5/persistence/</c></p> -<p style="Normal" xid="280" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#gfc] https://glassfish.dev.java.net/javaee5/persistence/persistence_faq.html#5</c></p> -<p style="Normal" xid="281"></p> -<p style="Normal" xid="282" props="text-align:left; dom-dir:ltr"></p> -<p style="Normal" xid="285" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">SGBD</c></p> -<p style="Normal" xid="286"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">____</c></p> -<p style="Normal" xid="287"></p> -<p style="Normal" xid="288" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Pour la base sur le serveur, les performances et la stabilité de PostgreSQL ont été retenues. CÃŽté client lourd, la base de donnée embarquée H2 est utilisée. Un export XML sera réalisé pour l'interopérabilité.</c></p> -<p style="Normal" xid="289"></p> -<p style="Normal" xid="290"></p> -<p style="Normal" xid="291" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Choix technologiques transverses</c></p> -<p style="Normal" xid="292"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">________________________________</c></p> -<p style="Normal" xid="293"></p> -<p style="Normal" xid="294" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Dans la perspective de réutilisation, les services publiés utiliseront des protocoles standardisés et inter opérables, afin de ne pas limiter le choix du langage.</c></p> -<p style="Normal" xid="295"></p> -<p style="Normal" xid="296" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">La technologie ... a été choisie pour son support de la sécurité et son utilisation courante dans différents langages et sur différents systÚmes d'exploitation.</c></p> -<p style="Normal" xid="297"></p> -<p style="Normal" xid="298" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Solution aux contraintes d'ergonomie</c></p> -<p style="Normal" xid="299"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">____________________________________</c></p> -<p style="Normal" xid="300"></p> -<p style="Normal" xid="301" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">L'application web respectera les standards W3C XHTML.</c></p> -<p style="Normal" xid="302"></p> -<p style="Normal" xid="303" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">L'application client lourd utilise le framework Swing, disponible sur un grand nombre de plateformes. Sur celles où Java Web Start est disponible, l'application pourra être installée par un simple clic sur le site du client léger.</c></p> -<p style="Normal" xid="304"></p> -<p style="Normal" xid="305" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Dimensionnement</c></p> -<p style="Normal" xid="306"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">_______________</c></p> -<p style="Normal" xid="307"></p> -<p style="Normal" xid="308" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Une attention particuliÚre devra être faite à la taille des partitions lors de l'intégration en fonction de la volumétrie cible. De même, cÃŽté client, l'utilisateur doit être informé de l'espace utilisé par l'application par rapport à son espace disponible. La synchronisation doit vérifier au préalable la suffisance d'espace.</c></p> -<p style="Normal" xid="309"></p> -<p style="Normal" xid="310" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">En supposant que chaque simulation prend environ 100ko de paramÚtres, que 10 utilisateurs utilisent l'application en créant 5 simulations par jour, on obtient environ 10Go de paramÚtres de simulation sur 10 ans.</c></p> -<p style="Normal" xid="311"></p> -<p style="Normal" xid="312" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Solution pour l'exploitation du systÚme</c></p> -<p style="Normal" xid="313"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">_______________________________________</c></p> -<p style="Normal" xid="314"></p> -<p style="Normal" xid="315"></p> -<p style="Normal" xid="316" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Lors de la mise à jour de l'application, plusieurs aspects doivent être gérés. Tout d'abord la base de données doit être synchrone avec l'applicatif. Ceci devra se faire automatiquement avec une migration des données executée lors du déploiement d'une nouvelle version.</c></p> -<p style="Normal" xid="317"></p> -<p style="Normal" xid="318" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Dans un environnement client/serveur, il est nécessaire de garantir la compatibilité entre les deux applications. Ainsi, le serveur mettra à disposition dans la mesure du possible les services avec une compatibilité ascendante. Si la version du client est obsolÚte, l'utilisateur est notifié et il ne peut plus utiliser l'application en mode connecté.</c></p> -<p style="Normal" xid="319"></p> -<p style="Normal" xid="320"></p> -<p style="Normal" xid="321" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">ModÚle conceptuel</c></p> -<p style="Normal" xid="322"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">-----------------</c></p> -<p style="Normal" xid="329"></p> -<p style="Normal" xid="353" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Entités des données</c></p> -<p style="Normal" xid="410" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">___________________</c></p> -<p style="Normal" xid="411" props="text-align:left; dom-dir:ltr"></p> -<p style="Normal" xid="412" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. </c><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:fr-FR">image</c><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">:: ../../../../xmi/images/data.png</c></p> -<p style="Normal" xid="413" props="text-align:left; dom-dir:ltr"></p> -<p style="Normal" xid="414" props="text-align:left; dom-dir:ltr"></p> -<p style="Normal" xid="415" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Entités des authorisations</c></p> -<p style="Normal" xid="416" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">__________________________</c></p> -<p style="Normal" xid="417" props="text-align:left; dom-dir:ltr"></p> -<p style="Normal" xid="418" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. </c><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:fr-FR">image</c><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">:: ../../../../xmi/images/entities.png</c></p> -<p style="Normal" xid="419" props="text-align:left; dom-dir:ltr"></p> -<p style="Normal" xid="420" props="text-align:left; dom-dir:ltr"></p> -<p style="Normal" xid="421" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Services de stockage</c></p> -<p style="Normal" xid="422" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">____________________</c></p> -<p style="Normal" xid="423" props="text-align:left; dom-dir:ltr"></p> -<p style="Normal" xid="424" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. </c><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:fr-FR">image</c><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">:: ../../../../xmi/images/storage.png</c></p> -<p style="Normal" xid="425" props="text-align:left; dom-dir:ltr"></p> -<p style="Normal" xid="426" props="text-align:left; dom-dir:ltr"></p> -<p style="Normal" xid="427" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Services d'authorisation</c></p> -<p style="Normal" xid="428" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">________________________</c></p> -<p style="Normal" xid="429" props="text-align:left; dom-dir:ltr"></p> -<p style="Normal" xid="430" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. </c><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:fr-FR">image</c><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">:: ../../../../xmi/images/authorization.png</c></p> -<p style="Normal" xid="431" props="text-align:left; dom-dir:ltr"></p> -<p style="Normal" xid="432" props="text-align:left; dom-dir:ltr"></p> -<p style="Normal" xid="433" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Application web</c></p> -<p style="Normal" xid="434" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">_______________</c></p> -<p style="Normal" xid="435" props="text-align:left; dom-dir:ltr"></p> -<p style="Normal" xid="436" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. image:: ../../../../xmi/images/applications.png</c></p> -<p style="Normal" xid="347" props="margin-top:0.0000in; margin-left:0.0000in; text-indent:0.0000in; dom-dir:ltr; margin-bottom:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"></p> -<p style="Normal" xid="323" props="font-family:Times New Roman; font-size:12pt; color:000000; lang:fr-FR; text-position:normal; font-weight:normal; font-style:normal; text-decoration:none"></p> -<p style="Normal" xid="324" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Séquences d'utilisation</c></p> -<p style="Normal" xid="325"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">-----------------------</c></p> -<p style="Normal" xid="326"></p> -<p style="Normal" xid="469"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Gestion des authorisations</c></p> -<p style="Normal" xid="471"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">__________________________</c></p> -<p style="Normal" xid="472"></p> -<p style="Normal" xid="473" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:fr-FR">.. image:: ./authorization.jpg</c></p> -<p style="Normal" xid="470"></p> -<p style="Normal" xid="327" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Ãcrans de l'application</c></p> -<p style="Normal" xid="328"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">-----------------------</c></p> -<p style="Normal" xid="438"></p> -<p style="Normal" xid="439"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Liste des éléments</c></p> -<p style="Normal" xid="440"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">__________________</c></p> -<p style="Normal" xid="456"></p> -<p style="Normal" xid="457"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:fr-FR">.. image:: ./screenshots/Screenshot.png</c></p> -<p style="Normal" xid="441"></p> -<p style="Normal" xid="442"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Importer un élément</c></p> -<p style="Normal" xid="443"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">___________________</c></p> -<p style="Normal" xid="444"></p> -<p style="Normal" xid="458"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:fr-FR">.. image:: ./screenshots/Screenshot-1.png</c></p> -<p style="Normal" xid="459" props="margin-top:0.0000in; margin-left:0.0000in; text-indent:0.0000in; dom-dir:ltr; margin-bottom:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"></p> -<p style="Normal" xid="445" props="font-family:Bitstream Vera Sans Mono; font-size:12pt; color:000000; lang:fr-FR; text-position:normal; font-weight:normal; font-style:normal; text-decoration:none"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Liste des utilisateurs</c></p> -<p style="Normal" xid="446"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">______________________</c></p> -<p style="Normal" xid="447"></p> -<p style="Normal" xid="460"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:fr-FR">.. image:: ./screenshots/Screenshot-2.png</c></p> -<p style="Normal" xid="461" props="margin-top:0.0000in; margin-left:0.0000in; text-indent:0.0000in; dom-dir:ltr; margin-bottom:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"></p> -<p style="Normal" xid="448" props="font-family:Bitstream Vera Sans Mono; font-size:12pt; color:000000; lang:fr-FR; text-position:normal; font-weight:normal; font-style:normal; text-decoration:none"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Ajouter/éditer un utilisateur</c></p> -<p style="Normal" xid="449"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">_____________________________</c></p> -<p style="Normal" xid="450"></p> -<p style="Normal" xid="462"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:fr-FR">.. image:: ./screenshots/Screenshot-3.png</c></p> -<p style="Normal" xid="463" props="margin-top:0.0000in; margin-left:0.0000in; text-indent:0.0000in; dom-dir:ltr; margin-bottom:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"></p> -<p style="Normal" xid="451" props="font-family:Bitstream Vera Sans Mono; font-size:12pt; color:000000; lang:fr-FR; text-position:normal; font-weight:normal; font-style:normal; text-decoration:none"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Liste des groupes</c></p> -<p style="Normal" xid="452"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">_________________</c></p> -<p style="Normal" xid="453"></p> -<p style="Normal" xid="464"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:fr-FR">.. image:: ./screenshots/Screenshot-4.png</c></p> -<p style="Normal" xid="465" props="margin-top:0.0000in; margin-left:0.0000in; text-indent:0.0000in; dom-dir:ltr; margin-bottom:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"></p> -<p style="Normal" xid="454" props="font-family:Bitstream Vera Sans Mono; font-size:12pt; color:000000; lang:fr-FR; text-position:normal; font-weight:normal; font-style:normal; text-decoration:none"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Ajouter/éditer un groupe</c></p> -<p style="Normal" xid="455"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">________________________</c></p> -<p style="Normal" xid="466"></p> -<p style="Normal" xid="467" props="font-family:Bitstream Vera Sans Mono; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:fr-FR">.. image:: ./screenshots/Screenshot-5.png</c></p> -<p style="Normal" xid="468" props="font-family:Bitstream Vera Sans Mono; dom-dir:ltr; font-style:normal; margin-left:0.0000in; lang:fr-FR; margin-bottom:0.0000in; text-indent:0.0000in; text-position:normal; margin-top:0.0000in; font-weight:normal; margin-right:0.0000in; text-decoration:none; text-align:left; line-height:1.000000; font-size:12pt"></p> -</section> -</abiword> Deleted: trunk/simexplorer-is/src/site/fr/rst/devel/architecture.txt =================================================================== --- trunk/simexplorer-is/src/site/fr/rst/devel/architecture.txt 2008-02-29 18:04:51 UTC (rev 1264) +++ trunk/simexplorer-is/src/site/fr/rst/devel/architecture.txt 2008-02-29 18:06:48 UTC (rev 1265) @@ -1,390 +0,0 @@ -======================================= -SimExplorer SI - Dossier d'architecture -======================================= - -.. contents:: :depth: 3 -.. sectnum:: - -Introduction -============ - -Ce document détaille la solution proposée en réponse à la demande d'un outil d'exploration de simulation. - -Architecture conceptuelle -========================= - -Rappel des fonctions de l'application -------------------------------------- - -L'application permet l'utilisation d'outils de simulation dans un environnement multi-utilisateurs. Un mode client léger met à disposition la gestion des utilisateurs et la consultation des paramÚtres des simulations. Ce mode est accessible avec un simple navigateur. Avec un logiciel fourni (nommé aussi client lourd), l'utilisateur peut de même gérer les utilisateurs, mais aussi les simulations afin de les lancer. Une fonction de synchronisation met à jour les données locales par rapport aux données centralisées. - -Chaque fonction est limitée en fonction des droits de l'utilisateur connecté. Cet utilisateur, en fonction des groupes auxquels il appartient, obtient des droits sur les simulations et les utilisateurs (création, modification, suppression). - -Les modifications des paramÚtres des simulations sont sauvegardé afin de conserver un historique. Cet historique se synchronise avec les données centralisées et les données de l'utilisateur. - -Décomposition de l'application en modules ------------------------------------------ - -L'authentification s'appuie sur un module unique. Celui ci permet d'authentifier les utilisateurs se connectant via le client léger ou le client lourd. Un premier niveau impératif nécessite l'appartenance de l'utilisateur à un groupe destiné à contenir les accrédités à utiliser l'application. Ce module fourni aussi les groupes d'appartenance d'un utilisateur, afin de déterminer ses droits. Enfin, ce module permet l'édition des utilisateurs et des groupes par les utilisateurs avec pouvoir. - -Les autorisations sont gérées conjointement avec l'authentification. Une simulation a des droits associés en fonction de son propriétaire et son groupe d'appartenance. Ses droits sont décorélés des données métier, seul un identifiant technique permet aux services d'interroger le module d'autorisation afin de valider l'accÚs à une simulation. Le niveau de granularité des droits est similaire à la gestion des modes sur les fichiers. Les droits sur les actions création/modification/exécution sont alloués en fonction de l'utilisateur/groupe/autre. - -Le stockage est un module dupliqué à la fois sur le serveur gérant les données centralisées et sur chaque client lourd. Celui-ci a la charge de conserver les données dans une base, et de stocker les données volumineuses dans le systÚme de fichier. Il est capable de persister les objets utilisés par l'application. Un mécanisme de synchronisation permet de mettre à jour les données locales et les données centralisées en fonction de rÚgles de gestion de versionnement. - -La logique métier de l'application est contenue dans des services. Ceux ci peuvent être exécutés localement, lors de l'exécution d'une simulation sur le client lourd par exemple. Certains services sont présents uniquement sur le serveur, parce qu'ils nécessitent les modules d'autorisation et les données centralisées. Le client lourd fait alors appel à ces services dans un mode appel distant. - -Le module d'interface est composé de deux parties. CÃŽté serveur, l'utilisateur accÚde avec un navigateur Internet standard à l'application. Les pages sont servies par un serveur web utilisant un contrÃŽleur. Celui ci interagit avec les services afin de présenter les données à l'utilisateur. CÃŽté client, l'interface graphique s'appuie aussi sur un contrÃŽleur utilisant les services. - - -Exigences et contraintes ------------------------- - -Contraintes d'urbanisme -_______________________ - -Le client lourd doit s'intégrer dans SimExplorer RCP. - -Les services déployés sur le serveur et mis à disposition du client lourd doivent pouvoir être réutilisés par des applications tierces. - -Le serveur doit être en mesure de lancer des simulations et de récupérer les résultats. - -Exigences et contraintes liées à des fonctionnalités particuliÚres -__________________________________________________________________ - -Un serveur d'authentification.existant pourra être réutilisé dans la mesure où il est accessible via des protocoles standards. Une note précisant le fonctionnement de ce serveur devra être fourni afin de rendre possible son utilisation. ex : LDAP - -Les appels de lancement des simulations devra être formalisés dans une note. Ceux ci pourront alors être intégrés dans les services. - -L'authentification implique l'établissement d'une connexion sécurisée entre le client et le serveur, afin de ne pas faire passer en clair les mots de passe sur le réseau. Le serveur disposera d'un certificat afin de crypter les flux. - -Contraintes d'ergonomie -_______________________ - -L'application web se doit d'être compatible avec les navigateurs récents : Firefox2+ et IE6+. - -L'application client lourd est un application standard type bureautique, et doit être compatible avec le maximum de plateformes. Le lancement de l'application doit se faire simplement par un raccourci. - -Volumétrie -__________ - -Les données associées aux simulations sont parfois trÚs volumineuses (>100Mo). Ces données doivent être stockées en local mais aussi sur le serveur, avec des transferts entre le client et le serveur. - -Contraintes et exigences liées à l'exploitation -_______________________________________________ - -Lors de la mise à jour de l'application, la base de données doit être synchrone avec l'applicatif. De même, le client lourd doit être à jour par rapport à la version déployée sur le serveur. - -Les données doivent pouvoir être simplement sauvegardées et restaurées. - -Architecture logique -==================== - -Schéma d'architecture logique ------------------------------ - -.. image:: diagramme1.png - -Description des flux --------------------- - - #. Serveur web - - L'interface client léger passe par ce flux. L'authentification se fera en HTTPS, le reste de l'application pourra être au choix en HTTP ou en HTTPS. Le contenu sera constitué de pages XHTML compatibles avec les navigateurs récents. - - #. Interface client lourd - - C'est à travers ce canal que l'utilisateur interagit avec l'application. - - #. Serveur d'authentification - - Le framework d'authentification utilise un serveur externe afin d'authentifier les utilisateurs. Ce flux dépend du serveur. - - #. Autorisations - - Toutes les informations relatives à la protection des accÚs aux simulations sont retrouvées via ce lien vers une base de données. - - #. Persistance cÃŽté serveur - - Les objets sont stockés dans une base de donnée à travers ce flux. - - #. Persistance cÃŽté client - - De même, les objets sont stockés dans une base de données. Nous sommes ici en présence d'une base de données embarquée, afin de rendre le client lourd autonome. - - #. SystÚme de fichiers serveur - - Les données volumineuses sont stockées dans le systÚme de fichier plutÃŽt que dans la base. - - #. SystÚme de fichiers client - - De la même façon que sur le serveur, les données sont stockées sous forme de fichiers dans le systÚme de fichier de l'utilisateur. - - #. Services distants - - La communication entre le client lourd et le serveur passe par ce flux. Celui ci est crypté et intégré à haut niveau dans l'application. Les appels de service se font de façon transparente, de façon similaire à un appel local. - - -Initialisation des entrepÃŽts de données ---------------------------------------- - -Pour l'authentification, un groupe d'utilisateur doit être créé afin d'accueillir les personnes accréditées. De plus, un groupe d'administrateur avec un utilisateur doit exister afin de permettre l'administration des utilisateurs. Ces deux groupes seront à spécifier lors de l'installation. - -Si l'application doit utiliser un serveur d'authentification existant, le groupe des administrateurs doit avoir les droits de lister les utilisateurs amenés à être ajouté aux personnes accréditées. - -Les bases de données d'autorisation et de stockage peuvent être initialisés lors du lancement de l'application de façon automatique. Si les droits de création de table et de champs n'est pas autorisé pour l'application, un script doit être exécuté avant le déploiement d'une nouvelle version afin de mettre à jour la base et migrer les données. - -CÃŽté client, le problÚme ne se pose pas, la base de données est embarquée dans l'application. - -Les modules de l'application ----------------------------- - -Le module authentification -__________________________ - -La technologie JAAS (Java Authentication and Authorization Service) a été retenue. La partie autorisation est utilisée uniquement pour valider l'accÚs de l'utilisateur authentifié à l'application. - -Plusieurs méthodes d'authentification sont déjà implantées (login/mot de passe/groupes dans une base de données avec JDBC, LDAP, ...). - -Les modules services -____________________ - -Les services sont contenus dans des EJB (Entreprise Java Bean). Chaque service est un composant disposant d'outils facilitant la mise en oeuvre des transactions et la distribution. - -Ces services sont destinés à contenir toute la logique métier. - -Les services contiennent aussi le contexte d'authentification de l'appelant. - -Le module autorisation -______________________ - -Grâce au contexte d'authentification des EJB, les appels au module d'autorisation vont sécurisés les accÚs aux données. - -Le module stockage -__________________ - -Ce module repose en grande partie sur la technologie JPA (Java Persistence API). Elle permet un mapping entre les objets et la base de données de façon transparente et interropérable. Le choix de la base de données n'est alors plus vérouillé, de nombreux systÚmes étant compatibles. Afin de gérer les volumétries associées aux simulations, certaines propriétés seront stockées sur le disque dur. - -Lors de l'accÚs à une donnée, le module gérant les autorisations est appelé afin de vérifier les droits. De même, lorsque l'utilisateur crée une nouvelle entité, les droits lui sont associés via ce service. - -Le module interface -___________________ - -CÃŽté client léger, le site est réalisé avec Tapestry 5. Ce framework apporte le développement orienté objet au applications web. De nombreuses fonctionnalités sont incluses et facilitent le développement. - -CÃŽté client lourd, le framework JAXX est utilisé. Ce framework transforme des XML décrivant l'interface en classes Java. - -Développement de l'application ------------------------------- - -Lors de la construction de Simexplorer SI, nous utilisons le framework ToPIA ainsi que différents outils développés par Code Lutin. Ceux ci sont tous sous licence LGPL. - -A partir du modÚle conceptuel, le process de développement génÚre une partie de l'application, entre autre sous la forme d'interfaces à implémenter. Nous obtenons alors : - - les entités persistées - - les interfaces des services - - les interfaces des composants des pages web - - -Architecture physique -===================== - -Architecture logicielle ------------------------ - -L'ensemble de l'application est développée avec le langage Java. La version de référence lors du développement de l'application est JRE 6 Update 3. - -Serveur Web -___________ - -Le serveur web est constitué d'un Apache 2.2. Le module mod_proxy_ajp permet de ne pas lancer le serveur d'application en root et d'avoir accÚs au port HTTP et HTTPS. - -Serveur Applicatif -__________________ - -+------------------------+------------------------+------------------------+------------------------+------------------------+ -| |JBoss 4.2.2 GA |Geronimo JEE5 2.0.2 |JOnAS 5.0 M1 |GlassFish V2 | -+========================+========================+========================+========================+========================+ -|EJB3 | |ok| [#jba]_ | |ok| [#grc]_ | |ok| [#joa]_ | |uok| | -+------------------------+------------------------+------------------------+------------------------+------------------------+ -|- RemoteBinding | |ok| [#jbb]_ | |ok| [#grd]_ | |uok| | |uok| | -+------------------------+------------------------+------------------------+------------------------+------------------------+ -|- SSL | |ok| [#jbc]_ | |ok| [#gra]_ | |uok| | |ok| [#gfd]_ | -+------------------------+------------------------+------------------------+------------------------+------------------------+ -|- SecurityDomain | |ok| [#jbd]_ | |uok| | |ok| [#joc]_ | |ok| [#gfe]_ | -+------------------------+------------------------+------------------------+------------------------+------------------------+ -|- WebService | |ok| [#jbe]_ | |ok| [#gre]_ | |ok| [#job]_ | |ok| [#gfa]_ | -+------------------------+------------------------+------------------------+------------------------+------------------------+ -| * Sécurisé | |ok| [#jbe]_ | |uok| [#gre]_ | |uok| | |ok| [#gff]_ | -+------------------------+------------------------+------------------------+------------------------+------------------------+ -| * WebServiceContext | |ok| [#jbe]_ | |ok| [#gre]_ | |ok| [#job]_ | |uok| | -+------------------------+------------------------+------------------------+------------------------+------------------------+ -|- SessionContext | |uok| | |uok| | |uok| | |uok| | -+------------------------+------------------------+------------------------+------------------------+------------------------+ -|JPA | |ok| [#jbf]_ | |ok| [#grf]_ | |ok| [#jof]_ | |ok| [#gfb]_ | -+------------------------+------------------------+------------------------+------------------------+------------------------+ -|- XML datasource | |ok| [#jbg]_ | |ok| [#grj]_ | |ok| [#joe]_ | |uok| | -+------------------------+------------------------+------------------------+------------------------+------------------------+ -|- persistence.xml | |ok| [#jbh]_ | |ok| [#grg]_ | |ok| [#jog]_ | |uok| | -+------------------------+------------------------+------------------------+------------------------+------------------------+ -|- orm.xml | |uok| | |ok| [#grh]_ | |ok| [#joh]_ | |ok| [#gfc]_ | -+------------------------+------------------------+------------------------+------------------------+------------------------+ -|Servlet | |ok| [#jbi]_ | |ok| [#gri]_ | |uok| | |uok| | -+------------------------+------------------------+------------------------+------------------------+------------------------+ -|- JAAS | |ok| [#jbj]_ | |ok| [#grb]_ | |ok| [#jod]_ | |uok| | -+------------------------+------------------------+------------------------+------------------------+------------------------+ -|Corba | |uok| | |uok| | |uok| | |uok| | -+------------------------+------------------------+------------------------+------------------------+------------------------+ - -.. |ok| image:: ok.png -.. |nok| image:: nok.png -.. |uok| image:: uok.png - -.. [#jba] http://docs.jboss.org/ejb3/app-server/reference/build/reference/en/html/inde... -.. [#jbb] http://docs.jboss.org/ejb3/app-server/tutorial/jndibinding/jndi.html -.. [#jbc] http://docs.jboss.org/ejb3/app-server/reference/build/reference/en/html/tran... -.. [#jbd] http://docs.jboss.org/ejb3/app-server/tutorial/security/security.html -.. [#jbe] http://labs.jboss.com/jbossws/docs/jaxws_userguide-2.0/index.html -.. [#jbf] http://labs.jboss.com/file-access/default/members/jbossas/freezone/docs/Serv... -.. [#jbg] http://labs.jboss.com/file-access/default/members/jbossas/freezone/docs/Serv... -.. [#jbh] http://labs.jboss.com/file-access/default/members/jbossas/freezone/docs/Serv... -.. [#jbi] http://labs.jboss.com/file-access/default/members/jbossas/freezone/docs/Gett... -.. [#jbj] http://labs.jboss.com/file-access/default/members/jbossas/freezone/docs/Serv... - -.. [#grc] http://openejb.apache.org/ -.. [#grd] http://openejb.apache.org/jndi-names.html -.. [#gra] http://www.ibm.com/developerworks/opensource/library/os-ag-corba1/ -.. [#gre] http://cwiki.apache.org/GMOxPMGT/geronimo-20-web-services-support.html -.. [#grf] http://openjpa.apache.org/builds/1.0.1/apache-openjpa-1.0.1/docs/manual/jpa_... -.. [#grj] http://cwiki.apache.org/GMOxDOC11/geronimo-connector-11xsd.html#geronimo-con... -.. [#grg] http://openjpa.apache.org/builds/1.0.1/apache-openjpa-1.0.1/docs/manual/jpa_... -.. [#grh] http://openjpa.apache.org/builds/1.0.1/apache-openjpa-1.0.1/docs/manual/jpa_... -.. [#gri] http://cwiki.apache.org/GMOxKB/jetty-or-tomcat.html -.. [#grb] http://www.ibm.com/developerworks/opensource/library/os-ag-security/ - -.. [#joa] http://www.easybeans.org/doc/userguide/en/chunk-integrated/ejb3_introduction... -.. [#joc] http://jonas.objectweb.org/current/doc/doc-en/integrated/configuration_guide... -.. [#job] http://wiki.easybeans.org/xwiki/bin/view/Main/JAXWS - -.. [#jof] http://www.jpox.org/docs/jpa/index.html -.. [#joe] http://jonas.objectweb.org/current/doc/doc-en/integrated/configuration_guide... -.. [#jog] http://www.jpox.org/docs/jpa/persistence_xml.html -.. [#joh] http://www.jpox.org/docs/jpa/orm_xml.html - -.. [#jod] http://jonas.objectweb.org/current/doc/doc-en/integrated/configuration_guide... - -.. [#gfd] http://blogs.sun.com/swchan/entry/enterprise_java_bean_over_ssl -.. [#gfe] http://java.sun.com/developer/technicalArticles/J2EE/security_annotation/ -.. [#gfa] http://wiki.glassfish.java.net/Wiki.jsp?page=WebServicesTechnologies -.. [#gff] https://glassfish.dev.java.net/javaee5/docs/AG/ablrk.html#ablry -.. [#gfb] https://glassfish.dev.java.net/javaee5/persistence/ -.. [#gfc] https://glassfish.dev.java.net/javaee5/persistence/persistence_faq.html#5 - - -SGBD -____ - -Pour la base sur le serveur, les performances et la stabilité de PostgreSQL ont été retenues. CÃŽté client lourd, la base de donnée embarquée H2 est utilisée. Un export XML sera réalisé pour l'interopérabilité. - - -Choix technologiques transverses -________________________________ - -Dans la perspective de réutilisation, les services publiés utiliseront des protocoles standardisés et inter opérables, afin de ne pas limiter le choix du langage. - -La technologie ... a été choisie pour son support de la sécurité et son utilisation courante dans différents langages et sur différents systÚmes d'exploitation. - -Solution aux contraintes d'ergonomie -____________________________________ - -L'application web respectera les standards W3C XHTML. - -L'application client lourd utilise le framework Swing, disponible sur un grand nombre de plateformes. Sur celles où Java Web Start est disponible, l'application pourra être installée par un simple clic sur le site du client léger. - -Dimensionnement -_______________ - -Une attention particuliÚre devra être faite à la taille des partitions lors de l'intégration en fonction de la volumétrie cible. De même, cÃŽté client, l'utilisateur doit être informé de l'espace utilisé par l'application par rapport à son espace disponible. La synchronisation doit vérifier au préalable la suffisance d'espace. - -En supposant que chaque simulation prend environ 100ko de paramÚtres, que 10 utilisateurs utilisent l'application en créant 5 simulations par jour, on obtient environ 10Go de paramÚtres de simulation sur 10 ans. - -Solution pour l'exploitation du systÚme -_______________________________________ - - -Lors de la mise à jour de l'application, plusieurs aspects doivent être gérés. Tout d'abord la base de données doit être synchrone avec l'applicatif. Ceci devra se faire automatiquement avec une migration des données executée lors du déploiement d'une nouvelle version. - -Dans un environnement client/serveur, il est nécessaire de garantir la compatibilité entre les deux applications. Ainsi, le serveur mettra à disposition dans la mesure du possible les services avec une compatibilité ascendante. Si la version du client est obsolÚte, l'utilisateur est notifié et il ne peut plus utiliser l'application en mode connecté. - - -ModÚle conceptuel ------------------ - -Entités des données -___________________ - -.. image:: ../../../../xmi/images/data.png - - -Entités des authorisations -__________________________ - -.. image:: ../../../../xmi/images/entities.png - - -Services de stockage -____________________ - -.. image:: ../../../../xmi/images/storage.png - - -Services d'authorisation -________________________ - -.. image:: ../../../../xmi/images/authorization.png - - -Application web -_______________ - -.. image:: ../../../../xmi/images/applications.png - - -Séquences d'utilisation ------------------------ - -Gestion des authorisations -__________________________ - -.. image:: ./authorization.jpg - -Ãcrans de l'application ------------------------ - -Liste des éléments -__________________ - -.. image:: ./screenshots/Screenshot.png - -Importer un élément -___________________ - -.. image:: ./screenshots/Screenshot-1.png - -Liste des utilisateurs -______________________ - -.. image:: ./screenshots/Screenshot-2.png - -Ajouter/éditer un utilisateur -_____________________________ - -.. image:: ./screenshots/Screenshot-3.png - -Liste des groupes -_________________ - -.. image:: ./screenshots/Screenshot-4.png - -Ajouter/éditer un groupe -________________________ - -.. image:: ./screenshots/Screenshot-5.png Deleted: trunk/simexplorer-is/src/site/fr/rst/devel/architecture.xhtml =================================================================== --- trunk/simexplorer-is/src/site/fr/rst/devel/architecture.xhtml 2008-02-29 18:04:51 UTC (rev 1264) +++ trunk/simexplorer-is/src/site/fr/rst/devel/architecture.xhtml 2008-02-29 18:06:48 UTC (rev 1265) @@ -1,940 +0,0 @@ -<?xml version="1.0" encoding="utf-8" ?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<meta name="generator" content="Docutils 0.5: http://docutils.sourceforge.net/" /> -<title>SimExplorer SI - Dossier d'architecture</title> -<style type="text/css"> - -/* -:Author: David Goodger (goodger at python.org) -:Id: $Id: html4css1.css 5196 2007-06-03 20:25:28Z wiemann $ -:Copyright: This stylesheet has been placed in the public domain. - -Default cascading style sheet for the HTML output of Docutils. - -See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to -customize this style sheet. -*/ - -/* used to remove borders from tables and images */ -.borderless, table.borderless td, table.borderless th { - border: 0 } - -table.borderless td, table.borderless th { - /* Override padding for "table.docutils td" with "! important". - The right padding separates the table cells. */ - padding: 0 0.5em 0 0 ! important } - -.first { - /* Override more specific margin styles with "! important". */ - margin-top: 0 ! important } - -.last, .with-subtitle { - margin-bottom: 0 ! important } - -.hidden { - display: none } - -a.toc-backref { - text-decoration: none ; - color: black } - -blockquote.epigraph { - margin: 2em 5em ; } - -dl.docutils dd { - margin-bottom: 0.5em } - -/* Uncomment (and remove this text!) to get bold-faced definition list terms -dl.docutils dt { - font-weight: bold } -*/ - -div.abstract { - margin: 2em 5em } - -div.abstract p.topic-title { - font-weight: bold ; - text-align: center } - -div.admonition, div.attention, div.caution, div.danger, div.error, -div.hint, div.important, div.note, div.tip, div.warning { - margin: 2em ; - border: medium outset ; - padding: 1em } - -div.admonition p.admonition-title, div.hint p.admonition-title, -div.important p.admonition-title, div.note p.admonition-title, -div.tip p.admonition-title { - font-weight: bold ; - font-family: sans-serif } - -div.attention p.admonition-title, div.caution p.admonition-title, -div.danger p.admonition-title, div.error p.admonition-title, -div.warning p.admonition-title { - color: red ; - font-weight: bold ; - font-family: sans-serif } - -/* Uncomment (and remove this text!) to get reduced vertical space in - compound paragraphs. -div.compound .compound-first, div.compound .compound-middle { - margin-bottom: 0.5em } - -div.compound .compound-last, div.compound .compound-middle { - margin-top: 0.5em } -*/ - -div.dedication { - margin: 2em 5em ; - text-align: center ; - font-style: italic } - -div.dedication p.topic-title { - font-weight: bold ; - font-style: normal } - -div.figure { - margin-left: 2em ; - margin-right: 2em } - -div.footer, div.header { - clear: both; - font-size: smaller } - -div.line-block { - display: block ; - margin-top: 1em ; - margin-bottom: 1em } - -div.line-block div.line-block { - margin-top: 0 ; - margin-bottom: 0 ; - margin-left: 1.5em } - -div.sidebar { - margin: 0 0 0.5em 1em ; - border: medium outset ; - padding: 1em ; - background-color: #ffffee ; - width: 40% ; - float: right ; - clear: right } - -div.sidebar p.rubric { - font-family: sans-serif ; - font-size: medium } - -div.system-messages { - margin: 5em } - -div.system-messages h1 { - color: red } - -div.system-message { - border: medium outset ; - padding: 1em } - -div.system-message p.system-message-title { - color: red ; - font-weight: bold } - -div.topic { - margin: 2em } - -h1.section-subtitle, h2.section-subtitle, h3.section-subtitle, -h4.section-subtitle, h5.section-subtitle, h6.section-subtitle { - margin-top: 0.4em } - -h1.title { - text-align: center } - -h2.subtitle { - text-align: center } - -hr.docutils { - width: 75% } - -img.align-left { - clear: left } - -img.align-right { - clear: right } - -ol.simple, ul.simple { - margin-bottom: 1em } - -ol.arabic { - list-style: decimal } - -ol.loweralpha { - list-style: lower-alpha } - -ol.upperalpha { - list-style: upper-alpha } - -ol.lowerroman { - list-style: lower-roman } - -ol.upperroman { - list-style: upper-roman } - -p.attribution { - text-align: right ; - margin-left: 50% } - -p.caption { - font-style: italic } - -p.credits { - font-style: italic ; - font-size: smaller } - -p.label { - white-space: nowrap } - -p.rubric { - font-weight: bold ; - font-size: larger ; - color: maroon ; - text-align: center } - -p.sidebar-title { - font-family: sans-serif ; - font-weight: bold ; - font-size: larger } - -p.sidebar-subtitle { - font-family: sans-serif ; - font-weight: bold } - -p.topic-title { - font-weight: bold } - -pre.address { - margin-bottom: 0 ; - margin-top: 0 ; - font-family: serif ; - font-size: 100% } - -pre.literal-block, pre.doctest-block { - margin-left: 2em ; - margin-right: 2em } - -span.classifier { - font-family: sans-serif ; - font-style: oblique } - -span.classifier-delimiter { - font-family: sans-serif ; - font-weight: bold } - -span.interpreted { - font-family: sans-serif } - -span.option { - white-space: nowrap } - -span.pre { - white-space: pre } - -span.problematic { - color: red } - -span.section-subtitle { - /* font-size relative to parent (h1..h6 element) */ - font-size: 80% } - -table.citation { - border-left: solid 1px gray; - margin-left: 1px } - -table.docinfo { - margin: 2em 4em } - -table.docutils { - margin-top: 0.5em ; - margin-bottom: 0.5em } - -table.footnote { - border-left: solid 1px black; - margin-left: 1px } - -table.docutils td, table.docutils th, -table.docinfo td, table.docinfo th { - padding-left: 0.5em ; - padding-right: 0.5em ; - vertical-align: top } - -table.docutils th.field-name, table.docinfo th.docinfo-name { - font-weight: bold ; - text-align: left ; - white-space: nowrap ; - padding-left: 0 } - -h1 tt.docutils, h2 tt.docutils, h3 tt.docutils, -h4 tt.docutils, h5 tt.docutils, h6 tt.docutils { - font-size: 100% } - -ul.auto-toc { - list-style-type: none } - -</style> -</head> -<body> -<div class="document" id="simexplorer-si-dossier-d-architecture"> -<h1 class="title">SimExplorer SI - Dossier d'architecture</h1> - -<div class="contents topic" id="contents"> -<p class="topic-title first">Contents</p> -<ul class="auto-toc simple"> -<li><a class="reference internal" href="#introduction" id="id40">1 Introduction</a></li> -<li><a class="reference internal" href="#architecture-conceptuelle" id="id41">2 Architecture conceptuelle</a><ul class="auto-toc"> -<li><a class="reference internal" href="#rappel-des-fonctions-de-l-application" id="id42">2.1 Rappel des fonctions de l'application</a></li> -<li><a class="reference internal" href="#d-composition-de-l-application-en-modules" id="id43">2.2 Décomposition de l'application en modules</a></li> -<li><a class="reference internal" href="#exigences-et-contraintes" id="id44">2.3 Exigences et contraintes</a><ul class="auto-toc"> -<li><a class="reference internal" href="#contraintes-d-urbanisme" id="id45">2.3.1 Contraintes d'urbanisme</a></li> -<li><a class="reference internal" href="#exigences-et-contraintes-li-es-des-fonctionnalit-s-particuli-res" id="id46">2.3.2 Exigences et contraintes liées à des fonctionnalités particuliÚres</a></li> -<li><a class="reference internal" href="#contraintes-d-ergonomie" id="id47">2.3.3 Contraintes d'ergonomie</a></li> -<li><a class="reference internal" href="#volum-trie" id="id48">2.3.4 Volumétrie</a></li> -<li><a class="reference internal" href="#contraintes-et-exigences-li-es-l-exploitation" id="id49">2.3.5 Contraintes et exigences liées à l'exploitation</a></li> -</ul> -</li> -</ul> -</li> -<li><a class="reference internal" href="#architecture-logique" id="id50">3 Architecture logique</a><ul class="auto-toc"> -<li><a class="reference internal" href="#sch-ma-d-architecture-logique" id="id51">3.1 Schéma d'architecture logique</a></li> -<li><a class="reference internal" href="#description-des-flux" id="id52">3.2 Description des flux</a></li> -<li><a class="reference internal" href="#initialisation-des-entrep-ts-de-donn-es" id="id53">3.3 Initialisation des entrepÃŽts de données</a></li> -<li><a class="reference internal" href="#les-modules-de-l-application" id="id54">3.4 Les modules de l'application</a><ul class="auto-toc"> -<li><a class="reference internal" href="#le-module-authentification" id="id55">3.4.1 Le module authentification</a></li> -<li><a class="reference internal" href="#les-modules-services" id="id56">3.4.2 Les modules services</a></li> -<li><a class="reference internal" href="#le-module-autorisation" id="id57">3.4.3 Le module autorisation</a></li> -<li><a class="reference internal" href="#le-module-stockage" id="id58">3.4.4 Le module stockage</a></li> -<li><a class="reference internal" href="#le-module-interface" id="id59">3.4.5 Le module interface</a></li> -</ul> -</li> -<li><a class="reference internal" href="#d-veloppement-de-l-application" id="id60">3.5 Développement de l'application</a></li> -</ul> -</li> -<li><a class="reference internal" href="#architecture-physique" id="id61">4 Architecture physique</a><ul class="auto-toc"> -<li><a class="reference internal" href="#architecture-logicielle" id="id62">4.1 Architecture logicielle</a><ul class="auto-toc"> -<li><a class="reference internal" href="#serveur-web" id="id63">4.1.1 Serveur Web</a></li> -<li><a class="reference internal" href="#serveur-applicatif" id="id64">4.1.2 Serveur Applicatif</a></li> -<li><a class="reference internal" href="#sgbd" id="id65">4.1.3 SGBD</a></li> -<li><a class="reference internal" href="#choix-technologiques-transverses" id="id66">4.1.4 Choix technologiques transverses</a></li> -<li><a class="reference internal" href="#solution-aux-contraintes-d-ergonomie" id="id67">4.1.5 Solution aux contraintes d'ergonomie</a></li> -<li><a class="reference internal" href="#dimensionnement" id="id68">4.1.6 Dimensionnement</a></li> -<li><a class="reference internal" href="#solution-pour-l-exploitation-du-syst-me" id="id69">4.1.7 Solution pour l'exploitation du systÚme</a></li> -</ul> -</li> -<li><a class="reference internal" href="#mod-le-conceptuel" id="id70">4.2 ModÚle conceptuel</a><ul class="auto-toc"> -<li><a class="reference internal" href="#entit-s-des-donn-es" id="id71">4.2.1 Entités des données</a></li> -<li><a class="reference internal" href="#entit-s-des-authorisations" id="id72">4.2.2 Entités des authorisations</a></li> -<li><a class="reference internal" href="#services-de-stockage" id="id73">4.2.3 Services de stockage</a></li> -<li><a class="reference internal" href="#services-d-authorisation" id="id74">4.2.4 Services d'authorisation</a></li> -<li><a class="reference internal" href="#application-web" id="id75">4.2.5 Application web</a></li> -</ul> -</li> -<li><a class="reference internal" href="#s-quences-d-utilisation" id="id76">4.3 Séquences d'utilisation</a><ul class="auto-toc"> -<li><a class="reference internal" href="#gestion-des-authorisations" id="id77">4.3.1 Gestion des authorisations</a></li> -</ul> -</li> -<li><a class="reference internal" href="#crans-de-l-application" id="id78">4.4 Ãcrans de l'application</a><ul class="auto-toc"> -<li><a class="reference internal" href="#liste-des-l-ments" id="id79">4.4.1 Liste des éléments</a></li> -<li><a class="reference internal" href="#importer-un-l-ment" id="id80">4.4.2 Importer un élément</a></li> -<li><a class="reference internal" href="#liste-des-utilisateurs" id="id81">4.4.3 Liste des utilisateurs</a></li> -<li><a class="reference internal" href="#ajouter-diter-un-utilisateur" id="id82">4.4.4 Ajouter/éditer un utilisateur</a></li> -<li><a class="reference internal" href="#liste-des-groupes" id="id83">4.4.5 Liste des groupes</a></li> -<li><a class="reference internal" href="#ajouter-diter-un-groupe" id="id84">4.4.6 Ajouter/éditer un groupe</a></li> -</ul> -</li> -</ul> -</li> -</ul> -</div> -<div class="section" id="introduction"> -<h1><a class="toc-backref" href="#id40">1 Introduction</a></h1> -<p>Ce document détaille la solution proposée en réponse à la demande d'un outil d'exploration de simulation.</p> -</div> -<div class="section" id="architecture-conceptuelle"> -<h1><a class="toc-backref" href="#id41">2 Architecture conceptuelle</a></h1> -<div class="section" id="rappel-des-fonctions-de-l-application"> -<h2><a class="toc-backref" href="#id42">2.1 Rappel des fonctions de l'application</a></h2> -<p>L'application permet l'utilisation d'outils de simulation dans un environnement multi-utilisateurs. Un mode client léger met à disposition la gestion des utilisateurs et la consultation des paramÚtres des simulations. Ce mode est accessible avec un simple navigateur. Avec un logiciel fourni (nommé aussi client lourd), l'utilisateur peut de même gérer les utilisateurs, mais aussi les simulations afin de les lancer. Une fonction de synchronisation met à jour les données locales par rapport aux données centralisées.</p> -<p>Chaque fonction est limitée en fonction des droits de l'utilisateur connecté. Cet utilisateur, en fonction des groupes auxquels il appartient, obtient des droits sur les simulations et les utilisateurs (création, modification, suppression).</p> -<p>Les modifications des paramÚtres des simulations sont sauvegardé afin de conserver un historique. Cet historique se synchronise avec les données centralisées et les données de l'utilisateur.</p> -</div> -<div class="section" id="d-composition-de-l-application-en-modules"> -<h2><a class="toc-backref" href="#id43">2.2 Décomposition de l'application en modules</a></h2> -<p>L'authentification s'appuie sur un module unique. Celui ci permet d'authentifier les utilisateurs se connectant via le client léger ou le client lourd. Un premier niveau impératif nécessite l'appartenance de l'utilisateur à un groupe destiné à contenir les accrédités à utiliser l'application. Ce module fourni aussi les groupes d'appartenance d'un utilisateur, afin de déterminer ses droits. Enfin, ce module permet l'édition des utilisateurs et des groupes par les utilisateurs avec pouvoir.</p> -<p>Les autorisations sont gérées conjointement avec l'authentification. Une simulation a des droits associés en fonction de son propriétaire et son groupe d'appartenance. Ses droits sont décorélés des données métier, seul un identifiant technique permet aux services d'interroger le module d'autorisation afin de valider l'accÚs à une simulation. Le niveau de granularité des droits est similaire à la gestion des modes sur les fichiers. Les droits sur les actions création/modification/exécution sont alloués en fonction de l'utilisateur/groupe/autre.</p> -<p>Le stockage est un module dupliqué à la fois sur le serveur gérant les données centralisées et sur chaque client lourd. Celui-ci a la charge de conserver les données dans une base, et de stocker les données volumineuses dans le systÚme de fichier. Il est capable de persister les objets utilisés par l'application. Un mécanisme de synchronisation permet de mettre à jour les données locales et les données centralisées en fonction de rÚgles de gestion de versionnement.</p> -<p>La logique métier de l'application est contenue dans des services. Ceux ci peuvent être exécutés localement, lors de l'exécution d'une simulation sur le client lourd par exemple. Certains services sont présents uniquement sur le serveur, parce qu'ils nécessitent les modules d'autorisation et les données centralisées. Le client lourd fait alors appel à ces services dans un mode appel distant.</p> -<p>Le module d'interface est composé de deux parties. CÃŽté serveur, l'utilisateur accÚde avec un navigateur Internet standard à l'application. Les pages sont servies par un serveur web utilisant un contrÃŽleur. Celui ci interagit avec les services afin de présenter les données à l'utilisateur. CÃŽté client, l'interface graphique s'appuie aussi sur un contrÃŽleur utilisant les services.</p> -</div> -<div class="section" id="exigences-et-contraintes"> -<h2><a class="toc-backref" href="#id44">2.3 Exigences et contraintes</a></h2> -<div class="section" id="contraintes-d-urbanisme"> -<h3><a class="toc-backref" href="#id45">2.3.1 Contraintes d'urbanisme</a></h3> -<p>Le client lourd doit s'intégrer dans SimExplorer RCP.</p> -<p>Les services déployés sur le serveur et mis à disposition du client lourd doivent pouvoir être réutilisés par des applications tierces.</p> -<p>Le serveur doit être en mesure de lancer des simulations et de récupérer les résultats.</p> -</div> -<div class="section" id="exigences-et-contraintes-li-es-des-fonctionnalit-s-particuli-res"> -<h3><a class="toc-backref" href="#id46">2.3.2 Exigences et contraintes liées à des fonctionnalités particuliÚres</a></h3> -<p>Un serveur d'authentification.existant pourra être réutilisé dans la mesure où il est accessible via des protocoles standards. Une note précisant le fonctionnement de ce serveur devra être fourni afin de rendre possible son utilisation. ex : LDAP</p> -<p>Les appels de lancement des simulations devra être formalisés dans une note. Ceux ci pourront alors être intégrés dans les services.</p> -<p>L'authentification implique l'établissement d'une connexion sécurisée entre le client et le serveur, afin de ne pas faire passer en clair les mots de passe sur le réseau. Le serveur disposera d'un certificat afin de crypter les flux.</p> -</div> -<div class="section" id="contraintes-d-ergonomie"> -<h3><a class="toc-backref" href="#id47">2.3.3 Contraintes d'ergonomie</a></h3> -<p>L'application web se doit d'être compatible avec les navigateurs récents : Firefox2+ et IE6+.</p> -<p>L'application client lourd est un application standard type bureautique, et doit être compatible avec le maximum de plateformes. Le lancement de l'application doit se faire simplement par un raccourci.</p> -</div> -<div class="section" id="volum-trie"> -<h3><a class="toc-backref" href="#id48">2.3.4 Volumétrie</a></h3> -<p>Les données associées aux simulations sont parfois trÚs volumineuses (>100Mo). Ces données doivent être stockées en local mais aussi sur le serveur, avec des transferts entre le client et le serveur.</p> -</div> -<div class="section" id="contraintes-et-exigences-li-es-l-exploitation"> -<h3><a class="toc-backref" href="#id49">2.3.5 Contraintes et exigences liées à l'exploitation</a></h3> -<p>Lors de la mise à jour de l'application, la base de données doit être synchrone avec l'applicatif. De même, le client lourd doit être à jour par rapport à la version déployée sur le serveur.</p> -<p>Les données doivent pouvoir être simplement sauvegardées et restaurées.</p> -</div> -</div> -</div> -<div class="section" id="architecture-logique"> -<h1><a class="toc-backref" href="#id50">3 Architecture logique</a></h1> -<div class="section" id="sch-ma-d-architecture-logique"> -<h2><a class="toc-backref" href="#id51">3.1 Schéma d'architecture logique</a></h2> -<img alt="diagramme1.png" src="diagramme1.png" /> -</div> -<div class="section" id="description-des-flux"> -<h2><a class="toc-backref" href="#id52">3.2 Description des flux</a></h2> -<blockquote> -<ol class="arabic"> -<li><p class="first">Serveur web</p> -<p>L'interface client léger passe par ce flux. L'authentification se fera en HTTPS, le reste de l'application pourra être au choix en HTTP ou en HTTPS. Le contenu sera constitué de pages XHTML compatibles avec les navigateurs récents.</p> -</li> -<li><p class="first">Interface client lourd</p> -<p>C'est à travers ce canal que l'utilisateur interagit avec l'application.</p> -</li> -<li><p class="first">Serveur d'authentification</p> -<p>Le framework d'authentification utilise un serveur externe afin d'authentifier les utilisateurs. Ce flux dépend du serveur.</p> -</li> -<li><p class="first">Autorisations</p> -<p>Toutes les informations relatives à la protection des accÚs aux simulations sont retrouvées via ce lien vers une base de données.</p> -</li> -<li><p class="first">Persistance cÃŽté serveur</p> -<p>Les objets sont stockés dans une base de donnée à travers ce flux.</p> -</li> -<li><p class="first">Persistance cÃŽté client</p> -<p>De même, les objets sont stockés dans une base de données. Nous sommes ici en présence d'une base de données embarquée, afin de rendre le client lourd autonome.</p> -</li> -<li><p class="first">SystÚme de fichiers serveur</p> -<p>Les données volumineuses sont stockées dans le systÚme de fichier plutÃŽt que dans la base.</p> -</li> -<li><p class="first">SystÚme de fichiers client</p> -<p>De la même façon que sur le serveur, les données sont stockées sous forme de fichiers dans le systÚme de fichier de l'utilisateur.</p> -</li> -<li><p class="first">Services distants</p> -<p>La communication entre le client lourd et le serveur passe par ce flux. Celui ci est crypté et intégré à haut niveau dans l'application. Les appels de service se font de façon transparente, de façon similaire à un appel local.</p> -</li> -</ol> -</blockquote> -</div> -<div class="section" id="initialisation-des-entrep-ts-de-donn-es"> -<h2><a class="toc-backref" href="#id53">3.3 Initialisation des entrepÃŽts de données</a></h2> -<p>Pour l'authentification, un groupe d'utilisateur doit être créé afin d'accueillir les personnes accréditées. De plus, un groupe d'administrateur avec un utilisateur doit exister afin de permettre l'administration des utilisateurs. Ces deux groupes seront à spécifier lors de l'installation.</p> -<p>Si l'application doit utiliser un serveur d'authentification existant, le groupe des administrateurs doit avoir les droits de lister les utilisateurs amenés à être ajouté aux personnes accréditées.</p> -<p>Les bases de données d'autorisation et de stockage peuvent être initialisés lors du lancement de l'application de façon automatique. Si les droits de création de table et de champs n'est pas autorisé pour l'application, un script doit être exécuté avant le déploiement d'une nouvelle version afin de mettre à jour la base et migrer les données.</p> -<p>CÃŽté client, le problÚme ne se pose pas, la base de données est embarquée dans l'application.</p> -</div> -<div class="section" id="les-modules-de-l-application"> -<h2><a class="toc-backref" href="#id54">3.4 Les modules de l'application</a></h2> -<div class="section" id="le-module-authentification"> -<h3><a class="toc-backref" href="#id55">3.4.1 Le module authentification</a></h3> -<p>La technologie JAAS (Java Authentication and Authorization Service) a été retenue. La partie autorisation est utilisée uniquement pour valider l'accÚs de l'utilisateur authentifié à l'application.</p> -<p>Plusieurs méthodes d'authentification sont déjà implantées (login/mot de passe/groupes dans une base de données avec JDBC, LDAP, ...).</p> -</div> -<div class="section" id="les-modules-services"> -<h3><a class="toc-backref" href="#id56">3.4.2 Les modules services</a></h3> -<p>Les services sont contenus dans des EJB (Entreprise Java Bean). Chaque service est un composant disposant d'outils facilitant la mise en oeuvre des transactions et la distribution.</p> -<p>Ces services sont destinés à contenir toute la logique métier.</p> -<p>Les services contiennent aussi le contexte d'authentification de l'appelant.</p> -</div> -<div class="section" id="le-module-autorisation"> -<h3><a class="toc-backref" href="#id57">3.4.3 Le module autorisation</a></h3> -<p>Grâce au contexte d'authentification des EJB, les appels au module d'autorisation vont sécurisés les accÚs aux données.</p> -</div> -<div class="section" id="le-module-stockage"> -<h3><a class="toc-backref" href="#id58">3.4.4 Le module stockage</a></h3> -<p>Ce module repose en grande partie sur la technologie JPA (Java Persistence API). Elle permet un mapping entre les objets et la base de données de façon transparente et interropérable. Le choix de la base de données n'est alors plus vérouillé, de nombreux systÚmes étant compatibles. Afin de gérer les volumétries associées aux simulations, certaines propriétés seront stockées sur le disque dur.</p> -<p>Lors de l'accÚs à une donnée, le module gérant les autorisations est appelé afin de vérifier les droits. De même, lorsque l'utilisateur crée une nouvelle entité, les droits lui sont associés via ce service.</p> -</div> -<div class="section" id="le-module-interface"> -<h3><a class="toc-backref" href="#id59">3.4.5 Le module interface</a></h3> -<p>CÃŽté client léger, le site est réalisé avec Tapestry 5. Ce framework apporte le développement orienté objet au applications web. De nombreuses fonctionnalités sont incluses et facilitent le développement.</p> -<p>CÃŽté client lourd, le framework JAXX est utilisé. Ce framework transforme des XML décrivant l'interface en classes Java.</p> -</div> -</div> -<div class="section" id="d-veloppement-de-l-application"> -<h2><a class="toc-backref" href="#id60">3.5 Développement de l'application</a></h2> -<p>Lors de la construction de Simexplorer SI, nous utilisons le framework ToPIA ainsi que différents outils développés par Code Lutin. Ceux ci sont tous sous licence LGPL.</p> -<dl class="docutils"> -<dt>A partir du modÚle conceptuel, le process de développement génÚre une partie de l'application, entre autre sous la forme d'interfaces à implémenter. Nous obtenons alors :</dt> -<dd><ul class="first last simple"> -<li>les entités persistées</li> -<li>les interfaces des services</li> -<li>les interfaces des composants des pages web</li> -</ul> -</dd> -</dl> -</div> -</div> -<div class="section" id="architecture-physique"> -<h1><a class="toc-backref" href="#id61">4 Architecture physique</a></h1> -<div class="section" id="architecture-logicielle"> -<h2><a class="toc-backref" href="#id62">4.1 Architecture logicielle</a></h2> -<p>L'ensemble de l'application est développée avec le langage Java. La version de référence lors du développement de l'application est JRE 6 Update 3.</p> -<div class="section" id="serveur-web"> -<h3><a class="toc-backref" href="#id63">4.1.1 Serveur Web</a></h3> -<p>Le serveur web est constitué d'un Apache 2.2. Le module mod_proxy_ajp permet de ne pas lancer le serveur d'application en root et d'avoir accÚs au port HTTP et HTTPS.</p> -</div> -<div class="section" id="serveur-applicatif"> -<h3><a class="toc-backref" href="#id64">4.1.2 Serveur Applicatif</a></h3> -<table border="1" class="docutils"> -<colgroup> -<col width="20%" /> -<col width="20%" /> -<col width="20%" /> -<col width="20%" /> -<col width="20%" /> -</colgroup> -<thead valign="bottom"> -<tr><th class="head"> </th> -<th class="head">JBoss 4.2.2 GA</th> -<th class="head">Geronimo JEE5 2.0.2</th> -<th class="head">JOnAS 5.0 M1</th> -<th class="head">GlassFish V2</th> -</tr> -</thead> -<tbody valign="top"> -<tr><td>EJB3</td> -<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#jba" id="id1">[1]</a></td> -<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#grc" id="id2">[11]</a></td> -<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#joa" id="id3">[21]</a></td> -<td><img alt="uok" src="uok.png" /></td> -</tr> -<tr><td><ul class="first last simple"> -<li>RemoteBinding</li> -</ul> -</td> -<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#jbb" id="id4">[2]</a></td> -<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#grd" id="id5">[12]</a></td> -<td><img alt="uok" src="uok.png" /></td> -<td><img alt="uok" src="uok.png" /></td> -</tr> -<tr><td><ul class="first last simple"> -<li>SSL</li> -</ul> -</td> -<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#jbc" id="id6">[3]</a></td> -<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#gra" id="id7">[13]</a></td> -<td><img alt="uok" src="uok.png" /></td> -<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#gfd" id="id8">[29]</a></td> -</tr> -<tr><td><ul class="first last simple"> -<li>SecurityDomain</li> -</ul> -</td> -<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#jbd" id="id9">[4]</a></td> -<td><img alt="uok" src="uok.png" /></td> -<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#joc" id="id10">[22]</a></td> -<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#gfe" id="id11">[30]</a></td> -</tr> -<tr><td><ul class="first last simple"> -<li>WebService</li> -</ul> -</td> -<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#jbe" id="id12">[5]</a></td> -<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#gre" id="id13">[14]</a></td> -<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#job" id="id14">[23]</a></td> -<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#gfa" id="id15">[31]</a></td> -</tr> -<tr><td><ul class="first last simple"> -<li>Sécurisé</li> -</ul> -</td> -<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#jbe" id="id16">[5]</a></td> -<td><img alt="uok" src="uok.png" /> <a class="footnote-reference" href="#gre" id="id17">[14]</a></td> -<td><img alt="uok" src="uok.png" /></td> -<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#gff" id="id18">[32]</a></td> -</tr> -<tr><td><ul class="first last simple"> -<li>WebServiceContext</li> -</ul> -</td> -<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#jbe" id="id19">[5]</a></td> -<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#gre" id="id20">[14]</a></td> -<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#job" id="id21">[23]</a></td> -<td><img alt="uok" src="uok.png" /></td> -</tr> -<tr><td><ul class="first last simple"> -<li>SessionContext</li> -</ul> -</td> -<td><img alt="uok" src="uok.png" /></td> -<td><img alt="uok" src="uok.png" /></td> -<td><img alt="uok" src="uok.png" /></td> -<td><img alt="uok" src="uok.png" /></td> -</tr> -<tr><td>JPA</td> -<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#jbf" id="id22">[6]</a></td> -<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#grf" id="id23">[15]</a></td> -<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#jof" id="id24">[24]</a></td> -<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#gfb" id="id25">[33]</a></td> -</tr> -<tr><td><ul class="first last simple"> -<li>XML datasource</li> -</ul> -</td> -<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#jbg" id="id26">[7]</a></td> -<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#grj" id="id27">[16]</a></td> -<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#joe" id="id28">[25]</a></td> -<td><img alt="uok" src="uok.png" /></td> -</tr> -<tr><td><ul class="first last simple"> -<li>persistence.xml</li> -</ul> -</td> -<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#jbh" id="id29">[8]</a></td> -<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#grg" id="id30">[17]</a></td> -<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#jog" id="id31">[26]</a></td> -<td><img alt="uok" src="uok.png" /></td> -</tr> -<tr><td><ul class="first last simple"> -<li>orm.xml</li> -</ul> -</td> -<td><img alt="uok" src="uok.png" /></td> -<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#grh" id="id32">[18]</a></td> -<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#joh" id="id33">[27]</a></td> -<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#gfc" id="id34">[34]</a></td> -</tr> -<tr><td>Servlet</td> -<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#jbi" id="id35">[9]</a></td> -<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#gri" id="id36">[19]</a></td> -<td><img alt="uok" src="uok.png" /></td> -<td><img alt="uok" src="uok.png" /></td> -</tr> -<tr><td><ul class="first last simple"> -<li>JAAS</li> -</ul> -</td> -<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#jbj" id="id37">[10]</a></td> -<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#grb" id="id38">[20]</a></td> -<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#jod" id="id39">[28]</a></td> -<td><img alt="uok" src="uok.png" /></td> -</tr> -<tr><td>Corba</td> -<td><img alt="uok" src="uok.png" /></td> -<td><img alt="uok" src="uok.png" /></td> -<td><img alt="uok" src="uok.png" /></td> -<td><img alt="uok" src="uok.png" /></td> -</tr> -</tbody> -</table> -<table class="docutils footnote" frame="void" id="jba" rules="none"> -<colgroup><col class="label" /><col /></colgroup> -<tbody valign="top"> -<tr><td class="label"><a class="fn-backref" href="#id1">[1]</a></td><td><a class="reference external" href="http://docs.jboss.org/ejb3/app-server/reference/build/reference/en/html/index.html">http://docs.jboss.org/ejb3/app-server/reference/build/reference/en/html/index.html</a></td></tr> -</tbody> -</table> -<table class="docutils footnote" frame="void" id="jbb" rules="none"> -<colgroup><col class="label" /><col /></colgroup> -<tbody valign="top"> -<tr><td class="label"><a class="fn-backref" href="#id4">[2]</a></td><td><a class="reference external" href="http://docs.jboss.org/ejb3/app-server/tutorial/jndibinding/jndi.html">http://docs.jboss.org/ejb3/app-server/tutorial/jndibinding/jndi.html</a></td></tr> -</tbody> -</table> -<table class="docutils footnote" frame="void" id="jbc" rules="none"> -<colgroup><col class="label" /><col /></colgroup> -<tbody valign="top"> -<tr><td class="label"><a class="fn-backref" href="#id6">[3]</a></td><td><a class="reference external" href="http://docs.jboss.org/ejb3/app-server/reference/build/reference/en/html/transport.html">http://docs.jboss.org/ejb3/app-server/reference/build/reference/en/html/transport.html</a></td></tr> -</tbody> -</table> -<table class="docutils footnote" frame="void" id="jbd" rules="none"> -<colgroup><col class="label" /><col /></colgroup> -<tbody valign="top"> -<tr><td class="label"><a class="fn-backref" href="#id9">[4]</a></td><td><a class="reference external" href="http://docs.jboss.org/ejb3/app-server/tutorial/security/security.html">http://docs.jboss.org/ejb3/app-server/tutorial/security/security.html</a></td></tr> -</tbody> -</table> -<table class="docutils footnote" frame="void" id="jbe" rules="none"> -<colgroup><col class="label" /><col /></colgroup> -<tbody valign="top"> -<tr><td class="label">[5]</td><td><em>(<a class="fn-backref" href="#id12">1</a>, <a class="fn-backref" href="#id16">2</a>, <a class="fn-backref" href="#id19">3</a>)</em> <a class="reference external" href="http://labs.jboss.com/jbossws/docs/jaxws_userguide-2.0/index.html">http://labs.jboss.com/jbossws/docs/jaxws_userguide-2.0/index.html</a></td></tr> -</tbody> -</table> -<table class="docutils footnote" frame="void" id="jbf" rules="none"> -<colgroup><col class="label" /><col /></colgroup> -<tbody valign="top"> -<tr><td class="label"><a class="fn-backref" href="#id22">[6]</a></td><td><a class="reference external" href="http://labs.jboss.com/file-access/default/members/jbossas/freezone/docs/Server_Configuration_Guide/beta422/html/EJB3_Services-Entity_Beans.html">http://labs.jboss.com/file-access/default/members/jbossas/freezone/docs/Server_Configuration_Guide/beta422/html/EJB3_Services-Entity_Beans.html</a></td></tr> -</tbody> -</table> -<table class="docutils footnote" frame="void" id="jbg" rules="none"> -<colgroup><col class="label" /><col /></colgroup> -<tbody valign="top"> -<tr><td class="label"><a class="fn-backref" href="#id26">[7]</a></td><td><a class="reference external" href="http://labs.jboss.com/file-access/default/members/jbossas/freezone/docs/Server_Configuration_Guide/beta422/html/Connectors_on_JBoss-Configuring_JDBC_DataSources.html">http://labs.jboss.com/file-access/default/members/jbossas/freezone/docs/Server_Configuration_Guide/beta422/html/Connectors_on_JBoss-Configuring_JDBC_DataSources.html</a></td></tr> -</tbody> -</table> -<table class="docutils footnote" frame="void" id="jbh" rules="none"> -<colgroup><col class="label" /><col /></colgroup> -<tbody valign="top"> -<tr><td class="label"><a class="fn-backref" href="#id29">[8]</a></td><td><a class="reference external" href="http://labs.jboss.com/file-access/default/members/jbossas/freezone/docs/Server_Configuration_Guide/beta422/html/ch01s02s01.html">http://labs.jboss.com/file-access/default/members/jbossas/freezone/docs/Server_Configuration_Guide/beta422/html/ch01s02s01.html</a></td></tr> -</tbody> -</table> -<table class="docutils footnote" frame="void" id="jbi" rules="none"> -<colgroup><col class="label" /><col /></colgroup> -<tbody valign="top"> -<tr><td class="label"><a class="fn-backref" href="#id35">[9]</a></td><td><a class="reference external" href="http://labs.jboss.com/file-access/default/members/jbossas/freezone/docs/Getting_Started_Guide/beta422/html/ch01s07.html">http://labs.jboss.com/file-access/default/members/jbossas/freezone/docs/Getting_Started_Guide/beta422/html/ch01s07.html</a></td></tr> -</tbody> -</table> -<table class="docutils footnote" frame="void" id="jbj" rules="none"> -<colgroup><col class="label" /><col /></colgroup> -<tbody valign="top"> -<tr><td class="label"><a class="fn-backref" href="#id37">[10]</a></td><td><a class="reference external" href="http://labs.jboss.com/file-access/default/members/jbossas/freezone/docs/Server_Configuration_Guide/beta422/html/Security_on_JBoss-J2EE_Declarative_Security_Overview.html">http://labs.jboss.com/file-access/default/members/jbossas/freezone/docs/Server_Configuration_Guide/beta422/html/Security_on_JBoss-J2EE_Declarative_Security_Overview.html</a></td></tr> -</tbody> -</table> -<table class="docutils footnote" frame="void" id="grc" rules="none"> -<colgroup><col class="label" /><col /></colgroup> -<tbody valign="top"> -<tr><td class="label"><a class="fn-backref" href="#id2">[11]</a></td><td><a class="reference external" href="http://openejb.apache.org/">http://openejb.apache.org/</a></td></tr> -</tbody> -</table> -<table class="docutils footnote" frame="void" id="grd" rules="none"> -<colgroup><col class="label" /><col /></colgroup> -<tbody valign="top"> -<tr><td class="label"><a class="fn-backref" href="#id5">[12]</a></td><td><a class="reference external" href="http://openejb.apache.org/jndi-names.html">http://openejb.apache.org/jndi-names.html</a></td></tr> -</tbody> -</table> -<table class="docutils footnote" frame="void" id="gra" rules="none"> -<colgroup><col class="label" /><col /></colgroup> -<tbody valign="top"> -<tr><td class="label"><a class="fn-backref" href="#id7">[13]</a></td><td><a class="reference external" href="http://www.ibm.com/developerworks/opensource/library/os-ag-corba1/">http://www.ibm.com/developerworks/opensource/library/os-ag-corba1/</a></td></tr> -</tbody> -</table> -<table class="docutils footnote" frame="void" id="gre" rules="none"> -<colgroup><col class="label" /><col /></colgroup> -<tbody valign="top"> -<tr><td class="label">[14]</td><td><em>(<a class="fn-backref" href="#id13">1</a>, <a class="fn-backref" href="#id17">2</a>, <a class="fn-backref" href="#id20">3</a>)</em> <a class="reference external" href="http://cwiki.apache.org/GMOxPMGT/geronimo-20-web-services-support.html">http://cwiki.apache.org/GMOxPMGT/geronimo-20-web-services-support.html</a></td></tr> -</tbody> -</table> -<table class="docutils footnote" frame="void" id="grf" rules="none"> -<colgroup><col class="label" /><col /></colgroup> -<tbody valign="top"> -<tr><td class="label"><a class="fn-backref" href="#id23">[15]</a></td><td><a class="reference external" href="http://openjpa.apache.org/builds/1.0.1/apache-openjpa-1.0.1/docs/manual/jpa_overview_intro.html">http://openjpa.apache.org/builds/1.0.1/apache-openjpa-1.0.1/docs/manual/jpa_overview_intro.html</a></td></tr> -</tbody> -</table> -<table class="docutils footnote" frame="void" id="grj" rules="none"> -<colgroup><col class="label" /><col /></colgroup> -<tbody valign="top"> -<tr><td class="label"><a class="fn-backref" href="#id27">[16]</a></td><td><a class="reference external" href="http://cwiki.apache.org/GMOxDOC11/geronimo-connector-11xsd.html#geronimo-connector-1.1.xsd-definitioninstanceType">http://cwiki.apache.org/GMOxDOC11/geronimo-connector-11xsd.html#geronimo-connector-1.1.xsd-definitioninstanceType</a></td></tr> -</tbody> -</table> -<table class="docutils footnote" frame="void" id="grg" rules="none"> -<colgroup><col class="label" /><col /></colgroup> -<tbody valign="top"> -<tr><td class="label"><a class="fn-backref" href="#id30">[17]</a></td><td><a class="reference external" href="http://openjpa.apache.org/builds/1.0.1/apache-openjpa-1.0.1/docs/manual/jpa_overview_persistence.html">http://openjpa.apache.org/builds/1.0.1/apache-openjpa-1.0.1/docs/manual/jpa_overview_persistence.html</a></td></tr> -</tbody> -</table> -<table class="docutils footnote" frame="void" id="grh" rules="none"> -<colgroup><col class="label" /><col /></colgroup> -<tbody valign="top"> -<tr><td class="label"><a class="fn-backref" href="#id32">[18]</a></td><td><a class="reference external" href="http://openjpa.apache.org/builds/1.0.1/apache-openjpa-1.0.1/docs/manual/jpa_overview_meta.html">http://openjpa.apache.org/builds/1.0.1/apache-openjpa-1.0.1/docs/manual/jpa_overview_meta.html</a></td></tr> -</tbody> -</table> -<table class="docutils footnote" frame="void" id="gri" rules="none"> -<colgroup><col class="label" /><col /></colgroup> -<tbody valign="top"> -<tr><td class="label"><a class="fn-backref" href="#id36">[19]</a></td><td><a class="reference external" href="http://cwiki.apache.org/GMOxKB/jetty-or-tomcat.html">http://cwiki.apache.org/GMOxKB/jetty-or-tomcat.html</a></td></tr> -</tbody> -</table> -<table class="docutils footnote" frame="void" id="grb" rules="none"> -<colgroup><col class="label" /><col /></colgroup> -<tbody valign="top"> -<tr><td class="label"><a class="fn-backref" href="#id38">[20]</a></td><td><a class="reference external" href="http://www.ibm.com/developerworks/opensource/library/os-ag-security/">http://www.ibm.com/developerworks/opensource/library/os-ag-security/</a></td></tr> -</tbody> -</table> -<table class="docutils footnote" frame="void" id="joa" rules="none"> -<colgroup><col class="label" /><col /></colgroup> -<tbody valign="top"> -<tr><td class="label"><a class="fn-backref" href="#id3">[21]</a></td><td><a class="reference external" href="http://www.easybeans.org/doc/userguide/en/chunk-integrated/ejb3_introduction.html">http://www.easybeans.org/doc/userguide/en/chunk-integrated/ejb3_introduction.html</a></td></tr> -</tbody> -</table> -<table class="docutils footnote" frame="void" id="joc" rules="none"> -<colgroup><col class="label" /><col /></colgroup> -<tbody valign="top"> -<tr><td class="label"><a class="fn-backref" href="#id10">[22]</a></td><td><a class="reference external" href="http://jonas.objectweb.org/current/doc/doc-en/integrated/configuration_guide.html#config.security">http://jonas.objectweb.org/current/doc/doc-en/integrated/configuration_guide.html#config.security</a></td></tr> -</tbody> -</table> -<table class="docutils footnote" frame="void" id="job" rules="none"> -<colgroup><col class="label" /><col /></colgroup> -<tbody valign="top"> -<tr><td class="label">[23]</td><td><em>(<a class="fn-backref" href="#id14">1</a>, <a class="fn-backref" href="#id21">2</a>)</em> <a class="reference external" href="http://wiki.easybeans.org/xwiki/bin/view/Main/JAXWS">http://wiki.easybeans.org/xwiki/bin/view/Main/JAXWS</a></td></tr> -</tbody> -</table> -<table class="docutils footnote" frame="void" id="jof" rules="none"> -<colgroup><col class="label" /><col /></colgroup> -<tbody valign="top"> -<tr><td class="label"><a class="fn-backref" href="#id24">[24]</a></td><td><a class="reference external" href="http://www.jpox.org/docs/jpa/index.html">http://www.jpox.org/docs/jpa/index.html</a></td></tr> -</tbody> -</table> -<table class="docutils footnote" frame="void" id="joe" rules="none"> -<colgroup><col class="label" /><col /></colgroup> -<tbody valign="top"> -<tr><td class="label"><a class="fn-backref" href="#id28">[25]</a></td><td><a class="reference external" href="http://jonas.objectweb.org/current/doc/doc-en/integrated/configuration_guide.html#N11268">http://jonas.objectweb.org/current/doc/doc-en/integrated/configuration_guide.html#N11268</a></td></tr> -</tbody> -</table> -<table class="docutils footnote" frame="void" id="jog" rules="none"> -<colgroup><col class="label" /><col /></colgroup> -<tbody valign="top"> -<tr><td class="label"><a class="fn-backref" href="#id31">[26]</a></td><td><a class="reference external" href="http://www.jpox.org/docs/jpa/persistence_xml.html">http://www.jpox.org/docs/jpa/persistence_xml.html</a></td></tr> -</tbody> -</table> -<table class="docutils footnote" frame="void" id="joh" rules="none"> -<colgroup><col class="label" /><col /></colgroup> -<tbody valign="top"> -<tr><td class="label"><a class="fn-backref" href="#id33">[27]</a></td><td><a class="reference external" href="http://www.jpox.org/docs/jpa/orm_xml.html">http://www.jpox.org/docs/jpa/orm_xml.html</a></td></tr> -</tbody> -</table> -<table class="docutils footnote" frame="void" id="jod" rules="none"> -<colgroup><col class="label" /><col /></colgroup> -<tbody valign="top"> -<tr><td class="label"><a class="fn-backref" href="#id39">[28]</a></td><td><a class="reference external" href="http://jonas.objectweb.org/current/doc/doc-en/integrated/configuration_guide.html#N10F4F">http://jonas.objectweb.org/current/doc/doc-en/integrated/configuration_guide.html#N10F4F</a></td></tr> -</tbody> -</table> -<table class="docutils footnote" frame="void" id="gfd" rules="none"> -<colgroup><col class="label" /><col /></colgroup> -<tbody valign="top"> -<tr><td class="label"><a class="fn-backref" href="#id8">[29]</a></td><td><a class="reference external" href="http://blogs.sun.com/swchan/entry/enterprise_java_bean_over_ssl">http://blogs.sun.com/swchan/entry/enterprise_java_bean_over_ssl</a></td></tr> -</tbody> -</table> -<table class="docutils footnote" frame="void" id="gfe" rules="none"> -<colgroup><col class="label" /><col /></colgroup> -<tbody valign="top"> -<tr><td class="label"><a class="fn-backref" href="#id11">[30]</a></td><td><a class="reference external" href="http://java.sun.com/developer/technicalArticles/J2EE/security_annotation/">http://java.sun.com/developer/technicalArticles/J2EE/security_annotation/</a></td></tr> -</tbody> -</table> -<table class="docutils footnote" frame="void" id="gfa" rules="none"> -<colgroup><col class="label" /><col /></colgroup> -<tbody valign="top"> -<tr><td class="label"><a class="fn-backref" href="#id15">[31]</a></td><td><a class="reference external" href="http://wiki.glassfish.java.net/Wiki.jsp?page=WebServicesTechnologies">http://wiki.glassfish.java.net/Wiki.jsp?page=WebServicesTechnologies</a></td></tr> -</tbody> -</table> -<table class="docutils footnote" frame="void" id="gff" rules="none"> -<colgroup><col class="label" /><col /></colgroup> -<tbody valign="top"> -<tr><td class="label"><a class="fn-backref" href="#id18">[32]</a></td><td><a class="reference external" href="https://glassfish.dev.java.net/javaee5/docs/AG/ablrk.html#ablry">https://glassfish.dev.java.net/javaee5/docs/AG/ablrk.html#ablry</a></td></tr> -</tbody> -</table> -<table class="docutils footnote" frame="void" id="gfb" rules="none"> -<colgroup><col class="label" /><col /></colgroup> -<tbody valign="top"> -<tr><td class="label"><a class="fn-backref" href="#id25">[33]</a></td><td><a class="reference external" href="https://glassfish.dev.java.net/javaee5/persistence/">https://glassfish.dev.java.net/javaee5/persistence/</a></td></tr> -</tbody> -</table> -<table class="docutils footnote" frame="void" id="gfc" rules="none"> -<colgroup><col class="label" /><col /></colgroup> -<tbody valign="top"> -<tr><td class="label"><a class="fn-backref" href="#id34">[34]</a></td><td><a class="reference external" href="https://glassfish.dev.java.net/javaee5/persistence/persistence_faq.html#5">https://glassfish.dev.java.net/javaee5/persistence/persistence_faq.html#5</a></td></tr> -</tbody> -</table> -</div> -<div class="section" id="sgbd"> -<h3><a class="toc-backref" href="#id65">4.1.3 SGBD</a></h3> -<p>Pour la base sur le serveur, les performances et la stabilité de PostgreSQL ont été retenues. CÃŽté client lourd, la base de donnée embarquée H2 est utilisée. Un export XML sera réalisé pour l'interopérabilité.</p> -</div> -<div class="section" id="choix-technologiques-transverses"> -<h3><a class="toc-backref" href="#id66">4.1.4 Choix technologiques transverses</a></h3> -<p>Dans la perspective de réutilisation, les services publiés utiliseront des protocoles standardisés et inter opérables, afin de ne pas limiter le choix du langage.</p> -<p>La technologie ... a été choisie pour son support de la sécurité et son utilisation courante dans différents langages et sur différents systÚmes d'exploitation.</p> -</div> -<div class="section" id="solution-aux-contraintes-d-ergonomie"> -<h3><a class="toc-backref" href="#id67">4.1.5 Solution aux contraintes d'ergonomie</a></h3> -<p>L'application web respectera les standards W3C XHTML.</p> -<p>L'application client lourd utilise le framework Swing, disponible sur un grand nombre de plateformes. Sur celles où Java Web Start est disponible, l'application pourra être installée par un simple clic sur le site du client léger.</p> -</div> -<div class="section" id="dimensionnement"> -<h3><a class="toc-backref" href="#id68">4.1.6 Dimensionnement</a></h3> -<p>Une attention particuliÚre devra être faite à la taille des partitions lors de l'intégration en fonction de la volumétrie cible. De même, cÃŽté client, l'utilisateur doit être informé de l'espace utilisé par l'application par rapport à son espace disponible. La synchronisation doit vérifier au préalable la suffisance d'espace.</p> -<p>En supposant que chaque simulation prend environ 100ko de paramÚtres, que 10 utilisateurs utilisent l'application en créant 5 simulations par jour, on obtient environ 10Go de paramÚtres de simulation sur 10 ans.</p> -</div> -<div class="section" id="solution-pour-l-exploitation-du-syst-me"> -<h3><a class="toc-backref" href="#id69">4.1.7 Solution pour l'exploitation du systÚme</a></h3> -<p>Lors de la mise à jour de l'application, plusieurs aspects doivent être gérés. Tout d'abord la base de données doit être synchrone avec l'applicatif. Ceci devra se faire automatiquement avec une migration des données executée lors du déploiement d'une nouvelle version.</p> -<p>Dans un environnement client/serveur, il est nécessaire de garantir la compatibilité entre les deux applications. Ainsi, le serveur mettra à disposition dans la mesure du possible les services avec une compatibilité ascendante. Si la version du client est obsolÚte, l'utilisateur est notifié et il ne peut plus utiliser l'application en mode connecté.</p> -</div> -</div> -<div class="section" id="mod-le-conceptuel"> -<h2><a class="toc-backref" href="#id70">4.2 ModÚle conceptuel</a></h2> -<div class="section" id="entit-s-des-donn-es"> -<h3><a class="toc-backref" href="#id71">4.2.1 Entités des données</a></h3> -<img alt="../../../../xmi/images/data.png" src="../../../../xmi/images/data.png" /> -</div> -<div class="section" id="entit-s-des-authorisations"> -<h3><a class="toc-backref" href="#id72">4.2.2 Entités des authorisations</a></h3> -<img alt="../../../../xmi/images/entities.png" src="../../../../xmi/images/entities.png" /> -</div> -<div class="section" id="services-de-stockage"> -<h3><a class="toc-backref" href="#id73">4.2.3 Services de stockage</a></h3> -<img alt="../../../../xmi/images/storage.png" src="../../../../xmi/images/storage.png" /> -</div> -<div class="section" id="services-d-authorisation"> -<h3><a class="toc-backref" href="#id74">4.2.4 Services d'authorisation</a></h3> -<img alt="../../../../xmi/images/authorization.png" src="../../../../xmi/images/authorization.png" /> -</div> -<div class="section" id="application-web"> -<h3><a class="toc-backref" href="#id75">4.2.5 Application web</a></h3> -<img alt="../../../../xmi/images/applications.png" src="../../../../xmi/images/applications.png" /> -</div> -</div> -<div class="section" id="s-quences-d-utilisation"> -<h2><a class="toc-backref" href="#id76">4.3 Séquences d'utilisation</a></h2> -<div class="section" id="gestion-des-authorisations"> -<h3><a class="toc-backref" href="#id77">4.3.1 Gestion des authorisations</a></h3> -<img alt="./authorization.jpg" src="./authorization.jpg" /> -</div> -</div> -<div class="section" id="crans-de-l-application"> -<h2><a class="toc-backref" href="#id78">4.4 Ãcrans de l'application</a></h2> -<div class="section" id="liste-des-l-ments"> -<h3><a class="toc-backref" href="#id79">4.4.1 Liste des éléments</a></h3> -<img alt="./screenshots/Screenshot.png" src="./screenshots/Screenshot.png" /> -</div> -<div class="section" id="importer-un-l-ment"> -<h3><a class="toc-backref" href="#id80">4.4.2 Importer un élément</a></h3> -<img alt="./screenshots/Screenshot-1.png" src="./screenshots/Screenshot-1.png" /> -</div> -<div class="section" id="liste-des-utilisateurs"> -<h3><a class="toc-backref" href="#id81">4.4.3 Liste des utilisateurs</a></h3> -<img alt="./screenshots/Screenshot-2.png" src="./screenshots/Screenshot-2.png" /> -</div> -<div class="section" id="ajouter-diter-un-utilisateur"> -<h3><a class="toc-backref" href="#id82">4.4.4 Ajouter/éditer un utilisateur</a></h3> -<img alt="./screenshots/Screenshot-3.png" src="./screenshots/Screenshot-3.png" /> -</div> -<div class="section" id="liste-des-groupes"> -<h3><a class="toc-backref" href="#id83">4.4.5 Liste des groupes</a></h3> -<img alt="./screenshots/Screenshot-4.png" src="./screenshots/Screenshot-4.png" /> -</div> -<div class="section" id="ajouter-diter-un-groupe"> -<h3><a class="toc-backref" href="#id84">4.4.6 Ajouter/éditer un groupe</a></h3> -<img alt="./screenshots/Screenshot-5.png" src="./screenshots/Screenshot-5.png" /> -</div> -</div> -</div> -</div> -</body> -</html> Deleted: trunk/simexplorer-is/src/site/fr/rst/devel/authorization.jpg =================================================================== (Binary files differ) Added: trunk/simexplorer-is/src/site/fr/rst/devel/authorization.jpg =================================================================== --- trunk/simexplorer-is/src/site/fr/rst/devel/authorization.jpg (rev 0) +++ trunk/simexplorer-is/src/site/fr/rst/devel/authorization.jpg 2008-02-29 18:06:48 UTC (rev 1265) @@ -0,0 +1,654 @@ +ÿØÿàJFIF``ÿÛCÿÛCÿÀ&>"ÿÄ +ÿĵ}!1AQa"q2¡#B±ÁRÑð$3br +%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ¢£€¥Š§š©ª²³Žµ¶·ž¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ +ÿĵw!1AQaq"2B¡±Á #3RðbrÑ +$4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ¢£€¥Š§š©ª²³Žµ¶·ž¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚâãäåæçèéêòóôõö÷øùúÿÚ?þþ(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢øöý£Ÿ>øãïÀ¿ÙÏösøðâÿŸ/üý£>5ê§Æ¿Ú3Æ³× |'á_ÙëÆ³oŽý>ûÀ¿³í5«ø£Ä(ÕÿiâÖÖãCðŸ¥éÞÕfUœ¹œ³³^þ7ü7þßöÿÅ~Ñ_ý)Ú>#ÊScû0ø)gþŽWüvŸøïñßáì×ðÏTø»ñwTñà'ÄðxOÀŸ*x«RñWÅO^øQðïÃ>øwð£ÂÞ6øâÿx¿â'Œ+á]Fð¯ uFãQÖm¶KdžžæøXßðTßú3ØÿYûEô§hÿ ÿMÿ£7ý?ñeŽWÿJvøygìëÿDçöÿÿÅNÿÁSú +èÿ~οôNoÿüTïü7ÿ ÞøXßðTßú3ØÿYûEô§hÿ ÿMÿ£7ý?ñeŽWÿJvøygìëÿDçöÿÿÅNÿÁSú +èÿ~οôNoÿüTïü7ÿ ÞøXßðTßú3ØÿYûEô§hÿ ÿMÿ£7ý?ñeŽWÿJvøygìëÿDçöÿÿÅNÿÁSú +èÿ~οôNoÿüTïü7ÿ ÞøXßðTßú3ØÿYûEô§hÿ ÿMÿ£7ý?ñeŽWÿJvøygìëÿDçöÿÿÅNÿÁSú +èÿ~οôNoÿüTïü7ÿ ÞøXßðTßú3ØÿYûEô§hÿ ÿMÿ£7ý?ñeŽWÿJvøygìëÿDçöÿÿÅNÿÁSú +èÿ~οôNoÿüTïü7ÿ ÞøXßðTßú3ØÿYûEô§hÿ ÿMÿ£7ý?ñeŽWÿJvøygìëÿDçöÿÿÅNÿÁSú +èÿ~οôNoÿüTïü7ÿ ÞøXßðTßú3ØÿYûEô§hÿ ÿMÿ£7ý?ñeŽWÿJvøygìëÿDçöÿÿÅNÿÁSú +èÿ~οôNoÿüTïü7ÿ ÞøXßðTßú3ØÿYûEô§hÿ ÿMÿ£7ý?ñeŽWÿJvøygìëÿDçöÿÿÅNÿÁSú +èÿ~οôNoÿüTïü7ÿ ÞøXßðTßú3ØÿYûEô§hÿ ÿMÿ£7ý?ñeŽWÿJvøygìëÿDçöÿÿÅNÿÁSú +èþ +gû.ÿlxGFÖtÚÿÀÿð|@øuð·Ãþ ø¥ÿãÿ|$ð'ü'üwáß?4-wâ?ÄïÙcÂ_ü%ÿ oÄøgÂzf§âÏh?öÆ·§Û\êÿhV þ7ü7þßöÿÅ~Ñ_ý)Ú?ácÁSèÍÿ`üYgíÿÒ¯¿è ?ácÁSèÍÿ`üYgíÿÒ£þ7ü7þßöÿÅ~Ñ_ý)Úûþøþ7ü7þßöÿÅ~Ñ_ý)Ú?ácÁSèÍÿ`üYgíÿÒ¯¿è ?ácÁSèÍÿ`üYgíÿÒ£þ7ü7þßöÿÅ~Ñ_ý)ÚûþŸ@øÅût~ÏÿŸ)Ý|ñtŽ>&éßüñKXðÏÀ¿Øïö¿ýŠÿáð'ÄüBð5ßë?³À¿Þð·ü%> øSñOÑ4Ïjºf±ÿ¯uÖQGs(ÿÂÆÿŠÿÑþÀø²ÏÚ+ÿ¥;Gü,oø*oý¿ìÿ,ý¢¿úSŽÃË?g_ú'?·ÿþ*wþ +ÿÐoGü<³öuÿ¢sûÿâ§à©¿ýôÂÆÿŠÿÑþÀø²ÏÚ+ÿ¥;Gü,oø*oý¿ìÿ,ý¢¿úSŽÃË?g_ú'?·ÿþ*wþ +ÿÐoGü<³öuÿ¢sûÿâ§à©¿ýôÂÆÿŠÿÑþÀø²ÏÚ+ÿ¥;Gü,oø*oý¿ìÿ,ý¢¿úSŽÃË?g_ú'?·ÿþ*wþ +ÿÐoGü<³öuÿ¢sûÿâ§à©¿ýôÂÆÿŠÿÑþÀø²ÏÚ+ÿ¥;Gü,oø*oý¿ìÿ,ý¢¿úSŽÃË?g_ú'?·ÿþ*wþ +ÿÐoGü<³öuÿ¢sûÿâ§à©¿ýôÂÆÿŠÿÑþÀø²ÏÚ+ÿ¥;Gü,oø*oý¿ìÿ,ý¢¿úSŽÃË?g_ú'?·ÿþ*wþ +ÿÐoGü<³öuÿ¢sûÿâ§à©¿ýôÂÆÿŠÿÑþÀø²ÏÚ+ÿ¥;Gü,oø*oý¿ìÿ,ý¢¿úSŽÃË?g_ú'?·ÿþ*wþ +ÿÐoGü<³öuÿ¢sûÿâ§à©¿ýôÂÆÿŠÿÑþÀø²ÏÚ+ÿ¥;Gü,oø*oý¿ìÿ,ý¢¿úSŽÃË?g_ú'?·ÿþ*wþ +ÿÐoGü<³öuÿ¢sûÿâ§à©¿ýôÂÆÿŠÿÑþÀø²ÏÚ+ÿ¥;Gü,oø*oý¿ìÿ,ý¢¿úSŽÃË?g_ú'?·ÿþ*wþ +ÿÐoGü<³öuÿ¢sûÿâ§à©¿ýôÂÆÿŠÿÑþÀø²ÏÚ+ÿ¥;Gü,oø*oý¿ìÿ,ý¢¿úSŽÃË?g_ú'?·ÿþ*wþ +ÿÐo^ÁðöÂø!ûJx«â~·Æ +'Æß|?ðûÅ7ðwÆ¿ÙöýŒUŠøW⊣ñGøâm?ÃߎÂOú¿|?â]_á?Äm.×Y𜳧[ê>Õloîm.RŠñÿøXßðTßú3ØÿYûEô§hÿ ÿMÿ£7ý?ñeŽWÿJvŸÿ¢>ÿ ÿMÿ£7ý?ñeŽWÿJvøXßðTßú3ØÿYûEô§kïú(àøXßðTßú3ØÿYûEô§hÿ ÿMÿ£7ý?ñeŽWÿJvŸÿ¢>ÿ ÿMÿ£7ý?ñeŽWÿJvøXßðTßú3ØÿYûEô§kïúüàðücöKñï |3ã¯ø{ößñ§|iáýÅñÿàßðSÏøWÅñm¬x{ÄÞñûÞi÷õÝ"òÏTѵ.òëNÕ4ë«këí§Vè?ácÁSèÍÿ`üYgíÿÒ£þ7ü7þßöÿÅ~Ñ_ý)Ú?á峯ýÛÿÿ;ÿMÿè7£þYû:ÿÑ9ý¿ÿñS¿ðTßþz?ácÁSèÍÿ`üYgíÿÒ£þ7ü7þßöÿÅ~Ñ_ý)Ú?á峯ýÛÿÿ;ÿMÿè7£þYû:ÿÑ9ý¿ÿñS¿ðTßþz?ácÁSèÍÿ`üYgíÿÒ£þ7ü7þßöÿÅ~Ñ_ý)Ú?á峯ýÛÿÿ;ÿMÿè7£þYû:ÿÑ9ý¿ÿñS¿ðTßþz?ácÁSèÍÿ`üYgíÿÒ£þ7ü7þßöÿÅ~Ñ_ý)Ú?á峯ýÛÿÿ;ÿMÿè7£þYû:ÿÑ9ý¿ÿñS¿ðTßþz?ácÁSèÍÿ`üYgíÿÒ£þ7ü7þßöÿÅ~Ñ_ý)Ú?á峯ýÛÿÿ;ÿMÿè7£þYû:ÿÑ9ý¿ÿñS¿ðTßþz?ácÁSèÍÿ`üYgíÿÒ£þ7ü7þßöÿÅ~Ñ_ý)Ú?á峯ýÛÿÿ;ÿMÿè7£þYû:ÿÑ9ý¿ÿñS¿ðTßþz?ácÁSèÍÿ`üYgíÿÒ£þ7ü7þßöÿÅ~Ñ_ý)Ú?á峯ýÛÿÿ;ÿMÿè7£þYû:ÿÑ9ý¿ÿñS¿ðTßþz?ácÁSèÍÿ`üYgíÿÒ£þ7ü7þßöÿÅ~Ñ_ý)Ú?á峯ýÛÿÿ;ÿMÿè7£þYû:ÿÑ9ý¿ÿñS¿ðTßþz?ácÁSèÍÿ`üYgíÿÒ£þ7ü7þßöÿÅ~Ñ_ý)Ú?á峯ýÛÿÿ;ÿMÿè7¯¯þüRð'Ç +>5ü-×á(øeñáÿ~)|:ñ7öf±¢ÂEàOÓ|YáwûÄZ~â +#û_ÃúŸšfkºV¬X}£ìºe{öÑ|ÿþ +ÿFoûâË?h¯þíð±¿à©¿ôfÿ°þ,³öÿéN×ßôPÀð±¿à©¿ôfÿ°þ,³öÿéNÑÿþ +ÿFoûâË?h¯þí}ÿE|ÿþ +ÿFoûâË?h¯þíð±¿à©¿ôfÿ°þ,³öÿéN×ßôPÀð±¿à©¿ôfÿ°þ,³öÿéNÑÿþ +ÿFoûâË?h¯þí}ûB~Ó¿¿eýÀzÏÅ»¿ñt> /Âߟø[ðOãgíã¿xïþOüNBП|ø{ñ7âïØŸü2ñç5=N?ÿcéZ?uKPŽÿGYŸÿ~οôNoÿüTïü7ÿ ÞøXßðTßú3ØÿYûEô§hÿ ÿMÿ£7ý?ñeŽWÿJvøygìëÿDçöÿÿÅNÿÁSú +èÿ~οôNoÿüTïü7ÿ ÞøXßðTßú3ØÿYûEô§hÿ ÿMÿ£7ý?ñeŽWÿJvøygìëÿDçöÿÿÅNÿÁSú +èÿ~οôNoÿüTïü7ÿ ÞøXßðTßú3ØÿYûEô§hÿ ÿMÿ£7ý?ñeŽWÿJvøygìëÿDçöÿÿÅNÿÁSú +èÿ~οôNoÿüTïü7ÿ ÞøXßðTßú3ØÿYûEô§hÿ ÿMÿ£7ý?ñeŽWÿJvøygìëÿDçöÿÿÅNÿÁSú +èÿ~οôNoÿüTïü7ÿ ÞøXßðTßú3ØÿYûEô§hÿ ÿMÿ£7ý?ñeŽWÿJvøygìëÿDçöÿÿÅNÿÁSú +èÿ~οôNoÿüTïü7ÿ ÞøXßðTßú3ØÿYûEô§hÿ ÿMÿ£7ý?ñeŽWÿJvøygìëÿDçöÿÿÅNÿÁSú +èÿ~οôNoÿüTïü7ÿ ÞøXßðTßú3ØÿYûEô§hÿ ÿMÿ£7ý?ñeŽWÿJvøygìëÿDçöÿÿÅNÿÁSú +èÿ~οôNoÿüTïü7ÿ ÞøXßðTßú3ØÿYûEô§hÿ ÿMÿ£7ý?ñeŽWÿJvøygìëÿDçöÿÿÅNÿÁSú +èÿ~οôNoÿüTïü7ÿ ÞøXßðTßú3ØÿYûEô§hÿ ÿMÿ£7ý?ñeŽWÿJvºÁCfïüLømðÎÃöð_Ÿ/ø\ðÃhþ5þÁÿ·Oìõá_x«Ã|mñ_VðÎñãÇìãðãáÜ^ áßÃxª×FŸñU®£ªiÞÕFm{s·o·èàøXßðTßú3ØÿYûEô§kØ?cß*ý¥>/į|=ðÿÂßi??i1ðGþ ê?<+Šø«öfý¥~-þÍŸ!Ô<3ñXøyðWñ/üK«ü'ŒñFuª|9ð£o§k6ÖÚR\ÚK4ßO×ÀðM?ù7_ßöÿðV/ýzoí@ÑEQEðÄoùJoìoÿfÿ,ÿÖÿNÑÿ,ÿuøsÿgÿÿÿ׊þÆô|FÿŠþÆÿö`ðRÏýh¯ø$íðRÏù7_?öÿðIßýzoìo@ÑEQEQEW=Œ)sg¢êÞ'ðõÅoÿ²Œ9}µŠËg¯ê+é΢ÜÇrÐê·â3Rìv/=ǧ_Iå쎞1ô5ü~ÎZwÆøIÿ^ýæýÿjÍ3Æÿ±÷ücÄþ(ýŠŒ[âÙ÷âg~ü-±Ó>þÝ>ЯÇúÿŽïü@ðcø¡k:OÄß ÷Ÿ3ø]€Ú^hz_|gáïøËÁººýIØ|PøgªøãWøe¥üDð.¥ñ'ÃöPêZÿÃëè8ÐôëíåÿWðŸ¡&œŠÙOå€Ý^ØAÝ[ºHË<E®h<â}wÄŸð׌#âx2âOxwCñ&«kŸººó~Ímâ]"ÂöãPЮ.<üuK{Y%òeòÕŒ·Çóïû-øÇß¿oß +¿fOü@ñÂ>)ýŽ>)|Tøû@þÃÿ>üJýþ1x×X/Òo<û[xëÀÞðßí_ðãÄÝJþËÃÓ€ø â]º_uojþÐM òø$ìËü<øû%ÜügÖhÏþÔ¿³§Áoߟ.ü5ŸýüwðÛá÷õïÿ`ßüNñÄ_ÛgKð#ü.ý¡t|Bð^ñ_á·/>(kÚ·õœ^ãS···×uiö Ó7Ÿ xÅ××_üoáêZv£ëzáïèÚÕõâ!xÞÕï-4ÛÛ]3]}ùÑïç-51cxl¥[M³®¯Ç¯ø!_ì«áÏÙþ ¡û(i·ßàÇ|ðU÷Çž|Mà+¿|aÖ<ooôiñNOéÖ^9QðòÞKŠh§Žam hvViiaì-QEQEðü³þM×áÏýÿüwÿ^û×ßõðü³þM×áÏýÿüwÿ^ûÐßôQEQEQEðÃùJoíÿfÿÓÿÖÿ±WßõðÃùJoíÿfÿÓÿÖÿ±PßôQ_ÁH<9ûSx£à?ôßÙ'Ä7ö><âÿ5?ø'Ãü5ð_â_ÆOZTZÝÿ~ü#ø¹âÝ_Ñ~|DÖ-à±ñ¯\ÁŠyú/5íøÃjòëúxßôWòùâ_øSöÁø©ÿ,ñ§Ã_¿¶Âÿxâßí×ðYÆŸ5ðñ³JøðàOÆÝÅÞñî²Ú'Œ3âOhþ6ø}â/Üëº}çŽøjËòúòö}zÚOöøùgû>ÿÁSmËÚâ/Âß°í)ñáÁÙóMÔ|)oðiü?ðŸøðÊï@»Ö>#jÿµÄ^ MYuÝ_[ÿ©4ïÞŽøOyáI4]=åþš¯Åßøëâ·?o/ÛgÇ_i_goØËÀß³?Äëo_ÙøB;ïþϺ÷þ&Oñ3YÕ<sâ¿hK¥ÜÞXø?@Ô<;kq®5þ««®œ$^°ÐŸ%ý¿kßÚÃŽ¯ªxĵÅ? ?ÿà¿nÏ¿ÿkŸ#øçâÄ_þ +ZüñŸ áïI&ðoNøá¿úÞšü<ðÅÞ¥^£èîþðÞœá»Ý:Ôú|¢¿¿Ùöñ5ÿÇßø#ø[þ +%ãÚW\ýµ|ñâwíQð¢óÆß <GáífÛö:ñwÅ +>ûHðg<#§ë¿|?á. xÛWÒ4hÛéa©éúŒ?â +Rnþ qñ§þ +;ûOø§ö[ýª<['"ø9ñvûö²ý4üqø]âøORÃÆ÷>ü ø£xGLñ×Âü +øááotc]Ä:¿ %ñnµñ-ŒCâ[[ZÌ÷ãá_Ç_ßüqñ'àÏÅ>Ùêîwãþ1Ð|YáK]cÃkâM2ç_Ñ/ïtÈ/ôäWµå&Ó€F[ŽZߟ+|2øßà/|Tø9ñÁßþxŸÚæóÂ>ðޝx?Ävz Þws¢xDºœÒµ8-µ;í>ylîŠH¯-.maø©ý/|kð3à ÿ`_.·¥éðZxÆ?uÝ-MSÀ)>5×>ÿÁJµ6úû/ZðÏì«àÿ|mðåÌW61k3Ê»\Ü^Å÷ì[âýËþ ßÿöýŸøöðÏÄè?·7<!àÏÙâ¯úfð·àÏí'âÿëÞ<øñCâ<išèÞøwšxçÁö~ðÇn5mWÄz®³4þ ðgŒ!áínÿÃÀÕüÀ|ý¡?kßÛá÷ücÃzí]ñ#àýßíû"þÓ?jOü$Ñ>i7øª|,ðOÀÍ&ïGœ×ü'âxÄÚ¶»¬5÷t?3é¶~ ñ2xkOÐu[ð×€|-ý¢|_ã/Ù§ö|ýüuñöŒøûAxïö¹ÿüø_{ðâgÂO ~*|3ýhÏ¿#ñ'ÆÏ4²ðìVoŸi^ºñ&§ðäØü@ñ·IŒ +xJDÑœüžüý³Ÿ4üiøÿtð7ÇÚÄß<#ûNX~Ûã¯í¡øÃÁñ¿ŒKû(øóÂ_>ËñJ}è¯ñF}wÇ,ñ môOøÂ:Ÿ}ee®ëV÷ûuþÓÿ³ï<-à9øýáÏ_ðZ?ß±ÖûFÁñá'Ãßê_³ïüâÿ|)ð >1Ûø&Çáo õ!ð< üCÓü-öݵ+/ÍaâxOVÓÀ?¬ª+ùÄø¯ÁH|ðgöø+ñ;ã~|Dø×ÿjÔþGñÃþ#ø_ñã±·ÿg?Úâoü/ãoÿ«|WÐ4œÇÆW>ºê~ðwŒO¥xªê}sO׿ ïøMŒà x)üQâß7ü;£øyŒaãíZ-{Æþ(:E'^ñn· +â-TÃöÝcQÂÍ//Šu¶8@:ÚøáÏü¥7öÈÿ³ÿiÿëEÁX«ïúøáÏü¥7öÈÿ³ÿiÿëEÁXšïú(¢ +(¢ +(¢ +øþ ;ÿ(²ÿiÿÙ~Æÿúοkïúøþ ;ÿ(²ÿiÿÙ~Æÿúοhíïø»Âðþ£âÏxÃÞ +ð¶I«xÅzÖáïéqÜÝAclú³«ÜÙéÖIq{umg\ÜIJÝ\Aoie¡¯Êø.'ü¢¿öµÿ±áÇþ®õæ¿ioÚÿÇß?à€³üø³ð×௿à7 ¬t?øßá^>ÿ çñoÙÃÃߎׯþ&xïÅú©á/ zãOxÃëà4Ù_i^)ñ ×õx +m?jh¯ÁoþÝߎ×íã¿Òüñ׿e|ýÿdoÚãXÒŸ#ü/¶ø«®|HñÏíuðÛâÅœ'Ã~&¹»ñSÃÿŸøgÀpøo_¹ðŽ?õïjZÌÖþ.Ñ,<>}ö'ìÙûq~×¶v«û|ð§Ä| +ñ¯Åø%wÃø(wÆÿ)ð¢ËÇßðøÇâŒ!à]'áÏ<®xLÒô/éÚÝÇ|Añåo¯<G©øCðþ³áÙ¯¯5? Jç¯ü]áM+Ä^ð©âiŸ,ñu¶¹yáOßëZmŒOgáì&ñ%׎Kõ-jÛÃÐêºdºäúmµÌZLzïn·æOÁ¿ß·ÇO_±_ì«â +_ö²øyûS|wñGímGìçû"ë?Ž'~$xwö{øûã¿ øÁ>¹ñFœá¿ +|1gmà)<qã_÷×úõÿŒ;á»?h>$ñ.&£óÿj_ÛKÇÿð@~ñÂߎ'Ç?Ù/öæñ/|yªü;Ö<qàÿÜÞx/ö__kø^þ.ÐΣ¬ê-es tOxÑt?]ê±ê:Ä*ŽÐÃúøôá®ø»ÂžðݧŒOáï]øÇÄ0øGºé*ñ]ƪëvþðÜ: ÍŒçgÑŽ-oWEÓëRLѵ[ô¶kM:îXzþe|Cñïã?ÆoöðÇí[ÂÞ/øû-ÿÁŸ"ýõoÞðŽÐ>.i¿bÚ¿ÄŸøŸ:ÏŒ)_h;ÓŽ?hf¹šé6.Ð5ÓŠ=µXÚúì·ÿ +ýž¿hÿñÏ þüC×g_~׎ìÿãÂŽÑþüø!ðÅ_>xwã?ŽCxæãYñÅ{oßü;'ÄÏßxaŒ'ãsÃÓŽýOÁþ"×?¡;kËKÅ¬î® ä¶§uæ,y¶òÄsŹ|È&á¹FE-œÕµä~u¥ÄPï?6ÞhçÌÌrÇŸ&eßÉ"çr:`_ÅÇì9ûAxëö±ý¯Œ5áÙ.µ¿ø)7ÄÛâGìie®JÒè÷?·ÿàŠßÿa[ÿXÚ:ºMe¬øÆ²õ»hyiáüFñÂ6îâ¯ÿàZåÇì¡ÿïðìÝðëöñwÃïIÿÿüø{qáÿÙ÷Xý©Ÿ:ü_ÒþþÒßuEð¿mïgÓ4[û;MJñwŸ(xóMÖü ipÝiÚÌúV§â}Zµþ£è¯çáßüöíøçû?ÿÁ%¡øuâÞ øáûküxýþü_ñ·þëô/öjðwíAöúGÃ'ÆZeÎãISàE¿"ð1ñD>Ÿñlßð ÞjúG îçÔ¬ýsá·íñ¶çàÅÿ?i+öøwÿ +ø¿ûxâ_ÃÙWRø§ñ;ö·øyáèŸ%YÛøöuðéz/¢ðMî¡wâOgâ +ðo5ïx¯OÓ,Š»ÖtpÝú+ùîøGÿý¬>,ü*ýŸÉâo +ø+öý¡ÿo?Ûoö>ñ_Çÿ|&µÓ[ßý5OÚ?TÔ|VnüK{áœã¿ÄüÐ<:ŸŸÕµÏøsÄz¿<C§èV|ÁFÿjÿ?ÿj¿ø§ÄøÇñ_ÀðS¿Ùïþ ùð«âgÃ_L&ÓŒ3ñàWìññ?Qñð·~3ø§€5ÐtÛÆðÖ»ñJïÃ62i:/|ÿ +ÄýÑ_Ïæ±ûiÁDü)û3Þ\j~ ·ðgÅýGþ +5û5þÊÿŸ%þÒ_.>[|Wø!ñûÅß +Žøãï~ñ}Ìœá]wÆÞ0ðF±ÿ±£Ùkñx*Ï_Ñm4)õÉ °ýœøIáßÞøwáüZøeñwâ.kt(ø§xÃá¯gÔ¯n ž³ð6¬xÏöÖVÚipÚGêJ"îæòk«z5|ÿÿYÁ4ÿìÀ?cýg_5÷ý|ÿÿYÁ4ÿìÀ?cýg_4÷ýQ@Q@Q@~Ùòq_ðIßû?ÿÿúë/ø)e}ÿ_~Ùòq_ðIßû?ÿÿúë/ø)e{íñòOÙWöLýŠ?i|7'gøðâ¿Æ+_ +$ÒÛ/îþx[ñ]ŠqySËae©\éQZßê)ͧYKq}äËö->¢¿ +~5|jýŸ?e?ø&_íûlx÷öøGñ«âÝ¿ìóàï~ðW>éŸø?ðûÆ œÐ¯o4ÿj°xËÄ~/ñ·Oñz>yâœJçVŒ[ñÜß×'öýšÿmÏf_Ù'Yñþ§ñã_Ç~ÐÿŽþ,~βmßÁ^ +øY}ðÃz/Â/ ŒQñ.H5M*ÓÅ¿ ºÖþ#øßÄzï£ð +Æo¬øºÛZðÈïsÞñw <mŠIø3Äþñv«®hRêþÖŽÝL[ðα}áïhÒ_éW7v©ªø_Ó5-\ÓÚQw€ë}ö +œí€ðGø³ðûö¯ýº¿h/þÅ¿³·û~ÐßdÏ?µí7«ëß +í|i¬éÓ| ø¯ðçàwŒðçÀ~(ñuÆáÛÞ!ñä<F|C}â_Ÿ +AðŠšÿmk³xNüöý¿kß_³¯ìû"|𶳬üRý©¿à¡?ðV-Çß>|_ºÖ€üý§¿iÿ>4žøKðkÄ>7ÂOøÛÄK€Š |QâÝ7Á~·ñ¯kâÝOG±y@? ++ùû¹ý±ÿॿ¿à? +€ð×þþеíGûX|ñß>8|!Ö ¶¿øQðgàÿÇ¿¿Ÿ>iß Žý»Ã~,ñO>øcâ8øk?×FŒñ^Œ×t_>§øÄÏÚoöìñÇÂ/ ö¡Óüñ[áüKÂÿ°þ0ø7áUŸÆ_é«i·Ú©ãº-t{;$µñDgüa«IáÿÁ£ÛÓâa@ÓÚÏË-ºMÏÄóB²#K +M¿ÉicŒk/'Î IåŸÂv¶0üWâï +xÃú<qâx7ÂÚBA&â_ëZoŒ?¥Çsu³ê:ίsg§Y%ÅíÕµ +ssËuqŒe¥4oÈ]cöo¿ŽüÚoxãá?ÂKï³/üæâóöo·|Q¯xÃâDÿŽg ô÷ñÃïøßÅ_ç>+²°Òþ|)Ð5µTñ7'ðÖ »×Âïó_öýš>:übýà²>6ëŸ ñ ýõÙ/þøûàŒ?³ÿÅ-sÂ_o>xýôÏü3±žþËÓ®Œ?¬ÁšÇ jVúWõ +GÃ×úzë4¥Ä×ÕÚ^ZIs-][=䀳Ú$ñ5Ì1Iþ®I`e9?Ý·ðKÕ¬ÓÜ[Eso-Í]ÛÇ4o=©<ØÄJÆHÑþò/5WÌO7/5ü¡üdø£€þÅÿð\ßß·<M'ŸœÇì×û~ÓZ ÝÌ¿Ø>ðgÇÙ³Røð{â6§nì-m¿þ +h~ QùnÅ«xüæhíä«ÿëñ§þüPÿÂ~Ó_>"Íð3â§íà/ø'gí%â +oÆ|Cñ¯Qø[âOÚRý¡àø1ðkIøEàœKOñ7Äx7ÁŸ#øSðÁŸðÅåî±âfe§éÚí5ðõE6ãþ +7ûdø#ötÿ³jV:ø·ûüqýü!ðOÅßþ?À¯x§ÂÿŽÊ|Õ$Ñþ1|4ðýÅõ® u£Þ"Òô¯èºFqáëZÔ<"ºÕÕïÑý¬?io¿?oµçí=ðN÷Lø3û |ý©ü!ñûKýõÿxgá&¹ñ³ÆŽÃmCÁoðBøâü]ðÆâÞ¿ð.mþ%ø¿R×.<$u=[RÕ4hûyE4ÁR¿jO? ¿à§x®k'ýlaûß~/øãðÿötñ+ßþÜ^.»øSŠÜübøY¥êzUÌ_ŸxŸÚ×ÇRÊŸñ}÷€ÖtmzK=RÂ-U=£âçíµûY~Ã?iß|eøàoÚ«Â?àß¿om"×Eø?eðÇÄ?Ã1xo^Añ§4àKøìuF±Œ³Ñ4íOIÒežÇµ- +]STýó¢¿ß~ÜÿðPà§íoñ7âüc¬øSÀðM¯ÿµwÃÿ¿?fû/þðÇí1àêô ü5£iÿüY'Äþ °ºÒ|]àÛí^ò?Úiñ%¿âwûcLMý_ý/¿i|ðWÄßÚwâgŒã¿Þð_ÄÛ=áéüàß:G| êà +&çQñõï +2ê{¿ë¢ÝkW×W3ZxkÃgØŽ[öÈÿÿNÿÙÿüGÿ×YÁK+ïúøöÈÿÿNÿÙÿüGÿ×YÁK+ïú+àø&ü¯Äoû?ÿø+þœ7öȯ¿ëàø&ü¯Äoû?ÿø+þœ7öÈ ¿è¢(¢øâ7ü¥7ö7ÿ³ÿëEÁ'hÿɺü9ÿ³ÿÿNÿëÓcz>#ÊScû0ø)gþŽWüvœöÂøâ¯ÚSà|5ð/Ä/ü-ñ¶ñögø×àïø³áö£ñSºo¿foÚWá'í%áí?Äßô õøÄº¿Â{?ë6º_Äoê6úv³scª¥Í€PÌôýðü+ø*oýGìÿÓý¢¿úlT¹ÿŠÿÑä~Àø?Ú+ÿŠÅ@Ñ_¹ÿŠÿÑä~Àø?Ú+ÿŠÅGü+ø*oýGìÿÓý¢¿úlT÷ýðü+ø*oýGìÿÓý¢¿úlT¹ÿŠÿÑä~Àø?Ú+ÿŠÅ@Ñ_¹ÿŠÿÑä~Àø?Ú+ÿŠÅGü+ø*oýGìÿÓý¢¿úlT÷ýù!ûMø§þ +qû2þÍ¿Ží#®þÕ°ôOÙóàÅúÇŽø&çígªøJøQà=ÇŠ]ÞÁXM¥®¡«ZhXY\ÝmÍÄrÎJœÃþÏü7þ#öÿÅiþÑ_ý6*ûþøþÏü7þ#öÿÅiþÑ_ý6*?á\ÿÁSèò?`üVíÿÓb ¿è¯?á\ÿÁSèò?`üVíÿÓb£þÏü7þ#öÿÅiþÑ_ý6*ûþøþÏü7þ#öÿÅiþÑ_ý6*?á\ÿÁSèò?`üVíÿÓb ¿ëàø)gü¯Ãû?ÿø$ïþœ7ö7£þÏü7þ#öÿÅiþÑ_ý6*óÿ²¿íõñÆ×áÿ~5þ×ÿ²£ðËÂÿŽìÃñÓÄÚ?ÂߨãGÃÿøþöøWûHhÞÐŒoâÏø)Åoø[þ|)ÒŒ;©ëzï}GÔõ ítoVÚH?Oè¢(¢(¢+à?òßÛ#þÌþ §ÿÿb¯¿ëà³GíOÿ +OãÏÚ_öhý£gÿ ÿðŽ?gÿük௲wÄ_ÚþMÿâ/í5ãÿx§ÂÞ#ðíû2ÿbÿmÃMkÚN·¢jÚ¿äYÒ/ì5{OµÞÙÐßõñOí¯ûxcöãðüãß4ðOü5«_øÿÂ:ÂOØÓâ÷|_¯É +¶¯kºGíû+þÓv:F·àtÖàð¶¯à|šÇ|E·s£èë£òßð®à©¿ôy°þ+Oöÿé±Qÿ +çþ +ÿGûâŽÿh¯þxàG>x/௿moÚ7Å?Ÿêzµðïánœû1ÿÁu_ŸÖ<01xwUðWï?àóhÔŽ8ooô«í +ÂÂæÆÚúúÚÞXàœºX<]ÿ~ðÿþ-è|uûg~Ñ2øãáit +ü`ñGì¿ÿwן%èw>.ÞºÓ<mªÁ-®ŒGguáæVÐ.aÔV}¥Ž¹-Y} +ÿ +çþ +ÿGûâŽÿh¯þð®à©¿ôy°þ+Oöÿé±P#eÿ÷øŠëŸ2ñFÿ,ýŽl<Mñß⬟ +ÿÁ&mußÛøwLEðü2ÕàÿcGšx¢GžžÒtxµ»äÓ4Éæ°²X-exÀ~ÁŸüÖü+â¯ÿµÆ¿ Ÿ.ðÿux£À²Wü»Âßõèí xªÿ@Õ<;ÿµÒµ=1üE¢ÑµÕÓï¬Î©£ÇpæÒ(cêÏøW?ðTßú<Øÿ§ûEôØšÿ sÿMÿ£Èý?ñZŽWÿM?:Ÿ +ÁŸ0øã&ñ³âüÓâÞ/ð|sã_ º§ìÉû +Á9e]SGñÄÏê>ñßþ#ýöløá_^ ×<«êºZ¿|kšéTÕ/ô«;FïÍú#Gÿ:ø[Ãßîÿi-öÆý 4_ÚúóUÔ¯>8é_²ÏüËOøµsªkÚ]æ¯jÒüBµÿZEâŠÕµÝPŸÑuœWûWûCWÑîîtœBææÆg·o£á\ÿÁSèò?`üVíÿÓb£þÏü7þ#öÿÅiþÑ_ý6*á|)ÿæñ÷4 +xÀÿðQïÛÁºíµ?èøÿðîàË=aõk_ +iºGüÎÏöڣÉ#j0iÙÅzÎírb|ÅðFoxßÃÿ|%ãÚçã¯ü)ðZÖŒGð·Ãçì¡ÿlÔŒ;ðë]ñ&¡>âMWÁ:%ßüÂ]3ß"Õ®®5]~mÖ͵RVÔu/µ^baÓëþ)ÿhŽÂÙºoÚ³öžÖþ+üý þ7éþ%þ ¹û@®€é_³ç?fOëí£ÁX~×>¡â¿ÚkB¿Ó.`"ÚÖÛÃŽW@ËyfGžÂ¹ÿŠÿÑä~Àø?Ú+ÿŠÅ@%àø%ü+)|%?ÃÛ§öð-ÇÃû¿7ÞžðìÝÿðýÇ®þ,ßZjfðlú_üêÖo·ö}ß×B{ñDÚ}ë+yö+_+ñ¿üÓ¿ü5¢ø3âíû@xÛÂñ÷~*hñGì³ÿrÖü;£|Lñе¬xÆ4ÝPÿYϧYøËÆ^!ñ¿®x»Ä[&â}_\Ö5rîþïSœ£á\ÿÁSèò?`üVíÿÓb£þÏü7þ#öÿÅiþÑ_ý6*øwâïüoâ»ðóáÁø(/üá]oâe÷Åø;ã7üÃþ 9ñßá&»ãœPu?¿ÂÏþÄÿ4èþ!_Ýíž¹ñµÖ±šê2âHW3¯áßüãÂ|qð7ÅðP_ÚÇ^øÅãOüQøãàÝOàüZøMñâõkMÆ^!áÅ_ØâÜ^Ð/uË+¿øxWÐ<m§éoÎÏL³HŸ·ÿ sÿMÿ£Èý?ñZŽWÿMøW?ðTßú<Øÿ§ûEôØšÁ<ÿÓ>xcÁ> +ø{ûl~Ñþ ðÃOËñKáß|/û1ÿÁtMÀ¿çѵÏñ'Â:nÿ·×Ãß.<?â/hSøÓIÓÄhú汊K©œ§{ÿ«^ѵxWÃ>Ö<YâêúômTñ×-Œ+gâ¯j:^mc}âÏYøÃ>ðM¯<GsºÆ³màïxO°j71x{Ã:¶z]¯Äð®à©¿ôy°þ+Oöÿé±Qÿ +çþ +ÿGûâŽÿh¯þ}ÿ_|9ÿŠþÙö`ðM?ýh¯ø+ð®à©¿ôy°þ+Oöÿé±WAû8þÎ?|ñ÷ã§íûF|tø?ñÆßþþÎ4œ/à§ìçãOÙëŸð¯ìõãOÚsÇV:¡cã¯ÚsöÕüQâjÿŽÖ¹ouuo®x_NÒôïéPÃ¥^ÜÞÞ^(ÛôQEQEQEðüwþQeÿÓÿ³ýÿõ~×ßõùAû=~ÉßðROÙ¯àÀÿÙÏÀ¿¶ÇìA«x'àÁÿ<ªx³þ »ñæûÅZ ~ø/Eð/µ_hÿðTÝHŒñæ¡YÜk7Z^£i×3XéZu³ÅgÕ¶çìéâÏÚ»àœð#Ã$ø?áí#ÆÚÆŸ>ã_¿<+âh·/®Š §èÿ¿i¿Ù;Æþñü%úwõ_[|Oº±Nѵ]óºעÔtoÍðJOÚsöñç>#|Lý€¿c'ñÄ/è~ø·eàoØÿöøøSàÿ^ +ð×Û@ð·Ç|.ÿÒø?ÀÿŽM*ÏQÔ4{k?~ñ2·ï¯<+pÓxfê}"O·¿á\ÿÁSèò?`üVíÿÓb£þÏü7þ#öÿÅiþÑ_ý6*üý³¿à?ðQOÚâŒEgqÿxø4?ü)Ÿñï?f¿Ûöxñ7|§}ueàxþ|5ý¶~-ü6øÓà +Isÿ üñêoÙk÷wöÉá{[Iï/5.Wãüûö÷¿cïñ'üöÓ?d :ÀÿøÃãßì÷ûu~Î?4Þðß |.t]OÅÿ³ÿíÏãù~(é>5ŽðÕ£ãßxOð¿Ãœ_W±¶¹>) +3õóþÏü7þ#öÿÅiþÑ_ý6*?á\ÿÁSèò?`üVíÿÓb Ì/ÿðDÿÚWÁ? gO2þÕ²MЧû6Y|[¶ø{ã?~ɶ·Âhú_Çÿß|Mø¿ðúïÆ¿³ßü¿à+x§á|YcÁÚ4ßKŠhzØÝÙàßãð·ÀßiŽìá/öeÿ °³Ýï¿fOø(ÇŒUðn×ãEþšxÛKø}ãÁmô¯ø{D'Âú.áÝÏ^]ÂÞ¶¹ðÆaaáÝSUÓ/¿Fá\ÿÁSèò?`üVíÿÓb£þÏü7þ#öÿÅiþÑ_ý6*ù7ÃÿðMOÚ«Âþøàã×ìû;|kÔ?hÿ r]~Á¶n§¯ØüwÖŽoú¿ñ[Æ-Ô¿à±×~*ø©ã?Øü\ø/õ_ÏÄ·®5íqoõË-/Q±Íðïü+öÂðoÆ}sã¯?kÙ[ÀŸ,ñWoþ*ø·ÂŸý¿à¢ø)âïúŒb=oâÿgÏÿÁlŽ¿Þ"ñG +¥ßoõ÷kâmV8õÏC©ëGš¯Øð®à©¿ôy°þ+Oöÿé±Qÿ +çþ +ÿGûâŽÿh¯þ|¿áø'7íQá+ ~ñþ §<_~,|YøåðëÄ?ðM?Ú{Åú·ÃÏüeã<kámsÅ¿ðW=oZÒõ/x·â?µI`üiÚTzŽzf e¥éVa§y¿ÿý£5í?Á6p~ѱ/~üjøÓûAx#Å_ +¿d_ø(Ã>ø£ûFkÞ!ñ/Ç]WIøàø-_Œ}c¡|QÕ|U¿<mâ8Œ-¥ÅŠaáû?HÑí¬=÷ö|ñOüãöð¿ãÍö¬ý<=i |pýŠþMa©ÿÁ7?h«Wöeý€Ÿ,~ÍÚî¹¶¿ðVéþ'Öþj%Òm}ŠÏJÕ¬/ »r}ÃþÏü7þ#öÿÅiþÑ_ý6*ø£á7ü«öø ~/Ãß°Ÿmðâ÷ÅÿŽëÿØöåñ&ð·âÇx»Àßn|£øþ7«izw|O xÿÇ|öøC×|Y®x¯ÃÞÒ|S|úȧã_ø$ßí!ã«käÔ?h_Ø£ÃúÅçíâÚÎü>ý¿oôÚÇñü!ñ#À?ðZoxçÁây×</áMGðeöqsi'qq+7Üð®à©¿ôy°þ+Oöÿé±Qÿ +çþ +ÿGûâŽÿh¯þ~[|Pÿ@þØwìùâ_ Œoÿ×ø«£kᡬŒñ§à'üsáŸáOÚßͯüRøuñAÿ¥|sø¥ð«ÆŸ§šjº¶³/ÃÝ3DÿWño5oQ7þ#×Y³ðþïû^ø+öyøãðKâÆø'áOÚâ®ñ³â¿Áýö'ý«Œ{à¯xûÂøKà_ËðâÕ·üàGÅ4»ÑÿáIø3âE¯Ä]cM²ø¶¿õxÖÝê³Ø^Zþ ¹ÿŠÿÑä~Àø?Ú+ÿŠÅGü+ø*oýGìÿÓý¢¿úlTò>ÿÚýŽ4ßè^ÖÿlOÙâ^᯿ +ÿh +÷ãWìÑÿø×â};âÇÂ=sEñ'ÿÚx»â§üÛÅŸ%¶Ó|7ø{HÔSÁvÚ€>Õ.-ç[ðΊښoeü'mâ«? +øfÏÇZÏüGãk_èÖÞ1ñü3šø/ºï Ó¢ñ³ák,ñî¯á?êºÞ_hÞÕ<uãMGBÓ§¶ÒïŒYâ;YuÏ?á\ÿÁSèò?`üVíÿÓb£þÏü7þ#öÿÅiþÑ_ý6*ûþŸÿNÿÊ,¿àö`±¿þ³¯Ã?á\ÿÁSèò?`üVíÿÓb¯ ?dïðËÿ²ÇìÓû4ÂSÿ Çü3¿ìÿðoà_ü&¿ØðÿÂaÿ +á×<ÿ Oü#Úþ ÿþøGÿµ¿±?·µ¿ì¯µýû_Rû?Û&÷ú(¢ +(¢ +(¢>ý²?äâ¿à¿öÿÿõÖ_ðRÊú¯ãoŒuãß ^4ð_Ã}sáo|Yâ.=ßRø×ðZøçðµômBúÒßźOŸxâ§ÁMSÆZo<"úæ_<9mg©ÚjºzöawáœcÅ?koÙëâǯٯÅß>-ü?ø?ñ7ögý 5Ö>)|ñÇ_xûoöqý¡¿fýgÂÚï<'ñ¿ö|ñ~gÿh=WÄZf·§üE·û±áÍ>#T²œ¹/?ÿ sÿMÿ£Èý?ñZŽWÿM??4ø#Çí áïß?g»Ú[öSÕŸ|Gðm·Ã[à÷ÿg/ø)_ŸxoÀVz¥µkáñOüWÓ~èÚ ößáðÛXÛZèvòÅ YÙéVþéûC~Á¶÷íBâÇíSûü,×5|0øðçöýŽþ|Wøu«ëZ[èüŸøðþà^²ñ.ãKñFaâ8ô/ØÃimâ +7RÊÍ`ú?þÏü7þ#öÿÅiþÑ_ý6*?á\ÿÁSèò?`üVíÿÓb ~$Á+jï?Áœ;Æÿµì·¬ü²ñNðËâfû6ÿÁH|5ñËKÐüvÖ-ãßk|5ÿœÒ~4ø×ß::^<_¡x×Ç Òü@ºn5Y¿³¬~ÏoÿøõŠüðWìÏáÏÿ°?þ|1øâ_ÿ +¬< û~Ü> ñŸ-ñ'<Y®xçágÅOÁfô¿_5©õøÊ;aáé~âCÂVÞhK÷_ü+ø*oýGìÿÓý¢¿úlT¹ÿŠÿÑä~Àø?Ú+ÿŠÅ@0h?ðO_Û_Cœø¬\þÖ²üKû2xÃÇÞ?ø3ã²íññ_ÆŸñÅxÃá¯õ[ÅßÿàŽŸ(×ülº·ü{â¯Yé^9¿ñáË=JðŸ¢Üi:,Úw!ãø%í3ñá÷į~!øùûGᯎ$?µîôØsöÞð¯,ÿhû]OÃzÎñÀÿ<7ÿÒüsðËÅÚV§á-ëIáÏ|-§écÞÊÂ]OVûìïøW?ðTßú<Øÿ§ûEôØšÿ sÿMÿ£Èý?ñZŽWÿM>;øÿÁý©~*èŒ=ñöý |Síàþ-êÚ§ì;ûnËâ迳v«xàv§ÇüY|Cáÿ|;ñ6µâœ'â'u-Çw~*ûõjzÆŠ^Yùä?ðG/ßÙ¿ôWöýüYgûHxOáÿ>=7fø(×õ6¿µµÏkŸ3ÖüSÿºÕµÍKÆþÚÓLŽñÒj0x·þk+I«¿ltH¿Aÿá\ÿÁSèò?`üVíÿÓb¯ý üSÿ8ý< xóXý«?aÚkÿ?fOØiðMÏÚÖæßUýŠ¿i/ÿ³v ®I-×üÄÚ5¿úukeiŒÒŽÛK2.çCÇðNÚ§ââ_Æø&§Ä+_ÚZ_ üqÑŒoÿÓý§üUá¯ÍðMmGÂé/ü-®Á\ïŒ7Š?^ÊÎæÍŽ ++I7¶¶÷ú§ÛïauÁø©ÿÈý©>4KñâëâÇÏØUÔi[/öµ7öýŽü1¬ëþÍzåÿŸkÕ<1ÿÑï~xá5{ß)øo7üCý®wÚ¥}>`Öß^ÿ¹ÿŠÿÑä~Àø?Ú+ÿŠÅGü+ø*oýGìÿÓý¢¿úlTðÿý¡Žk/{þÒ²í¿hð¢ããSxãö[ÿxòÿâV»ðOÄzo~xÃÅ:Ï?à¶ÚÖµ}ã}RÑ4YŒ\ºZö¯áÝGð¯{}á]> +}3ãü_öªøùšükÕþ,üvÿ|ø·Tý¡Ÿxà7Żɿ࿶þ$øcðÇÅ0ñßÃÝÆ +þ§ÚxSWðüwâoh3ð Ÿã[mbîÆìøFÐŽŠýaÿ +çþ +ÿGûâŽÿh¯þð®à©¿ôy°þ+Oöÿé±PçÿÁ$¿jÏ é¿5o|vý>-x»öø!iðGâöûC~Ì?ðP¿ŸøùáO6/ŽßÏÄø,'Æ;OWÐS[ÕŽ=â]Ç<Mã¯ø_S»ðÿ&BXtuñÿØßþ û{|ø ã%øÿÄøQâÏ|ÔÿfÝsáÇÿf?Û7ö·øuã Ú×íŒUjÞ<ñÇßÛ¯áÅMwÅZ¯Ø4K€xYñw4ïhv¢Xi©&£ößÖÏøW?ðTßú<Øÿ§ûEôØšÿ sÿMÿ£Èý?ñZŽWÿM>ðüö©øuð÷â7Âö³ýu_þx£àNœð£Æ³×ü³âÃ]ᎧÐõÿ|7ðGàž!ðïÂ.]FÑôËÏ u¿èâ-Ê¥[ZÙÃúÅû4|<ø¿ð§á^ðûã~ü@Ô<'öø"ûà§Áü+¡|8ÐŒ9 èðŸ¡á¿Žoí?â}{Ä\úv©5׿øg©§^éVxnßPÒoõÏxü+ø*oýGìÿÓý¢¿úlT¹ÿŠÿÑä~Àø?Ú+ÿŠÅ@íÿ'ÿÿ³ÿøÿ®²ÿWßõùÁì¿ûhx÷ãìœñ+öý©¿fx'öcøÁâïz_> +~ÅŸø«Å*ñìÕû@þͶ:~¡ñÇ_·§í€iÓ4Ú\ñEÕ¿ÃGTÔt +*ÂWJ¶òfý ŸÿiÿɺüFÿ³ÿÿ±ëÓlûþŸÿiÿɺüFÿ³ÿÿ±ëÓlûþ( ( >#ÊScû0ø)gþŽWüvŸÿ¯>#ÊScû0ø)gþŽWüvŸÿ ( ( ( +àÛ£Äá-ýŸ|$øëñöwÿý¯üEð·âÄ/ Ÿø'âoÿ áØwöÑøý ¡Cñûá'ÆßúgöÄ^SÔäðÞ±ýišiºn¡Šÿi\\Pž~Øÿ5_ÚköCýªfí\Óü1þгÇ7uk{Í+ÃÚ¯Å>(ð®jvd]ÝiúMÞ¿ +ý휩3Û[ÉJË_G×çû~Ð:Ö©è×ðVoø(|6¶{Š]M€ø?þ j±[_ÛIk<f»¡Á84íoEÔ#Vk-[FÔ,5]:äGy§ÞÚÝÃñèÃþÑ_ô/Ûÿÿ +ÏüËÿ¥§@Ñ_ Á=Ÿ)xïãìû|kø¥®ÿÂQñ7ãìû4üRøâoìÍDÿÇ>ø+Å.×±Œ;§éÒ?µüA«êöf ¥i=Ú>ËŠiöVQAm×ôQEQEp:Åo Ú/gðf³ñ'À:O-tû]^ëÂ|;aâ[m*úò×N²ÔçЮµµHtûÍBúÊÆÖöKU¶žŒŒµµWâpúãõ/^ÑŒ[¡øWñÇô¯øÒæÿÃ^ +ÔŒM¢Øø·Ä66~qŒœÐü7u{±«ZZyÍÍÍ Ä0yy®Ÿ[íù§Ç·ìÏáþן!Ò~!é_<CûxGâ~<ü6ðeÝÞ>Ñføoð¶Ûâþ¹áÍ3MÖîŽM?VÖÂZqmª +ÇZÔ¢Ñ5gKÔu+{ ±š¯ÉÿÁLþ xOöLøïû_ø×öý£Ÿü3øAû5ëŽ5_d§Óþ+éZniâM3Âü)Úã·</ë%ßö€wÞ.ð&¥iö¶÷^κ·ÙŽ»Ó?xÿÀÕŒ5 x«ÆŸðλã;çÒü¢øÄ6«x¯SÊó4ï +iÚíµæ»||;í4žn®ÎtcÌLuŽWâ_?ü#ÅãŸð±ê:ñxÅÞЀM_ÄßjÿoKtÕ5V]GÄaœþñ \êßcºûWgeíÇŸñ|Má/xÓÂz÷ü%^2ðÎâ=Tñ¥ÔÒi4ØüM¢ØÞO©h2jÛÜIbµ£]€=žbr eÅè~øø€xoÇÞñð5ÜúâU>¿µi®lŒR,/îîíâ·ž{m[ìC<««cñ[áv©«kZñ'À:¹á¯Yx»Äz5|;w«hÔíVûMñ>µ§[ê2^i^Ô,/,µ«è`Óní]n ¹@;ê+â{ÏÛûöpÖ?gMöø;ãm3㯠Œ{âøá&àØcñÄ¿¿ŒOþøO°×ÆuáÝGÄ^$¹Ayâ«]&ÃÃ>ŽÖ|i¯IgáRÔa¿ñ7öÌð÷¿ڿöpý5ï?çÔÿiÍsÆð/Æ;];ÀÑüŽ×üðcâ_Ç +o@ÔuÏÛøþçYO|2Ô Q£ü=ÔtH/õ=:ÝzÖFxšì+âÚ¯öŒñÏìÁkâÿEû#|pøÁðáoÃ[Ï?~-øÄßô#Ã>Ñã×µYøgÂ<øáOxóÅ^ðçnüU¯èÚ_ltù4Ý*ÏÃÚæ¿â[©ü?ièúwíMðóRøð3ÀÇ~4?Úká^¡ñ3à'ÄFòcðÇÄJ³ñn¿àHíî +_Gñ_u}/â6§jKÿ / tÿ\Ú&ðµ}/EPEPEùAá? þÒ?ާí#û}YÙþß_ŽÿÀüý§üðSá·Ãoý ¯Œ+ŠøVÿöýþ<jÚ¡«|xýþ8üDÕŒA«|Døãã«ë««ïI§[éÒiZ^¥iÖÚp}¡â®¿û^|ý€a×4û}áGìßûTüÔ<5%œËjº¶«ûAüNý<y£kWj~ÉáëOÙ]°ÔíçæêçÄúL¶€Egy£ëóÂOØöU²Ö[þ +Íÿv~§ŠA~ÿcÃ¥Im«\é7WR^èPÿÁ8#Ñ5B)t[5Ó5mCOºÕt[iµk=öÂÓ_×`Ô|¿Åý€f¿ÚGö³ŒýŸ¿iÿÞ øýûOøÿà§ÄßüûXøWRðì-ûf|xÒu +?Vøûüø€øIøð;À·Ö·V>:NžÓ£ÕtœSJÔmµ!ý_¢(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢(çÙ[à«û>|1ñGõsOñ +Þ¿ûH~Øÿá¿Ó-îmmô¯ÚköŒøãûHèZ]+jÑ>+éþÕ®ýóUÒonìÀŽ>¯?`¿øËâWÀÿøÇ~!Ô<Oéß¶üÀ:ŠñÉsmàß ðPÿÚáoÃFÑÇ?Â?|á +i(TÉ¢ÙG,ʯ+ý@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@|áûTüÕh?>ð®iþ»Ð?iØãã|×úœÍÕµÆû2þ׿iwC+R%]CÄú'ÂCÃZMãY꺵Ýà6NÑõñíéãÿ|5øàoxÄ:5œGöÏÿoøûRÓ8în|ñ_þ +û.|-øáéHäS§ø»áï|QáMY$Òµ«Øâ)Y%@³è¢(¢(¢(¢(¢+àø&ü¯Äoû?ÿø+þœ7öȯ¿ëàø&ü¯Äoû?ÿø+þœ7öÈ ¿è¢(¢øâ7ü¥7ö7ÿ³ÿëEÁ'kïúøâ7ü¥7ö7ÿ³ÿëEÁ'kïú(¢(¢(¢+àÛ#þN+þ ;ÿgÿñÿ]eÿ,¯¿ëàÛ#þN+þ ;ÿgÿñÿ]eÿ, ¿è¢øþ ;ÿ(²ÿiÿÙ~Æÿúοkïúü!ÿdÿÁ>~xÓþ ·ÿùñ±ãïÛ~ÏWñgìAû(xT³ðüÛþ +Ià/ +Úê:ïÀoêÖÞð/jÿx'Á~æêXŽo ø;ÃÚ |9§-¶áíKÒ,ìì`ûþ§û:ÿÑFý¿ÿñl_ðTßþûþøþ§û:ÿÑFý¿ÿñl_ðTßþ?áÚ³¯ýoÛÿÿÅÿMÿèÈ ¿ëø»ý¬<¬|5ý?l??ÿb¯'ý§<SÿUð§ÆœöÆÕŸxSøc|;øûy|3ðÇûû¶òuVø9yàïÙïJø;àËßx`ÛÂ5yá=3ÁVÚŠ«ký"ÿÃŽÿg_ú(ß·ÿþ-þ +ÿÑ^Uâø"ïì +âÙôë¯è?µW®ti4ÿÁGÿà£úÔúgÄýí/ôoútÚícs%4èãœÓ<_lÑxÂî4žµÔbÀåWÅßÙÆú¯íÓû`éߎg¿hOCñköºýþ>þÍß>þÀ7ý§¿á"ø}ðÃÿõ?Þðí'ðãáÿõ/ÙçPøMñ#á÷ŽøKÄ×^Ò"еíÇ©uhþ=ñnŠŸã_±økÅÿðqoŽÿÙoÆpüfý€>|[øû8øï¿³õm7â÷Œqû|5øu⯠+|=øËá_xkQñîœû@èÞ"÷Ááâ»o^+ñ^¥'m<'®»í^?Ö/øvìëÿEöÿÿűÁSú2(ÿiþοôQ¿oÿü[ü7ÿ£"?ŒAa£xÏþ +ûk~Í?~ÿÁR|gñïÅðNmWM»ðí;û>ÿÁBÎÞ1ð§ÃŒ%/>^~Ñ¿ +tß7µOøÁ,Ÿü)¿¹×Œ]€hÐ_éÚ.§¢x1îŽÅÿ ~Ì8øûjþÙV_ŽŸ>xOà?í-ðà?gÏ_ÿaþÚú§ ¬| ¥ø©<iðïÂ*øeà¯>=ý>*øâŸ¥wñÂÚŒ:?ŽoÜxG×l|Kw¯x!¬4ïÙøvìëÿEöÿÿűÁSú2(ÿiþοôQ¿oÿü[ü7ÿ£"?'iÿØ||_ø§ÿÌøãÙ«]øÏâœ[þ ©ðcÀ_²ï|aðVñUß~"§ìéûLÛxŠÓà¥þ{Šê¿Ç-ŸÛjÉà+;èºåïô`öRêVvwVtدâ>2|<öXø9ª|ñç¿àµOÃKïö>Ö|#amûgøÓÇß²þ±ðîçã/ÄÒãž¿øÖÞ/»ñ÷%ºñÞ±}ñö[>$ÝM®ëõgþ§û:ÿÑFý¿ÿñl_ðTßþ?áÚ³¯ýoÛÿÿÅÿMÿèÈ Ã¿Ùöfž¶øCñSS°öÐ>>øSþ 3ñ³ö`ñ7ìÓ«Á:Œwû7øJ-]ô ÉŠøoSøÃ¥xßáíñKAñŠšY|+ÔŒã¿ëÞ3Ð<iã¿hSßiúŸµ1÷ÿÙöÐ> +|Xÿ*]ø3öUÁ7_°?í5áÛ/ÄCá6§ö§ãüýnÏÿj_ê:,§¯øÆºwaÓü7ñsRîãVÒ5Í/K°S£\ÙÚ~¢ÿÃŽÿg_ú(ß·ÿþ-þ +ÿÑGü;Oöuÿ¢ûÿâØ¿à©¿ýøûü0¶ø!ûÁ..ŒCðCÅ?ŒAû~ÞÓÿn-Æ?<OðŠÔŒMàÚSöjð¯Å=CÄúÏ tã<+ãO¿ +|gÅ +ë>5ðNà¶žñ¡âm*ßÃÓ?Aà¡lü+û{Á/µÏøUµ_<9û:|cøùñ+ã'þ~ŵ÷Çoø?ÁÿÿbïÚáoþ +üñ÷|Eªj?Œ[áÍûÂþÕuÏøyuX5èºNêq}EÁ.¿eßèú·ŒCãÛ·^Ð5í6ÿE×4=kþ +§ÿCÕ4}gGÕ-e±Ôô[LŸý°ç²ÔtÝFÊyìïì/ ÖîÖimî")ü;Oöuÿ¢ûÿâØ¿à©¿ýñ7ükãæœñãéý þ%|ýŽôØRøQmâßÚKâÿìõû~Õ¿gý£$ñ6ŠÖ²gŒsû>ü(øià?j^·Ô5ÚÅnÓ|c«x{PÓŸx:çAmsÅ"²ú'ö°±øñÓþ 1ðëá6yáëïþÐ:¿íQw€ÉáÝSÁº§ÃoÙËáìñÃáV²Ú×õ-#[ðrk,øûð¯áð³ŠéW¶×>-¿°œÓxwWµŽõøvìëÿEöÿÿűÁSú2+2?ø%Ïì¹³wâ(ŒaûvEâý3OÑoµØÿàªðT4Öotm"ëSŸÒŽœMl1{sŠiºÞ³y§ØM;ÚÙ]júÅŽQMtò~Q_ÃŽÿg_ú(ß·ÿþ-þ +ÿÑGü;Oöuÿ¢ûÿâØ¿à©¿ý÷ýðü;Oöuÿ¢ûÿâØ¿à©¿ýÃŽÿg_ú(ß·ÿþ-þ +ÿÑ@?kø(c¯³×ÿ|I©ü&ø»ðÏöøñ;ã®xWìåá>3ýü +6øáDÓßQáV£âÚGÃÖ~3ñþšÊ>ZZÅâ¯hmàŒ]âÿ;ö*œ³ÔŸ?ÁUõ:î×PÓõÛÛáí ýÄWVw¶w_ðJßø&ö·vP<\ÚÜÁ"MÄ.ñM€»#~ +øíû.|\ý?mÿÙ²ØÀŸ.k?d?Ûàwþ(þÕ¿Ž¿ícûWüýeñÅߨÄÚ'ü|ÿާÆM¶ÃøÚGÂ/7þñ?Çßéðÿn,|áSÇœËþ û6øOöBðPßÙ¿ÀúïŒMá ¶ÿÃýÃ^ñuåœÎ³©MšÁ2?àŸ Õ'[[{ú(Õõ{øŒ1àiº?üáôx'CÐü%áýH²ý¯?lù8¯ø$ïýÿÄýuü²Ÿÿ¯?lù8¯ø$ïýÿÄýuü²>ÿ¢(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢(ÇþÂÿ/Zÿ ÿÿü!ðž?h_íÏøFŒÿìïø\¿ð¿~%ÿÃF}§í?Œÿþþü%qÿ WöÏÙÑ|ö +øÃöðŸüñÏ|wáíCÃÞ£ûgÿÁH<cŠêiw7> +ø¯ÿýšþ)|9ñk)Óü]ð÷Æ>ñ^åiZÕǬñ'ÙôQEQEQEQEQEQEQEQEQEQEQEWüqÿ 5ÿ^ÿÛþÿøB?áp~Ï_ØðùÿÙßð¹á~ü4ÿsû7Ù¿yÿ ü4'ü+øD÷~ãþ¯ìoµ¢ùÕìñíéà|JøàoøÃÚõœ;öÏÿoøþûMÓ9.mŒð£þ +û.|RøâI#Q§øGáïŒQâœYÃ#ÒŽ[Ù"YU"p³è¢(¢(¢(¢(¢+àø&ü¯Äoû?ÿø+þœ7öȯ¿ëàø&ü¯Äoû?ÿø+þœ7öÈ ¿è¢(¢øâ7ü¥7ö7ÿ³ÿëEÁ'kïúøâ7ü¥7ö7ÿ³ÿëEÁ'kïú(¢(¢(¢+àÛ#þN+þ ;ÿgÿñÿ]eÿ,¯¿ëàÛ#þN+þ ;ÿgÿñÿ]eÿ, ¿è¢øþ ;ÿ(²ÿiÿÙ~Æÿúοkïúøþ ;ÿ(²ÿiÿÙ~Æÿúοkïú(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢+àØßþN+þ +Åÿgÿðãÿ]eÿÓ¯¿ëàØßþN+þ +Åÿgÿðãÿ]eÿÓ ¿ëàÛ#þN+þ ;ÿgÿñÿ]eÿ,¯¿ëàÛ#þN+þ ;ÿgÿñÿ]eÿ, ¿è¢(¢(¢(¢(¢(¢(¢ŸCøÙûk|&ø#ñWDø!yáïŸ,jn>0jþø#ð¿Ä¿ŒE௟%Áíñ/Æ`{÷Ä¿mÒ<?¥i««xÏÅ÷'âðw µöðîŽ,@>Œ¢¿<,ÿà§?³gþþÎÿŸéÿ>1IûSøGÅßþ|5ø]ð¯Ä"ø±â?а¶ñïõÜfKá¯øFóYðöª^xûMë[ñ/<=¢ÚêÚþ³cŠMÃêðU_wŽìmðwá§Ã/<ûiþÏ~%ý¢~üiøsàêþÒŒ)€xá·4è5 ޵KQ|CUøsªO¢Ýü&ŽBÅH¹ñM€v@šôWãÁ?_·ÿí÷ų¯ÆÙßö^ý<1ñÃãÁ¿V5ýŒ]ûCx÷ã]À¿k |]ñ[ÇâþÐô øCÄ_|âë? x+ÂÚü$vúWÚ×F¡8ÓàûÖ/Úáï ¯þ8xâïâ_ì¡û?|2øóûDOáëÚ í|1ñHø³scø.Òþÿ\Œº·Ô®þüKÓÃ#[ÖõÎÏIŽÔuëB«©è¯ÏÁO?foøö{ð>gñâÿj_ZíðOÀŸøßÇ(ñGÂÍz÷ÃVçÄWöz&5¯ -Ž+/Xë~&¹ñeî§hzUœÑ»¿éú}úéÿðTÙ[Pñ7í£ïÖ^ýã¯í#ñRøOãkÿµÒÈ<gá|OL¿ñö0ɬè>ð̺÷u=M3Rm.Öøhë¡ÔWçðS?ÙÒÏá¿íñ#ÇÚ7ÆÑþËôo¿üñká7Œñ"×àìü[uáOŸð¿kžñŒG/Œm€ÚÛØ\6œ¥kþÕŽhÚ¯vspúoüöyñ>ñŸoøöԵ߿³Ÿ·ûRxCAñ?ÁøOÚà¶š>sñàl$ÑáÔ<]àØ5éô+;Ý}ô{%Lñ>â]6ËVÐ/âŸ`ÔJ+ñçÀðS|mÕ¿àŸ!ð/Âsá¿oß|EÓ>#xkâÿŒCcâíCðÿì5ñ+ö ðõßÃ-j[Øëºþ-ðÞ€ÚøþOj<7°úN¥ÜÜÁyc÷?íûZü3ý|IðÛáþ·£|Eøñcãñ]ÏÃŒšx÷â't?Zi9ñcéÖÒØé>ðo\ðý®·â¯ëz¯â/è6·Zé·@²·ÆýWöøcâk:áëœöý±þCaŠ\\Ý[\i_³/íyñÇönеÉ%ºUÔ<O¢|(ÓüK«[¯ú5««^ÚYiý_ß¿koÙKözý|sà/üUø¿{ûHþÖ?¶v¥ðçá7þë/ûAj_~&~Ñ¿Ží/ñßàî£ð®î-Rð~«û=k>!ñï<oqãŒ9eáÍ?ÁÖÓkÚ€z±¥Ç©úÎÿAýuþ/ø±i/Å£ðí+cûËðÛTø?ãã7?iœKNð®§gð{Ã5+Oñ.«âG¶ñuÓݵœ¯¬4í?Ä!Ô5«Oè:¹è ùé£ÁN¿fßþÑŸ+ñø·ðÚçöR¿øc üiðGįÞ8ð·ÄMÆ?¡°ÿ ]àox>]2çRñç<y©jú&áiŸ*Ö5í/ +êzµŠe{6ÁHÿfý/á/ÆÞ7O? +n~øïÁ?Ÿ%|%ñÇÃ/YünÓ~$üS_>ПhÐë5¯¯ñÁÿäðeÆ¿¥k×Ù²mJÒïEñ8ß4Wå/ì©ûnx×ãÿíãûe|&ÖŽo +>üýdéþ2ü2_^5ðoŸ&x«ö¶ø«jzì<Káý_ÿ<wŠêúG|KàËDŽŸLÔ ÕÄvvÞaÿÈÿ|Ký³>6ü}øoñÀ>øu ëÞÐÿjÏØJóGŽÖ¬µ°ü}ã ÞøâÄÕ5-JÖOŠ·àÅèÑÿ³ôÛO|_økÚææpÚ+óÂ?ðSO_ô¯^)ø5ð³öøµð×áæñWR²ø×á/¿5_ÏšÙx³Ãßüu}³øæw×tOú¿áíÿÂ^%ÕôÝFßÃZþ°mgáüGáÄÙCölýŠ<Gð³ã§|AûRÅà +/áÀðãÄ~$ø¯ñ/Æ~5øG€üe»Óþé°éºOü,Oþð æµ«]|d6þø{ýá]o_Õ5-Ò~ Q_ÚÏüöJðÇÁ-Gã¯ußø_AðßÇí7ö[ñßu?3¹ø¹ð÷ãþ¯uemŠü0ñWÂýLÕŒX|GªGªè:áðõ¿oâý#ÄÞÕŒ?l<I¢Ï{ ÿjÏþÑ_Ž'Ÿ ü#Ò<Wð[JÐfIh?>IŠ|Vð×Åß|EøIû8x÷áîœy𮩚kß +þ)|\ñk¢MKû'á×ü:täÓ|{«Þi £WÈß±'í¯~Òá(ñÖ€ø{âßÃgßÖí|5gñàÄü*ñæ¡á5¿¹ŸœÁ,Õ<2<màš/5Nú×Â^%Ñm5 +Júþ«>¹ ( ( ( ( ( ( Ÿpýª~7꿳çÃøóFÐôÿÝëÿŽìqðBk +NâæÖÚßJýŠ¿kÏß³v»®G-š2¶¡á⟡â]&ݿѯ5]&ÊÒðIç#âÿÚÇözøûJÁI?bþÑŸü~ðNûÁH|Y¥ø;ã_ÃOüTð®â«?ðK-ÇÄÚŒu¢ëÚE,ô{\Òíu{8õ};YÕla¹KmFò)œþ;ÿ²ÿ€iþÀøÿ³¯ÿ;ûþü!ÿÁ2à~ÿmÿÁAŒuà_ø'ÏìAà¿x/ö ý«üYàïøOöPø +áÏxOÅ^ø +ãícÃÞ&ðÏtÙêú4-^ÎÏTѵ.ò×QÒõ[kë.`UýÞ ( ( ( ( ŸÿiÿɺüFÿ³ÿÿ±ëÓlûþŸÿiÿɺüFÿ³ÿÿ±ëÓlûþ( ( >#ÊScû0ø)gþŽWüvŸÿ¯>#ÊScû0ø)gþŽWüvŸÿ ( ( ( Ÿý²?äâ¿à¿öÿÿõÖ_ðRÊûþŸý²?äâ¿à¿öÿÿõÖ_ðRÊûþ( ?à¿ò/ø&ýìoÿ¬ëðæŸÿ¯?à¿ò/ø&ýìoÿ¬ëðæŸÿ ( ( ( ( ( ( ( ( ( ( Ÿýÿäâ¿à¬_öÿ?õÖ_ðM:ûþŸýÿäâ¿à¬_öÿ?õÖ_ðM:ûþ¿0?à£_>|øÿºø¥ñ¯â_ÃÿÿŒ/ûøÏþo¿ŒeáÏþðïößü+þ +9áÝûwÅÞ,ÔŽéÚþ ÕôLþÐÔ-þ߬jz~kæÞÞÛA/éý|ûdÉÅÁ'ìÿþ#ÿ묿à¥ÃØ¿à_ôÏØÿ#öuÿçGü=þ eÿI,ý?ñ2?g_þxÕ÷ýðü=þ eÿI,ý?ñ2?g_þxÔÃØ¿à_ôÏØÿ#öuÿç_Ñ@ÃØ¿à_ôÏØÿ#öuÿçGü=þ eÿI,ý?ñ2?g_þxÕ÷ýðü=þ eÿI,ý?ñ2?g_þxÔÃØ¿à_ôÏØÿ#öuÿç_Ñ@ÃØ¿à_ôÏØÿ#öuÿçGü=þ eÿI,ý?ñ2?g_þxÕ÷ýðü=þ eÿI,ý?ñ2?g_þxÔÃØ¿à_ôÏØÿ#öuÿç_Ñ@ÃØ¿à_ôÏØÿ#öuÿç_ߎ§íïû'|,ýžŒaûc~ÊðTÏø%ò|RýŒðoã Ÿ-|m?_Ã:gÁ|Bñ>&|#ÿ ¯x>"øÙmŸ$x«EÔþÞjÞÕ<UöjzOíd»wõEß³í÷ì7þÊ_ðJ¿:·íÿÄñ·Å¿_²Ÿ|eý¿iø(fénŒ-ñÅÞø¯£j6Þ9øk}ã¿|;ø¹ðË^ðüVzÿ|Oà-cDÖ,üA¯øRëz©Ò+Ú7öømñ£þ ÁñàwíÿmðfO¿ÿgß³Æÿ'øxŸð_ÃÚÅŒKyâßîü/.ñ\ø}}ðíKáxá·]ž¶>$ð%éþè åàÇíËðïöãÁ¿Ùöåÿ.þÒ³~4|[øËð üWÿ¥|;ý~"~Ïó|qñгñCÆß +<]Šh>:èÿ>è|[âgÂ"ÑõïøÇûPHÖt»ÊþŽWíIðÄÿjÿüÿÿÁ§öèý þ~ÌߌOñ'þ + àÝoߟÙþÓ|àéþ,â×|Wí4D^#øðÓUðÍÏRÔ<KüIµê¶þkf¯ß°WÁ¿ÚöDø±âø*güòÿÃßàGì7ã=öÞø3uê_,<mð/ijøÃ6ú³¥ØÞ|;{:ìQêÚŠ¥£x®îŽt $3ÞO§ó!ñ×ükâgìSÿýŸ ÁXÿà +Ïíñûöªø³à_øOöËø®Ûø2Ããàñ·Âë¯éú¯<;-Þ«áÝcMÒ'ñŽÉ®tû«h.ôÍ+Ä×á5¿§(øûÔ|[ûøãö=ý¹>ÃûIÁgŽì¡®~ÏZ?ÅÏðVxŸ2i9×olŒIŸ/³øàmÄ_ŸØkåÏtÍ#DÔþ(ë¶7:Ö«i=µÔ©kjüKý¡ÿàß¿køÄßðUOø&ðãRÿgügý5(ãý³Ÿ^øÒÃÇ¿>$ü8ñM4ýø¶ÓB¿ð~¡xOW[©gñ^¬Ÿªúm:+YÜ\êV?Ñ}üh?Ž<1ðwþ .Ú_íõÿ:Õ~6Á1õM{·õø*¯ô ÿŸÃûxÏöLÐ<m¥xçLø'â¯x+Å:¬Ÿ0ê>Ÿøw¯éºDbipøóSPiŽÿvñOíÙð«Rý¡~þݶ·ü=h?~;~Ì?gø+¯>x»àÇÅü#øá¿x?ãÖ£ðGMñ/ þ%ø[Ç +F¹áÍKà§ øÂÚÅ0Óïìmdú{¢??¿f¿xkàWíkáÿø)ü#Á¿¶÷?à£ðV>3øIñgö °ÔŸø³Bý©~6|Vøsâ8ü;ã? ß^ø{à_ß~)|ø£âÛé9ðö©€ÀÖÖÖ^>ÒQðOöýŒmðâ_Ç-Wþ +Yÿæð_íCàø-ÄoÛGàÕ§ÄOvÞøOñJÅþh¿³'t[Àqx£ÄŸü$ñfšüIáïÅmgÃzÕÜ:~àÏ7w:^¿$rcÿŸ$|8ø«àœkÄÿ +ìþÁá/ãíðßTû/ïøðoãïÄ¿?ï>Á +ª\hü]ð75í²Ÿ&ûWü$³Ï«HÍìü>éÿeÛ/ø*ä¿à€ðM?|MøûFþÂ^=ø?â+¯ÚÃÿ~ø«Çÿ±÷þøÕŒ=¢Aã¯xsâÏþ +\jV¶ÿüGñD²Óäñ&±ÿ Œ €ÙŠ¥è}âOþÂ(øx>þÔÿðDÿÙ/öð/íSû'þÖ~Ó<3ÿVÑ?hügû-xº/Xxoãw<gàÏ3ðum*M[ÃÂþñÕæ +튻,iŽJ_4Pò3â_ÿþ1ø³þ +ñ+Ç?ðTÏø"ÿÁþܳ§ìû.húgÂø(§ŒoyðOá~ |qŽý uQãøoÁ2xÛâßþ5ëºÂ]sMð4Û¯Ùh县§|OÚǧÁ*Ÿ~Ñ_±7í +ûÁ^ÿdØï?gmSTø1ñ'ÀŽüNø¡á +Oö*ñ×î|7âÏm|Wñ?â;xOÄ~ ñ.ðËÆÿü1¥¯<©ê +O×µ.m2æÛú±¢?ߨWöÁýÿeOý|eÿÿ@x·öføYá|6økûDøwþ +1ðÊÇã^ðÒõµèþéŸ2ýïŒ3|q¢XêzgüI¥~Ð7z6°ºoöæ¢Ã{«\iZgÏŸ:üðÀÏø&%ýÇü[þÓwûGÁ+,u~ð¿ü¿À-ðköø +yû4i¿³Š£â]kÇSx&üø©©ZÙiþ,ÒtX>|[ðþ}áùô{¯êwîæðÏõÍE&zÿcÏ\øãÄø*gükGøåñ¯þ +û2þÝÿüá/Û·áF³ð×á߯ÙÓ@øðÿ@øYàj3hº÷Ä_§ŸÙêZµ¯|8ÐŒEâÝfòÍlü=€éÚ¡ö6³ÿ'ÿm|ý¿Œ]ûHé¿·÷ìWâÏ ÿŽì±á n|ûV|ñVà²_>3|Oøew{áý/â +Ö³6ñCÀþ)x^Æ÷M¶Ú/x#Àþky5ßÚ ú¢?¿à_·ßü·áÀkà¢ß°'~)þп~>þÕ^?ðL¶ìÓ|ÿ5OÚ⟠èn/tï:}ö«ðßÁ: |âMCO»œÓu/èZÖ£ŠÞÜé÷V²·Ý_ðö/ø%ý$³öÿÄÈýùãWßôPÀðö/ø%ý$³öÿÄÈýùãQÿbÿYÒK?`üLÙ×ÿ5}ÿE|ÿbÿYÒK?`üLÙ×ÿ5ðö/ø%ý$³öÿÄÈýùãWßôPÀðö/ø%ý$³öÿÄÈýùãQÿbÿYÒK?`üLÙ×ÿ5}ÿE|ÿbÿYÒK?`üLÙ×ÿ5ðö/ø%ý$³öÿÄÈýùãWßôPÀðö/ø%ý$³öÿÄÈýùãQÿbÿYÒK?`üLÙ×ÿ5}ÿE|ÿbÿYÒK?`üLÙ×ÿ5|ûjÿÁR¿güÐŒûÿÁG¿bmOöŽøûJ~Å >iÞøÕð#ãÖ«wÅïÛ#à?Ã%ÏÂMÆ÷þ!ñ¡øgâß]x¶ÓÃm€øOðŒÆ³¢øÂúoâ3öÊŸ,ÿü +øËûFþÍw? +gïøÁ_¬~:~È¿<âßö:Ö¯àÝ~Îÿµ¿ÁÚÿQÖt¢ê&hô ÷ñéÞPÐ!ñ&©%yâÙÞÜkúpÂ_?jøûÿIý~üDðyøGûRþÏÿ°oü#ÃÿŽgÁI5&×-|-šx¯ã÷üŸ÷Á^=ðÍ¥~:ø-ñgNÑ5wág#³°»¿³Ó5¯ +ø§Fð×|%âÿhžøßð§öað?ìÁÿýŽ-R×|qãßþÿðS/üjø×ã©uÿ>&êŽüZÛUñçµ[kKgž6ÖÖÚG|3€ZéÞðtýÁÑ4/ +hz^mû!@ÁX¿å_ðRÏû0Û#ÿY×â5}ÿ_ÁX¿å_ðRÏû0Û#ÿY×â5}ÿ@Q@Q@Q@Q@|ÿÓÿuøÿgÿÿbÿ׊þÙ÷ý|ÿÓÿuøÿgÿÿbÿ׊þÙ÷ýQ@Q@|FÿŠþÆÿö`ðRÏýh¯ø$í}ÿ_|FÿŠþÆÿö`ðRÏýh¯ø$í}ÿ@Q@Q@Q@|ûdÉÅÁ'ìÿþ#ÿ묿à¥÷ý|ûdÉÅÁ'ìÿþ#ÿ묿à¥÷ýQ@Á'å_ðM?û0ØßÿY×áÍ}ÿ_Á'å_ðM?û0ØßÿY×áÍ}ÿ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@|ûÿÉÅÁX¿ìÿþ묿àu÷ý|ûÿÉÅÁX¿ìÿþ묿àt÷ý|ûdÉÅÁ'ìÿþ#ÿ묿à¥÷ý|ûdÉÅÁ'ìÿþ#ÿ묿à¥÷ýÒèc,¡ÙYÕìQ]sšd3 .Yrê(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢(¯mïÚ'Ç_<9àføyãïÙGÀ%ñ¶«â +/IŽ÷<u§Mâ[HÑ«§ø_áÃÿ:Eçþ ë7¡nn<G>šÁ7ôF×N âh€ÚÏâ_ÿðTo_µG¿àþýŸ ü4Óþ9~Ú²ÿlO§ÆÏø?Ÿxóáß|@Yüá·ñWÅ +w]øñ3Ãþð`S€Ãšø^»ÓÝ4Ù?Cc>2ø!ðÆñÜ}Ÿ·~Õÿ·ÅëôËøõfðoíûrþÑ_þÏ%Äj¡sð÷âW îukV«-î+<¶níõ}:±íÅÿ ø×ûr?Á¯×ß³¿ +Œ3ðÿö×>$é:^,ÒÀ| ÿ~Ó²CëŸÔåðÚΣªiŸøI£hZ.â}_NÑ5œÔx·_*Ôom ößÿðT%ð7ì}ûYø³áÂý3ö.ýžÿh?üøQk¢x³Å·Ž?¡øåã-kÀ³¿ÅØÞhpøZÒþ!ëö>Æ~ðýΪ|0µñÆu|t<=FàžTWæÿìwûR~Ó_µÅ_×zÏÂo_?fÏŽí/û6i$_xÄ?>%øËàwÅKÀºoŽß[øvÛÂ~ð<úF4ZÂk^#œñ=÷?Ž#Ótm?Ãzn¬øô +(¢ +(¢ +(¢ +(¢ +(¢ +(¢ +(¢ +(¢ +(¢ +(¢>øÿ)MýÿìÀ?à¥úÑ_ðIÚûþŸøÿ)MýÿìÀ?à¥úÑ_ðIÚûþ>ÿ±Ê,¿à¥ö`¶Gþ³¯ÄjûþŸÿ±Ê,¿à¥ö`¶Gþ³¯Äjûþ +(¢ +(¢ +(¢ +(¢ +øþ §ÿ&ëñþÏÿþ +Åÿ¯Mý²+ïúøþ §ÿ&ëñþÏÿþ +Åÿ¯Mý²(ïú(¢ +(¢>øÿ)MýÿìÀ?à¥úÑ_ðIÚûþŸøÿ)MýÿìÀ?à¥úÑ_ðIÚûþ +(¢ +(¢ +(¢ +øöÈÿÿNÿÙÿüGÿ×YÁK+ïúøöÈÿÿNÿÙÿüGÿ×YÁK(ïú(¢>ÿNÿÊ,¿àö`±¿þ³¯ÃûþŸÿNÿÊ,¿àö`±¿þ³¯Ãûþ +(¢ +(¢ +(¢ +(¢ +(¢ +(¢ +(¢ +(¢ +(¢ +(¢ +øö7ÿÿ±Ùÿü8ÿ×YÁ4ëïúøö7ÿÿ±Ùÿü8ÿ×YÁ4èïúüÈÿx¯[ð'Ä?ø&׌5à/|Sñlï^%Пx:ãCµñgÄ +_DÿMÁMõ-;ÁŸ¹ñ.©¢ø~ß\ñ%ÝŽZF6³«iútwpµÝÔ0aúo_~Ùòq_ðIßû?ÿÿúë/ø)e~dÿÁ?ÿj/SýŒü}ÿòýµþ8üuø¥§øáÝÇŸ ÿÁ94¿ß³4o ×f?øÿðGÄO +ëz<9bÿõïð7Æü;lÞ9ðŽ_xá§M¿á²?h¯úDïíÿÿþ eÿÓ,¯vð·ìËðÿÀŽ/?h¿_xÁÚÿÅ[èÿŒ ߨ[|0øâœ"m|^ñG ŠÒçŸðÞqà ñ¯õ=ëÅ> +Ÿ³Ñ|{oâÄðwÃé|%ôM|ÿ +ûEÒ'oÿü8ßðK/þeðÙŽWý"wöÿÿÃÿ²ÿéWßôPÀðÙŽWý"wöÿÿÃÿ²ÿéQÿ +ûEÒ'oÿü8ßðK/þe}ÿE|ÿ +ûEÒ'oÿü8ßðK/þeðÙŽWý"wöÿÿÃÿ²ÿéWßôPÀðÙŽWý"wöÿÿÃÿ²ÿéQÿ +ûEÒ'oÿü8ßðK/þe}ÿE|ÿ +ûEÒ'oÿü8ßðK/þeðÙŽWý"wöÿÿÃÿ²ÿéWßôPÀðÙŽWý"wöÿÿÃÿ²ÿéQÿ +ûEÒ'oÿü8ßðK/þe}ÿE|ÿ +ûEÒ'oÿü8ßðK/þeðÙŽWý"wöÿÿÃÿ²ÿéWßôPÀðÙŽWý"wöÿÿÃÿ²ÿéQÿ +ûEÒ'oÿü8ßðK/þe}ÿE|ÿ +ûEÒ'oÿü8ßðK/þeðÙŽWý"wöÿÿÃÿ²ÿéWßôPÀðÙŽWý"wöÿÿÃÿ²ÿéQÿ +ûEÒ'oÿü8ßðK/þe}ÿE~|}ãׯï~>è°ü»à'Å?>øðÂËÄ_þ(Á®"ñOÂï:·ÃÇÞññoöÝø§¢ÚÇ©k¿ +| ªØx£Âºüi£Ýhª,|BÈ"æþË~5øaðÛöYðÂoØwþ!ð¿Ç¿±ñÀ><xWâÇü2çâ~ð[â5õÖ³ð3ÆÚgl_|(ø£ðÚt_ +Gc>ë^(µÔŒ!¡x¢ßÄÐx©/õïénþr~ +ü)ñÂÏÿ?h?±'üÊ_ü>µý¡<ñ?Ä-ñþâ}3ö³øÇûNü@ý€>0øã6í <?¢kzWí)âÿkV÷?,>jþºŒÖŒÛE¶]Ë/À³7|¬|Ñ£ý?à¯Þ%ý?fßó|wýÿdOü_ÿ27Àï Õ|C¯xJÿKÕô_ÛgFøáâ¿|0×|Q«jÿ|ñãŒ5àÛÊ}:î×ß¶ÑÿVÿàÚN«¢þÏ߬õ3PÒnæý»ÿ੎6ºÍ ̺V¿ÿ9ý¯5ÝSšâM?ZÑ5?XÒoUM¶£¥_ÙjrMiuÒ}ß@>!üVýŽ_:?à?ðR}VÓâÇ_Ž7$ñWÅ?ø$åõÍ>;xûWøâí3G}#þ +#¡Åoá};[Ö®|9e{¡«YéQÛÁ©ëzÅÚI}/ŒÃd~Ñ_ôßÛÿÿ7üËÿŠY_Ñ@Ãd~Ñ_ôßÛÿÿ7üËÿŠYGü6GíÿHý¿ÿðãÁ,¿úe÷ýðü6GíÿHý¿ÿðãÁ,¿úeÃd~Ñ_ôßÛÿÿ7üËÿŠY_Ñ@Ãd~Ñ_ôßÛÿÿ7üËÿŠYGü6GíÿHý¿ÿðãÁ,¿úe÷ýðü6GíÿHý¿ÿðãÁ,¿úeÃd~Ñ_ôßÛÿÿ7üËÿŠY_Ñ@Ãd~Ñ_ôßÛÿÿ7üËÿŠYGü6GíÿHý¿ÿðãÁ,¿úe÷ýðü6GíÿHý¿ÿðãÁ,¿úeÃd~Ñ_ôßÛÿÿ7üËÿŠY_Ñ@Ãd~Ñ_ôßÛÿÿ7üËÿŠYGü6GíÿHý¿ÿðãÁ,¿úe÷ýðü6GíÿHý¿ÿðãÁ,¿úeÃd~Ñ_ôßÛÿÿ7üËÿŠY_Ñ@Ãd~Ñ_ôßÛÿÿ7üËÿŠYGü6GíÿHý¿ÿðãÁ,¿úe÷ýðü6GíÿHý¿ÿðãÁ,¿úeÃd~Ñ_ôßÛÿÿ7üËÿŠY_Ñ@>øÉñâßü7ö_ÿÿöNý ?eÿøGÿ`ø(öOü/OþË ÿãûWöÿZ}¿þoøfÚ[öû'ü#?Ù¶_ÛðÿÂöøH4øG?á òuïìO×êøâ7ü¥7ö7ÿ³ÿëEÁ'kïúøþ +Åÿ(²ÿÙ~Ùúο«ïúøþ +Åÿ(²ÿÙ~Ùúο«ïú(¢(¢(¢(¢+àø&ü¯Äoû?ÿø+þœ7öȯ¿ëàø&ü¯Äoû?ÿø+þœ7öÈ ¿è¢(¢øâ7ü¥7ö7ÿ³ÿëEÁ'kïúøâ7ü¥7ö7ÿ³ÿëEÁ'kïú(¢(¢(¢+àÛ#þN+þ ;ÿgÿñÿ]eÿ,¯¿ëàÛ#þN+þ ;ÿgÿñÿ]eÿ, ¿è¢øþ ;ÿ(²ÿiÿÙ~Æÿúοkïúøþ ;ÿ(²ÿiÿÙ~Æÿúοkïú(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢+àØßþN+þ +Åÿgÿðãÿ]eÿÓ¯¿ëàØßþN+þ +Åÿgÿðãÿ]eÿÓ ¿ëàÛ#þN+þ ;ÿgÿñÿ]eÿ,¯¿ëóþ +5àßü@øÿºðþ,|@øâ +_öÿñöÅ/ ºoÂÍ_Ç~ûü+þ +9©Ýaiÿþ|`øeqý·eesáÝOþo^"òŽ}_PFþÈñZV»Š~Ñ_-ðKþ +ðÞ9¯þ~Û^øúa1Ëÿí}û?xMX5s&cñKöP²øo๠+(ñÿÁoöö0«øE/¥q*zìùûTþ-ñWÁ_ +µïŽÏÃíËÄÞ.ø;â]RËÄÚ^œàœBðiv_>üHÒ¬Ž? oµú+xÓOð÷<-4/~ðœši]èÖôQEQEQEQT/µm/KORÓôá9q ŸŒ·Žöù#q$~aMé¿fvï]ØÜ2~æ£ñæñá(ŒWá©|U¬è·ôÇ®éoâ +WÂú¥£èÚï4Ýn£} hº¿t ++VÖ-m¥ÓŽíK\Ñìo.aºÔ좥 ( ( š÷ö1ß[ir^ÚG©ÞZ^ßÚiÏs +ß]Xé³X[ê7¶Öââ{KWKöæ(ÚYµ+§xÞòÝd«k.¢â å±mobhäÒåíïRÞéçk;»KµP5µÕŒáLSÄì=£ø«Âþ!ºÕìthåïï?³õë=XÓµ;ÿæ?aÕíì®'MŒÂ9û5âC7Èß'Êq§§êµ ©¥_Yêzf¥io§j:}Ì7¶ö7q$ö·WÏ%œÕ¥ÌG5œÄIÑ:I²0bn( ( ý>7é_Žõÿhú¡áëMãí7ðBk +NæÚêæãUýi/³v»®G-š.â}oáF¡â]&ÙÚlôZÊÒðž''Ü+çÙ[à«û>|1ñGõsOñ +Þ¿ûH~Øÿá¿Ó-îmmô¯ÚköŒøãûHèZ]+jÑ>+éþÕ®ýóUÒonìÀŽ> ( ( ( ( ( ( ( ( ( ( ( ?i ÿµ?ü5?ìåûKþÍýþ(¯ýÿk~5ðWÇOgÿù8¿±¿ü7âxÀ³/í5ýµýÿ˯i:Þ«h>ÿH¿°ÕîþÉyg^?ñÃö±ÿ|ð^ã¯þÄÿ±¥€k¿?g¯vþÿ|yŒÔcñWí)ñ÷á§ìçà]BæSþ e£['ô|Tðö©âËš¯&Ôl|+g¬ßhúVœ«ÛØèzêý|áûTüÕh?>ð®iþ»Ð?iØãã|×úœÍÕµÆû2þ׿iwC+R%]CÄú'ÂCÃZMãY꺵Ýà6Nµ¿à©¿µì±ûK~ÍðËÿ°ÿá¢?gÿÿá5ÿþÑ^&ÿ?þßïøþøG?áÖÿþÿøH?µ¿±?·ŽOí_²}û_MûGÛ!ý~¢(¢(¢(¢(¢+àø&ü¯Äoû?ÿø+þœ7öȯ¿ëàø&ü¯Äoû?ÿø+þœ7öÈ ¿è¢(¢øâ7ü¥7ö7ÿ³ÿëEÁ'kïúøâ7ü¥7ö7ÿ³ÿëEÁ'kïú(¢(¢(¢+àÛ#þN+þ ;ÿgÿñÿ]eÿ,¯¿ëàÛ#þN+þ ;ÿgÿñÿ]eÿ, ¿è¢øþ ;ÿ(²ÿiÿÙ~Æÿúοkïúøþ ;ÿ(²ÿiÿÙ~Æÿúοkïú(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢+àØßþN+þ +Åÿgÿðãÿ]eÿÓ¯¿ëàØßþN+þ +Åÿgÿðãÿ]eÿÓ ¿ëàÛ#þN+þ ;ÿgÿñÿ]eÿ,¯¿ëñþñ'ãÂ/ÿ±Ä/ÙûÃÏŸ0h_¶ÅŒ¡ÍâSÃZçüþ +9áíOât>³ÝªøÞÚª|W¿ð/ ŸñOôÿÝxSÂf©â=cKÓ®?b~|Hð7Å_Ýx«áߎ¿xvÏÅ¿< s¬h׿Ê?ü,ñç>ü@Ðüàµß üyáxkQÙº1ši7")%$ñgí5µûuÁ;Œ=à逸¡ásöøñYº6§§~Ê_³ÿþøŠÓX1fK=Å?Žïe[Í:Öñ£]Ö<-ÕWxOPMüÇÿYKû@ø{à/ÅÙþ ÿiðPýþþÒ?ô/_¶Æï^$øÀúÏ Ÿ'èŸøý€x£ÃÿŸéöÅmk\Ó~0éÞ1Õ5|zøOiqâ9]ÍõÚ_éöÿŽ?³ìµáSøÏƧŒYñãÇÅyŽ»¿Ÿ$IŠÍã^ÿÂ=á3OÑlŽÏ|<ø]àÁ©êqøá_4Áþ:±¬=§âÿø¯ÅøÔQEQE|ÿ(ý§Œqû#~É*ø¯ðÇOðõßÄcâÀï>Ô|igy}à?ø¯ãÿÆüÒ|{ã»M?QÒo.ü+àiŒsÿ N¡Š[êkëévºÔôµÕRŽüæøùû|~Õ°Ä_Û£Âß|}àoÚ@ý¿àºgí¡ðôAð®ËáwnŸ 뿟'ü?³ð÷Ä«x³QÒ/|)dþÓµÝGú®|%$Îloõ õcö+öªø?mñûöxøðnóáÿÂvÞ?ðÃèrøãq×£ø_âPo¬îÖÏÅ7ŸŽ¿ñ6œªßi ðõ€úß5ë]/^ÒíÚt?6ÿbø%ÁÿŽgÅOß +>øgFøëðÂ?³#üøkã¿ÿŽ7µ/N±ãÝ{Ç> øÇñ·öÑŒ;ñã/>%¿-<)qi¯xRÇLðÃßxsÂ7ºÕ³M,|lýšà£þÃðS;í{XøÁà5øoû꿟þÔþ*ýŽÿÙçÄþøÃ iÞ;Ô>-|1ðF ¡üD×¢Ô4Œ)¢x[UøMñ]Aâï\xZ»×o<g}¡i\Uý±Ÿøóâoí#ÿdðgÇ?³ïüÆ:ÁÛçĺ·h/ +øKá¯Ã-ÇeýSMÖïŽx'öÐÓÄ>³»;ù<?ww¬ÞÆ¢·Z<×ý øyÿûý~|>øðMÒ>,ø¿á?Äïú§Áßü/ø¿ûJ~Ò>Z|)Ötëûáÿ|ñâ·Œ9àOŸ{q£Ç4íö +ìÚDW©ŠXiö_?ಌðÁ"Ò>=ÝÛþËú_Ž*Ól¿ÛÂ|áß øl|_ðoÇ|Rñ'nìŒ-áMÐü[âý{Lðö¡iºíŽÍ&ÜYüm©x?ö;ýŽ~øÇ@øà_~øÿCÿüTŸýþZèzg|+áO°Äü?ø||9á/ hx-jÊÃ[²ðVºåíÓk³ø~Îæþk5äÿeÛ»öÿñ×uOþøÃWøSãoØâ'í7Ä~Ïÿ~üø÷¡ø{Ÿ1ð/Ãúì_<Mñáü3âM¥k%Dñqáõ¶¯qª-¢~œ|:ýgÿ úï|Sáï +øÇ\ñ_ÃO þøOÅ~2üjøÛâšþ|jøá|'âüeø ãÝsÆðkŸ4ð/-5?_ø[ðÖ ÙøCºàã6/ ðþ ëû/üÓ<Sáú'Åmáç|⿿𧯿i?ÚCÄü%àO>%ð×ÃOŸ$ø¯«|.ø]cu±¢Óáÿ <9wák9îŽÏÜè:UÝÍ ißø*7ÄM{þ ¡¡êÿŽOìã£\ÁL¿dülÔÛIýõ+Û_ÙªOÞýþ%Å«øß|K~-ñÇ~)j~×,|uýàÏ +xîhz=öá¿øBŒU¡ÿÁQ?j¯|ÿ~x4Ûk:ÇoÚsâíÿàO_Ÿü³øâ#á_Øã'Ÿ +\ëø-¬øŸÇÃZw>,_iŸñF¶Ú±®xoÂ_?±Œ7xWEDýÆð×ìû=xCQýuoü>þÎÔ?c¯ úÿÁÙÆãþ¿Ýÿºøkâ +ø#Á:çü«ïÜÁâï·xcáÇ4ÏíÇâ}zÛûí¶z¥Ÿ¡šê·wÞk¬Á;d][á~ EðÓXðï>üRøñ·á~©à¿Œñ3áÅ^5ñßÄ/øãá÷Æ_xïJø·á +SÄþ*øã«FßCñ&â+¿ ®Ÿ×B·üÝö¿ÿø·Oÿf|"}á×ìÛû@~Ö^-ý²|ñ«UøÃðYÔÿáð×ìù¡øRð/Æ|*±ñõµÎâx;CÒ~!i¿5 +NÖ|Yk£kÍޢϫóß¿iïÛ³âÃoÙ@²ý§Žß¿<ÿŒø¿û|Jøàï PiÚWÆÿ +|0öÓŒ#âÏü:·ñµŠc§ÝéÞ²Åß +í5 +xÄ/aAu€Ç£Yé²~ôx{öEøáíSàãø«öb¹ø¡{ðkÆ>2üfø¥ãm÷ã6šé?/5ïüFñÿ<Eñ +ãÄf{§ÛÃv&ÖË¡ZiÚl6ãOø'ìã¿^#ø_¬|7ÖŽÿ +øöÖÿl u +|Sø·àßøöñ/|e©übð'ÄxëIñÿÿ¿5=JæÑ< +âOèúm¥šhvk¡ÞÜé²x챡ñ[öÎÿë?nWÄ!ø'®|ýŒ·VLÃámßìÇðö ñÆœáý.)\ør_~7kW>%MŒMfÏá¿t»ýJý<¡;Ëà +|ðÃ\ÿ±|2øyá-Áü9ÿMø£è~ðõZfŠiÓþƱ,×ö¶á +ÕÅÕÕÕÜĵÅÕÝÍÅÝIJÜÏ,¯ú£þÍŸð߯Ï|aðß|G€EñOàïþüWðŒzªòøÓQøywsÃKã$Õ`ñ^ãÿxWÄ~8ð~¹â[Kéµïiz'Ôu;¿ÜyOÁø'7ìµû<jµ_¡žø÷câ{oÞ;ý²l:G5/éð÷|k¬è~=øóC¯<7à +øb¶Zu§Å/Âú5·ŽØèr\XLðìÁðSàwÄÏÛ§á¯íûüø[ð7öCýþ|~ý<Wñcá'<5ð÷@ý¯>$ø_ð^ÿ|ŠøKMÒÇÿÿfýwÀ>$ŸÔþ*kæëEÕ~/_Ï ü4}jÛGñ¿GÔÿ°V©uá¯ðRÙÓKW?þ~×ß í£ãOðû@~Í_¿iü7Ò¢%·ŽÒü9ñ[â<G£iVòùŒo¢øzÆÏOÒ42Þ»Ùþ «û&~ÇZ .ÿgã¯4ÏhWŸðµ¿ÛöÈøðÃÚý޶²éÚgÁ¯<mðÞ+xŠŽÇ3è÷-öÍ&[+°³zý>i|/â>-jïÅþ5øñÅÿŸ-xÿP²M¿ñßÄ¿ÜZKVm6Ú[Ž@ðþá¯xAøwàßøn}[XHUœ÷(¢ +(¢>0ýüã/_üsâ/øPñ>·§~ÙÿðRXêZÇ%Í·~ÁCÿj? ¿|=Gj4ÿü=ðw ü)€¡S$zVe²K*Œ¯ö}xÿÀïøS_ð ë_ð¢áÿ#þíý¹ÿ×ýÿþïÄ¿øhÏŽý§÷ðÃBÂÏÿ³oî?á*þÙû/ú/^Á@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@|aûzxÿÆ_ +~øÄ^ñ¡áoQý³ÿàþŸÔŽÇ;üWÿþË~#xzF9éþ.ø{ãxSV@¢I4jö8€VISìúñÿ?ðŠ¿áÑá{Â?ÿGü.Ùëûþ_?û;þ/ü/ßðÎfû7ï?á ÿÿ aÿïÜÂUýö¯ô_:=( ( ( ( ( ŸÿiÿɺüFÿ³ÿÿ±ëÓlûþŸÿiÿɺüFÿ³ÿÿ±ëÓlûþ( ( >#ÊScû0ø)gþŽWüvŸÿ¯>#ÊScû0ø)gþŽWüvŸÿ ( ( ( Ÿý²?äâ¿à¿öÿÿõÖ_ðRÊûþŸý²?äâ¿à¿öÿÿõÖ_ðRÊûþ( ?à¿ò/ø&ýìoÿ¬ëðæŸÿ¯?à¿ò/ø&ýìoÿ¬ëðæŸÿ ( ( ( ( ( ( ( ( ( ( Ÿýÿäâ¿à¬_öÿ?õÖ_ðM:ûþŸýÿäâ¿à¬_öÿ?õÖ_ðM:ûþŸý²?äâ¿à¿öÿÿõÖ_ðRÊûþŸý²?äâ¿à¿öÿÿõÖ_ðRÊúàWìÃðCöh»øÓqð?ÀºgÃË?ÿ5ÿŽ/§Øü;©|[ñ/üàïx¿LÑce¡Ýx§NðõÚéqÛXê^#¯æ¶þØ×5{»Îþ×â·Âëßj^ +²øà¿èÚ«øVׯ>žñ&¬jpÝÜiºN¥¡ÅšŸ§c©êX_OcaukÕÜ6WrAm3'Y¬Á©]hú¶}¬\i·ÐiZÖéw©Kk,v7ÒÚÊ;í.)ÞÞEdc1ž*ÄWñ¿ðÂS|>ðßüà'Ä¿ØsâçÂÚÓàü#ÁÚíûDüDøM¡i:gÄw??iß|QÕ|ñÖkÉõï6õè5¿àéŒGám7E{ïjúœm¡i·ØŒuãKßöÞ8ð}ÇÄM3K\Ô|ŽYŒi§è·W«ÞøZ;Ö×-4¹þÑšOc€t[&o17|âßø)'ìkáÙßãí?cñEñçÂÿ> ׌ã!ðòÞóÅ-žø¡üDá +¿Ãÿ +øBõ{Å>)ø©~ðLvãHñn»ye&«Üé)ªWá÷ìû0xßÃ_µ? tÚ_Å_Ž' h ?ðPÏÚGöÓ5OþÀ7ñŸ5hÿŒQñLð¯õÛßÁÿõ¯ §Áÿ|ø¥xc_ð|uáà;¯èo<7¥'ü &äü?û!xÃMý?j?ÿdwCýšÿd¯ø+6¡ûjCðÊ_×ÿŽÚàgÃÛûÄÿŽÂ|1øÁªxWFøgñ[Aן +}ªËÀþðçüK|Ai€x;^Ñ<*ú®æ~ûüý©~=üLñŠ£|Iÿ~ѳ·üG€jÎñ?âGÄ/Ù_Än ÔìôïøeñóÆÞ6ð^¯Z«Ceog¢x¢ÎÃRÆâCD{'ÔPüTøaqgâ +Bßâ?§°ð€xÅ7ÐøÃÃÒÙøkÃþ ±TÐ5ß\Š¢ÐèÚ6¹ŠÛÜj:F§šœµ¥c×vSÏoÈ¿xWöóøQûLé>#ø_ðÛáoíy§xó^øaãûwDø£û~Ó¬~_ÙxNù<oã<%àUñEö§*è.á?x®ï_ÕCË¢.¡£Ç&¬¿IûxïáOügþ £ŠüøâÞ:ð§¿a¿·Çt/ÙØ|IøñãøCÀZŽ>1oßüI¥Âkñ·Ä¿~,ø¯Â?cøG¯Yêö¥|7ÃðÚIð»Q«ñáûø(|IOx9Ÿ7ûdxù|O¢7»gö°ñHŸ:Ówü¿nÿeÝòù¹âŸmøûcx'ãÆ?ÚçágŠZxoöRÕþY\|Q·ñxKÇú?ÅßþøÝoâm.æÎÞ +#GÐt¿.âéõ}VÖøYI«%ÕŒ¢Þ?Â{¯w>| +ñŠ €~Ò¿µW쥧Á[5?Úoö¯øg«þÁ~júW<Mû:ëÚv«|=ýu Züwð+áßí)àÞ ³ðÃÛêŸ>Ô<[â-#LÖ/|« +?Ëü}û<üdøàø+o?e¿ÙWã7Àïßÿlø'oÆ='áN¥û4IðÓÄÿg^ø1«~Òðëàgl<-¥øâûÆ) x·]ñÂ?G¡xÇRjÿ>"è|S¬xY?«}âOÿøbÇÆÞñ÷õïjwiúoŽoèz§5ûM4[k~Æþ}*îòãY=&k{¹&S,#FºeùÄoÚÃömøOðâwǯ|jø§|!ø0u(Ÿ)xãK׌WŠx*ûH§Rѵ nêiâC{f²xnõâ÷vÈsŒñ+8ß?dý?âWì]ûRé? +'ý§þ9¯í%ûtÁ5|sñ'À_°§Ç?ØËö~ý¢?g_ +|Pñ/Ã/7>kÑCoð¯ÀÐøãÄOÙ_ +\øZçÄÚÞ¿Šêvôíûërø[þçðcösý¢Ðþ|NýbDý< ðÿá ~ø÷ã4ÏÚîÛü$ÓôíLðþ)øzÖº¬~^-³»žðÙî÷ÃJýCñ§CÕ>"|:ðW Ž«x{â/Ÿ"øºÏâ ŒGàOÀZ;|<Ö|%¢O _(ñ|~-Õu]~ïÅCLºð§ üC iá}rÓÅzÏoæÐ5ïŸ?|,žðÅøÇ^ø}ðoÃÚöµã?x+ÆÞ×u=óFÑõ]Z-Ä £ÞjxnÿQE场j¶±J[y~Ï*ȯÛÍ©~Õ°ÿíû*~ÊGÁÿÁ<?àŠrxáß|kû;ézgÄoøëöVñŸx»Â5ð/bøMãþ'ðãÐŽïèz<+û.¿âí-wDIõyŸ ý4¯Ú×íG£üNözñçÜ/ãüãÇÁSÃ? +?à_¿dO_¿hm+Åþ"ØþÏ7:?ü=©Þê|1Ž|BñŽÞñ¬º§ þxû]ÕßÂPD¿l ?ÿeßÙoöñߌð7Iý©Ÿ +|ø¯áOüDñÿô¹,¯Ÿ/|=ð÷Ä/Øë̶ñ>·€[ëé§;é¶6ój/l×qiÖé( ;ÛÏ>ÿÒ¿fJÔŒAãxþKñÇ÷örZâ|2ð£¯êð׿Auq¬üQñ^ ã +;Á:>m7Útÿ5}NóMDÓµÏæâgÁÿü/ý¿àŒ)ð³ã£ûrþοðK? ü?û3|Lÿ}übý©~ügºÖŸ|~Ìß§Ñüsmû*übÇßt}O^!ñ¿ÂíSÂ7ZøîÛÄÓµ=ï~ý¡µßðU¯Þþ~Óß¶üsáek©|G +§ö_|ð×ãÂo|?ðï#[MKàïÅoxÄ:,dÏDoñL +L÷n?S~3~ÔŸþÏŽ·íáMcÃ-fo þ#x»ÂÞñŠ yw&¥ð«Àºç/Œ©jzkkQøc\Ô ÑÄ +NÆ[=®Vêm>tÄýo ><|?Õþüøâïx[ážøÕáëŸÐü]âÝKºœÕ|i izå§ Ž{N}/þbíXlÖ +6ØÜÝÈâ³O5#̯ÂÙÁ5ÙöÔÕŒcûRÅñ³Wÿ:|qý®ÿeÝGþ ¯ñ'öTðÕ¹€xPoøA|YŠ|6Ó>ü}øÑáÏkZÿ~EðÿÅÞ<Õ|QáïøWðôÚŠu +äý¥?eßÅ·í|1û;|\ÿSþÏ¿³G <EàØ+Å߶Σð·ÇZT>6ãçÂÝ[Á~ ð~#|ñïáñ7Ãïi?°ÄŒ;yâ+msáïôýNø»âwÃ_Ew?>!xÁ0X[iÓx»ÅⲎ֯îtœêîMgP²Kkm[S³ŒÓŽÉædþþÖæÒÕ¥žXÖÎñÀZÏõi7ð«ãé¶ÎœàÝ7ĺ5÷ôM#UXÛLÕuZÞË«éºn¢²ÄÖ×¶pÚÞ,yd¹üñgìA€üNý±þ&kß>x¿öðà³·Â?Ÿ7|×5dñOÆ?µõ¯á}3ź-§í yáxwSñ7Ì|Gðe°û>câëžuO=ý¿b?|#×à×ÁZ×ÁO×ðM¿ÚÃßŽÅø[®é!ðÏǯ³ÿì·šhgöñ}æ6»ÿ ߬üSšiºÅ+éµS¯x]Ót4M¢ÜØÚGú/Äx[ñ7Œ;ãkþ#ðTñZøË@Ñ|K£jºß®gŽþ&Ò¬ogŸÐgA1-VI$ÊQHñCLøð»[×£ð¶ñ'À:¿åðÄ~6Ãg|=¯KàÉd(Œ]išËš?$æÞ(õõ·:SÉ<(·e¥@ßÌßü·ö_Ö<¯þÌrüRÔ¿hÿ~Óÿ³ìœñàÇÅß°'>øÄ> ñ¶áñ&o~ÙGŠøaûGÙxâ?tÿ +ŒXß<I¬øß\¿œñ0ïj~*°·öýeøà¯ø7oĺ'ì¡â?ÿŽ3âã~ÙÞ+ŸøGâ-?â.<]ÿ÷øã€I¢~Ò^&Ö4OøJŽþ%ø7Ãøe hzÍ|áœ/OOtkPÜmcþ +û8ÉðUýšþøÃNøÅð+Àþ4Ô<;ñÆ~Ô-^oð×<IðÏâÄïhÑÒµð_Ã/ø[[ÔŒcu +²\IðÿAñ7<'4Í*ÎßXû9TIbt9dHØ:H#£©*ÈÊC+)! +0Œ+àïÙÛþõÿýõÏÙçÄ_ ~?Øj·¿ÁmcÃ:À]wáÂü|ñWí3û@þÓzìoá? ß5èÞ ý 4ßh¿ŸøÀ2øÄþ/Òü&Ÿ ÓŽ +HøzÆêÊ;è£àW5ÿ> +ü=ñ^ª5ÏøáWÃÏx[YeuÂþÒ4=gUÎZy¡šØÜÝf&YÛä%Ùx¯ü'âþ~À¿·Æ¿ ºïü"ÿ~þÈŽ·Å/^&þÌÑõ¿øG|wðÿà¿|YáwûÄZ~¯áý_û#ÄFšfkºV§£ßýìº{e,öÒùÿü1¿íÿIbý¿ÿðÜÿÁ,¿úZuù×ûSÿÁD<ûMÁ>¿à±üSàMkàÅoÿ³üÀߎ/júŠû@ü2ýöýüEñàÿc±Òà׎ÿ|=º²øàI¬ü_ð³VÔŽí]GÁþ(ð7Œ]ý ÐæÃOø'/ÄÿþÔŒ'ðëþ +ûøwÃú¿Ä?µ +?þÏø&V¯öüqø§ã/µßµk¿ðN=Nö/øJ>&ü@ñw¿³ ¹GÑ?µÿ±Œ;§é°Ó4«/@ý üAñwþßÛ·á'Å¿¿?høgÚÿÿ~üBø¥á¯~ñßü &ýbïÓhZì?~|ø©ÿf|@øÛãÉ4ÍN?ZkØ÷z~©jömœÅ}ÿ_~Æÿòq_ðV/û?ÿúë/ø&}ÿEPEPEPEPEPEPEPEPEPEPEP_~Þñįþðï<=šx[Ó¿lÿø&ÿïŽÝ1#æÛÁ¿ +?à¡ÿ²çÅ/Þ!d5~ø;Å+Õ1=+Eœ(åR'û>Ÿpýª~7꿳çÃøóFÐôÿÝëÿŽìqðBk +NâæÖÚßJýŠ¿kÏß³v»®G-š2¶¡á⟡â]&ݿѯ5]&ÊÒðIç èú(¢ +(¢ +(¢ +(¢ +(¢ +øþ §ÿ&ëñþÏÿþ +Åÿ¯Mý²+ïúøþ §ÿ&ëñþÏÿþ +Åÿ¯Mý²(ïú(¢ +(¢>øÿ)MýÿìÀ?à¥úÑ_ðIÚûþŸøÿ)MýÿìÀ?à¥úÑ_ðIÚûþ +(¢ +(¢ +(¢ +øöÈÿÿNÿÙÿüGÿ×YÁK+ïúøöÈÿÿNÿÙÿüGÿ×YÁK(ïú(¢>ÿNÿÊ,¿àö`±¿þ³¯ÃûþŸÿNÿÊ,¿àö`±¿þ³¯Ãûþ +(¢ +(¢ +(¢ +(¢ +(¢ +(¢ +(¢ +(¢ +(¢ +(¢ +øö7ÿÿ±Ùÿü8ÿ×YÁ4ëïúøö7ÿÿ±Ùÿü8ÿ×YÁ4èïúüÀÿ|4ðçÆÿðK¯^,ÔŸ iñíÿã?í +CáoÅŒwoýÿÊÿk¶¿Ø_Ÿ +xËáÿÄßù·ºeŽü#>.Ò?¶ôyuë?oðþ¯ªé¿§õðíÿ'ÿÿ³ÿøÿ®²ÿPÿÓýè£~ßÿø¶/ø*oÿFEyRÁ`dñüXíT*øeu¯Þü6ñ2ÁGÿà£ëâ·+°ºÒŒQwà}d~Ö#Qð×4ËëÝ7_žÐnl%Ö,/.¬õ¹·ž7ýT¢>ÿiþοôQ¿oÿü[ü7ÿ£"øvìëÿEöÿÿűÁSú2+ïú(àøvìëÿEöÿÿűÁSú2(ÿiþοôQ¿oÿü[ü7ÿ£"Ÿÿ¢>ÿiþοôQ¿oÿü[ü7ÿ£"øvìëÿEöÿÿűÁSú2+ïú(àøvìëÿEöÿÿűÁSú2(ÿiþοôQ¿oÿü[ü7ÿ£"Ÿÿ¢>ÿiþοôQ¿oÿü[ü7ÿ£"øvìëÿEöÿÿűÁSú2+ïú(àøvìëÿEöÿÿűÁSú2+*÷þ mû-jZ¬j>.ýº¯õoÍ{qáýR÷þ +£ÿBºÔt+FÆm3PFœöÃçLÿMžOœÊXêÆi'i ãoÑJ(àøvìëÿEöÿÿűÁSú2(ÿiþοôQ¿oÿü[ü7ÿ£"Ÿÿ¢>ÿiþοôQ¿oÿü[ü7ÿ£"øvìëÿEöÿÿűÁSú2+ïú(àøvìëÿEöÿÿűÁSú2(ÿiþοôQ¿oÿü[ü7ÿ£"Ÿÿ¢?:µOø%§ì±®K€Mø³öéÖ&ðö¯¿ KªÁT?àš:º»oi{a·€IwûaLún¯ +¥šÙE©Y/#Ž¿œ¶I©ÒMoøvìëÿEöÿÿűÁSú2+ïú(øÜý¡ÿc¿ÿàÿ·Ïþ*øâÁÙ«ö +Ôà¶_~kÿõïk¿Ží7ñYøµûrøßáWâ_u]wâÎû=ÅðÇâ&ÿ üUâKϵö¯¬k0xÃUŒø2úµ×ÆßìŸÿ±Ê,¿à¥ö`¶Gþ³¯Äjûþ +øö7ÿÿ±Ùÿü8ÿ×YÁ4ëïúøö7ÿÿ±Ùÿü8ÿ×YÁ4èïú(¢ +(¢ +(¢ +(¢ +(¢ +(¢ +(¢ +(¢ +(¢ +(¢ +(¢ +ðÿÚàûAø@ð±®jŽÐ>8~Ìá¿Ó-®®n5_ÙöøOûHèZ]éþ'ÖþiþÕ®TýŠÏJÕ¯nìÁ»}ŸÿêÚ®û?|=ŒÑõ=CI»öïÿYé3]i·62éZÿüçöCеÝ2IídY4ýkDÔu +V²f6Ú{§ÞG5¥ÔðÈ÷}Q@Q@Q@Q@Q@|ÿÓÿuøÿgÿÿbÿ׊þÙ÷ý|ÿÓÿuøÿgÿÿbÿ׊þÙ÷ýQ@Q@|FÿŠþÆÿö`ðRÏýh¯ø$í}ÿ_|FÿŠþÆÿö`ðRÏýh¯ø$í}ÿ@Q@Q@Q@|ûdÉÅÁ'ìÿþ#ÿ묿à¥÷ý|ûdÉÅÁ'ìÿþ#ÿ묿à¥÷ýQ@Á'å_ðM?û0ØßÿY×áÍ}ÿ_Á'å_ðM?û0ØßÿY×áÍ}ÿ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@|ûÿÉÅÁX¿ìÿþ묿àu÷ý|ûÿÉÅÁX¿ìÿþ묿àt÷ý|ûdÉÅÁ'ìÿþ#ÿ묿à¥÷ý~iÁB<}à¿ _àß~$xFðWÃïß¶ÏÆ/øÛÆ"ŸMÐ|/á_ +Á(?àŠÆœ¯k Ã,6znŠZ\ÞÞ\HBÇ.Üý-¢¿?f¿ø,§ìñ×âŸ<ø÷þ +-û|ýgЯŒ!ð#öuñí/û6h_|gnúÅ åßí +ñæßÄ>2_ü1ÖµxtŠÒŸ| +·DÖ<)àÝ_W×þ3ZOãÿéÞ øQ÷ü=þ eÿI,ý?ñ2?g_þxÔ÷ýðü=þ eÿI,ý?ñ2?g_þxÔÃØ¿à_ôÏØÿ#öuÿç@×˶§Çýÿf/¿ÓÆ^ø~þ°ðõÐñŒâ/ý¯ãøxËšøÂ~$ð|@CW6CŠøL{+«š59Þ{[)í.<þÅÿ²ÿ€~Àø³¯ÿ<jøþ +7ûgÿÁ:ÿkߨ·ãìåð×þ +ÿÔÐüoñ3Kðªxçö×øŠøVÒ]âŒYxÚœöâjðG& ÞCllô;ö{Ù-£!å¹íÿÁC<â_Úûöýµ¿ß|gû4xsÁ'ñ7ÇOxgS¶øBú?<ã/ê:·üSsŠÙhŸÐ4ý7Á÷ø{]Õµ»/»ÞœØWJMcáÇü·ökøoâû«x~,x./ +þÏZÏíeáõøð§Å~¹ø©û5èÕ>1|-±Ö-cŸñìÞ÷CóKŸ¶Ñ|_§øNmSÃV6Þ$Ò'ºü€øûE~Â~:ý€¿o/à¥ÿðKÛÏÙ_þ +%û)xCàWÄ/YÿÁ@Ÿ +xwã¯Áoø7á§Æ7w^ð&ußüCÑ|Y€|OÒ/¬u[¿~ÔŒ'šé:«Í£ø°ÿg~À +ŸüHøsâÚcþ{àÿ_±gÅÏÙcÃÿµÃïø*µ¯üMãýCÆþÐŽCௌ-ðoÁ>0»ÐtüCÓŒ=ñ[â +Þ®èznáœ?ÄÚXKëPÙ? +ÿÁg¿d^øOð·¿iýróãOÃýCâ/ìßoeû1|ZþÓú?çð¥¿~Gq Àþ7ºð)ñ¯¯ü[šÌºO Žï +]\øæßÄWŸÓµÛrßà€Þ'øíiûxþ ûâíîÿ|I¥üAý¡ü ã+¿þÏ +?f$ŽÒŸ>kÞ=øI øÀŸ*ñÄß|DÖ|?ðßoøcF¹ñÅö¡{©xOè7M{ñçÃOÿ°W~*ÿÁ(ŒsªÁSàé?°¯ìIñ»ölø·oaûo|Qñ~%xöHðÎ ªü9ãYµ¶Õü'iðÆj×Þ&»ð±Š¥á©,ô+ù¯5K}åø§ö[øðöñÿÁÏø*÷ü.ÿöœýŸ)þÚÚ¢øgÅÿ·/Ã_¿>þÙÿüoñÇ +õ¿iwSøëÁ^)¶ÑŠø_âxÖÛáßl|/ãÿê:TÚ|/«ÝjŒº§Æ°OÁ_ÿà¡¿ŽïÃß<7ÂŽÒ<mðÓöhñ'Áßx6ëÆ8áÞ±4«oßô¿èW~#ñwÃöЯô-/ÂW°Åxø²ŒÓïkßðR/Zþê|/ýš/üiñcGøã/üŽý|qmñâçáoÂMCIÓüoñ{\ø]A€ëÞø{e'<$të¿®¯ë·^/ðÞ ¢øvûÄ÷í¡Ãù%ûEþßÿnoÙ?ã_Á?¶ßüöwñŒqû+ëÿŽÁRþüj·ž¶øMûDxâÿÅ{ß0o +bÑÆ¡áÿÙi_ +ôox;Ä/y«œÜ*ÖtK;èNCöøø·ÿÛøõûO|ý¬|ûuÁ)>9jø?ñà'Ä/¿¿à¥^ø ¢xÂ>/ñg <uá_øâ¯ÂkïúŸã?x@Õm5øÁZÏü_á^D/4 +oCÒ¯®?eŒGÿý,Žÿw¿?áfþÐWŽ_Ây~>|0Ðg¿>)øâ+ÿVÐørK¿zÖ§ZZÍáÏ Å?Œ9¥Z[ë +kâwÄðçŒ;kÖzgò¯ìYÿ(ÿ«öýŸ4|r>=ø¯ñ¯öø¡ûQxKáÏÃÿ +ngøãÍ/áÇ5¶ìl|9tßü*ð6 ÿ ~»âÑá-;Qþΰ×oÆ&Ó4ÝSó¿Hý€¿eoÙëãOÀ²'í£ÿAðÝŸûi±§ÄOÙ¯ÄßðSøáwÁÝ/Âß5~ñÁ7<Kâ_Vyâè>"ðþü*»ñmšðÝå·<7%¥ÂAó^ý4¿ÙãöµñGüþõñããìkñöØÔ<qð×XÿxgàßÁ¿lÞ+øA῟ÔüUñá×|-uið»\ÑbÔüã-^é+ð~£y©X]éþ2 èÃÅ_ðTÏÙÃ?g?kÿ|e§~Ö)ã»OŸø}ðâþ#øïÅ¿ +aaã/Vÿt]i¿ŽRC@Ö<3«i6W¯¢xx]Nðî·šØy7?à¯ßôO²ÿÄÏ|ý¢~'é?Ž_íAã¯ÙKYð¶ð³ÅZwįŸÚ|Fâ7Œ}à7Ò5 +Q~!øsÅ5Zø`Ä6Ö~ ñ]hþžóá ÿàÞñü«Å^ý¶ÿàß³¿¿dëÏÛ'RñçÁO ÿðQo¿ü?€Þ~ÒÇö<ß<oâÝ7áö«ã]CU×õ[ÿ|EÔ<Wáï5¹¯ë0hâ;x »ŒðËß²·Ÿèwÿà§?ðH¯|Xømÿý£?à€ðà <àO|+øÑñöŸÓþkÞ>Óôÿë~ømàÿh»Œ²ø}ãoéÞ0ÐÎ +ö·¢Î5ûËáÿÚêÈ|Jý²t}BøúÇörö|?þüEÔŸ2ø^_ôÿZhYk!OÚÇo5+}N&ðß<%aðãHKÛoÜÍoŠj^!µùGöÿŸ§û|køœû7|-øËð#ö»ý¿fÿ^øÉðîËGñßÜ[â×íKû/xOÅú»á]eµí +òÛÆ>6&áohº³Šœ¬µ]#S[Ó%Oüèø×ñûàµâ_ø(ÄßðVÿø%ÏüYûWü@ýŒ]áïé¿ðR|>Ôõ~Î~ðûB|ñÆ_]ZøÛá øµ¢é^"ð_ þ(ü2²×üQ§èZÁÕ + u;óåû.^ü&ýºþø(üÃáÎûTþÖß°wíaà+Mþ +wá>³¿ÄÙWUø«ð×ÄÞ!ñwtÏøþ_ ~Íw׌{åºø¿Æ5DÖ<;à]L^`ìÊøþÅÿ²ÿ€~Àø³¯ÿ<j?áì_ðK/úIgìÿû:ÿóÆ ¿è¯?áì_ðK/úIgìÿû:ÿóÆ£þÅÿ²ÿ€~Àø³¯ÿ<j?à¬_ò/ø)gýíÿ¬ëñŸÿ¯Âø)·üÛþ ·ãßø&ßüÀŸÿ~Ä4ñ·?bÚ¿Â~ðwÿjÿÞ#ñW<Uâ?Þ>Ñü=áø{Gñõ毯x]Õï,ôœFÒìîµSQº¶±±¶æx¢oÝê+àØßþN+þ +Åÿgÿðãÿ]eÿÓ¯¿ëàØßþN+þ +Åÿgÿðãÿ]eÿÓ ¿è¢(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢+Çþ8üHøqð«Áz/þ*Yý¿Ã§ÆÙëáŸö$^ Ùñã'Çß~^}ed·þÎø»ãêÛ` |3ö_øI dIØ+åÛ;áŸ7ü ð< q迵ìñzú=Nþ=:Ù|û>~Ü¿³¯Ç¿ÓÇq"ºÉš[|=økâ&À&«ªÅeŠDÉ-â:}_EPEPEPEPEP_Á4ÿäÝ~#ÙÿÿÁX¿õé¿¶E}ÿ_Á4ÿäÝ~#ÙÿÿÁX¿õé¿¶E}ÿEPEPÀ¿å)¿±¿ýü³ÿZ+þ ;_×À¿å)¿±¿ýü³ÿZ+þ ;_ÐEPEPEP_~Ùòq_ðIßû?ÿÿúë/ø)e}ÿ_~Ùòq_ðIßû?ÿÿúë/ø)e}ÿEPÀðIßùEüOþÌö7ÿÖuøs_×ÀðIßùEüOþÌö7ÿÖuøs_ÐEPEPEPEPEPEPEPEPEPEP_~Æÿòq_ðV/û?ÿúë/ø&}ÿ_~Æÿòq_ðV/û?ÿúë/ø&}ÿ_ß¶œ©ñ÷þ SŠjvvºšþÞ¿ìu +>úÞ»ë¿ø%güŸÞîÎòÒá$êÖê $âÞxÞ¡wDdfSú_~Ùòq_ðIßû?ÿÿúë/ø)eoþͳWÄÙSâŸ|7ñ& ©þÄŸ }â/<A}«þÍ>mbÃíþÜ +:óM×?fÿé·º¶»á ëzƪ|Ö4£àï +ᯌ;áÏ pQEQEQEQEQEQEQEQEQEQEQE|ÿbÿYÁK?ìÀ?lýg_Õ÷ý|Aÿ6ðŒ{ÿÛÿxÀŸñ<mãOØö¯ðŒá=QñŒYâ¯üñöáïøgÃÚ=µæ¯¯x]Õï,ôœFÒìîµSQº¶±±¶æx¢nþYû:ÿÑ9ý¿ÿñS¿ðTßþzûþŸýÿäâ¿à¬_öÿ?õÖ_ðM:çü3ÿXýüi§\ëð÷í¿âÍ"ÏÄ,ðæ©áø%·üó^Ó|Uà/k>ñ×noŽ¿ØþêÚx/ÆÞñŒY£K*ê>ñV ¬ø{X¶³Õô»ë8ø'ö¿?|}ÿø»gàðOÅÿÛÂ,øm'Æ¿¿g¯x³ÂŸÿz~Á? +5oiÿþ<xáÇÄHŒ?ÄO:ð®³}á[];TÔ|/ª.æöÚpÀ£ôQEQEQEQEQEQEQEQEQEQEQEòíñ{Æ_>x?Æ~O·Öõ¯Ú¿öøC}&§a£lÞ +ý ÿn_Ù×à'Äh#·cÔ.~üJñE¶~ JÕe²ÔâWÍŸ¯¯øãðßáÇÅ_èŸø©yöi?g¯\ÿÛqxÄ~|^ø9göùRãûGâÿbeñ7Ú¿á^}Z5``¢(¢(¢(¢(¢(¯?àòn¿¿ìÿÿà¬_úôßÛ"Ÿÿ¯?àòn¿¿ìÿÿà¬_úôßÛ">ÿ¢(¢(àßòߨßþÌþ +Yÿÿ¯¿ëàßòߨßþÌþ +Yÿÿ¯¿è¢(¢(¢(¯?lù8¯ø$ïýÿÄýuü²Ÿÿ¯?lù8¯ø$ïýÿÄýuü²>ÿ¢(óûþ @éü¿þ $šÿþýÝØ*"/ìéðåª ÌHIÅ~×ñëû<~пþ6|ÿjÿÁ?|Yû~ÓŸ;ý<+ÿžýŸ3køIâÿÙÂw·öøX5_ +6¯ûAþÕ³ü·_³Â}bãL°ø×ð÷Á+â_xÿ_Ôt=âµ~ +jgÆßè%?loÚ4XãÿMþßšªñþ bš *ªªÿÁJÀUPU`Pè +ðü6GíÿHý¿ÿðãÁ,¿úeÃd~Ñ_ôßÛÿÿ7üËÿŠY@Ñ_Ãd~Ñ_ôßÛÿÿ7üËÿŠYGü6GíÿHý¿ÿðãÁ,¿úe÷ýðü6GíÿHý¿ÿðãÁ,¿úeÃd~Ñ_ôßÛÿÿ7üËÿŠY@F~Óü)û,~Î?iOÙêZ>|&ñ÷ůéz4k&¯«éðÎ¥âKJWHÔµa§:ÆKΫš¥ŒTdüñwü»âí?û'ÁDŸø·Â~ŽÔ¿áÔŽgíá¿Æ/øE<©^)ð×þ øÇ_øà_hüFð æ¿áo@ñÚßLñ6¹yoá·7j_€ÿh/¿~x÷á/Äø#ïíçâÏüâoÞ;ðŸ£ñþ n,<Eàÿè·Ÿñ&xÖÿðSnÛTÑõË)Þhn#IÁ,Rª:üUá~ÒV~,þÌÞ=ýÿൿ~|MýŒkû5i~øñ/þJگß6ð¬þ +Sð×<!ûQøSÇÞ*ñÎá4ÄßüKñ6Ïé~ Ö%ŒÕ.À9_ðVþÍÞø[ðáþxÆ_?à³÷íãèŸ(Ïñlê_5_xKZ¶ð'Àï á¯|^4ßxŠË᧯µ>27>Ðïu¯éÉ¡ëÓÞkòhEüsÿþÓÃâ÷þþËß~ê¿àÿà¡z¿ÿhOxÏÁrh?<OñÛHo Þð µÝz÷Å×ß 4Ø,f7F Üj&Ÿ×ï$DÐü;âñGÃßð|:øðOö&ÿÁþÌü +ðÁ³>œãï¿?à> Œø±ðoáÜ×wŸÐþ&øWãwíñoáæ§¯ø;UÕ|C«x_ÆZŒ9â="ãÄþ"ÓÒöoêO¡§£êúwÄ?|Sø¡ñÄðM/ø*~³ãÿ±¿ÿb_ÞÝüZÿ@ÅiwðãÁŸ#ø·âoÚZXþÞkiñCXÖ>3x²mkT'€ÛDLð>-oN¢àoü÷ã·üqû'xöøð»áWÀ/ÛoöGøÁûTü#_|Eñ7ÄOß +ô/ŸøOñ7SâÔOá +ÁÚ¢xÛÀãÕô};À^ßø_QÓbе+zk¹ï,yØgþ +ÿâ¿ÚÏâWà +RøiàÈüûAþÏ¿~?ø +O⮥âðEáÃ?h]Å~ÐŒ«øâŒcý±¥øáƬÚâoø³ÂIe®Z6âöø[Á> ð¥ïìIwü×þ +}¬Eû~ÏÞ6ý>éÿÅø$5þã/Þ>øwð¿áœqñbÎ?ÛêØx_>øOáé-æðÛø;EþÐÔuçŒÐ¯,nìl4ÜßÙ«Ãߎ_칊é?|û!ÿÁdµÿÙÓÁÞÖ|ðËöiñÇÄø!Ö¹ðÿá·õ(dµÑŒ3¡xêßö¹Ó~>êú,dþÊøyŠø·ã#ÐŽhlôAµ»;LÈý¿àš¶'Ç;Ïø'?Ÿ(þÎ?Ÿü$ÿx;â +·Â=;Aø¯ãOüPðüû:xËöÓ|UãÅoiŸ¶ømã-+áÏô/@Ñ5 +gÆU±á=cZ»¶Ôß^ð®õ/ü+ã÷íiûLþË·¿j˯ºŠ©yñöðW5ßÚöz¥ÝÂOÚã×Âí?Å:,þðîagáû?xBðn¡£5ö§âMÄëÞ0û'oocå/õß ^ÿzxOÃßðLoø*æÿÕ³ÖìŸÍ¬übÿB\^ø®-{àÿg+Æø³%íé§A®É<{¬jÇÁöÞTñU¶}*M€Cu¡Þzìyñ«ö<Ó>(øCáÿüÃþ +§â¿ Ÿ=ø©ãï^øYñâgüËQð×Ágâ¯|cñCâ6ðËYðçíÝá]ø[Äþ<ñƵ®ÿg|IñgÄÍÞÛDÔ¬"S:íÅðü6GíÿHý¿ÿðãÁ,¿úeÃd~Ñ_ôßÛÿÿ7üËÿŠY@Ñ_Ãd~Ñ_ôßÛÿÿ7üËÿŠYGü6GíÿHý¿ÿðãÁ,¿úe÷ýðü6GíÿHý¿ÿðãÁ,¿úeÃd~Ñ_ôßÛÿÿ7üËÿŠY@×À±¿üWüþÏÿáÇþºËþ §Gü6GíÿHý¿ÿðãÁ,¿úeçÿðN_xâÄÿø*/ŒYðâÀïjÿ·ÿ?Ž>üRÔŸjþ;ð¿Ø?à_ðN=2×ûwPø)ñ/ãÃ+í»++oiðüEñ£êú|ÏöG"Õt-0ôþŸý²?äâ¿à¿öÿÿõÖ_ðRÊûþŸý²?äâ¿à¿öÿÿõÖ_ðRÊûþ( ( ( ( ( ( ( ( ( ( ( ( ?`¿xËá¯ÀÿøwÇ~Ô<1ê?¶üÇö:nŠÇssàßÿðPÿÚâÃÆ±É"?Åß|cáé.XI&YI,qJÏ}_8~Êßõ_Úá<y¬èz®ôÚCöÇø! +qsumq¥~Ì¿µçÇÙ»B×$è WPñ>ð£Oñ.n¿èÖz®{ifM€ô}QEQEQEQEQEQEQEQEQEQEQEðügIÕu¯ÙûáíŠjµÜ?·üÏV×L²¹¿¹JÐ?à§?²»®êrAk²Ç§èº&škµë(¶ÓŽ«ÝBòHm-g?»ëÃÿh?úWìùà=ÇÆšxÓ_øáû2|ÃL¹¶µ¹·Õi¯ÚKá?ìÝ¡kKtM§øc[ø¯§øV¶QöÍ+IœŽ³"îx÷ +(¢ +(¢ +(¢ +(¢ +(¢ +øþ §ÿ&ëñþÏÿþ +Åÿ¯Mý²+ïúøþ §ÿ&ëñþÏÿþ +Åÿ¯Mý²(ïú(¢ +(¢>øÿ)MýÿìÀ?à¥úÑ_ðIÚûþŸøÿ)MýÿìÀ?à¥úÑ_ðIÚûþ +(¢ +(¢ +(¢ +øöÈÿÿNÿÙÿüGÿ×YÁK+ïúøöÈÿÿNÿÙÿüGÿ×YÁK(ïú(¢?bïÙá÷í9ÿÿ\è/»ñüWàØö'ñïÂ?߯ìô/ß>#i?³Ãø4ßü9ñö«ÙØjbÊêûE×t}gIÖü!ã_ +êßüsáÏxC]Ö4KߨDRšªÎÒUS#ä°Q1""dª£|ÿÿYÁ4ÿìÀ?cýg_5÷ýQEQEQEQEQEQEQEQEQEQEðìoÿ'ÿbÿ³ÿøqÿ®²ÿi×ßõùŠøöúøû@~ÙÞ.ø)ðGö@øÁðËöý <ñÓÃ:ÇÅ/ÛãGÀ¯øwûö@ýfýgÂÚï<'ûþÐ~ËñìùªøLÖôÿ·oÑüG§Áu€iw¶W1Êú_~Ùòq_ðIßû?ÿÿúë/ø)exþµûXÿÁI4/¿ +?g;ÏØö Æß>üpø×áíRÛþ +Eñåü+gá_>4ýŒã?YŸþ e¯oâ +KWý¥<qá[QÓ¯4í'Åj®sc£ÙëݧàÛëãíûø»ã_ÁÙàÿÃ/Ùöñ·ÇOklo|wâ/í¿ÙöŠýôoh^ñgìû>x~?3ÄŽâ-O[Ô>"ÛýGðæ¡®ª^ÞÛGéýQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@û>|Ò¿gÏëþÑõÍCÄ6ÿÇÚoã|×úµµÍŸ«ûM~Ò_?iwC+Rbm?ÃßÅ}CÃZMËŽÞiZMÝàsΞWÂðNm[UÖ¿gïWƧšj×pþÝÿðTÍ&Nöæþæ-+@ÿþ× ŠG=ÔË¢èv£é6JÂÛNÒ¬,Žû8Ꮅþï ( ( ( ( ( ( ( ( ( ( ( Ÿpýª~j¿ŽÃøF×4ÿ]èŽìqñŸkýNÞæêÚãJýkÏߎ»¡Ç©®¡â}áF¡á&á¿Ñ¬õ]ZÊîðH'èúøÃöôñÿŸüð7Œ âCÃÞ£ûgÿÁ7ü}©iw7> +ø¯ÿý>üFðô$r)Óü]ð÷Æ>(ðЬDiZÕìqI¬ ÙôQEQEQEQEQEðüOþM×â7ýÿüÿ^ûdWßõðüOþM×â7ýÿüÿ^ûdPßôQEQE|ñþRûÿÙÁK?õ¢¿àµ÷ý|ñþRûÿÙÁK?õ¢¿àµ÷ýQEQEQEðíÿ'ÿÿ³ÿøÿ®²ÿWßõðíÿ'ÿÿ³ÿøÿ®²ÿPßôQE~Á2¿fÚø&ÿüÓÅßÿà£?Ž+}_ö#ýuÝ'á§ÄO±çþøSNÔ~x +þÏÁLøðã÷ ŽY Ñt©üCñ·Yñ€ú]€rë1ÖugÕäûÚöýõM"ÃöèðÃÍOá&¹¬é²ý²g»è|'kiz·íð_Æÿ<ið#CÖuiìô?âNñãÃK=GQ¶Oøá¥£Ú]_×ÿRøËÂ6ðNø%ïÃû¯øvÛÇz÷ü{öUñ~à¹õ6kð¯ÀÚ?üM¥øzKÕïü?áÝ_ÆÒõÍfÖÒ];IÔ|Oáû+û.u>;«?jü!ðoìáñ×Ä×LàðÇâ«ÇöZço|7šiú÷ŸÅ"Hu[ÏØÝËáí3EÝsSÔí4K»ÛÛ{i@=Þù³ö3ð÷Å ~Çÿ² >8\]]üjðÏìÙð3ÃßîïŠkë¯:/Âÿi¿./.äiîŠñe¶%ÄÍ#޳3¹v-žý'@Q@WîÒåçÚæÞâKYLIÑÊöÓÃ:ÆÌÐÊc+AÆ +X¯ãïáWí)wÿ×ýµ¿à£µHuü<ý·Ÿ/~ÚÃÏœæèŒCûwþÉ.±áÂíÜ5œ®¬~Ò_ +~)¿ ŽÅ7;oõ¶Ï ³Äý~Áumt%6×\'ÖsÑÌ!¹íÞ_-Ë!e öÉ8u§¯ä·öñGÇØ¯öñWìµà/h·ÿ¿h/ø.GÅÙsÅŽ<=sãmCñf¡ðHøÙñÃâëø`êþ^ñO®~øÖ×Àz£©Úh¶Þ*ñw©YêzNq¡j?a|Vÿ~Õ?5ÚöJÔ|[ð÷â7Çÿ +þÕðO_ÙÃàí#|6MÂö:ü/XK±ñ'ů^ñUŠªøãàŽ>øw·uo +ø{Ç_oøZÚ»Ðï\~4ðtÞ!×|#<5/ü-£èþ"ñ7#×t·ñ|?âux4 +w]ÑVèêZF®O kÐèú¡moe©Ë¢jñÙO;é·â/íðàÿ~x/âßÇÿ|cñw[O +|'ðÄ_~ðG~'øKÍ;OÃÿ4/kZf©ã]nKý_I±M+ÃVºû^ju²Àfœ¶I¯~üKÿ5ïŸ/øqûMxÀ_ðHÙ×Å]Ï>éZ <e izüV°ðÅzwuøŠïbÔtí{û +hú÷n,,eÐm/£¿Ôµ/£<qàoÚkÆ_ðXo·?>4øÂ:ä_ðHo ÷ÃøÃàŸâï +銩ñã|?}{7ì®`Óaø¿áâ·®XØŠ¡y¢ÛiÒ# iÚñþh¯ÆØkþ +9ãۯǿ³Vàm/Dðí§e}sâßíë€]YE{«ü6øù{ãÍ[à'þiæBáŒ;©Gñ[á?í+âmR]@6€þøgá=¶Éiã<t¿oÛSöðOí_áÙöpÒ~ ézëþË^-ýŠuïü9øgûEøTÔÏÄ;_|þÕ|]àý3ÃþX²ñ«ñ?ıM©xX¯|¡xnÏ©Ýë.ûþ.ð¢x®¿ü<8ºðõߌúÖŸ+žð¥¥g£_x«Íáë=_QÓô«œj;6Ómõ+û;®RêꡯçXý§Ÿ'øö±ð/íñË஥࿿àÝïÚ7öø³ðÚvQÑŸ!øãÀ¯4øeŠ\Ë.¡,yñšè:D×2ÝÜ€Ú=ÑàJIû;~ÝðP=wÀ>%|HøâýgáÝïü³â/íK¥üTñìåmðcÀ?hÿ +xwAñ7Ÿü?ßâ/îþ)üñ®âMSZðÞ«â)ÅöÐ|>}K_Ÿ·ñdPhÀÐÝüëü.ý ?à©?|wûx+Pý€¿g +þûüFý€u«ý+ömÔ®öká%ì³®IÃXµL¿|Gã}'öMWâ(Ñ|/¢kVW>3Ñ<:ºfoðïXá4?ø*WíiãOÿðN?ÛYk2|fý©gýºSâÏÅ_¿->)øMöø«wðe®Ÿ|׌m§øsIñÄÝkTðŒOqªê~$Ñ< Yx³NÑŽ€ÔŽO@þè¯Àwý®ÿà¥^7þ ð{ûá¯ìÅñóö·²ýŽ4o×þkZåÇ,ÿfóe>(x?áe¯m¥²Ö~!xn8<} ü?׌y.€iúþ·«ÙøjëIןzñoí?ûu|\ðì€éŽæðÓâfÿ¯ý§à¿>!xCá\6ÚÇ-àNûdxwÂ7ñoÞŒmcŠÙiz¥Á{=WÅõÏ +jŸ0Ôô¿Z_éøOLÒn?§Ú*œ€wZÛEwp·wqÛÃÕÚ@-êá#Uámå[u@Ò,YAaÜ.ãb +(¢>pñGÁ +W_ý¯>~Ò0ë}Ÿð£öoýª~jÞåµ][Uý þ'~Ç<ѵË+µ?dOðõ§ìË®Øjvósusâ}&[R"³ŒÏÑõñ|ã-;þ +û.|-±ñ¡mð÷Æ?±íéãÿxR7iZןüpÿoøwÀ!œÆemCÃ'ÅÚné*G·µe9H/³è¢(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢(Çþ|HøqñWÁz×þÙýÃ_ÆÚ៩ö$^ßñàßÇß~1Þ}TžþÑø»àojÛd|Mö¯øI'gVØ+åØÇáŸ| ñ<woë_µíçñzÆ=2þ=FÙŒûAþÜ¿ŽWÇ¿3Éq¢Çš\ü=øá{ZÀ&ªË{ŠJÏ-»}_@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@xÿÇøS_ð è¿ðœ¿áÿ#þìõýÿ /ýÿþïÃOøg?³}÷ðÃB°ÿOwî?á*þÆûWú/^Á_~Þñįþðï<=šx[Ó¿lÿø&ÿïŽÝ1#æÛÁ¿ +?à¡ÿ²çÅ/Þ!d5~ø;Å+Õ1=+Eœ(åR'û>( ( ( ( ( ŸÿiÿɺüFÿ³ÿÿ±ëÓlûþŸÿiÿɺüFÿ³ÿÿ±ëÓlûþ( ( >#ÊScû0ø)gþŽWüvŸÿ¯>#ÊScû0ø)gþŽWüvŸÿ ( ( ( Ÿý²?äâ¿à¿öÿÿõÖ_ðRÊûþŸý²?äâ¿à¿öÿÿõÖ_ðRÊûþ( ã×þiûBþÑ"ðW.ôߨ³Æ3ý ŒûþÀ>§Å?¿þ|4ðgìmáoÙÇÀÚ§Ã?ø^xŒKñ+ãN¹áÚân«ñâwü{á¿·zC|)œžÕ<mðcTÑì? þÊ_þ5øßÂ_?n¯ñµ¿ÃÿéŸ3øaû,ü°×ŽïÙÃÀŸ5ѧ·Ÿðÿ|¬ø¢ñ§í'ñÁú€©ø'^ñà/>Õ¡Ó|WáϺGÄ +Jñ¯Á2>ü,ñ§ì ÿøÙâ +A7ÅoðO¿ÙÏÀ8Óõ_D×tÝÇ?²çÃÝÅÕ.4Ký=|Sàr?°ê× +ñTz× OŽxÂ="?øSúŸú±@Âë>ø{Æ>øw¯üDð.ñÅ=× Œ¬x·@Ó|câ[hë-Çü1{šAë0FÖ·*óiÖ71¡·3R?_¥ñä"øàI>'E§6±/Ãü_á÷ñäzB"Hú€]@ø4åÑÚùŽálšèÆP¬ î謌Yák'L× ñ/æÐõ»>ËFÖ¢Öté4^óVŒOÒ4ÍE.ZÎþëS¿+>ÞÒieœŒ;kdgT4t¿ø\ñ>œàÆŸÖ<eáhî<Oá-/Ä6¡âAv@Ž^Ðm/fÕt®ÞMBÒÝ'$³@m|Ï7ìoû0ÞAªüð³i+ÚÿG>+MGÅ ~Ò·WGâïÄ·ú«xsÄÖ³ÝÜÉŠ&tý+HûD«¥iÖi#)ùöPÿø³öºÐü)ñÁ°Çí=à¯4Ó<sªèŽ'üiû!CàYlü|McæÝø3ÂŽçþ9Ú§<Eáü7€©øI%Ä×ÖwúÅŸ¡VÛÛ¿fÛ/áÇǯØÿötý¯ü_sáß~ý¡þxÇÚVãÿèVÖú +÷Ä +cMðx§TOéÚά$Aök;IµI ²P¬x§öý|aà_õ)áÿ_®j?^i>&xÅö?Ž=ĺ$éñÀ>?Ðüc§øçáW4ù|;€>š|1ñbÑVšt«{H5MV+Þb?ø&×ìrÿ~+| Ö~êþ1ðwÇ/h¿>-øâÅ?~?øœã¿müãœgã¿|s|h_øü+áŠø¯ØxîÊÿÀCCÓcð|º,V©úïÅ<à{;GÆ6ð4û"ãÄ·Þ(ñ&áû;=Î÷NÓnõ»«ZöÒ}"×QÕôJgK8/uM:ÖY{Ûhå©§üOøk«øIðñÀÚuïEãmÃZtßk^Ä ñv£[jê:&3À"×ìíŠÒ€3Dí|/ÿŸý<+á¯Ú7ÃÿüUâkÏúgÁ/ÚkÄ>>øëû@|Gñ÷ÆZ5t7LñÄ|Qñn5M'â?tx|e§øÃÆi£]i:2ëãKð· ,ôO§ôß Ž?Ž6áO³ü`Œø?áß>/þÝñ,ŸgÂo ø¯_ñ¿ü)ý>±/ Óì(ñ>¹©ÿnÇ¢/nŸÝö+ÝbçN¶³Ž·ìì|àMOÅÚ¿Ãý7ÆŸÔ<yáû}S^ðM4k¿heçöMGWðܲk:m×Ú-þÏw{e +Œþ|>TæŠêP|Qøgsâ=ÁÖß|qâïÚjÚŒ-Œ?/õë +îúÃ]œÑŽ8õÔõKMûLÔ¬µkYáÓ®ôûëkÇkIÒ0a/زÏöMŒýŒw«Yx/µÿíqñöñíÏÃû}A4;=+ÄÚÉÓ>x^;ÍVÃKÔ5í#ÁZu¹âë·Ó¬í/>&ø³â«ŠÂlu8f×þ?~Çßi]wÀ~0ø¢øÏMøðÂ/Z|>ø§ðâßÅßü)€ø¹4øü]áÍ3âgÁ?xÆÇÂ*IÓŒ'yÝxoVNÓ¯®ô¹5 +7O»µËöåý?á^ü~øañ³ÁúßÿfY|kDºPÔü#©|6µãÅZlz"@º®»u·VfÞµÔí|EÞZèΣªL¶µêÆ_§>ë_Îð+Æ?,4c£|/øãXxÆ×Äúœ¥ëø~ˬM¥xÆz1œOÖ4ï ßk¶±êbXtëíJÓì÷× ®û'üð÷Œ/ñ"/jº÷ü!ðWýô¿øóâÄZœïÁxÃþ-׌â»~.ñ?ü'w:×<-¡ê·ünŸ!ñŸ¡öYnüI-¡©[]ùgÂïø'ì»ðsß0ð?4¶¿ +<eðÇÅgøE¯~ÓŽÏŸxWᢎ_ðÃ?Þ0ø¹®|>øWc-6=ßÿøkVðŠ×u +Cº¹Ó¥ôþÑö>&ýþ4~ÊIá[«+ÿ¿þ|rºñŽŒ3Yk¶<kû@x6ÓðèÂ9Žû +IðïP¹Ô€Ôî¢Ôãñ%œŒvvMŠK-ï¬è~øÃz¿|7ñ#À^ ðu{c¯x«Dñµo +èÚhµ=_\°Ôn4Í6ëOY¢7¶÷PÍj%Î\yïÿeÏ>׿gÿx{ÀßÙúßìµðÅ_~^ÿÂMã¿øA~øÚÏáfâ +}ûÄ76'þÓŽø+ðÊíß󿀦_ðy~±i.³âÕ|VÿsþÈzÂoß->xÂø5ãß|OøAxâïÆ_|Rø_ãß"ñ|}â/|jðÄ +âÿ$ñn±ãïwL°ñŒz&¥¥jïáÛ2OÚXiV¿Gê~i3Õ5_¿4Í3áÆ¥ñQÔ<}áK+ë2y6ÚWîîuhü/©\JPXëXÝK ÙLÜVç>#ü<ðFŠøÆ<ðg<?]Øiú>»âhz«_ê±t»-7SÕ¯,¯îõ(€°¶µY¯#Röé"hÈ4Ù+àwõÏŸ+þÅñ§Œcû3ÙüQ²ø;ã_~1üNñŠÆx µø.¿âÏ~=ñ6¿ñïÄvÖÖöÑÞ|F¿ñ]Öko¯eÑm $óoÁ;?d|8¿ø[ª|9׎¯ +ÝþÓ-ý²,µ/üXø¿àø_öñÏ<Qã¿übð'Ä¿ +xóHøà/ê>$ñ¯gÛÁÞ%Ñ4-7Kñ©áÍ/H²ðåËi5õg>!xÀö·×Ÿ5ñÇ<!e¥éâ +NïÅ%Ñ|?k§hßZirk×µí€VBjwö:sêWß^ÚZ4ââæßÌ|cûS~Îߌuðá·þ0øÃþ3ø÷¥ø[ø?¥_k<w£xWK°ÖuWIÖ!Yt8ŽøôíRÂ}:óPÔ¬à×å-Ž95+ ð(ºÚ[%¥µOq,vðÛG%ÝÍÅíÜk=ÍåÜ]]Ü: i®nfâyK4#³á¿ +>;øwâŸ6ü6]3Rð¿ÄO~<Â8ð³-×rh~$Ò`ñWÃ/z-ÍóÛê^ +øàÛÛ}OIŸ€gtßøTø/]·Üš¢ü ðÿiÚSöýŸ¬ìÿo¯Úà~þÓþø)ðÛá·ÁO~Â×ÞÓ|+û~Æ5mCPÕŸ<~Æ~"jÞ ÕŸ"|qñÕõÕÕ÷€Óôé4/KÒŽëm8 >ÿÖ¿áMÂýøiý¹ÿÿü4'ü)ÿ?ð¬>ÓçÿÂUÿ +kþOÙëþ·ö6ßô_øGÿá7ÿsÿÎýÿöü"fýßÚ«Ø+óRÿrüOÕþ)ø7ã^¡ÿEý¿î>&ü?øñ/áo|Mÿgü*/ì|`ñÂ|Eп± ÿqÅáûÿøHŒAð;án¡ý§©éWºÆÿ¿Ùt-CL²ÖüEm«óþ,ðí#û5þÒ?°-çíõûOü~ðOÇïÚÇÿ>$ü6ø×àØZǺ l?aoÛ3ãÆšiú·ÀØÏàwÄM'ÄOÄOÞŸµº±ñÔzuÆ«¥êV£mšêýQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@(~Æ?Œeñ¿á<gã¹ôûoEý«ÿo?62iéÖËàßÙóöåý¢Ÿ|9KxÙÖMBÛáïÃ_Ûj×ä5]V+ÝNUIoêúñÿß +þ|*ð^µá woðÆ©ñö øªOý·6|GøÉñ÷â_Åïvo -ÿ³Ÿ.øçÇö!"_ýþ¹Õ'ÒdUö +(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢+çÚ§ã~«û>|1ð¿4mOñ +Þ¿ûH~Ç&°Ôî.mmô¯ÚköŒøû7kºärÚ+jÑ>+ê%ÒmÛýóUÒl/Žr>¯ý þi_Žôëæ¡áëMãìÉñŸý2ÚÚêæãUýi/ÿŽ ¡ÉÑ.â}oáFáZåOÚlôZöîÌž Ü(¢(¢(¢(¢(¢+àø&ü¯Äoû?ÿø+þœ7öȯ¿ëàø&ü¯Äoû?ÿø+þœ7öÈ ¿è¢(¢øâ7ü¥7ö7ÿ³ÿëEÁ'kïúøâ7ü¥7ö7ÿ³ÿëEÁ'kïú(¢(¢(¢+àÛ#þN+þ ;ÿgÿñÿ]eÿ,¯¿ëàÛ#þN+þ ;ÿgÿñÿ]eÿ, ¿è¢øþ ;ÿ(²ÿiÿÙ~Æÿúοkïúü!ÿdÿÁ>~xÓþ ·ÿùñ±ãïÛ~ÏWñgìAû(xT³ðüÛþ +Ià/ +Úê:ïÀoêÖÞð/jÿx'Á~æêXŽo ø;ÃÚ |9§-¶áíKÒ,ìì`ûþ§û:ÿÑFý¿ÿñl_ðTßþüïý¡Œ+âðTM?ãìÙðÛÇ>#ümø«û-ø/öøIñcö(øâ?zwÃFÒŒ9š~Ò³·íè|Šü8øA©|ø{©Ÿ¥âZÏÄhþ'ñn¯i_ ô?^%µ¹Ö>\øÍwñCÇÿ¶?ÀOºìœãO úßìÿÿwœÔŒg€|(ÿy|_ÓµK_Ùþ}3ã'Á]öñ·í¡höñâ×ãÅ>x§Å_Ã)"Òü+áßG¥|CÒ/ øY«øâÛ?øvìëÿEöÿÿűÁSú2(ÿiþοôQ¿oÿü[ü7ÿ£"?5¿gïÙ§öÓm±ûxá§ŽOØcö1ý¢~5~Ýÿ~*ßxjîÛá'øó¥A~Ï_³ÿ u¢±×/¿f_?i¿ê:4zÌ^²ø{û?ŒqGy€O¿à?²ÇüñöBµý¢üQûDxCö°ýu/ÚkOøá8`_x_áÇÅ=âñÛâ/ü{û{èî~|^ø{ñ7ÄÒèß<šk_%Õ|EñOð>gâ}>ãFŽý®ÿiþοôQ¿oÿü[ü7ÿ£"øvìëÿEöÿÿűÁSú2(òoþßoá¯?Ÿüñ¯¿àšŸý£/<ñ«Â~"ðÅïÿðP+öQðœýïüwãy4«ÿ|8µý<"×Úðæ·§k0ßêÚËh-äúßÅçÉÞýŸ?ø?àGüÓSøÝáÞ +øà¯ø&6œû>|Lðüß°Ïÿlüøýâaðöúÿ³Rx+Äߌß|áí_À/ñÃÁ¥àÝC÷> +×ÃzGïîo¿¡_øvìëÿEöÿÿűÁSú2(ÿiþοôQ¿oÿü[ü7ÿ£"?:Ÿ~ÂÞñí/ÿÄðÇÄ?ÿi_ÙÿörÿY~П ðïÄÚ{ào<>£âÆ_سDøamñkÁ|1¥ÚøoâÿÃÝ'Æú<ñE·ñ<PøgTñMНá&ÕtbØ{Zø3àø!tÙSÅ_~-øKöý¥/?i?ËðÄz7ÄxXýÿkßx^!¿Ð£ñO >Ë? <àý+Æo-!øsá_Z[ÚEá9lÿáÚ³¯ýoÛÿÿÅÿMÿèÈ£þ§û:ÿÑFý¿ÿñl_ðTßþüPÿ{~Ëþ;ðíû<ÚþÓŸ/ý¢ü%ûW~ÏÿŽíIã[h¿°þ4Ýü^ov÷<Wû}xSÀzÏŒuðoâ§Œe¥øÏMµñïÄ]7TÑüa x+ÁúâhZ|v>þÂøàü×âû)øFý¥áóÞ=øñdzü$ñühð÷ÁïÚ#öŲµ×üYâí_x;àÇÜOÁV©qs€|6Cñ&®G6¡ª~ÓÿÃŽÿg_ú(ß·ÿþ-þ +ÿÑGü;Oöuÿ¢ûÿâØ¿à©¿ýø«ãÙîþÎðWï ^ýŒYðÿã6ûmYþÖ6z¶û9x£ÃÚ?Æ/ÙÁ¿fïÚ2÷Ãÿ~0é ·ðÄ»ox?á÷ÄÇðÃ~1ÕüUkâXõ}2óÁ1Ë(ûVüàeçÇÚ÷ãþ$xÓâ÷ìyû\þÁþþÏÿŸþÄŸ(ýŒôÝ +ÚMcâŸñÃŒø[௟.øãO§ŸüZø}ñCFÐítïÍa¢ýÅË|5ðöìÏü;Oöuÿ¢ûÿâØ¿à©¿ý¡Á-eéðÏnè:T×KÑ4/ø*üHÒ4Û`ÌâÞÃMÓÿl+{+8»°ÞãÌÁrÄÍ_ÚÃönýª~$ÞÁNtÚ_Å}KÅ?à?°_¿<KáísÀÚÅïx;âOí©|Xø{eâ-rÓEÒl~-xÀ'³ÒüIáËGNÔ<%«|JðãøûÓUµŒ?(üMýdñÇì!ÿYןÛ~Ôþ<ø³ñ·ö +ðgÂÿg ?àßcm*ÛÄ_®ŒrþÒ|'àH~x{Ã_~4XZxËSðVŒ>^xÆaám«wy¡ÙøvòÞïøvìëÿEöÿÿűÁSú2(ÿiþοôQ¿oÿü[ü7ÿ£"?<|[ÿÜø +ŠÿÁDük¿c/ÏðFÿXK¡xjEø;ý³ð«UøóÆ_zm¬Ýæ}á|{À>*Ö +wÄsk¿ÃŸ1ñÔzŽñv·>§ð¿ìåû@é¿àz¯í + |kðÀþ à¯Ù£ÆÚ|°÷m|ý¡uM#á×ü,=âìõ<[ñ+៧ñÀºNàk>»»ðþ§à +GÀ(ŒðÝ¿×Pþ¿áÚ³¯ýoÛÿÿÅÿMÿèÈ£þ§û:ÿÑFý¿ÿñl_ðTßþüÖøGûøÆ¶_ì€üUø]ñ#öý~Á!õŸøûPüñŠêô¿toÇñ{Á<3§éz_Æi~Áâ-zÏÀ¿Ždñ-Š¥âhôk]cE:¥Ë??gKá׿à;ý£?d¯Úÿ Ÿ é¿¶/Á:¿ìÉão^,ø7/çÔ`ý-üðÛLð'þ øSÀ6Zñ +ç £ðÃùu-QœŸðîšÛjUûÿÓýè£~ßÿø¶/ø*oÿFEðí?Ù×þ7íÿÿbÿŠÿôdP+ð+MŸñüßöéøÇáÉ|6ð×ÀØïöXÕ¯m]ßLñ/Ç/>#ý¥Ÿ4xé#[]^øÀŽ_Âßj0ȶÕ5]SÃòÜ[êzaoúS_ÚWüëö]Њ³ÐücûvèÖw:±\Zé_ðU?ø*m>±âV÷^×õi ³ý°á]K\×5CYÖ/ÝëSÕoïuÙgŒºi4¿áÚ³¯ýoÛÿÿÅÿMÿèÈ +µ¿üÃ?±×ÇÙëá¿Ä_>$Ôþ|]øgû@|Nøñ×@ŒKÍ+örð¿ÁþÍ~O|Ið¢iïšÍð«Qñí#áë?øÿIÔe-bñW46ð^.ñû^Ùê_¿àªúwkšiúííðÆöÂþÊâ+«;Û;¯ø%oüF{[»KšH.mn`&âxŠÒHÝ?üvý>.~϶ÿìÙ?ìIà_5¿²íÅð;ÅÿjßÚ_ö±ý«þ~βø¿âïìâmÇþ>ÚSãGÅŠÛOá|Im#áÃÿøãïôøÄ7>ðÖ©ã¿Þåÿý|'û!ø(oìßà}wÄÞ&ðÏ¿Ûáþa¯xºòÞçYÔŠÔ?àðN_j œáÝjúœü^ðO ŽÝÁ~ðÌzG<¡è~ðþ€Y~ÄWÀ¶GüWüwþÏÿâ?þºËþ +Y_×À¶GüWüwþÏÿâ?þºËþ +Y@ÑEQEQEQEQEQEQEQEQEQEQEQEðüIÕt_ÙûⱊjMÜß·ü3V×S²¹°¹J×ÿà§?µæ»¡jqÁuRɧëZ&£§ëMê©¶Ôt«û-BÎI. O»ëÃÿgÏúWíà=Ç>šxzÓ@øáûMüÃS¹¶º¹žÕf_ÚKâÇìÝ®ëËjK§ø[øQšxI¶aö=+V²ŽŒ&î É÷ +(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢+áø(Ϊ迳÷ÃÛÍSÔ4¹¿nÿø%5Ö{sas.¯ÿÁNd=]Ó$ÖH¥OÖŽMGPÑõk&cmšéW÷º}äsZ]Ow×üqøðãáWô_üT³û5O³×Ã}.ìHŒA³â?ÆO¿ +>üŒûÊÉoýñwÇ>Ô?¶Àøgì¿ð@É>(°QEQEQEQEQEWÀðM?ù7_ßöÿðV/ýzoí_×ÀðM?ù7_ßöÿðV/ýzoí@ÑEQEðÄoùJoìoÿfÿ,ÿÖÿN×ßõðÄoùJoìoÿfÿ,ÿÖÿN×ßôQEQEQEWÀ¶GüWüwþÏÿâ?þºËþ +Y_×À¶GüWüwþÏÿâ?þºËþ +Y@ÑEðüwþQeÿÓÿ³ýÿõ~×ßõðüwþQeÿÓÿ³ýÿõ~×ßôQEQEQEQEQEQEQEQEQEQEWÀ±¿üWüþÏÿáÇþºËþ §_×À±¿üWüþÏÿáÇþºËþ §@×À¶GüWüwþÏÿâ?þºËþ +Y\·¿à«²ß|Að{OÐŽÿÒø3öø¹/Á?ÙûãLÿŒkÁ/Ÿ7¶ÆÜüE[94ŽÐËxÄèÚß#ðýô«Aâ/·|6·œ¿Ï_l ?¿mø&猥|EÔü7ðëþ +Eñ¿À·Æû¿Þé?õŸÿuÁD>ø¿á >"jSÛCâ_è><×?áÛMÓ¥ÑïõýÅz>jz õ»[0ÚÚ+ðïþM'd_ŸþË¿to:gíCìað+áçÆmÄ^ðWÄï-ý§5ÙwáÝß°ì~Î^"³>0øàÝ:Þ_øO²ÔŒ#%ýÏÚî_»>xCöôøu¯ÇãÏÚWöšýþ)ü5ŽðÇu_ŸþÉ3øY©höº<Ú +ü{š~Ó_îî4ö·œŽñ5ÍOÄ:h3Û^øzýûºüÔøkÿ\ý>-üöð.ñÓSøQâGáþë÷_þ iŒsñ®í|5àÚFŠYê|M¡êÖW/äÑ-O<{c«]ëŸ ¶ÑtVÒûoøxÿìÞ> +·Åóÿ4Þ/ÇY?eÖø/ÃOOñð~ÒqJæO+ðÆÚ µ <hJ?ê+·ðø~ñþoøB×ÀÞŽWã7À_ø)u¶¯ñ+þ +cã÷>=ð/ÀÿÙâoìœà_>ñ¯ÁÝsÂ_4={âßÁwWß"ðDü&=ñ¯Ÿ5øšh¿tñâKÜkúxTÕ|1ªióý +®ÿÁQ¿e/|ø»ñ³â§ñáû?|Søcðw㯟%|=×4ß üeñTð +Ãñ_ mRi<3â{Þñ.âïÞëÃÕêjMu£k66¢tWãÿÅ¿ø,Á/ÿ³7íñ÷ÿÿh}cÅ¿±_üão|øð§Æ~$jø?ÃG§xÇÃ×ZðãÆáÏ4~)Ö4%ŸÐŒFŸ$ðî6äËôŸû[Ûx§ãÿìÙày|EðÞÃãgÁ/Úkâiø7ñ_à_<9ñRŒqðÂO¯ÿjÜëÖÓŽSãfÂZïµÝoâ&âßkÕ4[=P·Ö>颿:4Ïø(W>"Þ|møYá¿ütø;ñ¿Àÿ³g¿h¿èþë +nüiðçI7Þâ tÏ çNÐ<dúâ/xºÃÃ,Òn5œ"=WÃCzíþÏðR}9ÿfø'lߌ7ñ{ãíIûRþ¿¿jOxSàÂsâV +Søsð¢ãâÅ}wIÒeÐ|7á +?ôÝ6ÃFÒç}Zö÷U];ÂÔ ÓîÐõÎø{Výšåÿ®ø¿ðÍµßø/àgìû;øsã_í/ãÿù ÂAñVOÞx#Âðê7PÚx[AøuðëáWþ'üIÔî-nno-ü[ðÎÝ7O¶ñ,:§Ï?àŠ> ñWì¿ûfxà~ütøAû|Zýþi¿>êÞ¿ñ_l>xÓQøuñÂ^ñ¶Þ#ðzxÇA²ŽÕôMvÒËÄ%Ìú]|'£Ã¯éIš~³Ñ_·ÿðRO¿Ÿ|$âä|sñïöOðíKñ²?? +|AãÄøYðUÐaþÞøÉñßÂöbÓú×tß>€éqê'ÖŒ+⹌-á]VËûÙn|oÿ¢~Ì<rÿå·øÃñoǧövð¯íagá¯<añr}Cö|ñn±ãÍÏâ|¬äÐ|5a/ï\jwº®«§F©uá«Ô5¯øwJÔ@?Eš¯Ï_ðTÙ_öøà_¿®~*Gkñwá¿~*üø¥ãO;ðÁÿø} Šø yðÇ^.ÒtÁã/ÜëÎËLŒ³»ÿÃÚ¹cgwsïÁOø(çìÝñçÆ>ðdø¥Ãñ/áÿ~+ü ñŸøÁþý¢Ÿ|9ŒÐìükãO~#ÕíâÅZN(ðƯöú®x_ÄZO|5Šë^õž>ò¢¿/?gÏø+×ì ûNx«àŸGñŸûEý£Œ1âoà_Ä¿|øá_ üEà_ß|Cñ¯Ãxß]Òìôï|Ið§ô_êzæŠÎgyáøpëâê%¿§Á=ÿníöÿø?«üYÑþ|Zø5ãÏ~OøáÍRÇKÖá÷Æß +ïÂÞ(œÒtk/Þ ~M{ã-ÂÏÏø}¯j¿ðj÷%íÈÞŽWæ·ÇOø*¿ìÃðâ_Æoþ!Ðh_ø¿ötÒ|1â¯KðwözøñWEøCðÿŶñý¯ÄøÂ:%þ¢øBÏÂ÷šÝK%ÜÝâéºøÐtMhxgÄM¥öߎüSàgìéá]âgŒ+ñËÆoŸxSãh ß|Kã>øQã+étø«ÇÖ+ Æoeo'uí+ÁÑx³Å^ð|,×ü?§h:Æš}çE|WãÛ×ào¿j?ØÂ-7âÏÿhô_ þ/Ô|-ðûá?|a¥x[áçÅ_ø«ÃWÄÏx·K°xOÀ>Õü#}ŒA®êI¢6£¡E×Zœµ¹ÎøYÿ +ýŸ/üYð¿Â_ +ËñÖo7tï¿<GðóÄ:Â_ÁK»»O:ÂÞÂ,<W7 ÓNÕ5[yäN±ñôcÅ~»ñ_t«ýZÜîZ+ùÂÿÁ]¿d/ðOÛ?Á>ÿ ×s£|qýÿnï_>/ë~!è5ýþ>øUø/ÅM[IµðÝÇÄeÐ~øÓS]3MPÒá@¿Ð/õ/A&Œ/þÁ<¿iÿÙßöŸøû;ÿÁdÏ¿?e_|fÒtMãüçà~/¿ìçñYÓ|CàŒEsð¯D_x³ânàÝcÂúký§¬ü×|KŠêº¬>':$úNšûÑû+|ÕgÏ>(ð³®iþ!»×ÿiÛã|7úeœÍµŸûM~×iC+¢emCÃ'Å}?ÃZµÂÿ£^jºMíÝÀÑõùkð_þ çÿøïðwá?ÇÁ6?`üñá§>+x:k¿ØËötîo|CðŸâïKs +ü;uâM'XŽy£WpPÌM¿ø'/ Ÿ'ÿÁQ~üøiðÿàÿÃ/þßþÿgá×Âßøsáÿ<;ý·ÿÊÿqøYþÂðôÝ#ÃúGö¿5}W]Ôÿ³ôû·ë¡©Ýy···3ÊúEPEPEPEPEPEPEPEPEPEPEP_(~Ùß|eñ¿áüàH4ûoEý«ÿ`Ï×ÑêwñéÖËàßÙóöåý~=üF;ÖMBÛáïÃ_\é6 5]V+-2&Io×êúùCöÎøœã/<ã?O§Ûëz×í_û|!ŸS°Q¶oþз/ìëðâ4ÛÈȱê?~%x¢ÛI¿É¥j²Ùjq+ËfÀWÑEQEQEQEQEWÀðM?ù7_ßöÿðV/ýzoí_×ÀðM?ù7_ßöÿðV/ýzoí@ÑEQEðÄoùJoìoÿfÿ,ÿÖÿN×ßõðÄoùJoìoÿfÿ,ÿÖÿN×ßôQEQEQEWÀ¶GüWüwþÏÿâ?þºËþ +Y_×À¶GüWüwþÏÿâ?þºËþ +Y@ÑEðüwþQeÿÓÿ³ýÿõ~×ßõðüwþQeÿÓÿ³ýÿõ~×ßôQEQEQEQEQEQEQEQEQEQEWçwì¡€Ùëßÿà®ú ²>¬þÝŸÒo^ ZÏQÿTÁ6,îV)£"Hd0Ìá%B6!Ô¿DkàØßþN+þ +Åÿgÿðãÿ]eÿÓ çÃàM¯ÅWñ¿üþ íàoÚöWý€þþ͝ZÅKÏ7Á_? þ>xNøûWé:îeàïÙÎXkÞøv<7%Ç.>,|Dñf©xk\ÒlŽûý+Pêüyûx?þ ûMþÃ^3øçiû'øoödµÿ§|qøáoÚ÷â·í1ã>!ðîñsöjýŸ~1øoáÆ>9ðô]_À~5ÖßÀt2øóÄ~øká=GÁºÿ<A®Zÿ\uðíÿ'ÿÿ³ÿøÿ®²ÿPàÛø«ö<ñ'ìÍûTþËÏüoþ QàkÈ?n_~Þ¿°ÇíáÛà÷üA üS׿jmwö¶ð^ñàö±}áÝ'B·ð.mŒ¬]øcâ/-üká-cSÔí4ß +ëe€7ÿmü>ÿœøGâ*êý¡?jïø"'ÂÏ +\xÆZ~!|.ÿ²x+âœ÷üYšørëIðôþøâ ¿ÁºÖ':®µ7ŒkâmgHÒhö~œzϬEýQ@ÉÄWþ ùãOø%ïüßöL¿ÿ Á*<CñÛöÿTñV³ûw|7ÑþüUñ¯À¿:Â_ø#Tñ׌Gcñ7Ãñ×<eãËøßMðTŸ!Ð5{kןÒ÷CœÇÅØ{ÿŸü@øûRÁ?g/³·íËû]YüÓ¿à«ø¥ð㥿g-sönñâüEøíâþñ¿~*kŸñTðø{^°øAñCðÀðvÖ#Öõdпj(øëøû+~Ñþýœ|Eñ×þ +£ÿqð×Å_ÚWöý?iïŸðíÏàÿü)Ð<Iû!x;á¶§ü-ø»¬jZ÷ÃïjþñE×eðµã¿[é:åæ«?ÄmÂ> +Ö-¬ŒgÛê^<ÿ|øÃömñßÃ~ÓðE_Ù7â?jØsãG€ð'üw@øÿŠ|Að÷ì¿ûCü0ø«âxÓÇ>ø{â +;Äx;ÁZÇ>蜊^\^iðøÄ^Žy4ßëvþWÿjßþÁŽn§ÿuOÿ²ÿÁ/Œ3£ÿÁ@?c?Ù§özøI{{ûh|ŸÔü)ã¿6_ŽãkzÄm2Åk§øKUÔ~0ø:.ûÃ:¿5²µñ5ÍÞe>¥Úk~ãOÛ'övøËñÃöný§5ßø)çü?àOűgí»ð+Å>ý¿Ÿü^Ò|ñ³öÖþÝ|&ñ¿ï<EŠ|:Çðñø?{âOZx£Kð~§§^ê_ŽëZ-÷úY¢?¯ÙÇâÀ|kðÆ¿ðQ_ø$HÖuÿø'¿ÆØ¿ã¥ÿÀMñ÷Çþ.øâÝOÀÞ6ÑÿhcâOþ²¿Ô4ÿxÃÁhÚÏÂášéq|8ðö±³¢x«ÅæÂA©ñÅ_²'?b/Økögðwíãÿsöý?c_ ?ŒûiiðV-;àwůÙsãÏ~xCáç>$üáß5}oâïÂëï i~!žøyâÿü(²øº&¡xËBÒÿíÞþÄh åÛâ·íÿÞñßÄÛ;àïÿàš?±Fð¿þ +[ûøWàŸ7xcöýÞïáÏÇ øð³Ä$×t+ëo¥é>|Dð×|m$á<Ið³Å>ÖuKk¿øZÏUðo>,ýŽÿÙ÷öøW®~Ò_ðC_ÿŸ)þÁ_¿d}öøoÿ_â-çŒEñÂVúúçÃo~Óàßœo]µ±ñ¯ŽíÇÿuÍVÓlôLñ-€Úóÿ`TPñçñià7ŒñÃöÊÿ9þÕPkß±ÀoÙWã_ÂßðTOþϺFâ_ðxŠßFøðïâÃm/â«ø³Ã(Ó<yâ +xÃÀ~5øw€I%áïi:ŽWwÏî~ŸÒŸ=ÿÁ;ŽÚ#â§Å?ÿÁI?à> øqãø%ÀïØcÁ_|?ût| ¿>ñïÂï~Ñ~"¹·KÍFÆ)ŸiZÅ¿ è~ñø²ÿûVmKÁZJÃdúôE.^øÿû6ÿðJÍÆ¿ðTÿø& +Ç?c/ØGã_ìñö=öåø6º§uÿß~|!TøO%Þ©o§ [êüUwq©xŒªÛi÷º +ÕŸ{w=þŠùwüûÅðN/Ù:ãáŒsûQÁõKà'Â_|"ð/íá_ø*F©|Yñqá8<£jóþÎ.Ñæð'ÃsÅþ±Óíþ)GáÏîõ޳ŒÓï ÒŽ_ëzþW>|HýŸü=ÿ!øKÄðUOø%]Þ¡ÿÖÓ<]gñÖmöãøE='ñì_ñwötµÒ^ßiÓëš9ñþ«]7-Œëák}Nþ5W×CŒô/Ùöáø/û#~Î?ŸxGþ +'ÿYñ>£áÚoâÄ~<ñGüOÁpé~;ø=ûBþÕÿŸ=|Jâ¯4}";ÿß|àÿ:ÖàËxâg<câM1µcº4WWwÓ +ü|ø·öþøGâÛþáßß¶ü¢~Ô^ +ýŸèÿhOÛ»Á +t=êÙRoë>>ømoáœâ/ÿh +3Áw¡câÙøá̶&ÓôíûÆVÉ«ßI ùGí9£þÌÞ:ø5ã¯Ùá×üsþ cñ/öu·ÿyüýfcâçü/OøZgü'øc«ü=ñ/õÙûá¥ÇþükÖŸ,ËoàýHøûÅ Ò|Màkœ'N²ÖtKìOkŽPàÀÛgöðÿí«ñÿöºøÿ%ÿ\è¿eOØëáSøÁ·ÇÁê^øðG^ý¢ŒGñ.ѵœbÙk^ +ûGÆ=OðWâ¶Óõ¯G¥j×ç| RÊÖóàßø'Ö¡ÿÒý~"|ðî¹ûPÿÁŒ}áoÙßÄ?á/íðU +~>ØxźÄx6 ?fgAÕ>éSÁþ-¶øcãíwFøß§è:ŠÖŒU£X.§vOëÂÿ<ÚRûã¿ü9oÁø©ãß~3ý|ñËþ +â_µ_ÃíwS¿ð¯uàÿÁSeoüžÖ<7áý_Jñf¥ñÃÆ4ð׿eßÒÅá|Iðþ³©|;ñUÿŸ"Øü9¿ÕGŸ~×ÿ²ÏÁOø(4þø°¿þ8þÑÿdÝ[áÿŒQuã]cÆ¿¶/µMKKð¯Æë? +ŽÏü8ðÂ_xѵ?üOÒ~$xÏNáÖ®Ëá2ûJÇPø¯ö§ÿvx·á×üûþ +œñgö¡ñÏŸ+]øOáü[âÿìð»Ã¶ú|4øá¿ÚXý¬þ<ÍñSX³±ÆŽ®¹€|]ºð¶©ãÛÍ6~oÿâ5_øÛâ7ôÇ@û1|°ýÿf¿ÙëötÒõIuœ3àÀïßtíjhŒµ{ ~Ð<gªKçòe¿·Ð£»-ïåŽÅ762~qýÿäâ¿à¬_öÿ?õÖ_ðM:ûþŸýÿäâ¿à¬_öÿ?õÖ_ðM:ûþ( ( ( ( ( ( ( ( ( ( ( ŒãÃ|¢øcâ¥çØ<1¥ü`ýŸ$isÿmÅáýÿþ +ü}øiñ{àåÛæeKíŸð>ý ÄßjÿnyõhÕœŸÿé:®µû?|=³ÑôÍCV»öïÿYêÓZéW7÷1iZüçöC×uÝNH-cXôýDÓµ +cVœeÚva{š^I +¥¬óF÷}Q@Q@Q@Q@Q@|ÿÓÿuøÿgÿÿbÿ׊þÙ÷ý|ÿÓÿuøÿgÿÿbÿ׊þÙ÷ýQ@Q@|FÿŠþÆÿö`ðRÏýh¯ø$í}ÿ_|FÿŠþÆÿö`ðRÏýh¯ø$í}ÿ@Q@Q@Q@|ûdÉÅÁ'ìÿþ#ÿ묿à¥÷ý|ûdÉÅÁ'ìÿþ#ÿ묿à¥÷ýQ@Á'å_ðM?û0ØßÿY×áÍ}ÿ_Á'å_ðM?û0ØßÿY×áÍ}ÿ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@|ûÿÉÅÁX¿ìÿþ묿àu÷ý|ûÿÉÅÁX¿ìÿþ묿àt÷ý|ûdÉÅÁ'ìÿþ#ÿ묿à¥÷ý|ûdÉÅÁ'ìÿþ#ÿ묿à¥÷ýÒèc,¡ÙYÕìQ]sšd3 .Yrê(¢(¢Ÿÿ¢üVOÿ°wíñNM'Ä:âxKHðeÃi^øãzýßöÄ¿è¡tï»°ñ3© çF»[ëX§Ò®X_Ý#}ùE~6[~ÙŽÇïÛþ +ZߊøIqûþÅ?þ|lŒµÐŒßôêŸ/|GÕ.Œ?øfËKñ6¹®¿wxNñ'âÓôH¬ìâðÄÆöýkÈ?gø,?þ+ÛüJÄ?þjMý Ÿ#þÚ»øc?Åù|9à=_áÍŠ w©~Î_üQãÿ~ÓuOÜÚø»BŸÑ|qàqâ}ÇIkáË(ôm.óYýò¢¿~ÿÁF¿à¡~>ñwìoàÃû-þÌÕ¿à ÿ³G?hË{ñ×ÇÚ_4Ï :Àœ{ÅzÇÙ¬~,~"µñ/ ~8èÚ§Œ+ð«íÚâXmŒ¯øéêôo$öŽø³ÿÕàÿŒWâ~Íýªíÿo_~Ôö³çÅøÄ?¿ý<_€üà÷ÃÞÃŒ1ðïâ'Ä?\üBñ;hz<q/ÃÿXøQüAjÅÛI4Wäí§xþ û&üzý£?fß|Oøš>»û;è+ðoâ_í9ñËâ75-SÅ<-ð+ÍñÃâÄ-?áÆ»©Û|Zº»×o<>úâûÿø\øºIIQ¶òÚ?þ +]ñÿökñoÁÙßâO?eÿþÓŸ|YøÿâýFïÄ|eðÁŸðoŽxáÞªxWáŒañÇZ§šø²ïÃ^ð |!âOÏ€ß6«áÞ~âQ_^ÿ|rý§5ÙÀ?³Á?x3âgůØË@ý¶~-迵»ã¿ +[|%ð¿|O<+ð-?¹ñ¯ã_xïOñæuâË3Jð¶àYõé<5âœKÐó·öDÿk²×ìûü8Ô[À:GÆÚ{âÇü[PÿâÆ¡ñ7Åÿ +~xkàí]ñ~÷Ç]KðãÂZŒu©ŠœãÞ ðá+k7TÔŒO}šivþÀÔÀ?©z+ñGÿ~Ñ?þÁ?.~~Ëþâ÷í¿qûMx_RðßÅÏ*ð>xöiVÒ<GãKÍb_Éã|2Õuk> ðš³ð|_áï4Íûz÷XÐüÄ_ðQÛ³âÃØûRø]á_ÙÛÀõÏø*Gǯø'×í£k絯Ÿ+ñÀQûEøm®ü«Üx&ÿź/ÃÏj?nüYuš\éö;ðíÌ>ð퀮¯jú¢¿#4ïÚZðÆoø*J5×Âÿøöu¶ý¥ÔüqûBþÑ<=û7Û^|Eø5€k©4:ŵ¢ü Ð4%ŸºYx+BÒåø£âÒÛÄ×^µ«Ÿ·aùùûFþÜÞ8ý«?à¿¶.âðÿfOø(·ü³àœÇÄZ->|KðïkØ7â⯠+ØxÖ?øu®<;ñ9ü'âMQ¹Õì®nôËý3YÔ4}f{`éÚ( ( ?à¬_ò/ø)gýíÿ¬ëñŸÿ¯?à¬_ò/ø)gýíÿ¬ëñŸÿ Ÿýÿäâ¿à¬_öÿ?õÖ_ðM:ûþŸýÿäâ¿à¬_öÿ?õÖ_ðM:ûþ( ( ( ( ( ( ( ( ( ( ( Œ?öøß¥~ÏÐ<y¬hzm5ÿ³'Ál4Ëk[}Wöý€ŸþÍÚ¹$·@ÄÚ5¿úukeiŒÒŽÛK2.çp¯?j¯íðÇÂþѵÍ?Ã×zí!û|oÿS·¹º¶žÒ¿f_Úóàwí#®èqÅjD«šxDøQšxkIžoôk=WV²»ŒÒ Áú>( ( ( ( ( ŸÿiÿɺüFÿ³ÿÿ±ëÓlûþŸÿiÿɺüFÿ³ÿÿ±ëÓlûþ( ( >#ÊScû0ø)gþŽWüvŸÿ¯>#ÊScû0ø)gþŽWüvŸÿ ( ( ( Ÿý²?äâ¿à¿öÿÿõÖ_ðRÊûþŸý²?äâ¿à¿öÿÿõÖ_ðRÊûþ( ?à¿ò/ø&ýìoÿ¬ëðæŸÿ¯?à¿ò/ø&ýìoÿ¬ëðæŸÿ ( ( ( ( ( ( ( ( ( ( Ÿýÿäâ¿à¬_öÿ?õÖ_ðM:ûþŸýÿäâ¿à¬_öÿ?õÖ_ðM:ûþ¿2?à¢Þ+Öü ñþ µão +xÄüEáÛ;ãWt/žÐí|YñWÑ?à_ðS}KNðoî|KªhŸ·×<Iwm¥Í¬êÚ~åÜ-wu!~×À¶GüWüwþÏÿâ?þºËþ +Y@?ðOÿÚã§ÆÔÿo?Á<¿m?~)iþ!øwgqà¯?ðNM/á·ìÅà +ÅH5ßÙá§þ#ÁB<ñºÞâÏX¿Çœ{⌠+ñâÄ¿Û7|àmÂøià_ÓoølÚ+þ;ûÿáÆÿYôË+ÝŒ-û2ü?ð'íãÏÚ/ÀÞ%ðv¿ñgÃú?Åïh7öß>'ø¯HGÂߌQái޹åâïŒ7¥Üx!|káýOCºñOo¬ô_Ûø±<ðú_ }@Ãd~Ñ_ôßÛÿÿ7üËÿŠYGü6GíÿHý¿ÿðãÁ,¿úe÷ýðü6GíÿHý¿ÿðãÁ,¿úeóçíUão?µïÀ³Ä¯ø%ü¯CðGÄË=Ë^Õ< +ñWþ 5ŠøªÒ-Äú',ÛHŸ×ÿà¡þ&Ò MGA³äÞhwêöR\ÇC;ÅsìøW®è¿µïÚ7âçÇùÿàðTEÑ?h¿z'ÁÚCö|žøÿpÖ~ünðÇ 4?xkÂzìuÿÛ»UøáýwHÐ>#øHŒ|Fðâ]<i6Þ%ÑõXô÷|WÃ~ÑÿŸx·à¡û-ÿÁjþ%þÏÚ×Á~ÏþøGñâü»S³øoàhqxfÒ]â&ûUh<Sâ?øq%ðÿµoÿŒw +Ÿ;¯¬<SšÇo©CýÑ@ŸÑ<eàßþÅÞ9ÒÿàßðT9õoØWö|ø û6|$·¿ø¹ÿNñŸ%xwàuÝWâ46ÿ·ýίâËKIŸðÍß4x.õ/Éy¡_Ãy¥ÛèÞš~ͧà7ÀÏþÿqÁ]Ÿø£öbø»ñKãìùûFx/ãüMøùð»ÇüsñÇ?MÖgý».ü¯x7Äâg<¯øÅ¿5ï +øÁ+¥é'ÓuWN\¯èþþy5ßÿŽ÷Åoÿ>~Ó³/üsöÓþ*xà^œ6»â?ÿÁ +>\xüø££|\ðÍÃÿ|'ý¬üàÝ3þïè:d_5={Ãþ$ÖŒE€ZÚXiZŠËgêÿŽC|oøåñ3áÇo Á?૳Çï~ñ¯Œ1ñà¯Äø#-Ö·ªü6øuáÍGÆ_üqá·ÅoŸ4ðf¥¬øGÃ^$Ó5¯ËªxgÄú-¹á[HºPÿžPóåñáÿíãßü+øÍ¥þÉÿðZþü!Ô>xÇãÃß¿ðC[|tøIªxÓÆ7>ø§¢ë¿µw>Y^Zx²Úã]ð÷>ü=øiâo \ëZü~Õ4u-qìÕâ/|ýþ|%ÿÁaŸx¿öEñ߯?|ý¡tÿðG?|mðÝ×ÇÏxãÅ|/â[Ï·~üEðO$ñÕÖh~:ø{®Üê6ð¯yªOã-Ký"Q@Zn£ñÚ~Ì?Ÿ"þÀðV/ÿÿe£ñ©ü3ã¿|Gÿ,hú&øç¥I¡xþ!è¿mOÞhŒ7¢}Ið]¿<=àXl,ôÛ&×Äwl»ŒðÏüñ£ðÎoxGþ óÿuømâÛâgü3ÁŒ-ñoþË}ã¿¿ŽÅ_üDñ×cÐl|[ûmxáö±ðò?øZ5ð§<màI7õAe¬k®¯ +ëgú(¢?ŒYñ~çöñ«ÿòÿ¹xwâíñöHøÁªüAðÇÆø#}бà/±Røfþ7ð&{ûqßøMŠ:ÏôÅŸñÆã_ +ë:º~¢Y;KNIÿf_júí%áïþÄßðY_VµgÅ¿ÙãïÅ»ï|Uÿ Øê÷eÏ|%ñ |g OáoÚëÃÚ~mâûo¿Œã/ ZigÂpøOA/é×µz¿¥J(àølÚ+þ;ûÿáÆÿYôË(ÿÈý¢¿é¿·ÿþoø%ÿL²Ÿÿ¢>ÿÈý¢¿é¿·ÿþoø%ÿL²ølÚ+þ;ûÿáÆÿYôË+ïú(ðþ +mûWüyñüoþ + +áícþ ûoøH׿bÚ¿FÕ<uâÏÁ6ï<+àœ;Tø +ãëïxÏÀ¿ðPoxÚëÃþ¶]cY¶ðwŒYâ©ôë;Œ=áwWk=.ë÷zŸÿ±Ê,¿à¥ö`¶Gþ³¯Äjûþ +øö7ÿÿ±Ùÿü8ÿ×YÁ4ëïúøö7ÿÿ±Ùÿü8ÿ×YÁ4èïú(¢ +(¢ +(¢ +(¢ +(¢ +(¢ +(¢ +(¢ +(¢ +(¢ +(¢ +øÃöôñÿŸüð7Œ âCÃÞ£ûgÿÁ7ü}©iw7> +ø¯ÿý>üFðô$r)Óü]ð÷Æ>(ðЬDiZÕìqI¬§ÙõãÿáM¢ÿÂöÿþø\³×öü$Ÿöwü._ø_¿ +?áþÍöoÞÂAÿ + ÿ +Ãþ=ßžÿ«ûí_èŸu{Q@Q@Q@Q@Q@|ÿÓÿuøÿgÿÿbÿ׊þÙ÷ý|ÿÓÿuøÿgÿÿbÿ׊þÙ÷ýQ@Q@|FÿŠþÆÿö`ðRÏýh¯ø$í}ÿ_|FÿŠþÆÿö`ðRÏýh¯ø$í}ÿ@Q@Q@Q@|ûdÉÅÁ'ìÿþ#ÿ묿à¥÷ý|ûdÉÅÁ'ìÿþ#ÿ묿à¥÷ýQ@Á'å_ðM?û0ØßÿY×áÍ}ÿ_Á'å_ðM?û0ØßÿY×áÍ}ÿ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@|ûÿÉÅÁX¿ìÿþ묿àu÷ý|ûÿÉÅÁX¿ìÿþ묿àt÷ý|ûdÉÅÁ'ìÿþ#ÿ묿à¥÷ý~`ÁFŒâ?ÿà^ðÅŒA«þßþ3þÏø¥ð·MøY«øïÂÿ`ÿeÁG5;¯ì-?ã_ÃO®?¶ì¬®|;©ÿÂMðëÄ^V«êèßÙ J×tÀÓú+óåŸ Á@þÇ5ÿÃOÛkÂL&9áý¯¿gïi³ëÆ®dÓì~)~Ê_íüsw!E ¿ø-ñ>ÞÆaÿ¥ô®%OOý?jñ_ÅŸ*ø+ñOá¶œðöø}¢ÙxÅß|KªYxK׌š^ +.Ëâ§ÁUµñoá-ö²EoZiþñg µ¡ ñ/À~×µ +3KœúÞ( ( ( ( ¡}ªézXµ=JÃNYZúòÞÐJP)qž0å)`¹*sÆ>8ðP×ô/ +x\x§ÅV¹¯xkÃGÄH×üE¡øbçK²ñ.³¡hÆïûGVÒŒ=y®hæ£amqg€Üë\ó[ËšZ$ÀEQ@Q@U9µ>ÞöËNž¿²PÔêM:Âkš"œ¿Kï^ÊÕäYîÍ& îäé,M1A"rÄñ/|9àÏk~.ñ4O +xSÃ:Uþ»âOøU°ÐŒ=áýK¶÷SÖuœkT×MÒŽ:ήïõû{K;h€âhâFq±ÍrÅ"Kš²E,l¯ºI#u%]Hee%YH A ÑEóí»ðSÅ_ާì_û]þÎ~Ô<?€øÛã÷ìÁñ÷à§µO]j6>Ó|UñSáO<áíCÄ×Ú>¯jö~³ÕõÛ;fëKÐõFßNæk+Q¹H¬æñÿøXßðTßú3ØÿYûEô§kïú(òàícÿ$øýàœkÇ^ýÿb +7HП0~п/-üMÿ"øógšÉâ¯Ù¯ãïÄ¿ÙÏÇZ Ž:_üËY¶êÞ6øWâSÂwRÞCšßxVóFŸÖ4WžŸÐôï ?cß|þØ¿hÏ|ð_¿iÏÚFø×¥ø#à§Å_|hð¯ü+áÏÙöTýltýCâŸþϺŸ§â +OWýuÏ]ZÛü9µÓŽœ;_Ò¬!Õu[/&_EýþÏû8|7Ö>øÅ:&¯©øÓöý²Ÿ0h·»ôäºöý«~?~Ôº7 -¯ä[íoŸøtœgìD¹ÃZÖkéïéª(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢+ãÛÓÀ2øð?ÀÞð'µëzwíÿßñýöŠ$r\Ûx7áGü?ö\ø¥ñÄ2,F£OðÃßx£Åz³2G¥h·²E²ªDÿg×εOÆýWö|øcáhÚâœöý>Ma©Ü\ÚÛ[é_Ž×íyð;ön×uÈåµVÔ<1¢|WÔ<K€Û·ú5æ«€ÙZ^i<ä}EPEPEPEPEP_Á4ÿäÝ~#ÙÿÿÁX¿õé¿¶E}ÿ_Á4ÿäÝ~#ÙÿÿÁX¿õé¿¶E}ÿEPEPÀ¿å)¿±¿ýü³ÿZ+þ ;_×À¿å)¿±¿ýü³ÿZ+þ ;_ÐEPEPEP_~Ùòq_ðIßû?ÿÿúë/ø)e}ÿ_~Ùòq_ðIßû?ÿÿúë/ø)e}ÿEPÀðIßùEüOþÌö7ÿÖuøs_×ÀðIßùEüOþÌö7ÿÖuøs_ÐEPEPEPEPEPEPEPEPEPEP_~Æÿòq_ðV/û?ÿúë/ø&}ÿ_~Æÿòq_ðV/û?ÿúë/ø&}ÿ_~Ùòq_ðIßû?ÿÿúë/ø)e}ÿ_ð\_?þ|?ý~!~ÏÞÖ|UñBý°>(Åàžt +ojº×?à?ðQÏj¡ð}íWÆð|еmSâœÿ|=÷|o§ø.ëÂÓ5Oë^tûðûâGŸ*ø~ëÅ_üM¥ø»Ã¶~-øàKcFž6Qø·ág<IðÇâç®ü/ãÏxÃZÍÑCI¹I,A$?hɬu¯Û«þ ÝáïMm'ÅëŽÄÂÍѵ=;öPºýügðÿÅ6Á2Yè^)ý§|Kû*ÞiÖ·:î±à9n¬"ŒÂzºoæ?üÊ_ÚÃß~,þÌðOûOÚìçðöø¡|:ý°~7|Zñ'ÆÖ|-ñ?EðÇí#Åø5ð÷O°Ô>+kZæñNñ©šx³ã×Â{KÿÊîo®ÒÿO·ý¡ýÿe¯üÆ~4Õ<]âÏ>+Í¥Ýü`øýñ"M6oøàè÷þïé~eŠxcáçÂï +OSÀ +ü €èŸðÙÔõaìõ?øÅ~(×À> ¢(¢(å¿Û_Å?ŽeÞ+ýü!§øóöÐü3o{ðóÂÚ ®ú®¹€ÇâyômSñ4¿ø·Ið\#Ö<á}WÅâéú©êVÖ:ÃÏ¿~Ü~/ýí5öÈñáøÍ?íß³¶¯wâ¯ØcÄûRh?SAÇ·ìäÿ²>úwÆ=ÁvÞ+ÝøkÄÒ>éúÄm_OÕ|Š^ø¶Ö|+ñÀzïÃIâÈ<9âìÆœ¹ð/Äü+ñ}ƬéÞ Ò¯Œ?ñá|ãßj6:Ÿaw¡á¿iW!kYŠÊâæÚoîà_±å×û/oàÅö±þÒQ|NŽøýñúÇö ãÜ~Àñbûö²øoñßPñÞ¹À__|BžüÑø,[/mtž?9~ÿÁHi{ÿþ(|xœðõ÷ÃÿÁJÿhø'oí3âÍGᎠ+ŒQý/<KðËöbøÛâo¯õáf¯Å{/~-ø~ÖþóÃñ}WMm6ßHÄrþ)ÿþÔ/öJ°ðâ'DýŒŒqûg|aø?⯠?>2|Kð×ìwû<\xÃ_ÓAð.»âœÃ÷þ6Ãão|oÕŒ_Iªé^øo¯Þè:~y~Únœ¥þŠAÿÒýàOÇÿÙóáfµ®|ý§ŒK}ã/ÿŒMñoã/l<KâÝZMó\ñ>k/üUáø^Ð4ßø_ðœ¡ë:×ãÆõÇï.õIœ#â¿ìYû8üdðÂo*ð>§¢hÿäÒ¥øü/ñÿÄO?~>áy<b>üOøMâ¿|Dð³øBWðÖ§§é'·Óuí/^³ÔìaŽ(øÝû[|Aÿ(\~Ö°¯Áÿuëø(Õ¯Ä/Ù{öÓô|6Ö¯<¢ø[ÃÄÿøËÁŽáKxkÃú'ůøZûHñ-îÿ =Š5è®lüýSãë_~Ë·?üêû@ýŸüðÿÂø&WüÇ·?³·À+_ÛxÂÚ_cxÁÿŒ#à-ìjz쎱jvŸ +ðêkƧqªÝéÜÞÜnýøÿâýþ,èô/ißµ¿ÙÝþ IðÇv¶'í á^â€ïñõ_>øï¡üañ¡ñ2Ú[ZÝ'<qâ8ítè!ÒŽÔ²ÒãK5ô/ß±ì÷ðÓÄ |g ø{Ç:ßþx+âçïŸ2øñÃã§Æèþøéâo x¿â~«ø£ãÄëÞ4_×| á),nŒošxÿÂnk x>ï@ÐãLòöýºÿnßOðûâWþxÏ^øñÇö5ñwíšøßWýmþ|9øñet_x×á~xÍ|}âMOãG¯øWÅ+°·×üQcŠ¿ðâOµéºwæðöå_jÏø*_ÄÙ?àßíû5iRÿÁP?eüSÕŽí3öqÕîŽÏÙé|!ðSàïÆKox>k¶úÄo/Ñ|]¬éz¯üWq£|:ð§uëkí3LñàÑ€ø×öàÏüÿögý¯5øTºOÅxRóFñWŽïûI~ÑÚ×À_h5KéþkÿuOŽ»k4èŒ!à|0.¯ ðЯ. ºðì{û9øþÊçÂßÿ²ÏìQðßQøGû2Å]ã«ßøVuoxká¡áÿøøïþ/ŽxÁþÑ?µŸ ÂW®Eýý¥¥¯w}š]~!i?ðSïÚ³Røûü;5o|~øýûI~ßüñà·Àøo~Á>)øãÅ>øšø®ËÂö>'Çá¯jZŽ:»¬ø[ÂZ2üFÖtßj×G³Òý©kø)<ÿêøkqáÏ~Ï¿ŽOíCñóöŠø)ñ?]øÍðXÚ×áçÁÿüeàO:/Â]7ÇÞèþ)ñ§þx[â5§ÃÿŠ5<)©kpxjnôW]ÿxþÈÚ÷ÂàÛü2Õ4_øOã/?hoj~øñkÁÿþünøã?xÿÆÿŸ|_ðÏt¿Ÿñ»â5¹x[ÆZVâ-CÂvÚ|>t$ïü7û#|ðÕÇÀíDé¿<]¯þÎ>(ñç>x»âÆï¿Œiáÿ|MðüãmWUñÄÏ^+ñÆá/xEµÓ|m©xGðõüGÃv.€ÉbøUâßÚOöîøðàÏ"ýšt|Sø[ÿ³Õ¿a?|WðwÂ(4OþðÇ5»/ëŸ-økã»}'O¶{&xOÕ¥ðïd¶ŽyMò%öÿµgÁf¿kïhÿþ$Á:¿gßÿ ~ +Xê{hÚ%æ¯~Íþý£<wâ]?KŽ»o +xwâÇÆOép|S»Ò/n¯®|3ðSÂújêwíà}.ÞÏôûÆ?ðOßÙCÇŒ}ð»Wøs¬Xøcâ?íwûXk÷ø¡ñcÂ3Ó¿hû¿éþ-ÿ œà~ñÆã¿>*³ñešéðøÃzV{ +6ßMŸŸ³¹×žýþÉñKÅ~;ûMÆ©á/_³ÝìãûA|.ñ€ãßüqð V³ø{¯øÓWñ=õîœãx{Åÿüâ-{W»×n~#øSÆ+ŠøÓûFçŸÔ4 ÃOÚã¯í¥ñþ éÿnð7íàÏ×»_ø&OÅxãÄ?ÙÿMý/&ø¥¬|7ø€|RøO¥øSJñ¯,üGàœ+N³ðg~xW·ñ~»®è^'Ô|EuŠØêòûíEû~þÙúoÇ?cï=ñ6œû#~Ï_Œu¢xC³ô?tÿŸ-øcÅÞ4Ó|ñ;Æ^8ð¥ÇÁßWºôoh>!ð¥ ß§ñ^³ã^ë+Šx&j¿ŠÿpþËøMñOà?öoÆÏüøÃð«VøâßjïÚ£â4ÿzÞu¡ßxÀ:WÄŸ#ávýy6i}ðáŒ/¯iúbZiö:œœ§AkÔü_ýÿg/~=Ñ>*xHøàÿºmþÂÃøû@|}ý<k¯ü5³¿žÕ¬~øÏÄÿŸ%ü9Ö<oá=7U»ŒÕ4m+ÅÂh:ö¡¡>u©jÝ~`þÑÿµÏíõª|^ÿ x{à§Ä/ßüûþÂß³ÿínºWþ +ÍñCâF±ñÇþý§<_}ðŠþgñ·ü7eá-NëàŒ-×^#ѳlü&úé,ð7í÷û\|2øà~Ñ"øoñ/áÆÏø%GíÿŽø3ð¯áœç®Ÿëß.>kö? +ü'ñUñ|Gñ"x;ãÆ®k)ÑŽ©o<YáûOøAðÆ©Ká+ÖûßÙözÔµ/ºÎ¡à+íWö¢ø7à5¿ü@ž»ñÿÂozÄo +xCÃ3Kâ§}ãKÑŸ-|BµÄþ:'µy<B×ÚÖœšßé5ÖwEýŸxÆ +<y¥ü=/|øâÙáý×|[©[x{à§ø{sâÜhú¿y¢x +N_ ~3k)Óµ¿ÇÐÁÅÇ©~6þË·wíÿã¯ê>!ü9ñ¯ð§Æß°/ÄOÚn?>&ý-þü=ø=ñïCð÷ |cà_ +õØŸ xÿãÂøgÄþ J×<Jâã/Ãëm^ãT[+Dœû-þÖ?ðPOøãþ «uñÏâïÁWDÿ~Èþ%ZxáÿÁ;Í×ö~ñ>|*øàÏXxÃUñÝþñ2û^Æ7ÏãêºW<7kxºg £«þü*ÿx~Ë¿tÿøsáÎñoEø{â/x³áÊ|»ýŠimà_üãÌ^&ðßà ø·ª|*øm§ÜÆÒÅ€ÿ +áãÂVÓÜØø:é÷Z?§x{öGýü+wû0ßh?ŸÁuû|?ÕþþͲÿÂWã{¯øW׌áÏú¶ ²÷Ä·øÃí~ðôoí?§5?³ÿŽmµuk»Ûëç#öZø ûHüGÿs>-þ×h_âïÆ_~ý¿i¯þ<ñNäxóáßÄÿØçöý 5_¯\뺟«âèŒK©ü5ÓŒ$,g·Ò ᮜš|%¹Zðœýò_UÞÕ'Öü?¡kW:|úMί£i¥ÆsžÜé³ßÙAw.p^8\Ïg$o.èbo26Ýšüàø{û +þÈ!øâ³³®h?³/ÿjxãÂí#Ç_<qðó[ñ?Âo>7ÿ ×ð?Á~øâsBø-à]köð®¹mñÁŽMÂ%µÓü}àøtkK_ÉiÿŠôQEQEQEQEQEQEQEQEQEQEQEWþÐ4¯ÚÀzõsPðõŠñÃödøß +þmmusqªþÌ¿ŽÂÚGBÐäèOñ>·ð£OðÖr§í6zV{wf +ÜîðügVÕt_Ùûáíæ©êMÜß·üÏIëLœ¹°¹J×ÿà§?² ®éOk$RɧëZ&£šhúµ1¶Ôt«ûÝ>ò9.§@»è¢(¢(¢(¢(¢+àø&ü¯Äoû?ÿø+þœ7öȯ¿ëàø&ü¯Äoû?ÿø+þœ7öÈ ¿è¢(¢øâ7ü¥7ö7ÿ³ÿëEÁ'kïúøâ7ü¥7ö7ÿ³ÿëEÁ'kïú(¢(¢(¢+àÛ#þN+þ ;ÿgÿñÿ]eÿ,¯¿ëàÛ#þN+þ ;ÿgÿñÿ]eÿ, ¿è¢øþ ;ÿ(²ÿiÿÙ~Æÿúοkïúøþ ;ÿ(²ÿiÿÙ~Æÿúοkïú(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢+àØßþN+þ +Åÿgÿðãÿ]eÿÓ¯¿ëàØßþN+þ +Åÿgÿðãÿ]eÿÓ ¿ëàÛ#þN+þ ;ÿgÿñÿ]eÿ,¯¿ëàÛ#þN+þ ;ÿgÿñÿ]eÿ, Ÿ~Ì??f¿7üŠ|<³øÿñYøÿñ+Bðú}úſøOÁŸñWôÍ0¶Z×tïøPñ +®µ¥â1ªøkoísW»ŒôøŸ x +ÛxJøFoÞÍ[Ùøf/èÒxî +%Ÿ"ÛEKÓ©O6£§ÉG³ŸÖo|°-Ôúêþh#ýŸ#øölÿîø§ágÁ[~Úߎí +ûgøwà/ÅoxRã¿üaðÏ\øuàž|)¡ü+ñ÷lm¯ŽO|A¹œñŠ¡kþÔtï Ýx\ÔõÉu/·ÚÝêVÀÑwŸ"|?øešê~ñ׌s§húÖ«jñ6âk-/Y± +׺N£w¢ß^Ác©Ù«¡º°¹+«pêeàiߟxFÖµoxçÁ¿eÑŽ¯jgJð/ü#¯_ß7 ¬ØÛI¶|76W׺n{&£}eeŠ_êz|:ÝÜ£åøþÊ8ø±û#þßþÊzÇí§üø«û +ü6ø!uðŰ7àþ]á_5œv v~&Õ|àï>;øÁ¬xÅ~ÚøÂ~,ñ-Œñ3xøQ4]Y{Ï×þ"ÁLu_±ÄÏÙGKþ û_x"×ÂÞ:ýô~7ñ£oñçöTÓü3 Ú|/Ò⬞±ðŒI7|5«ëE¶â¿í]?ÀÓëz^5ëDGíðÝ>|$øñ/_ð÷ÀáñÃ~Öt +üXñÇÃÝ\³×<_ iÚêxõ-/źÏüEâÍ#û@i·ñøÄþ)ѯo-åAÖ5.K]BáÖ_ŽÀ}G㯿f[?~ã× <#ákß bñ% ügqâ{ +߀sGíÆ |â;4>îëYÓôëÕ5=>ÏMÔ4Û»ÏæKâ7Á|)ýà¿|#ðÏã=ÿíËû;ÿÁ*~|Ñ?f_ðOïµÀÏ×Wßþ]ø£ölø¡u£øæÛöLøÓ'þiúÏÄøÏኧá;×Çvºïô}^ËLûÖëáf£§Á\>*|KÖ¿g[À?¿i¿ø'ÁàÇ7à^³ñ+Á? +jë?µ|JÒ|WñÓÂ>×ü1ðóƺ'ŒcðúÂ={ƺ¿-þ ø_IÒü3£_k&áé@?mô/^ñF±âøgÇñ<wt-ÄÚ.¯¬x>úa3Eeâ3OœžœðýÜ«o;Gm«Ai3f*Fû~Lý«¿oo ²÷<1ã +?D×?h_x×ãÀ~ø_ð3Äß +µê~:ýŠüE þÕÇ~!øÁŸÐŒcªÍöw|QâœFÁ€Õ#Œ}6ÖîêÄø%OìÛ«ø;ijÿÅCöðíEðöJø±ðâ¯ÁëߨÇ_ü®k#ÓŒ?/|û`i?ÿiÕ>!xÓâÂïÍñ7ĺÿoüGø/øøÅyßÿbXŸÁàŸð¿ì¹ñ¯Á4ÿðJ?¶ðàÇÅ»ÚÓM·øwâÏ øã'üO¥|0ðÎ¥ûAü(Ó®<NÚ8Æo|5{[?øFÏD];JÒíÀ?ruÿÛ»ÇÓ¿g9þ,þÇŸëŽWíàÿÙ3DðÅO³ö¯¯ix¿á§Ÿ"[|Yóöø§ñïÂz ÀõøsÅ3j+s-Šs«ýÍÄ/Íã;øãÂüC³ÒÓ\»ð^%Ñdñ®!G¬\x]/N¹æxjØ£¢1ó? ߢӟ0è_ðNœ3ö|ð/íóã/üÿªüñ×ÄMkö³ø'ûeèü;áþ~Ñj~2Ôµ¯ÚÀ~ñ×ÃQÖ4MçÅ=Çü5«kZfq©Xꥀÿ'þÌß²×toÛÎËöñ_íàÿ¿à¥ÿÿi +k~ý<qâÏ|mðÄo|I°ðu?Û¿Á×|%¥|ñÀ/é?üaà_xïÂÐü<o éþœðö<&÷@Ó£|Søb!ÒŒ"ÿŒ+×nµëà +âÿ¯uß +Ë4>'³ÒŽSšKPºðäÖ×kÖöÓM£ËÑê nñ8YŒ;ñ/áÏü5šxÓÂ^?ðO<€K«Aªø³ÃŸ*е¿ +ihλ¡®é÷:]º(C«GsuéÁÞB¶?œsþ ×eã/ þ³âÏØ÷ÄZßÄ_ðq§üiãÿj?üTÿuoÙ'Ä·ÇÄŸñKøû!|Y£þÎ:ïÁïjڜ_i¿5_ø¿Ä$žžž±ñfµ©j}íEû|nÓô¯ø+w?g)ð7ÁœCöÇÿg|aÓ>|3ø-jø×ðCá·ÂÿÙÞûöÒ~ü3m7AðÅëâŸÔGŒ Íö:·/ŸkòÞ_ëè× ÓŠñ'á×<-§øãß>ðV¿àZêÞÇJñâUð¶§{u©Škg§øÆþ}&òêçY="ÞÞÚîIŠÔÝ,#FºaòÏ¿µ·ìÏð§áÄÏ^7øßðêÃáÁ¶Ô!øã'ÄV,Ó<¥Gm6¡£jöþmwS_[Eyhíá»{õçVþ^æhÃ:¿?dý7â/ì7ûOø{áDߎÇÇËoÚGöÿÿvüEøàCöøÝûYx~ËÃߎìÃáÏ÷Ã/ÚÃZõ¶ +<|cñsÇÞ +Ó¡ê6œâo[Óµ85غÛ;öœáüàßìëû$ZhþøûþÈþÏøwðnËßñÏÅ¿xoöoGðIÒtøâkì/cðw~-·Œ¹ð^6ÛËí +?~ŒSûNxKøðáWHø£ãÓøÓWðô~ÕŽ]GFðÿÂÿiéñ7â÷uŽœ{8Œá=wÄð" +3ûKUÕþ!xûµ²Öã[ÖtaÒ> xÄ$ñtøG[ñ »x¯ÂGtmKÄ[²E£xB²œTÑEÑVçRµ¶>^ìüvøs'm¿o_Ù£ã'ÂÏ +jŸ~Ñ_ðOß?gÿø¯à¿þÉðÿã·þ9é_<EàKï;ðµ¿xÃÇÞÄÞ<Óô+ÿiøÓGøâÏYɬévúv£uð§ügöZñW>(þÇñ||ñíàÚ«ödðïÇÿ |Uð4°WŒðóâŸ"èÚÌ<MñöðÒ<?Ã/~ø ã-;HøÍà{Sø£šjþ,ñ§ÚxßVÒ,?t¿e¯ÛcáÇí +û|ý±<_'þx?ãmõË}7âŽ+{Ý]êúŠi£\x·TÃ]ýõÜ\Û*ZÚI>óP;FÌ~€ñŒá%ÔüWãO øcNm'Q××Pñô}ÉŽ-!,VÖïRŒ¶é:ZjZsê:ÙÙ%ý\ͺÉüx/ölý¢Œû8ÁüEñkÁ|ðsáìÑûLü3øœá{اĵwþünøâÝxÅÿ?e<â/gxÀÄÑxæÛÀÝÇÃÃâ3i üAÕuGûsÀ°¿µ_ðDk?>,~Ò³ìÝû)þßúÞ5ý£?gÿxB×AÔä×?dHŸiÿŸ|Dð¶Ö?³ü3Gð£Á¿ô=?SÚøBÒN±áHoôÀèOø¯ð·WÖü9á'âOu?øÇÃðøG@ÓücáÛÝoÅ>Û¿þ¯iVÚ·Úç6|ßÛdZfßíXæ¯ÛüBð +×/ŸÚøãÂ?ôœ.sRð¿tYŒi§ho¬_xZ;Ö×-4¹ÍÅžPž±ÒS<!&o57.?³?ì#ðörÿQxËò_< +ñëÃðVÏÞ%øÅâ[o!ÒŸ+ø+à?ü$_·7ޝjsh)âÏü_ü)ÐtK+étoø_TðlZ}ªÙkzc^Ýý¿e¯xwöð~ûKx¿öðíðþ +ûKü{Ó5? þÀŸ;׌#ñÇBø©â_:|W¬~Þø¬øBoÞ7ø%ñBÐuïøëÇ^Õ<%áïÝøsI>ðÌý8·Å â=ÁÍñ+Àâï]kv^ð³xËãÄ~"ŒðËÞÅâKMC:Ôõk¯ÉŠê1ëvú}ĺKØ^¥ú[µ¬â?¹ý³þ +øÃ?Ž>¡ð?W·ý¡Œsû/ëºçŸ*|!øgšØðëþÑ<#âßxwÃz_eÑìüG®éþñw£ñáÝ{ÄŸ_Økm~oàÃØB +|%ðçÅø?eYþÒú¯ü +©üT×<}ðÄübÓ¿gáÿ3ñ¡¬uÍGCÅøsðkQ¹ñdú>ðÒÿÂ>%׌króÚx«ZÖ5/µ?bM?áì{ûIÁ_u¿®þ^§í#ãoÚ§Gøí©üñþkß²vµû;~Ìqjøcö²ðd5xôïŸ ñΩâO 6ÛøW_Âs\Ç«ßÛ~Ïü9ø à¿üñSáÇtÿ|>øáøïÀþ)ÒditÏøKźEŠœáÝrÁÝ#5M&þÒö28åÌ«,qÈg_¿ðJ ~?ø+ÿåý~|QÒµøëFø=£jZï 5hÌ:¯?á,œÔ|cŠxT¶ÜÉg©xG×ôÿ_ØÀÆÖÆïCÎÓÐD_?ðQüýžìñOÀ× >Þ|ý<s§þÓ¯ª[Ý|4Ñ>&þÑ¿hÏÿŸüLµkiþÜøÖóöxÖâøyã»ýCPðüY©[|=ÕnŒ+âÍ[Àv>;ô_Ø/À2økð?Ç>ñßµkzíÿ ñý©€qÜÜø7â¿ü?ö£ø¥ðçÄ1¬rH§OñwÃßø_ÅzKI¥kVRKR³Äg×β·ÆýWöøcâk:áëœöý±þCaŠ\\Ý[\i_³/íyñÇönеÉ%ºUÔ<O¢|(ÓüK«[¯ú5««^ÚYiý@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@xÿÇ>x/Eñ?ÅK?·øcTøÁû=|7ÒàþÄÄ>#üdøûðÓáÁËϰL¬ÿÙß|sà}Cûl/~Ëÿ $é1²û|¡ûg|!ñÆÿðg Óî5œö¯ý>/_G©ßǧ[/gÏÛöuø÷ñxî$WY5o¿ +|Qs€Ø$ÕuX¬ŽÈ%ŒGP«è¢(¢(¢(¢(¢+àø&ü¯Äoû?ÿø+þœ7öȯ¿ëàø&ü¯Äoû?ÿø+þœ7öÈ ¿è¢(¢øâ7ü¥7ö7ÿ³ÿëEÁ'kïúøâ7ü¥7ö7ÿ³ÿëEÁ'kïú(¢(¢(¢+àÛ#þN+þ ;ÿgÿñÿ]eÿ,¯¿ëàÛ#þN+þ ;ÿgÿñÿ]eÿ, ¿è¢øþ ;ÿ(²ÿiÿÙ~Æÿúοkïúøþ ;ÿ(²ÿiÿÙ~Æÿúοkïú(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢+àØßþN+þ +Åÿgÿðãÿ]eÿÓ¯¿ëàØßþN+þ +Åÿgÿðãÿ]eÿÓ ¿ëóþ +5ðÓÃ>'ÿÁ.Ÿx³Rø€xÄ_·ÿÿŽ5 ¿>)üñÝ¿öGü+þ +9®Úÿa|Rø)ã/ÿ|/æÞéÐjðø»HþÛÑåÔ<;¬ý¿ÃúŸ«Š^þ×À¶GüWüwþÏÿâ?þºËþ +Y@ü;Oöuÿ¢ûÿâØ¿à©¿ýÃŽÿg_ú(ß·ÿþ-þ +ÿÑ_Ñ@ÚÏüëö^ñªøÄ1ý»uÝ]ÓoŽmsCÖàªðTMSHÖtRÖ[-KJÕtÛßÛ{-GMÔl§ÒúÆî nífÞâ)"Ðñú/üãöð×uO^öœÐ>#kÒüxÿEÿÁJޝëÑ.î5 +º§¬kh5ÝCÃzEýåÝî¡ÝßÍŠX]Ý\\ÚZÅ4ò»~ Ñ@ÃŽÿg_ú(ß·ÿþ-þ +ÿÑGü;Oöuÿ¢ûÿâØ¿à©¿ý÷ýðü;Oöuÿ¢ûÿâØ¿à©¿ýÃŽÿg_ú(ß·ÿþ-þ +ÿÑ_Ñ@ÃŽÿg_ú(ß·ÿþ-þ +ÿÑGü;Oöuÿ¢ûÿâØ¿à©¿ý÷ýðü;Oöuÿ¢ûÿâØ¿à©¿ýÃŽÿg_ú(ß·ÿþ-þ +ÿÑ_Ñ@ÃŽÿg_ú(ß·ÿþ-þ +ÿÑGü;Oöuÿ¢ûÿâØ¿à©¿ý÷ýùÕ«ÿÁ-e}4øõïþÝ:ÜzN§ëúZjÿðUø*€n»€N.tkO[ÏÛ +e³ÕŽË.4ýFÜGye8ÛMukÃŽÿg_ú(ß·ÿþ-þ +ÿÑ_Ñ@ÃŽÿg_ú(ß·ÿþ-þ +ÿÑGü;Oöuÿ¢ûÿâØ¿à©¿ý÷ýðü;Oöuÿ¢ûÿâØ¿à©¿ýÃŽÿg_ú(ß·ÿþ-þ +ÿÑ_Ñ@ÃŽÿg_ú(ß·ÿþ-þ +ÿÑY:çüÓöXñ>&â_~Ý>!Ò&¹Óï%ÒµÏø*üVÓe»Òu]_JºÆÿöžµ{3V±²ÔôùÚ#-£gk{lÑÜÛÃ*~Ñ@ÃŽÿg_ú(ß·ÿþ-þ +ÿÑ_ÿ?b¿Vÿ¶Gíaû'üðOÆ¿Ùïöœý?c |lý«jßk +ü5ðÇþ.ÿÁ@¬þ+ü?øg«~ÖŸ=øÃªøóã/Œ-ñ/ÀkàêW?>É®k_Œ} Išßi~ø±ýÑ@-þƲ§bÙû@ý| âxÃÂ~ñßÇ/èú÷õïxÊXþ5üvøñÆçNñµ[»ýcÅ:}ñç@ë··zÿ£Ó#×uÛµ}BöFúŸÿsjÚ®µû?|BŒÖ5=CV»öïÿŠi0Ýjw·7÷1iZüçöŒÐŽ-29î€XôýDÓŽýI²VÚvae§ÙÇ +¥¬Ç÷}QEQEQEQEQEQEQEQEQEQEQEòíñ{Æ_>x?Æ~O·Öõ¯Ú¿öøC}&§a£lÞ +ý ÿn_Ù×à'Äh#·cÔ.~üJñE¶~ JÕe²ÔâWÍŸ¯¯øãðßáÇÅ_èŸø©yöi?g¯\ÿÛqxÄ~|^ø9göùRãûGâÿbeñ7Ú¿á^}Z5``¢(¢(¢(¢(¢(¯?àòn¿¿ìÿÿà¬_úôßÛ"Ÿÿ¯?àòn¿¿ìÿÿà¬_úôßÛ">ÿ¢(¢(àßòߨßþÌþ +Yÿÿ¯¿ëàßòߨßþÌþ +Yÿÿ¯¿è¢(¢(¢(¯?lù8¯ø$ïýÿÄýuü²Ÿÿ¯?lù8¯ø$ïýÿÄýuü²>ÿ¢(àø$ïü¢Ëþ §ÿfûÿë:ü9¯¿ëùTýÿà©ÿüûÿÁ5ÿa~Ù_³7ìœñÃþ áû +øöøóñÓâßÁÏYþÍßõßÙ»á~§§iŒ+ñk[°Ò>(þÒ>Ñ®"Á^žÒµßü2Я øñjÖòÆo|>øûTðVø%¢«ÁKÿ`) +ª©ÿlÙÈ;.Â?Ì2NÕQ?@h¯?áì_ðK/úIgìÿû:ÿóÆ£þÅÿ²ÿ€~Àø³¯ÿ<jûþøþÅÿ²ÿ€~Àø³¯ÿ<j?áì_ðK/úIgìÿû:ÿóÆ ¿è¯?áì_ðK/úIgìÿû:ÿóÆ£þÅÿ²ÿ€~Àø³¯ÿ<jûgÆŸ2ð¯Ãø·âµí7Ÿð'uïxÇÄúÍÂÚið¯ ô«œoÄ:ö«vÿ%®£é7 õÃ|°ÚÛË#pŠ¿/~*ÿÁL|â¿Ù{öËñ'Á+ß>:|"ý >,þ×? 4Ï u_ê*ð%Ãj_~2øSÃÞ0ŽÛÄ~ÆŠ³¡ë¶¶^!Ðî§Ó,<má=-{JMCö³ýž?àµì¿ûB~Ì!ÿ£~ÁÑŸ?|øðûÄwíû9]ßør?xSTðÜ~ ³³âdÞÜèjjØÏ4V÷¯j-gug5ù +ðÏŰ-ìñûP|-Ö¿i?ø!çÂ?¿`ï²7ÿiðUÛosxÿ]øàäÐmf×þüBðn/Á¯ úÏìô¿xJð÷>)k:£c¥XøÚÍukàÜ}Gþ +KðàïÃ/Rü\·øã¿²ÿjO¿ðš>ë;áOÂ}S@ûwãÄ_[$ðxœŽ}+GTñ6³oáOKájV^Õ^Ó ø÷ÿAýŸxò÷á~§mñâÄ?ÙãõhðÇÀ1øµsqû?xYñöÄÔÔ|5g. gáœ*oþ"VœÕu]:4[ +ØØ6¡x¯ÃºV£ø +ñlÁ;n>/xã&ûeÁ¿j«o~Æ¿eoŸ3ÿÁQôÙóFÑüQðÛÅvúÄŸ=øi¥|Vø[ÄÚo|CáxÆ4ËKÐ<A£ê]Ük>ºúÆÿã¯üîo¿Ÿ%è_ðR¯ø%7<ñ'þ EðöðgtoÛ§áêø+âOÃÿþÒZýÒ®oíR_ºfñÂ?|BKâëá£ë +šx#LX¶¢ú£ð+þ +yû,þÑ_< +ðßáÕ×Å>.|3ñ_ůÿ<kðÆþøCñ×Á¿Ç âïÂ_ø¿KÒ!ñKø&/øzïX±YXÞi×êÞœ×4«+ÛØ6>ÁG?gÚÆz7Œßt¥ñçÃ|aø%âßü8ñüûDü'ø«hz?Ÿ ü×õX<] hø«ÂWì¶Ú&±©øsÅ~ñv¥j~ÔáÖ«ñÃ?àfßþ Y ø×þ +ÿÁžðÇìeûüký~>Ç ~Ü¿×Tñ.¿ñ[àÀ1ê ä»Õ-áÔô}Cá®î5/·õ[m>÷Aº·Ðonç¿Óôß.ÿ{ø»þ Óû%ÍðÏÂ^9ýš?àúŠð/àï~x7öÈðü/FÕŸ+øÓ÷>°ðšÏû:xÃCoü1Ö<g èÚø«~4ëz5ŸŠµÇ /ôÛ=7GýøÿýiüÐ~XüzŸÑ?h +ø»_øñ'Ä~!xWáÅÀ^œøã?^ñ¿ŠXÚøâGü£øSÔôm..;¿ø¯A\ÄZî«ÿ÷ý»ŽÛÿàþ¯ñgGø1ñkàÔ7>%ø"M?âO5K/Xß>'|(k¿x¢÷IѬŒGx%øm5ïŽ{??áöœªÿ«Ü^j|·??>$~Ãß +~ÿÁü%âø*§ü®ïPÿki.³øë6ûqü"ÇÅøö/ø»û:Z¿Âi/oŽéõÔOøÿHÕ®ÆÞu𵟧ͫÅk¡Þ}'ÿßý·?bÏÙ;á_ÄÙóâßüþ Y©xÃ?h?_>#|?ý¿þë>%ñ׿h/ÚâïÇÙíþ&øÄ +á}?áÇ|sñÛÃgðßþ$é^!X./ûG[(¬ýQ_ÃØ¿à_ôÏØÿ#öuÿçGü=þ eÿI,ý?ñ2?g_þxÔ÷ýðü=þ eÿI,ý?ñ2?g_þxÔÃØ¿à_ôÏØÿ#öuÿç@Ñ_ÃØ¿à_ôÏØÿ#öuÿçGü=þ eÿI,ý?ñ2?g_þxÔ÷ý|ûÿÉÅÁX¿ìÿþ묿àtÃØ¿à_ôÏØÿ#öuÿç^ÿåø±ð³ãÄÿø*/Å/þü`øeâÛÿÁðüEø[ã/|@ð'¿±?à_ðN?ë?Ø^.ð¥«øWþÈñªèZö~¡qö +cLÔ4˯*öÊæ?OëàÛ#þN+þ ;ÿgÿñÿ]eÿ,¯¿ëàÛ#þN+þ ;ÿgÿñÿ]eÿ, ¿è¢(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢(¢ñÿß>|Uð^µâ v`ðÆñö øoªAý÷üGø7ñ÷â_Âw` U.?Ž~.øÇöÙ_}«þIÙçÕ€fö +ùCö1øCã/<aàÏÁ§Ûëz×í_ûyü^±L¿Q¶oþз/íñïáÌò\Fš±ê?~%x^çV° É¥j²Þé³ËfîßWÐEPEPEPEPEPEPEPEPEPEPEP_ÁFtWZýŸÙèúf¡«]ÃûwÿÁ,õitË+ûŽþ +sû!ëºî§$±Ë,z~¢iÚ±«^²m;J°œÔ/$ÒÖy£ûŸŒ?öøß¥~ÏÐ<y¬hzm5ÿ³'Ál4Ëk[}Wöý€ŸþÍÚ¹$·@ÄÚ5¿úukeiŒÒŽÛK2.çp¢(¢(¢(¢(¢(¯?àòn¿¿ìÿÿà¬_úôßÛ"Ÿÿ¯?àòn¿¿ìÿÿà¬_úôßÛ">ÿ¢(¢(àßòߨßþÌþ +Yÿÿ¯¿ëàßòߨßþÌþ +Yÿÿ¯¿è¢(¢(¢(¯?lù8¯ø$ïýÿÄýuü²Ÿÿ¯Îø(¿?Œ}ÿæø»yà4ðOÂÛÅ~,ø'ÁO¿h_xOŸ#ÿz~Þß +4jþøâ?ÄI|?/ÄOþðÖ³cá[;KÔ|Q¥RæÊÚsp £ôWç?૲_Œ+âoxëÃß¶ÿüà¿ë>,ñ|Yÿ¶ÿxsŸð¯4ëcÄ>&ñ7uØþÏHÐ|?¡iwг¬êºv§ZÜß_\Ám²¯Aÿ,ýèþßÿø©ßø*oÿAœ|-û~Ë~0ÖàðKÚ§öUÖŒ5ðçöŽðü³ö(ðæªÞ&QÓþþÒßl~ü=Œàíºªê¥Ú5ÍýÿÂÏ^xßà¯.5MÃÄ^×|yð÷ÆßŒÈ\¢UÊ©uF.ø]2êB± E'høþ á?xþ ·ÿùð/Œ3âøÛÁ±ì¡á?ø;Å6£áÏxOÅ^ø +àÄ>ñ7µk=_Añ «ÙÞizΪYÚê:^£ksc}mÌÄ¿oÐEPEPEPEPEPEPEPEPEPEP_~Æÿòq_ðV/û?ÿúë/ø&}ÿ_?¿hÿ ~ËÿµüFø·ð»ö¿ÿ¡û_ü7ø¥ð÷Ä`Ûöð'< ÿíýŸÍ®è_þþÏ?~ÞýâÃ/xOSÓ#ñ7öƬxgP¶ÔŽûOôvõúŸý²?äâ¿à¿öÿÿõÖ_ðRÊçî૲]ŽoÞx{ößµñ·ü?âox{Á×?ðKoø)ä*×|+àœGÂz?|M£xz_Øýu}SÃþÕü{à]/ÄÚÍúvšøÓÂv:¥ÍÏôx¯<â/íá/Úö¢ÿlèß >~×ÿñkÿkÿŸ!xâìûq~Ïþð?áÝ¿·ÃuÝwâ?ÇïÙçáÃû/¶ü@øà? éd&þØÕuiöÚnwþÐ~¿QEQEQEQEQEQEQEQEQEQEQEQEòìcñ{Æ_þxÃÆ~;OžÖô_Ú¿öóøCc&alŸ +ý?n_Ú+à'Ã$·dÔ-Ÿü5ðœ¶~HUÕbœÔåTñÑ~¯¯øðßáǯë^øWyöÿj?h_€ÿÛqxgÄ~%ü^øÇgöøYßû;âï|q§ÿb%ðÏÙáR}&E_` ( ( ( ( ( ( ( ( ( ( ( Ÿpýª~j¿ŽÃøF×4ÿ]èŽìqñŸkýNÞæêÚãJýkÏߎ»¡Ç©®¡â}áF¡á&á¿Ñ¬õ]ZÊîðH'èúøÃöôñÿŸüð7Œ âCÃÞ£ûgÿÁ7ü}©iw7> +ø¯ÿý>üFðô$r)Óü]ð÷Æ>(ðЬDiZÕìqI¬ ÙôQEQEQEQEQEðüOþM×â7ýÿüÿ^ûdWßõðüOþM×â7ýÿüÿ^ûdPßôQEQE|ñþRûÿÙÁK?õ¢¿àµ÷ý|ñþRûÿÙÁK?õ¢¿àµ÷ýQEQEQEQE|aÿ ðŸ+ÿÁ<?oO ¿|=šx»âįØÃö£ð<)€€rjŸ'ñ~øçßðö²Eµê6:mI,qµÍÌjò"ÃìúñÿÚÆþ|øããÿÿ «ñwÀßþ%øÃá_Âÿ6X?ád|GðÏõkÀþóàxçþÙi~óa%ûG|n®¡°PEPEPEPEPEPEPEPEPEPEPEPEPÆ9ðµø(ì¹ñJÇÃÚ ÏÃß~Æ·§<QâžÒ3¥hŸ2øñÃþ ¿â/xzöC uè +>#jZb$OÞÕI#hâY~ϯ֌añËãïÃOi~þÑøEâoÿ|aãl«ÿÄxÓözÑ~øÈ þG>!ücñ$m,?ðª¶Bèβ{QEQEQEQEQEQEQEQEQEQEQEQE|!ÿæÒu]ö~ø g¬iw7íßÿLÕ¡µÔì®l.eÒµÿø)Ïíy®èZp]G²iúÖšéúÆzªmµ*þËP³kKš&îúóÿ0׌sáÍKZñŒAðßP²øñgÁöþñ4¶sj:ðóâ§ŒáoÛ=ŒáÿŸðÎñCÂq;Ë +øÃFQHõî£_@ ( ( ( ( ( ( ( ( ( ( ( Œãü)¯øBô_ø^ßðÿÂÿözþÃÿÏþÎÿ Ëÿ÷á§ü3ÙŸÍûÏøH?á¡?áXÂ'»÷ðc}«ýί`¯?oOxËâWÀÿxwÀÔ<Oéß¶üÇ÷ÚnÉsmàß ðPÿÙsâÄoȲI?Â?|âêÎÉ¢ÞÉrÊ©}EPEPEPEPEP_Á4ÿäÝ~#ÙÿÿÁX¿õé¿¶E}ÿ_Á4ÿäÝ~#ÙÿÿÁX¿õé¿¶E}ÿEPEPÀ¿å)¿±¿ýü³ÿZ+þ ;_×À¿å)¿±¿ýü³ÿZ+þ ;_ÐEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP_Á4ÿäÝ~#ÙÿÿÁX¿õé¿¶E}ÿ_Á4ÿäÝ~#ÙÿÿÁX¿õé¿¶E}ÿEPEPÌ?cߎ§ŸøëâRü`Ò|mð·Ãÿ|'àüýŠ?i_ÙÅZo ~*j?5Ô<Cû6ü[øO«øÃþ%Õþü9Õ.Žo^k:uŸ£á*úÂÚÒå&oÿiþοôQ¿oÿü[ü7ÿ£"Ÿÿ¢>ÿiþοôQ¿oÿü[ü7ÿ£"øvìëÿEöÿÿűÁSú2+ïú(àøvìëÿEöÿÿűÁSú2(ÿiþοôQ¿oÿü[ü7ÿ£"Ÿÿ¢>ÿiþοôQ¿oÿü[ü7ÿ£"øvìëÿEöÿÿűÁSú2+ïú(àøvìëÿEöÿÿűÁSú2(ÿiþοôQ¿oÿü[ü7ÿ£"Ÿÿ¢>ÿiþοôQ¿oÿü[ü7ÿ£"øvìëÿEöÿÿűÁSú2+ïú(àøvìëÿEöÿÿűÁSú2(ÿiþοôQ¿oÿü[ü7ÿ£"Ÿÿ¢>ÿiþοôQ¿oÿü[ü7ÿ£"øvìëÿEöÿÿűÁSú2+ïú(àøvìëÿEöÿÿűÁSú2(ÿiþοôQ¿oÿü[ü7ÿ£"Ÿÿ¢>ÿiþοôQ¿oÿü[ü7ÿ£"øvìëÿEöÿÿűÁSú2+ïú(àøvìëÿEöÿÿűÁSú2(ÿiþοôQ¿oÿü[ü7ÿ£"Ÿÿ¢>ÿiþοôQ¿oÿü[ü7ÿ£"øvìëÿEöÿÿűÁSú2+ïú(àøvìëÿEöÿÿűÁSú2(ÿiþοôQ¿oÿü[ü7ÿ£"Ÿÿ¢>ÿiþοôQ¿oÿü[ü7ÿ£"øvìëÿEöÿÿűÁSú2+ïú(àøvìëÿEöÿÿűÁSú2(ÿiþοôQ¿oÿü[ü7ÿ£"Ÿÿ¢>ÿiþοôQ¿oÿü[ü7ÿ£"øvìëÿEöÿÿűÁSú2+ïú(àøvìëÿEöÿÿűÁSú2(ÿiþοôQ¿oÿü[ü7ÿ£"Ÿÿ¢>ÿiþοôQ¿oÿü[ü7ÿ£"øvìëÿEöÿÿűÁSú2+ïú(àøvìëÿEöÿÿűÁSú2(ÿiþοôQ¿oÿü[ü7ÿ£"Ÿÿ¢>ÿiþοôQ¿oÿü[ü7ÿ£"øvìëÿEöÿÿűÁSú2+ïú(àøvìëÿEöÿÿűÁSú2(ÿiþοôQ¿oÿü[ü7ÿ£"Ÿÿ¢>ÿiþοôQ¿oÿü[ü7ÿ£"øvìëÿEöÿÿűÁSú2+ïú(àøvìëÿEöÿÿűÁSú2(ÿiþοôQ¿oÿü[ü7ÿ£"Ÿÿ¢>ÿiþοôQ¿oÿü[ü7ÿ£"øvìëÿEöÿÿűÁSú2+ïú(àøvìëÿEöÿÿűÁSú2(ÿiþοôQ¿oÿü[ü7ÿ£"Ÿÿ¢>ÿiþοôQ¿oÿü[ü7ÿ£"øvìëÿEöÿÿűÁSú2+ïú(àøvìëÿEöÿÿűÁSú2(ÿiþοôQ¿oÿü[ü7ÿ£"Ÿÿ¢>ÿiþοôQ¿oÿü[ü7ÿ£"øvìëÿEöÿÿűÁSú2+ïú(àøvìëÿEöÿÿűÁSú2(ÿiþοôQ¿oÿü[ü7ÿ£"Ÿÿ¢>ÿiþοôQ¿oÿü[ü7ÿ£"øvìëÿEöÿÿűÁSú2+ïú(àøvìëÿEöÿÿűÁSú2(ÿiþοôQ¿oÿü[ü7ÿ£"Ÿÿ¢>ÿiþοôQ¿oÿü[ü7ÿ£"øvìëÿEöÿÿűÁSú2+ïú(àøvìëÿEöÿÿűÁSú2(ÿiþοôQ¿oÿü[ü7ÿ£"Ÿÿ¢>ÿiþοôQ¿oÿü[ü7ÿ£"øvìëÿEöÿÿűÁSú2+ïú(àøvìëÿEöÿÿűÁSú2(ÿiþοôQ¿oÿü[ü7ÿ£"Ÿÿ¢>ÿiþοôQ¿oÿü[ü7ÿ£"øvìëÿEöÿÿűÁSú2+ïú(àøvìëÿEöÿÿűÁSú2(ÿiþοôQ¿oÿü[ü7ÿ£"Ÿÿ¢>ÿiþοôQ¿oÿü[ü7ÿ£"øvìëÿEöÿÿűÁSú2+ïú(àøvìëÿEöÿÿűÁSú2(ÿiþοôQ¿oÿü[ü7ÿ£"Ÿÿ¢>ÿiþοôQ¿oÿü[ü7ÿ£"øvìëÿEöÿÿűÁSú2+ïú(àøvìëÿEöÿÿűÁSú2(ÿiþοôQ¿oÿü[ü7ÿ£"Ÿÿ¢>ÿiþοôQ¿oÿü[ü7ÿ£"øvìëÿEöÿÿűÁSú2+ïú(àøvìëÿEöÿÿűÁSú2(ÿiþοôQ¿oÿü[ü7ÿ£"Ÿÿ¢>ÿiþοôQ¿oÿü[ü7ÿ£"øvìëÿEöÿÿűÁSú2+ïú(àøvìëÿEöÿÿűÁSú2(ÿiþοôQ¿oÿü[ü7ÿ£"Ÿÿ¢>ÿiþοôQ¿oÿü[ü7ÿ£"øvìëÿEöÿÿűÁSú2+ïú(àøvìëÿEöÿÿűÁSú2(ÿiþοôQ¿oÿü[ü7ÿ£"Ÿÿ¢>ÿiþοôQ¿oÿü[ü7ÿ£"øvìëÿEöÿÿűÁSú2+ïú(àøvìëÿEöÿÿűÁSú2(ÿiþοôQ¿oÿü[ü7ÿ£"Ÿÿ¢>ÿiþοôQ¿oÿü[ü7ÿ£"Ÿøð#áì×ðÏKøEðKñà'Ä?ñdqø³ÇÿŸ*x«RñWÅO^)ø¯ñÄÞ&øñ_Å>6øâÿx¿â'ŒUâgYñWµFãQÖn@¹Kd··Ø( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ÿÙ \ No newline at end of file Deleted: trunk/simexplorer-is/src/site/fr/rst/devel/authorization.uxf =================================================================== --- trunk/simexplorer-is/src/site/fr/rst/devel/authorization.uxf 2008-02-29 18:04:51 UTC (rev 1264) +++ trunk/simexplorer-is/src/site/fr/rst/devel/authorization.uxf 2008-02-29 18:06:48 UTC (rev 1265) @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?><umlet_diagram><element><type>com.umlet.element.base.SequenceDiagram</type><coordinates><x>20</x><y>20</y><w>790</w><h>510</h></coordinates><panel_attributes>user|_storageManager_|_loggableManager_|_credentialManager_ -1->>2:1,2:getElement(12) -2->>4:1,2,4:getCurrentLoggedActor() -4->2:1,2,4:actor -2->>2:1,2:getElement(12) -2->>3:1,2,3:getCredentials(element) -3->2:1,2,3:itemCredential -2->1:1,2:element -1->1:1:Modify element -1->>2:1,2:saveElement(element) -2->>3:1,2,3:getCredentials(element.parent) -3->2:1,2,3:itemCredential -2->>2:1,2:saveElement(element) -2->>3:1,2:registerElement(element) -2->1:1,2:element -</panel_attributes><additional_attributes></additional_attributes></element></umlet_diagram> \ No newline at end of file Deleted: trunk/simexplorer-is/src/site/fr/rst/devel/developpement.abw =================================================================== --- trunk/simexplorer-is/src/site/fr/rst/devel/developpement.abw 2008-02-29 18:04:51 UTC (rev 1264) +++ trunk/simexplorer-is/src/site/fr/rst/devel/developpement.abw 2008-02-29 18:06:48 UTC (rev 1265) @@ -1,54 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE abiword PUBLIC "-//ABISOURCE//DTD AWML 1.0 Strict//EN" "http://www.abisource.com/awml.dtd"> -<abiword template="false" styles="unlocked" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:math="http://www.w3.org/1998/Math/MathML" xid-max="32" xmlns:dc="http://purl.org/dc/elements/1.1/" fileformat="1.1" xmlns:svg="http://www.w3.org/2000/svg" xmlns:awml="http://www.abisource.com/awml.dtd" xmlns="http://www.abisource.com/awml.dtd" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.9.1" xml:space="preserve" props="dom-dir:ltr; document-footnote-restart-section:0; document-endnote-type:numeric; document-endnote-place-enddoc:1; document-endnote-initial:1; lang:fr-FR; document-endnote-restart-section:0; document-footnote-restart-page:0; document-footnote-type:numeric; document-footnote-initial:1; document-endnote-place-endsection:0"> -<!-- ======================================================================== --> -<!-- This file is an AbiWord document. --> -<!-- AbiWord is a free, Open Source word processor. --> -<!-- More information about AbiWord is available at http://www.abisource.com/ --> -<!-- You should not edit this file by hand. --> -<!-- ======================================================================== --> - -<metadata> -<m key="dc.format">application/x-abiword</m> -<m key="abiword.generator">AbiWord</m> -</metadata> -<history version="10" edit-time="2201" last-saved="1197912765" uid="f4025158-acc0-11dc-9495-ead58c2affe3"> -<version id="10" started="1197910595" uid="13efae3e-acc6-11dc-9495-ead58c2affe3" auto="0" top-xid="2"/> -</history> -<styles> -<s type="P" name="Normal" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; color:000000; margin-left:0pt; text-position:normal; widows:2; font-style:normal; text-indent:0in; font-variant:normal; margin-right:0pt; lang:fr-FR; line-height:1.0; font-size:12pt; text-decoration:none; margin-bottom:0pt; font-weight:normal; bgcolor:transparent; text-align:left; font-stretch:normal"/> -</styles> -<pagesize pagetype="Custom" orientation="portrait" width="450.000000" height="297.000000" units="mm" page-scale="1.000000"/> -<section xid="1" props="page-margin-right:25.4mm; page-margin-footer:12.7mm; page-margin-header:12.7mm; page-margin-left:25.4mm; page-margin-top:25.4mm; page-margin-bottom:25.4mm"> -<p style="Normal" xid="2"><c props="font-family:Bitstream Vera Sans Mono">Documentation développement Simexplorer-SI</c></p> -<p style="Normal" xid="3"></p> -<p style="Normal" xid="4"><c props="font-family:Bitstream Vera Sans Mono">Stockage des données</c></p> -<p style="Normal" xid="5"></p> -<p style="Normal" xid="6"><c props="font-family:Bitstream Vera Sans Mono">Découpage</c></p> -<p style="Normal" xid="7"></p> -<p style="Normal" xid="8" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono">Les données ont été décomposées en trois groupes :</c></p> -<p style="Normal" xid="9" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono"> * les meta-données de chaque élément, permettant de l'identifier, de connaître son type, son parent en version, etc</c></p> -<p style="Normal" xid="10" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono"> * le contenu indexé, provenant d'une librairie, de résultat, etc. C'est sur ce contenu que la recherche full text sera faite</c></p> -<p style="Normal" xid="11" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono"> * les données à proprement parler, qui sont stockées sur le systÚme de fichier. On conserve dans ces fichiers les meta données, afin de permettre la reconstruction d'une base à partir d'un dossier.</c></p> -<p style="Normal" xid="12" props="text-align:left; dom-dir:ltr"></p> -<p style="Normal" xid="13" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono">Stockage des meta données</c></p> -<p style="Normal" xid="14" props="text-align:left; dom-dir:ltr"></p> -<p style="Normal" xid="15" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono">Une interface permet la gestion de meta-données : Database.</c></p> -<p style="Normal" xid="16" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono">Son implémentation est faite par LuceneDatabase.</c></p> -<p style="Normal" xid="17" props="text-align:left; dom-dir:ltr"></p> -<p style="Normal" xid="18" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono">Stockage des données</c></p> -<p style="Normal" xid="19" props="text-align:left; dom-dir:ltr"></p> -<p style="Normal" xid="20" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono">Une interface permet la gestion du stockage de données : AttachmentHandler.</c></p> -<p style="Normal" xid="21" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono">Son implémentation est faite par FileSystemAttachmentHandler.</c></p> -<p style="Normal" xid="22" props="text-align:left; dom-dir:ltr"></p> -<p style="Normal" xid="23" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono">Stockage des données et des meta données</c></p> -<p style="Normal" xid="24" props="text-align:left; dom-dir:ltr"></p> -<p style="Normal" xid="25" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono">Les deux interfaces sont utilisées dans StorageEngine. Cette classe permet en plus de stocker des données temporaires.</c></p> -<p style="Normal" xid="26" props="text-align:left; dom-dir:ltr"></p> -<p style="Normal" xid="27" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono">Service de gestion des données</c></p> -<p style="Normal" xid="28" props="text-align:left; dom-dir:ltr"></p> -<p style="Normal" xid="31" props="text-align:left; dom-dir:ltr"></p> -<p style="Normal" xid="32" props="text-align:left; dom-dir:ltr"></p> -<p style="Normal" xid="29" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono">Service publié</c></p> -</section> -</abiword> Deleted: trunk/simexplorer-is/src/site/fr/rst/devel/diagramme1.dia =================================================================== (Binary files differ) Deleted: trunk/simexplorer-is/src/site/fr/rst/devel/diagramme1.png =================================================================== (Binary files differ) Added: trunk/simexplorer-is/src/site/fr/rst/devel/diagramme1.png =================================================================== --- trunk/simexplorer-is/src/site/fr/rst/devel/diagramme1.png (rev 0) +++ trunk/simexplorer-is/src/site/fr/rst/devel/diagramme1.png 2008-02-29 18:06:48 UTC (rev 1265) @@ -0,0 +1,413 @@ +PNG + + +IHDRïsBITÛáOà pHYs jw IDATxìÝy\LûÿðÏÔ4ÚÐf€D)kYSpekH-\®p¯åº×v-Qn"ûvo(!{ÉnÈNms~ßwŸó3¥Š93õzþá1}ú|>çÝ)ç}ÎgáPEjmÐ A/^d; +š¿víÚ5}út¶£P\¶:eÐ Alõλwï<xÀvJ HS||<Û!@œsüøññãdz ÒPa;$õz @= AP šGÔ#تåÛ·ok×®e;:ÈÊÊj lGõ`GllìâÅ322LMMW®\9iÒ$¶#ïøöíÛ5kØ¢rssCòØáîîŸeËqãÆåää P"øý÷ßÙ¢(,,tttd; +šw;ôõõߟ}Ò¹sçCB=zäíí}ûömSSÓÐÐP;;;BÃ;wîÎ;ïß¿ïà८®^\\lffÀçóEp8¢èCЯ=²ù×úúúô[£vïÞœpáÂÁ^MÂåçç³ÔGìþ÷ßçÏoddNñðð1cÆ×¯_Œœœ5»wï^\\laaѳgÏ={öBöìÙÓ«W/Ê {Ãr¶jÕªË/Kp)¯WÿlQÛ`P4èâÅ|<xàààðáÃ55µòòrºÃáðù|úEYYË%$''O81==ÝÒÒòرc¶¶¶Ì&;»|>_UU~ èj#//OWWwôèÑ'Od;ÿ§¢¢BNT~~ŸÛ©S§Ø@¹?~|üøñ»ví>}:Û±(<vž»»?yò€€€äÁ®]»îÛ·¯°°¢(á«:Áµ{>}mmmÅ6100-..þ믿=¥ŠŠÚØØp¹\CdddØÙÙñx<ssó€€$BÃéÑ£ÇÄÍÌÌ&NHp855µ®]»ÆÇÇBnߟmee¥¡¡±téRAWÇßß_[[ÛÚÚºÎéOÐ)00ÐÔÔRžó*mÅ<:3Hkkkú':þŒM5[È`Ç#F©œråÊBÈáÃ8 ¯¯_ÅõÙâÅ/^ŒžxñbúKfM6¹»»btµ¬M6ÍËËΟèwww??¿¯_¿úøøÐ aaaG!PEQÔ·oßvìØ1uêTB··÷Œyó>}údff&ÜÓŠMßœ{×»wïÊ:§KwXYË->}úýû÷KJJÕŸûÙJì&€Whh(!$44ÔËË«X@HÃÀñqªÛ>þL=z4ý%Ë¥¯þŽÆbü»cÇÖ[«ššêp¹Ü¢¢"¢Ð}iiiÕSB È_¶ššš#G¶k×®aÃ+V¬®V£V]8ÈO>éèèdeeéèèäææV§U^^!ÄÍÍí»'ªvìØ1BÈ®]»ØD9à HÂÒÒ244Txm%kkëèèèââbêq [žpáÎ; + +bbb(¢û9pà@qqñÑ£G kª©© YÎÐe=ý¥StttFFFddäŠM$nUÙÑ ÔÓÓstt3fÌСCuuu«Ù +@þ$ÂÂÂöìÙ£¡¡!¯uàÀ-[¶èêêV1kéÒ¥'NlÑ¢ÅÃé={ölÙ²EOO/##~2 Vu:gL9ðööÞŒy3PE?ÌVÕ<º··wJJ +=þGâd +«tHŒ +(®Äçó£¢¢.]úèÑ#©w®°° +Ž` Áê(À2úy6mè}@ŠËðà@0 AP šG0ª ^ÉŸšš(;;íXê¯_¿B +qJ±±1ÛQH T}µzöìYSSS¶c©SÎ;S + \ŽŽŽ + + +Ø@rH Zx<!D[[»ElÇR§èëë[ZZ²TWtttQQÛQÔ +š + + +B£££,6Pœ{÷~ðàÛQÔ +&Ô#Hê$õz @= AP šGÔ#Hê$õz @=Âe;ú...îÄlGQ[ööölGße÷ïßß³gÛQÔEQH :`À¶£ÄË/û÷ïÏvP]HBóæÍMMMåyDC¿ (JÇva0@] ž¯>¢péP)ÁgÏ%$$°E¢=a¶£Ï + +e; + Ч§çææÆv žu믯/ÛQÔ)&&&JTTTà#Qµ.]º PR©©©ÞÞÞ÷îÝ«šš oÏ'''ûúúfffôéÓÃálÛ¶mõêÕEmÜžÑÇÇŸýOÿ+ž©Ïáp,YÔ®]»ÔÔTf?bÈÈÈðööŸuëÉ={úõëÇápû€_wþ÷ßËáÌÈÓäÉ?þÌvÒסC?ÿüS ¯¯ïÀÙ¢.?>Û!HG.]üýýÙBM>í@rÓŠMóõõõõõmÐ ]âãã³páÂI&<xÐ××÷áÃ.séÒ¥)SŠøøøP%|.ÐŽiÓwïÞýüóÏõÃäîîþÓO?=:11ÑÇÇ'33³²P ;šc.\žðîÝ;¶£Ÿ¢Oh={öTêÖã_~©šš`; +)hÞŒ9>bÍ;í*:kÖ,¹.00°Gr;T€§§{yy ®þ !&MÒÐÐ<yòìÙ³éÂéÓ§s¹Ü¡C~üø±ÞæÎ«ŠŠ\Y?Liii'O<y2aÌ+(//Ûù¿ÿþ[ó@ÑYYY¥ŠŠ² 45lØ~¡4 Ô_Ÿ|¹qãÇãñx2=Piiiiié/_dzY°ŽŽ + +>}ºà>|xÒ€I277§¹\Ñ¿Þ</;;ÛÄÄDžPMMMðZl?CCÃúKkkë+V<X]].100ëׯ_XXXeÔ=GÖÿ[±«Œ-_ŸükõT³ŠU«V±ýSJ(,,lÏ=»ï!!!7onذáÖ[CBB*kèççgiiYÅZ@õ³jÕ*z ?ýå¶lÙ¢««Ëápèµk×?ŸeËuãá! P ݺu»{÷®`0!ÄÎÎ.==œŒŒ<==¹+<Ö_ðzË-ÅÅÅb¿UY?ŽéÓ§*[XX\Œxî.ôõõýüùó§OæÌ#šõCz °ÃÔÔ<EïaggÇãñÌÍÍèjþþþ7oÞd3\º °ÃÁÁáüùó'!!^ä×ÝÝÝÏÏïëׯ>>>t533³O>-ZŽÈÛÛÕxê$ÀFGGwïÞ=**Nè(ÕÕÕúôéSº»»»ÆÄ?~ÌjŒu`à &Lïàà@±¶¶Š§òù|ºÚáÃ9ÒŸ}{Vãš#äœ@zzz~~~<yòòìÙ³k×®Õšaà +;vìX£& ïÞœËÊʪQz7¢ŒŒŒ~$!ݺu««kú*-[7nÏ=-ZŽ 8p`Ö¬YcÇýöíùÏ:3?ÖÓÓkݺuxx8ËËœ_AFFÛ±HâÍ7÷ïß~%»wï]Œùóç?^ëׯ_¿~}ØÚÚ&''Kp,§3gJÐðÆÂKVSNNNË-%8ÈBFF!äÑ£GôôÂè`ãÆòMè&úé'¶©èèèèèhúõ»wï6mÊn<ŽG ÖŽÕׯ_ËËË-ZTÓsçÎ566®i+9cg'àåËW±[TlذAŠýt¹¹¹YYYÉô÷ïßé!$CÿWÑ¡C]]]¶c¡¡¡ Å?ÿüóðáC¶cø¯¬¬¬M6IаššHcÆA Þo¿ýŠ¢"Ûé[¶liÿ ]&L;v¬LñâÅ$ èUPÿüóÏañKm={ö ( ~úÉÝÝ]Š + +àQ+ØIÃQðý/kášQ£«®ÃårO81`Àɵ€ø@Ô²eKkkk¢yóæ2í_êã*@gߟ}Â_V¿m®œd=ÌIê + + +òòòÚŽicV¹O> +>\² ++66¶sçÎ<ÏÂÂâðáÃlu¢]iÔÇþüùs¶£PP·«Ô¬Y3ãââRrww÷þùË/§O>}ú4Ûá@¢hWõ4 + +9sŠ`¡qÃáp¢££?~Ü¢Ez9Ââââ-Z<~üXpSÿÚµkíÚµÓÒÒò÷÷ +7§éBÈ£GúôéCg~W¯^%ÿû|@žyóæ¬SihhøúõëøøxÿúõkÁòÌn !þþþZZZæææ7nÜæY#¢¡¡UÇr}}ý·oߊ€€4oÞüСC€+xwÄ~6ªó}Iåo±üß_:Ö¯4DÔÓ9VVVCÙºuë Ëéí._ŸìééÕ³gÏ={öÌ3gÏ=œzõ²°°Ô>}ú §N*<Hž9EQÂõ=<<üüü.^ŒèííM¯~(V÷îÝ Klll>}ºuëVÿE ö7Û±±ñöîÝëëë{ïÞœÚ,AEEE9;;»žžDFFþðÃR?EGGoݺõäÉÛ·o:ujeïýª2?={ö¬Î[Ì|Iåo1+ï¯L}úôrçÎÝ»wËô@7oÞ$>}úÙ³gwÒŽiSWWWéõëW¢(ù¢/+**d} MMM[[[±ß"ÿ¹R:tè'! U«VôòDôµûÕ«W + +Zµj,hKQªªjQQEQ t!³¹ðéårÿk|·¢¢BðRVV&ð¯¿þºhÑ¢víÚUTTŽmÛvÑ¢Esç΢[A`\.ùã=3&ðùü*N¬©©)ý">>^SSSCC#..¢šJöqÚ¹s'!äøñ㎩S§Brrrªšsÿþ}JÜ¥þ÷Ýa~6ªó}©Êßb Þ_¢ºté"Á)ªÚçÏ !£G®M'Û¶mûÎ$EÒ»woiœªÑËÌ9sF>©'BÞœ{Çv ²Ò«W/---¶£QÇ#ìÚµùBÈæÍeòeË!ׯ_¯¢[W4×·o_¢êéBÃÙ¹s'}QHó÷÷²··wvv&ôéÓÇÈÈÈÙÙÙØØØÖÖVž¹¥¥åþýû=<<OÍÕÔÔÞŒychhHéÚµë9sÆ«©©I×700íß¿ÿÞœ{ {~wi666ãÇ_œzµ×ªU«éo1»%³ŽŽÂªÈsÙHÜÝÝW®\illüàÁúWHì%Bïó³QÍ·ùþÊßbß_iݺ5!€wïÞœ{÷Ãᬬ¬7n,Y[á?µÁúšÚ§;5¢8Ohaaa/W¬XÑžqãÆ¯ZµJPAiܶm[MMMz ØæsæÌÑÐÐ _gff4H]]]pÚ÷íÛ§¯¯ßžqãßÿ=`üâÅ55µ·oßRõæÍ.{õêUú[Ìn !K,ÑÔÔl×®ØTZOhç]»vìã€O>lnnÎårÍÍÍO<I;±ãÝùlTç-®ìUöKðþRý^gvõêÕÒJvŽŽŽð@xu(&ÀúMð ///_Æ444*K€š€€dÓŠM={öõ€Hº õ@UUµ6 ÀŸ}ûdý ¯KªT7 +$AuÅ€à `y+Ç.z víÚ ³è±@NNNߟ};þŒds§M6mÚ4i@!·nÝ^žEhey'}úôÑÒÒªQÛ·owíÚÕÄÄ€F + íª^nÈÊçósssE +><qâDggçšššåŠŠŠ®®®ùùùÕ«Íçó£¢¢6mÚ§OêFÊzåèÑ£Ge; +E!ï_#G8q¢"iÒ€£££Øogffnذ¡F À!C5kŠ¥¥åìììêê:`À55µ*ñx<kkëþù§fÑ@=Óµk×ðððË/Žoß^xíü*Ì;W[[{ݺu5=YÍc·ú» +HæÖ[U|·¿T"Ÿ~ýêæævüøñ¿þú믿þÒÑÑ>|ž««ëСC6l(i€€eË'N?~nn®ŸŸþÈ#]]]"²üEéèèL2EnqÊS=Ý Þ={>þŽpáB}}ýÃ7®IF yûö-Û1²RQQ9yòäŒyó455÷ïß?jÔš&MžººîÛ·ïãÇlGÇ$ (TUUûöí»iÓŠ§OÞ»woÍ5;v<{öìôéÓ[¶ligg÷ç>yòí0@Éššš888lÛ¶íùóç)))+V¬hÛ¶mdd€§§góæÍðï¿ÿ²dQH6æBCê£çÏÌ ÕÔÔüôéSeõ²êÌ{NHH ;ïÝ»wBBÈw/\ž0räHBgggzõ.N:Ý¿ÿáÃ<ÏçWTT$'''''/^ŒØÊÊÊÉÉé»aSzzzvv¶Ha§NZµj%RúæÍÂîÝ»7mÚT€ðúõëÌÅ!ìììK;$%%8P°®¹ÀùóçËÊÊD +ª¢ò?7.ù|~ll¬H5555æTŽââbæIÚÚÚýúõ)ÌËËKNN)Ô××ïÕ«Háû÷ïoߟ-RØ¢Ezca/_ŸŒÿŸH¡HáÓ§O333E +-,,ÃÊ>|øüùsÂÎ;Š€€0€÷èÑ£I&" bßJ{{ûF^ºt©°°P€pÐ A +4)+//)6lÈõkEEŹsçDªñx<zraEEEôÒÂÄûVôìÙÓÚÚzõêÕYYYW®\¹téÒºtéâêêêââbmmÍì°Nay=Òj8rä!$$$í@ê333uuu»ÿ5hÐ ê{ûTçÓBiÜž1Ýç3nÞŒiǰtéRfÍØØX[[[KKËŠM +æëééM2åøñãGGÇþèõö +ì ì à~üñGæÀ={5ÇϬͬ9`ÀfÍ[·n1k¶oßYóÅ̺ººÌ¥¥¥"ÕJJJÕôôô2¯ !VVVÌ7oÞdÖtppTìŬ9qâDf!!!ÌóçÏgÖ\³f +³æºuë5çÌìƬ9fÌfM±púöíˬ¬ٮ];fÍW¯^1k2"nCØ¢¢"fµ&M0;ÌÊÊbÖìÔ©sk×®1k<ÙçáÃÉÿÞSoÒ€AeÔ䲌FXÞØÕŒyó+W®ÈšóîÝ»ÇÇÇWöÝ=z|÷Ð>}HKK£ÿ"»žžžººöë×Ëå2o@užžž2ïmBŠLÒ³gOBækBȬY³f!K,aÞ`»5Ð5k÷ô"%7o)d>O èêê2kêéé1k¶jÕYSìÓ¡CfM±K÷êÕYÓÆÆYó~`ÎLµ··gÖ5j©©©Ha=5=<<lmmE +Å&c~~~®®®" -[¶dÖ\ºt)}WHØký?þø£ŽŽT€9|EMMyĮܧ§Ç¬i``À¬ÙºukfMáÏIIÉÅ#""èE)jԚѰaÃ\\\.ÝÕäSSSœœœïÝ»G'?t!}Z¶l,üK$RÃá7¡€²œÙá tIŒpu>-úaþý÷ßp¹ÿvêÔé×_œsçHHô<šHHOJvvvxxøãÇÙ€NÁNÀ©EäååÑk2CCÃ3f9sæÛ·ojÍ5âÎ;÷O«ššHLL455¥.ŽD*_ ^Kv +' @Þ¿ïèèx÷î]Bªªj>}èxJ±.ºuëÖÔ©SÍÍÍÙe¯^œHLL€ï$ZXXÌ5ËÅÅ¥W¯^"ÓK€.==Ý××WxĶmÛ6oÞüêÕ+>/òHYÆçó¥`_&M +\]]ÓÂû÷ïSSS+Û)ØRVVfnn^TTÄápzöìI+¶ŽŽ[:t 9sŠà²Þßß?**ÊÞÞ>>>ÞÙٹʱ±±ýû÷ß»w¯Žâw0yòd F¯Y³FìÌ*ØØØ`§X©$ŠôJ*ÏþãСCË-#€¥¥¥¥¥^œº:=zÔºuëîÆÍ7¯qUzöìÙüqàÀ¥K"P(ùùùO<<y²ŸŸþ Aèi' ÌEW]G,KKK---ÂÐÐPOOÏð,^ŒxìØ±T]yÓŠMîîîååå-ªi0wðáÃ/^<.]O>;m$ Ý+~/^Œ044ÔÖÖÝQ!ïÞœûòåKEE LõàÒ¹Î(+W® _¿~}õæææW]µëׯ3'ÖÛØØ€¥¥ ¬^œZpÓsåÊDèrK€²ýzùòåôZ^±3(##CÖc¹(²mÛ¶Ñy°ìxxxËôõÐÑ£GÝÜÜx<Û°@øÒ¿]»vîîîô_pP@àjŸFÄ®=ª0$ôòåËI&ñx<WWWgggCCC¶áKÿÎ;¯X±ÂÍÍíÚµkHÖ#~úé'bùòåÊÈö6<Ôa¿ÿþ{çÎÏ;7sæL###[[Û +6<~üíÐdåÙ³g^^^íÛ·³²²:yòäÝ»wG]Ë-Ùd€M63gλx?ÔgH@BË-»yóæ/vìØ1hÐ ;wîøûû·oßÞÒÒréÒ¥7nÜéyÂ¥?(#ààà~ýú±(šJJJºwï.RØ©S§°°0Â7nøùù0ÞJ¢šììlBHaa¡`vBÑìÙ³gÏ}äÈ€€€õëׯ_¿ŸEÎÎή®®J:U@ìÊ®û?þejjÄ:¢š§OÝôŸžžY¹E|YYµµ5!$66V°AÞ§O«éèèôïßêÔ©ôjjj¯_¿Þ¹sçÎ;µŽŽ&L éÏÄ¢|||öíÛWQQÑ AzÆsÕWöAAAAAAÃWUU¥KvìØÑªU+j^^^?~|Y÷-2eÈ6Ìu{}||Þ¿/RxðàAÁöcÆ¡7î°··_Œx±âš_(æMbP:êêêyyyÕ©9`ÀêÔTQQ:ujxxL{ï IDATž©©éàÁéB±ZZZ£FÊÎÎ~þüynn.!ËåÚÛÛÓ»®<þŒ&?Ë8Î+ÔÔÔBCCKJJ~ùåñãÇ.î7næÌAÉ +Õâãã_Ÿ|)øÒÁÁAº³...N€díÚµÌj.\ , ¹Ð§9sŠžžXžDCC£V!ÔcH@··7Û!Âár¹Û¶m·±±Ùœ{7³ByyyRRRDDDddä/!ôEÿÈ# +èjÊB.]ºnݺÐÐÐÉ'¯Y³æ×_, +={ö/¿ü"\¢®®Î¬öøñcáÙAAA REÙÙÙ"[z=éééÌY"b¯ì FGGK° ÐÀ-]ºtÚŽiµ]·nÝÃ<}vëÂÂÂsçÎEFFÆÄÄÐ÷ûõõõ=<<\]]¢©©ÉvÒQý4ËåVç§¹ÆâÒÐÐà<TAž7MMÍ)SŠH ažmhhèÃ'O,Åx@Á=|ø°sçÎ|>bbb2eÊWWW{{{.·nþa©éÓÖeffFEEýðÃ]ºta;P ìü?=bÄY/QRR"ÓþAºÖ®]+ë¹÷îÝiÿõ íàÁ]]]»víÊv8rRYÀéÀº{÷î-ZŽ(88 @YYÈT"YBŠýK; @ll,+Ç u÷îÝ»wï²ÔËœrå +ÛQ°æ9ò÷÷÷÷÷g; +E!ïàôéÓ5ÝèøñãSŠL öòòªQC¬Ã|}}===kÔ€¬¬L[[û~©éáÔÔÔjÚ 2"iÛáÍ59rdM[?Çãõïß¿Š +uttjÚDþäHpùE'ær¹JºTMEE¥Šï,ÚIÐ@Ó|&M÷îÝ£££kÚªyóæ4T +us®Ñi=%dêëׯvvv.d;¥@jTTTØ¡î+--ýç0@bø¿ + n²²²ZµjU÷îÝÙÔMVVV+W®d; +P8xP šGÔ#Ê€Q£FçÎkÞŒ9Û(+¥IN8ñøñc¶£š>}ú€{Ô}×ãÇ-ZÄvš°°ídHMMmÈ!lG Ä&c;:¢n$ÙÙÙ6mb; +ÅuïÞœž¹¹ÙÚÚ²òyòäÛQHSYYýB GGǶ£øŸ÷ïßýöÛolò}<íj Ëå*ÔG",,,00088žW¯^lÇòÿ444ØØ¹iÓ&333$5ell¬©©IQÛH¡¡!Q@WWWWWí(Ÿï¯¿þJNNîÔ©«gU©q8kkk¶£ø¯sçÎBÚ¶m«PQÄnÞŒÉv2U€&"""77÷òåËlP)$ÒH`;Ja°t9sWÀápØ@qìß¿í(Ÿ£šší@ŒüüüáÃ8pÍ5lÇ H}ãßÄÄ$;;;55ÕÆÆí©©)!Dñ§UŽhÑí(@òòòääd###¶PVH€ €€$66VGG';; ^?~Œµµ5fWGÏ=³²²Ø Ÿ°±± îׯÛbÁ)žpáÂׯ_[·nMÑÐÐÀ4úÆÔÔÔÑÑQ__í@þG6mfÎieeÅv XH`ü!ÄÎÎîÞœ{žÇ @mñùüèèè-Z4iÒBoPÉv\b šëׯ¿}ûÖÙÙ^ùgàÀªªª @mÑ×ú...ôºººöööW¯^ýðá«qÔM:::iii7nd;e Uj+22²Q£F€(ªM6zzz®®®.]ñôôd;:PÙÙÙ÷ïßg;ÚÊËËõ!TUU;wî,ë£ÔaHj%===33s <oذaà +#žžž,X° "" @=qðàÁ;wnݺµGlÇJlöìÙluÍÍ7===Èv, @ÔÈø©©i.]Î?_XXš¥¥ÅRh ?999W¯^ÍÏÏg;PV666?þø#ÛQHÛ!!ŒxñâàÁvvvH@Z9sæÇ>|žH¹««ëêÕ«FÉJ` k999»wï1bD¯^œDŸååååééÙ·o_VeäàààààÀvP_ šžžžFûøøž¹¹ajöôéÓ5kÖäçç$éééaaaEEEH@1a ZQSS1b³ÜÈÈWÿuœœœŸŸ~dd$EQÂåô®®®,ÅðH$ÁårGùüùóÔÔTáòzF8[Ôy?6337oÛ(+$RsäÈyóæ}üøí@@NèÛü»>¿zõêÖ[7f/.:Ïçgeeœ{÷í@©IHHüòåÛ2DSS3""ÂËË+55µW¯^QQQEaü([[ÛþùÇÑÑí@@±`0455øáÈÈÈ®]»B"""8³³3Û¡BHË-[¶lÉv pð@r£òóó{öìÙ¢E¶ãšÉ9RUUÞîÌ3¥¥¥ÿ + äìíí¯^œúáÃ: +@ +sjÅÕÕõÒ¥K'O<{ö¬ EûöíÙ ÓÕÕ}ûöºº:Û(+<ÐÐÐ&M°È!dÕªU_¿~Åí9PQQiÖ¬Û©±³³óôôlذ!Û\véÒåýû÷ã@Á$%% +2$&&í@@± š-úºßÐаgÏlÇð_ïß¿?þ|NNÛbAP[tàì쬢_(Ptž^š®]»`ü(¬ +mûöí>|`;ïkÕªURRÒÕ«WÙäûŒœœMLLØXZpppFFÛQTËåËÙ¡ZZnn®±±±[xx8Û±(%$R³k×®.6kÖíXêšš(¶£šÂÂÂBBBØ ¶(*,,,))a;e @jîܹsâÄõë׳H]ÃãñlmmÙ¢.g;+äää6mÚ°($uŸŸ>n VšGÔ#H@Ép8¶CPbÊD__Ïç³Ã©7oÞ3g7oÎv B 5;v6lŠŠ&ÛBÈùóç;wî|üøq¶Å nÊÏÏ¿ÿ~nn.ÛbÁ?J°Õ/_=ZÓýû÷744¬i+`× pµ*Eׯ_'€€€8qíXXÓŠMû÷ïÏvÒä$33sâĵ áÙ³g(åËßžqí(ê¶£Pb/^d; +iBr5bÄ"..îäÉ2=ÈN +¶mÛVE¢JKKUTTÔÔÔäJIIÙœ{÷€IúõëÇv,ÊjÖ¬Yl }H@®¬}}}ezüü|$ÊKMMmÆUTøôéÁžqã;&·šÔÉ'wïÞÝ·oߪO)T HàÝ»w÷îÝËÈÈÈÈÈxÿþýÞŸ}[^^^^^^ZZÊãñ޵µ6lšmfffllldddgggff&·HÍþsäÈ-Z°(CQÛQä(JLL9}úôãÇEŸkddÄårÕÔÔŽŽŽJJJ>~ü]XX(<=RWWwàÀ...ÎÎÎ7iŽì$töÃÊ¡eçÉ'IIIߟ}c;šðæ:oذaYYYúúúlPÇ8qbéÒ¥Ï=#4hÐÀÙÙÙÊÊÊÆÆŠsçÎýVTT<yòäñãÇÙÙÙwîÜIII9uêÔ©S§ŽŽŽ~üñGÿ +Ê(`9%!!!·nÝzðàAZZZ³fÍ6nÜ8nÜ8lçrë~š?ŽŽŽLMMÙ 5kÖÎ;555}||ŠOÞ£Gj6TUUmߟ}ûöí%¹¹¹;wîܰaÃÚµk#"".^ŒØ¬Y3YÄ,}(2eʬY³BCCoߟmkk3aÂ~ýú¥€€È!véÒ¥9ÕÌv€2ÇápæÍ'xÅáp8Qtt4ýåï¿ÿ®««Û¬Y³cÇ\¹ROOO__ÿàÁGõéÓÇãYXX\œzîÁÐÐðõë×ñññ'>>þõë×M6%ܹs§K.jjj]ºtIMMeߌyóœ{÷Êù$ÄvîÜÙµk×/^Tÿê_,==œeË}þüyöìÙéééëׯV"äñ`Í5Géß¿ÿ®]»ÌÍÍ9ÎóçÏ/^|üøq{{û·oß6jÔHaíþýû;vìønµ}ûöÅÆÆÚÛÛË!$y<t¢tïÞœžžXPÂçó/_ŸìéééääDÑÑÑyýúuRRÓæÍ_œz4uêTwww??¿/z{{gddBlll>}ºuëVÿEuìØâéééëëëåå:mÚŽŽŽ4C8pà?þ8{ö¬µµµÜO HèÀ!CHq¬Ê/¿üò×_=yòDZ}ypúôéU«V:uJpjZ·n}ìØ±:¬\¹òäÉ^^^²D +4š²ïzxx€ŠŠ>üÌ3u,4iÒ$UUUBȶmÛèK|>/HfÏ¢¢âèèXVVæççG¿~ÿþ=!$55uÚŽiÓŠM#BIE·nÝbbb<ymaaqúôi:xôè×O?ý$rhB··wDD®þªCEE¥yóæ:::lR7{{{³ ¬_¿ÞØØí(@¹Ñw±·nÝjbb2}útÁÿì£(*22rÁû÷ïK!Dqd?~¢š#G0#//¯Õ«W8p üµlÙRxÌCCÃ)SŠüüóÏu2Æåþÿ¯¿¿TTœœ}||Œ³³3]š¢òß1r¯ !]»v3gÎØ±c555 666ãÇ_œzµ×ªU« !íÛ·ß¿ÿÔ©SCCC¬¬DMòððvssÍ +PwèêêŸyóí(ꬲ²²#G° øûû#Z¢oFhhhÌ={þüù3fÌèÛ·ï°aÃŽµµkÔÏ¿råÊ3g?þï¿ÿBÔÕÕ +dŽÜ&]ÓÈÈÈÁÁ!!!áåËZµO$²óË/¿Ì9³eËl"ýúõ;yòä1cê|@[Œxñرc !tÎý]5kÖÌ3éuèݺu£(ÊÓÓâéé¹bÅ +ú ÀÞœ{œœœçÎkiiÆìmèСçÎsrrzùòå?þ(Å@à +Û·oÔ¬Y³wïÞÉ¿«+VìÚµK*Ç üý÷ß>\·n]`` }ï¯I&U4ibhhšŠŠÆåry<^IIIAAÁׯ_?~ùï¿ÿ>xðŸPUU<yò +èKayoߟÕÝëØ#GJ=øðáÃjßOªž5(2þGøËÕ«W¯^œ~œråJï2_·k×Nxí^Z«VJKKé×Í7/++£_÷ìÙSä)³Ã®]»Ÿ|ùò{?@ +DGGûøølÜžÑÃãF +4h@¯aPMïg"Y+±«QW 2\.wÞŒyóæÍ»wïÞ¹sç.\žðèÑ£sçÎ;w®:ÍÕÕÕû÷ïß·o_[[Û!CÔ~Ñ÷õhO>eÞöìYrr²££cóæÍåÔÔs]»váŠ|Œÿ^°ÞÈZçÎ;wîŒhÑ"BÏOIIùøñc;·mÛ¶U«VM6óÊø2O<<<><iÒ€7n kóæÍô +¡²jCZ9¡¡¡[ÂÃÃKKK}||jÚ°uëÖ5m"ø|þÉ'Çý:@IQµ}ûö;vdggÿòË/ôÄýêçÝ"¿bôqÐߥ)^»v»»»|¢ËåvèÐaÓŠM>3ôkAà}}}333ÍÍÍCBBúôéCWX²dIPPP»ví"ÿœsžeË/_VTTÐß³ÈÌ8ζmÛV¯^MQÔÆåpêTTTºwïÎvâÉ<8p`@@À9s\\\z÷6þüÄÄÄF5JÖ1 at -I%055 +ši«sçÎ}ùòE ±ÂÂÂsçÎEFFÆÄÄäææ¶jÕÊÖÖí $±eË#G=zŽS§N/^Œøý÷ß«ÈYÕÉœHñÅG-笢¢âúõëcÇ}ýúµØ:"ùÏ 'MtðàA__ßÒåM6}÷îÝÏ?ÿ,ÜPž«eË-[¶ÌÕÕÕÌÌÞ) ópÌ®ÄÀårsrr.]º4eÊ9FE#ÀüüüüüüRRRúõëÇãñ:vìhmmèææqxJÎJKK~åʶÃéûðáChhšK&MFÎãñ~üñGíA ±§OŸ}ûö»5ÂÂÂlllÔÔÔÌÌÌè)øb7æ[³fAxx8ºéN¿`nüÇl"vs@áKRA"Öüÿúë/GïÛ#üòòòÊZeffN4ICCcòäÉò¹sçjiiWÖððáÃÉÉÉ...ôt¬*šØŠO®¡¡1tèÐ?V³eÇçó˪An»ßãÇ'LpôèѶc-y$ÀÀÀ'N,]ºÔØØ833³S§N.\8uêT6mäÔ^ýÌ€2úEÐÉÚµky<àªxeeemÙ²¥ÿþÞÞÞQQQ+W®LMM}óæM@@~IAÑäååµk×®:C +srr,--E +===}||òòò|||è¥E<Hߊ¯(¢_xxxÌ1ãëׯ5òE#ð&!Ì&GUUuøðá7oþîO-].ܹsgAAALL}6âââŸ}û"šÆãñ²³³_>|žžžøÐ¡Cæææòï®ùáää¹iÓ&±0Ç$6áÅëÝ»wóªaÊ)|>í`B||ü±cÇ&Nš¯¯?tèÐ;w}êUÈéÃá3fÌ1·oß~ñâEjjªÈªêuÀ¯¿þzüøñøøx¹-iZXXÈÌPµµµµŽŽD +¿~ýZTT$x]Îýüü6lÈ,ïØ±cjjªÃË/ ÿ£¢W¿)++cþ}ÿôéóFsûDþUqIv€2öWžÁ[·>{ö¬Š±]ÕEQ©©©÷îÝ#p¹Ü^œz +6lèСð + + +Ë3Úkذ¡ð~Ž/_Ÿ0¯r7n¬®®.RWRR"Rš««ËŒK+X[I at __ùÿúÇé1ÄÂ4iÂüËóþý{³Êápëðùü>ªªªÊnfš=##£¥ôÄnÌGïú7tèPæ»L*ÙøO€Ø:ÂÙ7øî ¢Œœœé}ÊåféÒ¥'N€_Ð%k×®?~Œ`å4B¥¥å·oßè$$$Ä××wÆæææ{öìÛ³à, ß§_«ššŽnÝÎv0Çìª:Ô]»vbµ«W¯:tHUU5,,¬î]Õýÿc\\ܹsçüüüzôèáêêêêêZÅJʯ~øRQQ!çãʯ¯/!äÙ³gr;âúõëoè5k5kÛÿóÏ?UôQ9BHÿþýG¿qã³7ÁÖW²³³5Ån£mhh(ñ)ðï Ä¿#bJÖŽ~Oûí7BÈèÑ£ ÿ'èØ±cXXØ)qþþþÂÍ?þLûçoëÖÌú}äÈfM±4/^dÖìÑ£³fzz:³ŠØ5y?}úĬÉL3x<³Znn.³ÃVZUv¶A2œzõÒÖÖ®º=~cÜžqßímÓŠMÝ»wOII)++{úô©§§'EQ;v.,,ÜŸ}{çΩJ~åÕÔÔèáæEuïÞ}ߟ} Ìj×Ì:E={¶šš^ªÉ_"ô¢(>OOûîO-¬ŒŒŒ°°ãQMùùùWW×HéÌ?öÝÇÁÁAž€W¯^ZZZ2MèÑV'N𢳳s.]!S§NUê˳cÇBvíÚ%srrvìØ1dÈÁíÛ·_²dɵk×Oýkbb¢Ž+ ££ccc#õniõîqX]beeEßÖ¡CfMAÍÌÌÌ;wîTÝsÕÛÑOú÷ï/Œ¿ÛÅßœ{'ö +~ÄôaÌÇÑ£G< 8}útÕ¡Ö}šeËÁÁÁNNNÕYÎbÍ57oær¹[¶l:uê£GŒœœoߟmjjjggÇáp~ûí7á:"ôL Í`KMMõööŸwïý×DlÌ®îܹãååneeµoß>kkkºHbÏÀ1cììì"""®^œZQQñàÁN: +:TWWWž&ó]#4nÜù©ôìÙ³°°P€PìêLýúõc>j;ÖÙÑѱmÛ¶" ô6ì"\\\Ã|ÅŒ?~ŒÈ&±ãx<óûÅñÓO?©ªª7îùóç[·þå_H56æ£Í1ÃÌ̬žž¢(±ÿ[gÓŠMîîîåååôU~h at QTEE ðœXú»t"Q}ªªªÌ§sÂÔÔÔüýýÃÃÃSRRFÉápLMMéÛÂ?~Œÿ~ÂN:1ÿ6Þ¹sçÔ©S" }úô9r€Habbb\\Há!C R,RèææÆ\fçèÑ£ôÃma" !!!ô»Âüüüè« -[Î={öìÙyyysçΜsçγgÏ6lذaÃCCCgggWW×å$IpäȬ¬,ÉGèµk×J<yùòå5¬{ªù,ØÝÝ]°âAPPÐwêXŒx±ðEü AÞœ{gffƬYý×[XZZ~ùòEâ (âóù/_öôô{ö(ÆúôHßK.M:uêÔ©~~~ /^ôööÎÈÈ`Öav"¶gBÈŽiÓŒŒŒfÎÙ A±måéééëëëåå:mÚŽŽŽ4±¡=&LX°`ÁÇ£££#""Î?O÷кukWWWŸ}ûV6XÖÈÈèðáÃUãÿçëëËüÿC,Á ßµfÍjÖÜŸ}{5kÒ38¿KKK«?8(3þ|ú^¯@u6æ#¶ó$â6þc6»9 `.ú?/±ÉH!œ¯ ×Û@455Ï=;lذ«W¯ÒuöïßùüÙ³gëÖ)7n3HKKcÖ7o3žví³Š¶¶638þ<ó»3 ³³³c&ºtéH¡ÈmPÛ·oÓÿÝóxŒÒÒÒ7oÞìÚµ+<<|ôèÑŠŠŠD IìÛ·®Õȯ¿þ*qÛúlÜž1--mÿþýõp&TlÛ¶móæÍ¯^œâóù")hóª3Ò·êÄUHOO÷õõ\ýW¡0±k§§§§§gaaa\\\DDÄéÓ§·mÛ¶mÛ6}}ý#Gºžž8::âö!q¹Ü6mÚìØ±žC< IDATí@ iذ¡ 6lØþɬӧOëׯ}êääĬ)vó&ºØr?ýôÓ€ID +Å.Sñûï¿3G>3¯þ !ÁÁÁÌ"+äçç9sÆØØøÅEEE¥¥¥Ûÿ +4šþ) "ÉuäÆýýý%;Þ¢EîܹsáÂl-$ØØØ*Y×ÒßÿœbÅ'OtêÔiË-ýúõÑØâïïeooïììL100íß¿ÿÞœ{ÕÔÔÔÞŒychhH)2)ªk×®sæÌ;v¬ð1sâH'éСCHHà 3B±]µoß~ÿþýS§N + + +b!Ùü---Q£F5ªŒŒüòåËôä§ýû÷ïß¿_UUõüùóô¬¡ªªÚµk×:ŒÙÖcVr³gÏ6iÒ9'XGG§W¯^ÕéªI&M4©NÍ-Z'®BëÖ«ù[ß¶m[æ`Q±« Œzõ****"""11^æÄ +ܳgÏ:0[Z@ìÈàjÒÓÓ#0 »ºçøñã'NhÓŠÍ3gÆWý«IâÙ4a.^ŒxìØ±Áœ±#t Çþ2;©Îhàïv"êéé¹`ÁzR3B±]UssMq¹\»wïFDDDDDà +À"zý~.A@¬ë=þüðá÷nÝ¢àöìÙ[E¶ ê×û*S7nÌÉÉ»ö²8zôš¥¥%Ï///Z{ÉÉÉ*5ñúõk ÆÆÆ2cXœzu^^^^^ÞÊ+©ÿ,ïýñãÇŒŒŒåËý-**¢þ³ø ¹ðH_úrŒ²:uÂ|accÆçóéfb»¢1Ý»w¯[·n"}Zæp8ÖÖÖ«W¯NKKÃF`ÊSYP}t`ggîééYßG%$$,[¶ìîÝ»C ÎÉɹ~ýº¿¿»ú'rÛ >ÐÑÑÑÑÑa;Ú¢oëëë×rGeLMMÅN¢çÏ?yòDŠ íÝ»÷Úµk6mª¿ûP':ujìØ±ÁÁÁ3gάfzQ¬>0ç4×%/_Ÿ$\¿~ýýû÷fÍuêÔí E}~àìì|äÈWWWæ5uøEEEEyxx,!'OõtM6}wÅ=©HLL<xðà5k@AïßwõêUzߺmÆô &9rÝ`XôüùsæÚÜÛ·o÷õõ +/..>zôh=Éôôô&LÀvòþËËËkÕªUÍ5SUU«{_@è 6mjccÃv,2×[7óû￳¬wïÞ-ö[úúúZZZ'N iÜž±B LV®\9kÖ,Ù:`À/^ŽoßþàÁ2: +(,z¿Œ>}úüóÏ?lÇ">|šç @Õ««=úï¿ÿ[0 7HIïÞœeÚ»G(òòò7n]ØŸ«^è:#??ßÞÞ~Ål ¬HÍ?þš££Ív Âår6lšŠŠÆv Ö[Yë'âââüüüú¶b.@}æçç7bÄ, +ËÕÕõË/lG +êîÝ»lGìÀ õîÝ{ lP3%%%SŠLÙ²eÛ(=MMMBÈ/€ÛíçÏéÎe @ý²|ùr++«É'³Òsrrâp8^^^Ë-+,,¬}|>ÿþéÛ·oYYÙšQ£jß¡XHÉÒ¥KLoÓXKeee%Â0'¥¶uëÖãÇÓ0 + 6ÌÍÍ444Ö[§¯¯¿råÊóçÏÔŽ7onߟœyóænnn>ôõõ]°`,b& \îÞœ{á©\7®öH`×®]²^QøÓ§O2íØ¥ŠŠæèèØ¥K¶PbôCQ»Á(»þýû¿|ù2444((è·ß~£MLLlll¬uuuuttÿººznnn^^^~~~~~~nnî'OîܹóàÁúMÑÖÖ3gÎܹsÍÍÍe3z§uëÖà +«}?ªªª5ªÏãñ + + !?®ýÑ« ¢¢bhhHof uO£FbccÙà¿7nŒ`Áùóç>}úÎüý÷ßՌ驡¡Ñ§OnݺõîÝÛÍÍM+w!;w×ô²XþäÜîÝ»¿~ýºŠ,--¿|ùòêÕ+YP·}ûöíóçÏ7ÝTBPvžý/EgäÈ#G€¿,--œzõjnnnŸoߟééé5nÜXðX Q£F¶¶¶r @jTT0¡ ~Ù²eKBBÂþýûõôôØ@±cÇÏ9íXêçààÀvâ!PjjjLLœ@ñ;vìøñãlGQY³f +<í(@&d=7CÞ À·oßjÙÃ,Y"Rhdd$u!ðìÙ³?þøC€ÐÊÊêç)LII + +)޵µõõõ)LLL)ttt?~|5ãÅ÷èÑ#Y¯XPKRÍU{eeegÏÕÖÖ8p Û±È`%##£µk׺»»³QÍÈ58}úôµk×ÔÕÕ-ZŽyófÉ:)(()ìÔ©3xÿþ=³æàÁ À/5ËÊÊ @FF³Š|ŒŒ<lê gϵµµn:::yyyµéáÔ©SÞÞÞÒG2¹¹¹111çÎ+,,:t(šo(âóù/^=z4J]¹reÜžq +4hÞŒù-[.]*A?Zµzþü¹H¡ØkbfMuuufÍ!C0kjii1kº»»>\€°aÃUÇ,-ò9Â*--622êÕ«¬¥ÝžqcéöYûÇú,Îè}þüyddddddRRœ)MÇ]\\ÆËVH¬kÖ¬à5ýd eËÁÁÁNNN«W¯ + +úøñ#!¢šGy{{ߟ}ÛÔÔ444ÔÎÎNž7nL2åÕ«WsçÎ¥Kª®_rJÒÒÒ***¢££;vìhoo¿|ùr}}ýéӧ׎+.kll\ +4šfMMMÍjÖÔÖÖÖÖÖ®NM ¯_¿3fÜžqÇc;úâÞœ{©©©E©ššôéÓÇÅÅÅÕÕµmÛ¶lGÀúZ_MMíÔ©SBú±ÀåË===6nÜžmÛ¶É'khhB<<<üüü.^Œèíí!Ü¡¯¯ïüùó§M¶wï^º€êúµ!àÙ³gCýúõë#G~øáBH\\œœýìÙ³uuuqÛY``à-[^Ÿ|IoÓCQTFF··÷[·LLLöìÙÓ¯_?BÃY²dIPPP»víRSSÿüóÏÁ?~É%)))ä?W©©©ÞÞÞ÷îÝ«šš2; àÈ#Õ\[[»]»v=Äšššžzõ*}ÝEQWW1bD>}ÚŽi£««KÉÊÊ¢¿ennnbb"ÁQÄÛ·oãââKôôôºwï.Ríé©©ùùùú:u©.Rغukæü¬¬¬§O=/^Œ)ìØ±c-D +ÓÒÒÞœ{Gyôè!DðJ 33S²õEQE%%%y{{Ó¬oÛ¶móæÍ¯^œâóùô/{HHH``àÏ?ÿ<oÞŒß~û-55uÚŽiÓŠM#â6`~ôè§§§··÷Œyó!U×Bô²óúõë6mÚp8]»v ßœ{WGGÇãÅÅÅÉ:zô§Ô»mߟ}-€ÞmýDÏILL¬9œÛèÑ£¥RKOOOHH())a;º£W¯^ÚÚÚUסŠ7NЬ\¹rùòe¢Žµµ×®].x¯»uëvèСoßŸÅÆÆ¶k×.$lÞŒ¹ `æÌEmߟ}âÄEM0!00PгðÊÎ;~ûöMøÐÌÎE YüàùùùÎ;nUSSÛ»w/'}fDüùç"ý|ùòåóçϲPºÞ¿/öêhàÀtãàà@¿dÖ€ße»wïfÖ\°`³&s#!dýúõÌ~~~ÌûöícÖ3fØJbyyyby¡ \mÊùÏÍþÄÄÄFÑ êêêqqqEEEQQQDè7=55U]]¢šîÝ»ïÛ·¯°°Pl:u +.**Ú±cÝŒêúµ!Û'?vttÌÊÊZ»vÈh.]ºDGG;::º¹¹ÅÇÇËa('tYZZZZZ²ÈÜáÃwïÞööíÛ¬^œ:--mòäÉ'O&ÿ{[nîܹjjjÁÁÁÉ'¯X±âßÿý믿Äöîåå%²s9³säð©kÓŠ +=Ö?""âÊ+eeeÞÞÞÿÇÞÇCµÿeY²DR")ÊÒÌœ}ZHÆŽjw»uËÒœ¥ DÚ\RJu«Û D!ZH©h¡]ÊRd ßçwç;wÎeƱŒÜÞ^ç}^£[×yo¡¡¡ +ESSs×®]\/#±1NVVV¥¥¥>ú_ÆçääÄÙ2|øp|ŸŸ~PPPDDħOØîúúúøH ®Fccc|ä3Èd2WãŽiÓð +E]]«ÑÈȹhÑ"lø¢¶¶]áXZZ*++ã;çªHý)PQQ ÇZ|}}±-ëÖãQPPزeB(..nùòåË-ÃvÅdýwEPddäâÅ7lØÀ^Ð~|·çc_\srrÖ¯_ßÖ?III?ÿü³ŽŽtff&Ï?B ¯1cFzz:ßÿwÒÓÓ{óæ +ûP=ÐEEEO<¹qãÆÔ©S»pyMMÜܹs/\žÀ÷ÜÀL4éÉ'uuuíÄTWW+((z +¿¿@@@VV ÖÂd2oÞŒéààÐÐÐ`bb²}ûö3grn,ß·{á /^ŒÐÖÖæŽÃf``°téÒ¥Kr>òì3šš(''§ÈÈÈ%KðýýúUFFJ¥^ºt k©®®Ÿ|ù2NÇ^m"444( + B±ŽŽlkcº'ö ²²RIIiá mM¬6mZzz:»eÒ€I?®¯¯ï©Aüý÷ß,8zôhÖ@hnn;wnNNÛŸ}ûÚ +³··?~üž«««mvv6ϰ-[¶,;;» `@íÊ`0Î?Ot{'$$4|øpì}VllìòåËçÍ×þk9OOOö`ö[söJãÇ{zz®Y³Éd²;ÁwO 'ÉËËÓh4ÖØØxíÚ5:~ùòåðððððp999 + bkk;dЀ`24-%% B¡DFF¶¿jaÑ¢E?öññ±±±ÉÊÊRRRDJýÃ7o<y"žA^(77[ôÖË-ZŽhÏ=ªªªD'òcÒÒÒD§@·Ñh4»#þo]ÎWÂm Y[[s6â<xðÃι.<{ölÇç³Aa/þ[[[³³³±õÁ±±±±±±S§Nœqã!Yº@ Ï3gŠMvöìYßbõêÕUUU³gÏÎÈÈÀ&++Kt +?V__óæÍ¬¬,+Žü%%%Ct°°ðÔ©S§NºÿþÒétMMM¢tÿ??¿CCÃøøx§nñP]]A¡P;~!»zõjSSNЫÔÔÔŒzõJ]]]AAA@·7nÜžqãÔ9@@øÛ]XXX`` ¶¶vrrrg_äc;ŠÝžqcá Øùô t:!tóæÍÞ¿Ü +ð±±1¶+%èå<yÝþòâþ'--ÍÐÐ ûCÅïOè%øY:ujݺujjj©©©]Ê/$$tâÄÙ³gÇÇÇ{yy +šîížví{{)Nééé±±± + + +=àÔÜÜ}qåÊ¢Ó=êåËyyyÍÍÍD'~ìÄrrr!!!]> tPRRÒ'OÎã×ù\/^ŒpuuåKWÁ· ))ÉÃÃCNNîêÕ«]ÞÌGTTôÂ æææ1117näWn}ÚÚµk·lÙíÁéàÁ®®®ååådØ233¿|ù"$$þ +ôB«W¯ + +2eJNNÎ +ŽŽŽ¶oß~ÿþ}xß ÜîÝ»÷ïßßc·ãO=þ|11±€€€nnç?hÐ Ë/;6$$d×®]|I¯O£R©õõõiii¡'NŒ~ýZTTÁ`€ŠŠ3æ§~":Á{èg2rrr)))øR +К««¯Y³#ãÓ§O111T*µŽŽtÇFFF#FðññIOOÙ§¢üõ×_òòò=v;>,~øð¡££ckk+NçËŸØ0 ÅÖ[åååøT*uçÎt:ÝÁÁ=±êÚµk + + +T*ØÜÅûòåV^^Þõë×íííÎþ¬©©)::zÐ AìÆ!CqEVTTÜ»w«QEE œ«}jjj||<{Wû!CØÛÛS©T[[ÛêêjPNNNmm ?Qg =zÍ?lÇõë×{$#;wî,^Œž¬¬}do~~ŸGQQŸŸ~LLÌ B$)00088XDD$$$ÄÕÕß*..öôôÌËËÓÔÔ<y2Ÿ% ààÁØ3þZ²º§€€DYYYXXøï¿ÿîfW=ÖsßÂd2ÕÔÔZZZØîîŒ<ã2}úôîÿïÔçäåå!~þùgÐüùóBK,!:)AÁ8Ï;èDzÐN€ÿ055j?çªkKKK|$Ïçãyóæq µ¶¶®]»óEQQÑ¡CòáØÞáðáÃÿ-À +*ÚñKúŽ +ÐÂ Û + HVVV-ŠŠŠO +tv4øÑ£G{à^cÇhhhCa-aaaõõõaaaXB(<<Œ±±199YQQgÅ266ijjºråÏAEFF666òë#tk ŒŒÜÆÆæÓ§OG7o^÷ÿ‥¥2mÚ4YYYkkkþößWH€9sæ:t(''gÊ)¡ÖÖÖÄÄDuuuCCC¢³è°ù?3fÌžtéÒСCUUUL&¶$ + ájäy>R[[ýuQQQ||<N¿wïÅ266ŠR©T*uߟ}QQQ=9(ß):::ÊÊÊí\¹r%--mÍ5æææ=Aqq±»»»§§§Ö²dÉ õë׳#W¬X!$$4kÖ¬ÊÊʶZ + + +ÜÜÜÜÜÜпKñ-ááá7nôññ äÃgèréðùóç±cÇ"vîÜɯr/++kÐ ARRR·oßÜ]z¹ÔÔTÐ +°_ÞŒy!ŽjÕ*b³â20GÆ#))ùîÝ»?þø#%%eùò塬¬,¢óÀ++++**jnn&:þ£##ÝÔÚÚzëÖ-___v%@&mmm>\VVÆóóóëë·lÙÊÍÍíÔUüxõêÕ³gϺÙI~£G>ÜØØ=ü3æðáÃØçûôïÔ®5qâÄö·ð-qqqŸ|.Ÿ§llltppxôèÑúõëûí·®×?baañ÷ßûöÍÞÞŸššHp7êÍŠM&++ËÞaû®€€äñãÇ666jjj[·nµµµÅ~SâããN +ôaÃéééuäŒs@žoߟ]¹rÅÛÛ[UUuòäÉ{öìùøñãÎ9SQQ²lÙ2Ø·þ÷¿ÿñeY œPdddHHÂÛ·o±šššÈÈÈèèèNõ+//O"°÷ýøìkkk¬°ïŸ®ü»ÕÜÜ<wîÜ77·}ûöñ%vØÛÛ?~ÜÕÕÕÖÖ6;;»Ë{ö]¢¢¢vvvqqq=;v,NǶ²&:¯{Ðç¬ÄŠM#C§Ó÷îÝK\^6mÚ©¢¢¢âííM¥R¬¬ÄÄÄÎÐ÷>þû:((!dbbòèÑ#®0Çj]ÎA®ï5 +Ûì +ßÂâ÷nÅ`24-%% B¡DFFòëøö-ZŽ(44ôýû÷666ØhÝ@=e:;;ËÉÉœzõÊÞÞsœ NáÜóL&ÛÙÙa#&À[°`Á¯¿þ[VVväÈY³fÁÓ?`ÀêtðáÃlmîÙ³g{rà{õêÕÛ·o/))yðàAÝŽ÷ÀþzûömMM +ù?œ@EEEnnî)SžÂ, z§É'M4©gÞ[@oÖé'x55µ»wïjhhÉdA$ÔÉ'÷ð}{ÁÏ1ãÊ+nnn¶µµ%:£® Édâ+±Ù³gÝŸ}¬/°uÝé¡¶¶¶¹¹¹ô^xÎ= +¯ð <}v`>ýcšTê+Wêêꀀ€Ng ³µµmjjjlläj<xpVV±±1!Y_äääÌ=»ûýð¥ßÁæ}£££Ï·Îd2ûøñcPP¥¥å/¿ü§ÿcíÚµÿüóÏœ{÷úÓ¡Qüòúõë%Ktöªââb1sæÌÎ^øûï¿O6³W<qqñ={öt¿³gÏÖÖÖz{{wü'<žûwï,]]Ý¿) ÏPVV4iÒ;wÎüÇçÏ8Àd2±ÕÕÕïÞœc2D'Ò544\¿~œk×váÂ¥Kví^LÞŽiS÷ûéB'ÿý·üVÐàŒÒŸJ¥)))t_άiÇÑ£GþÞ¿;(Ð3` W+//¯®®®¬¬üøñcsssKKËСC?.%%%%%%))9jÔ(¢Óº%>>Åb]¿~œ®®Y@(Pô.?Ÿzõêõë×óòòŸÿ¹xñ"ç/I$ÒÈ#ÍÌÌŠLbff6vìØJàìûoߟ%''Ï?ètèç èX,Ößÿö&,,¬§§g`` //¯šš8lØ02üíÛ·ú={öìùóç>,--=uêBHJJÊÛÛÛßßv +Ð'|ùòåæÍ + + +ñññP hPïÑ£G?ÿüsii)D;wîäɧNj`` ,,ÜñN^Ÿ|yç΀€€øøøàààÐÐÐÁ¥ +ðÅ+W¥€€ŸÿÞóg +0 @@°?ÚØØ|úôiûöí¿þúë AºÖÏÈ#Géääôýû÷cÇùûû/^ŒXVVÖÁÁ¿ <ÈÈÈÑ£GèiG !:züü|aaaÑ`lþDÊÉɹqã`ó@ÀZ[[ËÊÊÊÊʪªªjjjŸÿÞÒÒÒÒÒä:tšÖ°aÃz8=(vâÄ?úùùùûûó¥C2ŒjÕª3gêééAÐää亰ß9è$%%%%%ÎÞÈÛÛ»ŽŽôË/?ljjJIIÑÓÓËÉÉÉÎÎ2e +NôEoÞŒIII¹qãÆ>}ÚñÅÄÄÌÍÍ'OL"$ +Ý¿!°yófqqq~u{áÂП}û|}}ùÕ'Àwׯ_¯¯¯ÇΞĶºNHHèg ÐïÕÖÖŸ{÷îaÝ|äTQQ±±±ÑÕÕ9r€²²²¢¢¢šš(¶[Æùõëײ²²·oߟyóŠ àÆ{öì:tèªU«Ö¬Y#Ðí°:TH$ìóà¿èzyz°y#Ãw4 IDAT_±b ···²²r{ûþýûéÓ§ýüüÞœ{G"àtRœ6ÿ+ £¢¢îÝ»gbbBtj ÏKJJZŽhÑà + +ÓÓÓ»6³µµuýúõaaa$ÉÊÊJ¥ÚÙÙiiiu¶{êÔ©óçÏoÛ¶-<<<99ÙÐа)uÂ=.c¿älÄ?Lwüñº=hÕªU±±±þþþþþþúúúÓŠMÓ××744400h¿$mmm-((xýúu~~þýû÷ÓÒÒLа°0F»téX} ³Lfbb¢ªªª±±1ÖB¥R£¢¢èt:_fΩ¯¯ßÖwÿùçû÷ïÛØØ€ŠŠv¡X»víÁ'NxæÌ~ú©ËIH$sssssóÐÐÐÝ»wûûûO6ŒŒ\@Ma +P¯0oÞŒàààsçÎ%''_žp¡ššý-!!!555läÛŽ®®®ŸŸŸ©©éíÛ·ÆÆÆ +ÅÉÉiÄØ; Pffæ5kzÇŽ P¹¹¹>}ZŸ|9{ÂÏÌ3¥€€âããwîÜIln ßprròððhë»_¿~ªªº|ùr×j/ߟ}»S7¶L&oÛ¶íÍ7'Nžÿþ)SøÒ-Þöçû/×h;k 8xð`UUúwX»JUUõðáÃsæÌáì§žžØÓÓ3//OSS3::zòäÉè¿CìÁÕ«W9ró,üüü¢¢"kkëk×®éëë?Ÿ¢¢!ijÛÍ7«ªªÆÆÆòùÇ&d2yñâÅ/>}útVVViiéÓ§O>}ZQQQYYùøñclåxkk+DÁ;88hhhš««Â+@¯òàÁèœ8çÿ`ÄÅÅgÍuá çÏkkk(H$Òúõë± +ýºPTUU577/]ºôðáÃüÚŸ6;;ûÌ3--->ìÑçC?O{öì9pàÀ¢E$$$Ø×2̬¬,www®~h4ÚÊ+322ÒÓÓ===ÛY=qâDÁÙbhhXRR²ÿþÍ7nÚŽiÌ1ít«¡¡QYYåååUXXØEoA",-----y~ûöpJ }W¯^ÝŽiÓ¶mÛæÍGt. G¹»»ÇÅÅœ~ýZEE è\z~úéÑ£GœjÑ¢E%%%wîÜéì êêêœ EGŠAÓétiÓŠ577_¹reذaØPö èt:ìczD:räBš5€€$ÁŸ|ùò%KÌÌÌða¯^œ:uêÔ¶mÛžÚ={9oÞ<YYÙÆÆÆ/^œzõôéÓBBB!YYÙî}²6 ÄÄÄêëë±cëëë;µMdddxxøÆ}||8\VVÆd2ñÏ©nnnnnnèßaNL&ýµ³³3×HÑåË_Œxš££Ä.xvëîî.!!áéé¹~ýúÞþ{¡ÚÚÚG}þüèD at OkiiášÄÄÄØKwP.œMhhèc<yRRRâääD&¿|ùB¥Rÿ÷¿ÿ?ÞÞÞ^TT4>> +ÐcºVH$}}}++«;wîܹS\\J¥êèèèèè`»©««ûúú^žpaÁìqÏ?íܹóìÙ³çϯªªzôèQKKBÈÞÞÞØØ_Äó$²°°Ø¹s'¶'ÑÎ;±±QQÑòòò^ïìì{ãÆœ{÷"6oÞU__œøçìgüøñ111 + + +Ø(Öš Â`0:ÄîVD{hÂÐÐðÀBBB`ÿÁ³Û'N0==œnü| ªªªááá^^^쀀$33399¹mÛ¶íÛ·ÀÜÀÕ^^^wïÞµ±±©íà $)88ž¡¡!22ÒÍÍMYYùìÙ³ÎÎÎ&M1b°°p||<Bhüøñ$I^^ÞÀÀàìÙ³¡k×®N2eïÞœoߟœ|ù²?*6ð×_y{{+))!,--ÿúë/···Áh"öBZAAaË-!___lĺuë°Î~âââ/_ŸlÙ²ŠŠ&ôï}ûö¹žžŽŽŽlÚŽ©±X,www»»ûöíÛÙÏn_¿~ èÖO ++»jÕ*ìkaaa]]ÝÒÒÒO>!ð3%è]@ /Y²;Žººº°°ðéÓ§ØIÀUUUwïÞ6lû$` 'Oc/¬{rBhÄW¯^åúFxxxxx8ö5~?жv +ÀŸöóóãêgÔšQiii\7¢Ñh4 +ûzëÖø>1êêêì¡veeåææfö·ðÝb=µù¹OÎ9jøþýû'Np59ÒÉÉ«ñÙ³gØÉ}Æm¢ÀéþýûÉÉÉ\&M1cWcfffVVWã3&MÄÕGÈB¡à'á\žpáÙ³g\ÎÎÎ\111eee\^^^Øk&N555->|@`@...9r$Ñ®;5ŒŒŒg£µµuzzúÕ«WÙ'> V¬XÑÎ.¥Û@·8q_Œ}ûö÷ßçj޶¶ÆEEEøÈÅã;wîà#7nÜ/ÒÓÓÙïbØÄÅÅñ@||üÑ£G¹/N>ß\ØÔÔ_;v,77«qÎ9ø 88øÕ«W\Úô:/5 BIKKKHHXºt)Ö/""âààÐýÎ; +è¢ß~ûÍÃÃçëèÑ£ÓÓӹް°ÀGò<|Î9ººº\<çÒhŽ©S§r5ò<¡fݺu,àjäù.*00ÐÇÇ«qüøñøÈððð¯_¿r5ò|³{úôilê&ÛÊ+ßœ{6ÿ[ËÞÞþÍ7©©©ŠŠŠ<èÔ9<Q(øøx¬š¬¬Œuë B7{î(è.{{û/_òK__¿q[®Áß¶(**v0RUUUUUµ#øó<aûTt$rìØ± Cu0¿YŽŽt¯œ\jjj}}ý/¿üÒ©«<==m±¶¶ŸsçþEBHWW÷Ñ£GÏ=«ššèþª\uuu##£ëׯ×ÕÕ +<811±µµóÝ%))ÙÁ- ¶lÙRZZÚÙçääÉöõë×~ÝB¡äåå%''Ï?ÛB¡ð«óN"ä®(Øû~:ÞÐÐpíÚµñãÇõFðß/_ð»ýPEEEsssdddg/1cl èåÆóÓO?]¹råòåËš×ÿ +ðáÃöNÕ Ï;è'O>}ú«qÉ%øÿ:ôþý{õòåKì°#Äq̧ݻwãÚ¶mŸ±µµ³EXXxÇ\aß(++?¹¢¢è²Ú+ž_Ÿ|ôÄIWW×ÕÕ«±°°;±±ñÏ?ÿÌÕxëÖ€€$®F+++kkk®Æ«W¯ÞŒy«ÑÑÑ¿èâÅùùù\ÎÎÎøÉbbb?Îþeqq1BšººuçŠûòòòUUUŒ³uëVlÓyñáÃ-[¶â·_khhøóÏ?9[RRRýEÔÁ={6û€¹~ýzFÀuþüùË/s5ÚØØàãÇçåå!ÞŒy³k×.¬qñâÅø>#""ð»WmÚŽ _ìÙ³}šL&ó,ØwdÓÐÐÀÕÕÕøHccc|Àù)Øñ@QQ>rÉ%øàÞœ{øH!!!|pãÆ +üéLà +Ã/_ÆÏ¹0aŸøûï¿ñG£|ùòuûÔ©U«VuaÏÝ»w³k¹?îÚµKBB_466âD¡/_1çFj= +2jÔ(ü6£üU[[@¿mÊõÆ¿ñÇã7ØEÅÄÄ444L4ÉÐÐðСCXã#ð \õ¡Áã#³³³¹N;åyø«ŽŽô;wžÉd2>rÄøH{á#eeeñØ®8\øÈ s56¹bÅ +|ý0|øp|ä¶mÛ/_ÎÕÈsãýû÷ûûû³¶uëV555|d;jjjâââ?~Ü©«B999Ø3gÎ6lØÉ' x,¬ãúa2L{{ûÏ?8ÿA@÷ÅÇÇ{yyíÛ·ÿuìØ1üYoÛ¶mÿð^·n¶¶6×SŠWdLL×<!!!wwwÎ + RQQÑÙlÏ9\hkkw0rôèÑØÒÒÒ&&&íDvü=®±±qGÂDDDÚ¿#D#ø)Øäååååå;©¬¬ÌóÐ<uuuuuõD9²Óùž¶0~ýú5Bš³»õ;vÌÎÎgÑÒ>öSDDDRR²-ÏßÊþ9**Àù? +ºïÛ·oèDÛ¹sç¹çÌÃõuá °°0&ÉI¥RñÀòå˹Npá*ðoÙèmZZZ<øÏ?ÿôð}©T*N·°°èáûrè·h4~fþ°¶ÄÄD&yðàA999Îv)))|<Gø,=êâÅ'NìáûÎ9sá ""D>Cô[®®®&Mê`0JíÈiÓ^×!MMMwîÜQVVîàÑ×` Ø¿ÿÆ{þŸâââ=_NP «šš6m»»{tt4ѹÞâöíÛDÝzÈ!DÝcv 0Ð+pMŠìµ}öBëׯOMM%6¯_¿"ÃÃÃÍdÒ€Iøs^;) Î544B...ÝédóæÍø=ã ŸŸ>BhÇ&MÂÒeõõõXçýÛû÷ï<y¢€€D쎡C2Ì@(?~TQQ!0À@{úôi¢³hFöA@0ñãÇgddhhh,]ºtÅYÕŠŠŠÓ§O ÊÊÊb'ªÅÅÅO§#Å]8@/T^^Î>.G at JKKÚÿ±råJÿEzïÞœîükÅeذa>|è~?=C~ +çåå îܹsïÞœ'N422222244Ô××ÿá.QoߟÍÏÏÏÏÏ¿ÿþíÛ·¿|ù"""ââââïﯥ¥Õ3x:þüùóçÎüIOÂ())µ5äH"ž»íŸ`ò<|ñ ×[·råÊžžžèèèìììÜÜ\ö·äääddddeeedddddÄÅÅ«««kÿU]]ÍyüžABHQQ±GAEGGWVVþú믜p ÌxÝ!!!aoo?nÜ8¢ý +DÄI XÛ · ÉnnnnnnÍÍÍ=ÂÞè?{ö¬ºººŠŠŠ€€€¶¶,))UÃ6l±±1Ï[ ç)))ua£ëÔÔÔÚÚZÂwÈòîÝ;lÛ E"Bرq//¯çÏkkkGFFxzz¶¶¶rTVVÎ?ßÍÍF£a==zߟ}3gÎDåå幺ºŸzõjíÚµAAA,ëéÓ§÷îÝ1bDû[ (**^Ÿ|Y?Ð{?~üÖ[]»ö]¹råÀ«VîÚ]žÜ»w/ D"uüÎ ×544444Ä«¶¶Á`(++÷|V-[¶lÙ² J¥jiiÉdôo +ÀùX¿dÉ +68;;:uÊËËëÉ'nnn^^^^^^bbbì°ââbggçœ{÷bÏúX·oß7o¶BÀÓÓÓÇÇÇÕÕ5..»ÊÅÅeýúõsçΜqãÆ%K<=={òãŸ";;;;;[@ïß¿ÿÁk×® +\¶lÙòåËÕÔÔºÖÕ÷ïßãããCCC±¥SÁÁÁ#Gäk²ÿ +ŸDtBÅÅÅ;vìøñã?~\·n]@@>æùóçÎÎÎ-Z±bBšššÈÃÃóé!äääT^^Î~ÃuèС={öŒ{÷Édb£Ø 4 +ëÊËË!ôðáÃE-ZŽý;ì' + òúõëî÷3lذ¶Ÿ5jÔš;wîܹsøðáØbN + + +EEEEEEüÿ555µµµ÷ïß¿ÿ~~~~aaá÷ïß (ÊŠM&OÜýÌÛ1RRR|}}>}ª©©éçççììLtF@ç8:::::2Ì7o:88`L~ýúõ#°mmížž8ggçÓ§Okkk#ôôô¢££.] +`RSSsss)JNNÎСC7lØpéÒ¥©S§Š§§;88`1zzz±±±/>{ö,Ö2aÂíÛ·Ï9S\\!Ž{÷îüô5kÖ¬òòr¢³èEŠMvàÀÎ^%))))))|8)**úûûÿþûï§NJOOOOO¿téÒ¥K8cÄÅÅeddÒÐÐ-ãäêDDDÄØØØÔÔtË-Î +bžžžÌ?ÿýû÷P Vppðõë×cccååå;~öRSHHhøðáÁÁÁXãÊ+õôô°i<^^^ÞÞÞÚÚÚØ4ýãÇ{zz®Y³Éd²')))Q(êêj + ñÛo¿999!~ûí7öíþúë/WW×5kÖøøø`#ccc/_>oÞŒŠŠ&PPP_~œAqqqYYÑÅbUWW³KÊ^KDD[̪««ËÊÊÊÉÉ©ªªªåðåËAýôÓOìý]2vìXCCÃÑ£G÷ävÞPC^^þãÇ÷ïß700ÀNT)..öôôÌËËÓÔÔÆÆ}H$ÒêÕ«9òèÑ#++«/_3--&Éu çÌKìkv +±Çèã¹ÝgHHHHHû'O.**â022zðàÏ~<<<<<<BÛ·oߟ};Öèëë}abbòôéS& +&èè耧§³ûéO#¡#G>þè,W__ßç6x<x°ÑŽ N"Fbb"¶ÚÉ'B4ÍÛÛ»®®.44sÓÄ öî䯿þ255ÕÑÑië.X=ð¡"H"""7n<|øp§.lll<wîÜÝ»wâêêúâÅbhkkcy=~üØÊÊÊÕÕµ =rĹRÄÙÙÛUÊ×××ÉÉÉÝÝ}ïÞœçÎCµu BÉdâ{èåöY:åöíÛ!OOOι€áâââèèØÙÛ PÃTUU-\žÐÝÝœSç×µe\»cíß¿ÿ×_mïZ...~~~?ƶO?~üªU«æÍ7hÐ ÎHöIÀæææjjjsæÌÑÐÐ033ãyBJJÊÔ©S£¢¢ð=ôrÍÍÍÿýw×®¥ÓéœÄØØ +t +_qÊËËøô` +Qìí퀀€üüü"##BqqqØê+ÔÖ^fŸŸŸéééìÙøKöíÛçâ⢢¢_]ÞWØÙÙU 6~ÐYìeÊÊʧOÎÉÉÑ××Çf^°X¬~úééÓ§ØÖGã±Y\\lnnN&utt°ÆH$Òü!''7tèÐsçÎùùù +2D^^þÔ©S<㻯oŒî°ý +ØFÆÆ5ÖI¡P8[ðÐh4}œuëV|œLîÔ] ---ÐþÐ_%&&îß¿ÿ Ï?suuÕÕÕœxñâŒyó²³³uuuuuu÷ìÙsàÀEIHH Üy4måÊéééO>EÉÊÊ~øð!33ÓÑÑ188ž¬¬,33ÓÕÕÕÅÅ g|7Áÿb``ÕÙìÃ& Û²eËÍ7NÞ[Æy÷îÝììì +6 öìÙÅZ"##£¢¢TTTØYqÂÖpÛÙÙ±7zZ±b mssóÊ+±¯+**Úï&à?àÀ€£££££ÓÈPnnnii©ê4,¥â¿aRXòt~§¶¶¶±±ñùóçKJJ¬¬¬BÎÎÎÎÎÎ<033D«šš 6}rÀu @[ËD» +þhv<~ü!ŽpáB¢iÓŠMÚúVeeeOfú%lçË/G-ãDùûû3}6×_AAaË-X···Á`±XqqqË/_¶lvòÆgkw6Ÿ# à?ðsûÚ{° ,,ѰjÕ*ö +&&&®G4úáÃL2E\\è\x300À [SS³oߟQ£FèOðË8BÖÖÖìÂÿ}_ÃÉÿç2Ñnÿ# êêê¡S§NihhK'Œ}ûvߟ}ÜúñãÇ»víêìUÕÕÕBBB-êì Û¶mÓÕÕíìU ;H$Ò AÎ=+**Jt.@×qé@H\ìܹÓßß¿¹¹¹kÝò%ŸhÀG?~ìò]žpÙ²ePô°ŸøìÏÝÕÙfŸ?ôs,WZZœéfW~n_GæÞùúúR©ÔøøxìøK°#ZZZÚ + ¿ÚºuëêÕ«zàààœ{÷ +ô ß _©ªªêÔÓ?À#ÐöíÛÎ¥:tš@o!)))Ðþùæ +ιsçÎâÅËÊÊxÖñØloUUÕÃ;::òÜø }kÇÁÁÁ"""!!!®®®ø +gH$R`` gW'ì»à;/((ðôô,,,lmmåÌä9sxvïááQTT€¯¯3aÂ|ú ?{öÛ0KpJJJÚ?ô9oÞŒ¹ÿ~ss3Ñà\ÏÜAÐY^^^k×®usscÏäæZ¬Íd2³²²ÜÝÝñs+//¿yóŠ««k[ÎpÅà;áêýçÜÍÍÍÃÃcÙ²ebbb<l«+www///èèh77·âÓèòϰ}ÅÅÅ~~~êà¹/:8jñÃ5ø~zx< +Î)..vwwðôôôññáüÖ°£Lf;¿pY±b ЬY³°ÍyîÃÓqEEE^^^Oÿí$Éõ1,Y"!!ááá±~ýúnŠÑA7nÜèìUþþþ7nÜHLL<xp§.ÔÒÒêìœ~ë üülzL+** +'Hpqqáy6J~~~QQµµõµk×ôõõÇ_QQÁsB×8iii...þù§§§'?þêÂ̮Рè==œ'NÐhŽ®omÞŒ9!!ÁÂÂ"-- +ZÃsãΣàPÇ{ãÁwÒÑ£GGFFràäÙ®®î'\]]£££õõõÛJ¿ §NÚÙ«BæææC@R@À~ë=hrD¿ ++ûáÃÌÌLGGGìœaffŠ«««Ï© +%%%û÷ïߌyshhèŠMÆÚPÀyëØØØ?ÿü399y =þ# Þ¿&S°týOdddHHÂÛ·o¹Ÿåëë;oÞ<û÷ïc-ØÆ/***µµµì0ì(ž¶ÞŸÇÅÅÅÆÆÊËËH€vÞÐ·ß [tttttŽ;$Ï®¢¢¢"""ddd"##£££Û¿ô~kÖ¬ÉÈÈÀ¶÷` aýû%û hhhN6íõëרwW¬X!!!akkÛÜÜŒråJìë +öÞH IDATôïTqqq;;»çÏcñFFF/_~ñâÅþùìÙ³€€$¬À&HJJbã\·Fyzzôò§ÿ;wîhkkKJJnÞŒk)..677'É:::·nÝâg¯Éd?\p>níØ±CVVVAAáäÉ£BÃwN"|||Èd2B( @QQ±ý§Ä sLMM?ÞÐÐÄ5XPSSSSSãçç}F£UUUÕÔÔlÝºÞØØý²ÃÞ°¢Ûùa'ìCCÃ2Lv>I]<zôš¹¹¹°°ÐÈÈš4úœnþéêUw`»xñbXXØôéÓh4Ú¥KN +°¢ÙŒysTTT}}}BBûßwÎ1üT lÜk444<pàǰPÐØØÈ9¡óww÷þùG`°õªªªXFóöö®«« + +ÅÏ\Â?¹¹¹Ñh4ìÆnÄV:ujãÆóì=l²gÏ]»v±ÜºŠ@0>Tïß¿?rägŒŒüŒyóžÂ>~üH§Ó¹ÕÔÔž_œzuõêUìkì¯/_Ч§O>+òÉ'YYY\ãÆÃNFãÇÕhff6nÜ8®ÆÌÌLö#¶3f5«1%% ýâÍÁÁAMM«ñÒ¥K>}âj?>~ +ÙéÓ§ëêêži4Wã_ýÕÒÒÂÙB"Œœœ¹ÂŸÿÎO366ÆJkÐc±Ã:âããO<yòäI kkk*êààM&ÈvïÞœuëVAïS z!ljBhݺuçy6ÅrwwG¹»»oߟ+¢¢¢<==W¯^§§wüøq|o³fͺzõª££ã»wïÖ¬YÃÇÏÅGøõ<Wl¶¿&µœŽgçìaÈÈÈððð7úøøtk×Dü=öü}±¿¶ª««ÑyúÒÖBs|0~Œ!dccäùVfñâÅøÈCá#7mÚä¹ËÓŸ}ûðøghPll,>J¥â#¯]»4i>²°°©©©¬ššÀGâK!!!|çTÀ;vàÅ255ô]îß¿ïççÇ®9 ---CBBJKKÙ1ØÿšYYYNFp¶lÙÊÍÍåo·ØsÉ7oøÛ œyó!m×)$ÉÊʳÅÔÔTRR²ã=\»v +!Žk×®ÎÞº³üýýBŸQÃÞÅÌ3§ý°sçÎ!=Ê÷Æ{øðáÆÆÆÅ8q"{'Ä1Àb±ÆÚÔÔÄÀ3ß9Â=wçCÁÿ?êçl¬ªªB±X,'9°w<xöìÕË/ÅÅÅVFF®®.öëÐ|W\÷Â'o``°mÛ6Î|Îùóç¹yŸù311aG666ÒhŽI&ñ<ÃÆÆß§¶¶6>rþüùØ!®ÌñK.9s&>%|äŠM-ZÔ>ÿüóÏÏ?s5jhhà##""ðSD€¥¥ñ§OæVÎó Äùóç<yâïïóæM2ìëëËÃ`0öïßÏÕ(##³råJ®ÆÊÊJì€jNà +ÃÎ8œ~ý:..«qÔšQø¡¡'O°O³f0aÂìÙ³¹ïÞœ?ÏÂÂÂÒÒ«1###77«ÑÖÖ?øèÑ£>|ÿþ}çÎXã/¿ü¢««ËyöìÙ/_r5.^Œ¿ä.** +?à³|ùò &L0ÁßßÿÕ«Wñññt:=+++33sýúõT*]R<y233õM999D§þOFFF;[ò~ðEddäâÅ7lØÀþçç0H;¢££ÝÝÝ×[Ç~ oGûcÿŸ(((`~×u§zß;{òÃ>±±qLLLSSÓ+Wtttžâ +ÍÆã:qâDKK@¡PÂÃÃY,VXXJeý[ÙpœÀwÅu/NØ¿+3gÎä×ÏïË/¡¹sç +îAFFöw/Ï7<÷Ø>|8>òñãÇøHSSS|äõë×ñ<ߥ>}¹téR|dHH>rÛ¶møH|ÀG²ÊætáÂ|€->ç«úñãÇã#_ŒxÁÖÜÜ,'''**Êïå«;F0ôè¬ú:à?:;Õk6^ûS÷BŸŸŸNNNîîî{÷îÅþ¶Âà'â»âÛÌ?@qãÆaOä<÷ÕÁ?¯ã#Gä9 at 1aÂ|€>rÆøÈaÃá#ÿ÷¿ÿá×l1éåå ^ç94äëëëêêºjժׯ__Ÿ|kÄ!ðuÅØ±cñG¯¯çjd/㫜råJ|||rròׯ_BÊÊÊsæÌ¡R©Ó§OÿðáëW¯ð}ö9ìmINN...vvvVVVîCCÃëׯ_ŒxQZZÚÂÂ?i''''QQQlNáùgnDW èO#êÇâש{æææÓ§O<y2g~`[÷å9óF@ÿÐkÊÊÊ>lkkí©ÒÖÖöõõÍÉÉÁ&à +4ìùNØÂüü|lïž¶À@gGX,Vss³¬¬,BHDDdúôéaaa?üjhh5ª³ÙöK0 0züüãzÿþ=B(11QJJªS;çkÈÎNõã×yŸŸŸØn$ø ø®ø6ó§ŽŽôüùót:ýîÝ»Ø&ccclº¿ÑÙ)22B¡ÄÇÇ§ŠŠîØ±cÇ + J¥ZZZrîØºLDDäîÝ»t:=>>þÆééékÖ¬144Ä~ÎðΞÚô+ÝàÜ#¥ìÝ»_œ7Ð?n;ÁL&ÛØØ:tèýû÷žKßåã㣢¢rüøq&//ý=9dÈWW×/Ö×׳#a #>~üxìØ1{{{öì>--õë×gff²W±zßO0 PÙÞeÜžqK.è-°é=F£a;ütpö@SSSS^^^YYiaaannþéÓ§êêj®3(££#ÑvËׯ_ÿúë/®F===®íÝB>Œwïöuyy9v~uøíÛ·ñò-,,ðXedd"H$J5kÖ'O>~üxãÆEEEGGG*ßp¬6ö®!Hm}¿ÞŸ}Ëõ{§€€4gή°üoñðáÃ_Ctú ~`ãTrr2ÎÐzæçêêÊùl!ÒÚÚÆ¹9šš(¶ k2e +þAhåÊøøÝ»wã#Yžçgñ|íììg0Ë/çÜdBFFFEE¥WŽ¥$ñg2bÌÌÌ8ðµk×â#{àÑ¢Ï` [Ÿ|9ûÀæææ/_.Y²$11±¢¢!$++kggœŽöññÉÏÏ'4Ù®:tè3gžñ#±BõõõÿýwÔÆ;/ÆObll\µjçÊׯ_ + +<žpáBìšõ#F`«,,,ŽŽŽ:÷ÙÚE"~ýõ×ððpUUÕØØXSSSGÜp\ÃuòûM?g;»sÔöI8ÁÁÁ"""!!!XÉuîMûí°mÜž³ çnfªªªøßbü©ðFÀ±`ô0@ Ï?<yrîܹì=ÔÔÔV¬Xúýûwv¬èæÒÒÒKKKööÐãÆóóó+((àãïôïáaaacÇeµqÄ +â8žëäö?ñmµóì!ÞØØ¬šš q{Óþa;,X 0\ïÞœÃCÎÌÌlnnFéëëcû#M8ç±Ö ³X,VAAös.,,D [XXP©T + ¢©©Ù9°žY¿~=jûöÁ5m<ÓÎ4<û\±b ЬY³Ør{Óþa;|7eÊ>`1ºìÿýö B={v]VÄã$ëÖ[œzuFF±±ñ={?þäÉ?ÿüÓØØþù ÉdÚÚÚP(ãÇck×®]Û3Oÿ¡'N0lßÛñãdzÁÆ1ì_sssoÜž±wï^Î~žÚEEEËË˱oñìèáèÑ£###¿}ûÖÎUSWW×ý]¯^œ +ÉËËS(èèhçž÷f0\Ë/·µµ?ŸÑ¹ôO999óæÍ544Eݺu«ý«F×DZ°°`oäÊéõë× + + +ØÔSkÚ:y«ÝÛÛ[KKÁ`°X¬pçÞtðª^ÅÝÝ} t:N§'$$$$$O<Ò9r$Ñ þÀÀ5cÆ3fEöðáCöqËÕ 333ynvÄþåšQ£ÒÒÒžb8Ÿ¹ÄÙ¿äjo«O>|ø°ýLz¿ñãÇ?ÞßßÿÕ«WØä®ìììÌÌÌõë×c;S( &ôÚa4(ËÑÑQÐ[Ñ'''c»\ö1.üïÿãjôèQBBW£¡¡!{,¶Û·o_¿~³ÅÚÚzà +ÕÕÕt:ýÚµkJJJºººÃg2VUUÕÐÐPVV&ªB@°ÌÍÍW¯^-Ð[|þü¹ OÌ«é1qqqøàáÃØ~¯-[/²³³ñ,PRRª¯¯g/ošššHKKkg|L&7;`ÎÕÕ}8tô.õõõÏ=è-Þ¿/ÐþÐ;EFFÖ××+**â¿5sæÌôôt®FUUU|ä°ñB ÿüóÏ[·°}HÙÄÄÄôôôÌÍÍ-,,dddDDD ¿~ýZ___WW÷öíÛ·oߟÿþÖ[ØÓË-³³³[±b >j» œKZZþøtîãyFFYYYYY¹#š«««««×ÕÕ¹»»_Œx!Ä>ÕaذasæÌ¡R©VVVd2ù]±X¬¬¬¬ŒŒŒØØØ€€€€€$€€$iié} .ôd2yÅœêêÕ«¥¥¥8?~|gïðéÓ§.ìØ±ãÓ§OX¶¶6v³I§ŠõH$KKKKKËõë×yyy%''Ï=ûûDu ·èìUóçÏ/--Ý»wï!C§7o®Zµ +!$&&æïïÿóÏ?ëèèt¿[UUÕ+W®|þüY 6p5{ölìŽïß¿ëééñåé_XXÈ`0>}ʯ>yÐüú믡?þøãÈ#m =:&&=_¿ËŒxñâM6!°éþË-sttèZ---±±±t:=11AÔõÝèÃÆëׯÅÄÄxÆ444޶¶ÆÆÆv¿ÀÌ3§µµõòåËØaÀ'O=zŽZ;K?þmt÷îݬ¬¬ììl&:uªvZ³@AúŒeË ¶õÝ={öDFF9s!į`Ð AqqqUUU!!!éééØaÀìïH€¡CÊÈÈrnZSSÃ`08ûÑÓÓ£R©óçÏ?~üæÍ»ØA XÕÕÕ%%%œÅçÏÚ_G&-[Èß!€ °sçNÉÌËË{ðàA~~~uuueeeeee]]]sssKKKKKŽŽŽ¬¬¬v°ŠŠæØ±cÍÍÍÅÄÄøIÇA XûöíÛ·oÑYtd29))ÉÞÞï5FHHÈÄÄÄÄÄ} +¢ªªºtéÒÎ^',,Œ`ÁÎ^ØÁ£¬,IIIÖ}è ATÊ__¿~%êÖzzzGíìU)))bbb]žüÔ +tÖáÃN® +Ð:è`@ØŸ}û+΢NôŒômúúúS§N%:ôñãÇÞ0íÒÀÀèýŠŠŠŠŠ&ÑYÀ¹ômþþþD§Ÿ}ûŠŠŠvç΢s@G +Ø@èèóÒÓÓ«ªª®\¹Bt"àM\\|÷îÝ#qÆûæÍ11±3gÎ€ŠŠfîGÑét¢oË-{ÿþýK^^œzµk×.É$:ÍÝÂd2BÉÉÉߟ}#:n¹sçNyy¹ššh]]]zz:Ñéüt6ÿgúôéfœÑ¹ô"°ÝB§Ó|éÒ%--à A] + »JJJ$$$Îx,ðú(èºâââgÏÍ?_BBbÎ9GœsçÑyÐ555Ñh4¢³àÿ#êÙqâÄêêêܺwÒÓÓëòµrrrß¿:uê¡CFÁ¿€ú0(è:lþJÅþ{ôèQ:ÝÑÒÒròäI¢³`/^$: ~+á*++÷îÝëììCtFœtN'Évvv!+++iii:Ÿ{÷n¢ó ¯JLLüþý;ÑYðbbbD§ºKQQ100PZZèDz(è¢>Üœ{×ÚÚ;XLLlöìÙçÎ+**Ò××':;ú$EEE¢SôCuuuaaa&L :ÞV+ÐE ,ÿÁŸÆæpØþ?ׯ_?uêÑéôPÐEt:D"Í3çÞœ{7oÞ={6LÍ@^Åb±X¬ŠŠŠôôôQ£FNo]Q[[all¬ªªúêÕ«ãÇ?}úTFFÆÊÊêÞœ{eeeD'ÀtErrò÷ïß9çÿ`šT*ÅJHH $+ôŸ÷ÙÜÜÌ÷>ñ +€¥¥ + + +ñ BQSSSRR"$+ôEEEUUÕäää»wïò±Û¢¢¢S§NIHHèèèð±[<(è +;;»üü|ü¹$***ïÞœ;w.!Y 9r€©©ÉÔÔÔÂÂâÂ Ý +`±X)))³gÏ3fLeeeDDÄàÁù-l +@ç888äääüñÇ/_ŸuëÜÄ&NøÃ#ËÊÊòòòîß¿ïÞœ +ÐôéÓ·nÝ:}útA'NccceeåÃ$$$žÓÓÓ'N(Œ xúô)Ñ)ÞÂØØ8>>ŸŒŒÜÏÏ/333--íÚµkìïJJJÊÈÈÈÈÈÈÊÊJKK×ÕÕÕþ«®®³MMÍÅhjjöLæPÐ]fffçÎëCÅ©©©?ÿüóÃ&Ns"H²²²,«ŽŽTÀ @ï%***))It÷ïßgddtíÚ.ßWEE娱c!qïÞœüüüŒŒŒªª*ìYÿË/¯_¿f0âââX= ¢¢"###//ohhhhh8iÒ$))©.ßœk »ÔÕÕÕÕÕ΢Ó&MÔÎÅ©©©yyy³fÍJIIÁj/_Ÿô`@'\ŒxñâÅ& !!aiiiiiÿVkk«°°pϧÔ( -ZŽjÕª¶Ÿ»jÕª/^€ŠŠrÖ@/4tèÐ;wB¡tg@^p{ïtðéD"±X,åÀ +$ÉÇÇG]]=** +jœÒ/¿ürîÜ9;;»¥K +îF$ û¯ÚÎ;]\\w/m@ŒH€cÇyzzÞŸ}{Ö¬YµµµDgÅbµŽŽDGG¯\¹è\º +@ ðÊþD"aáEEE¬!T\\lnnN&uttnݺÅÕÏ;w޵µ%%%7oÞµŽÏPÚ5ÀF" íììÙ,«µµõôéÓkÖ¬AíÙ³g×®]Ø~æíí]WWêééÉÕ¡×Úµk+++UUU±öãù +º+++ËÞÞ>99èDjÃb±Læµk×Ö[µ8p at CCCTTtÚŽi¯_¿FEFFFEE©ššlߟ!TPPàææ&..ngg÷üùs®ÝÝÝ +Ä~Öo?/ »ÊË˯\¹òöí[¢ šNì#57oÞU__œòwvvÎÍÍœqãÆÞœ{BãÇihhÀ®~ôôôN8Á`0bbb°öãù +@@ +H$!!!''§ððp¬Å××wÞŒy***÷ïßgÇH$kkë-[¶ âââbccåååÙ«8EFF(((°ß$¶Ï° +(·s5:99}øð!99yòäÉwïÞ4h!¹=ç&ýØ×~~~ø°Q£F¥¥¥µÕ§©©){OPPÐãù +ffféé饥¥øo©šš(++?yòäíÛ·ººº=º +ÎÎÎÎÎÎm}wÕªU=øÖ0ÀÝeeeuóæÍQ£FÀÁÝ¥ššhii©¢¢Bt"|ðÏ?ÿhjjÉd333Ð×A=zôh0 +>2-- +éââÃGnذܜ{w_ºtiddd}}ýï¿ÿγÿö9::âï455ÅGò<KaÄøÈŠŠ&®°|ŸÃ>à# + + +ñ<ÀGÎ=€Ñhú©èkøµ;ç/\]]ùÒU§À øLLLL__«qÄøH)))|$ÏgVYYY|€²²2>R^^© ÐnÊÿý¥F"²²²:~føðáø»KHHà#GoýìÝg\TGÛàYØ]A +D(F¢Ýš1*Å5F±ÄXQÄD¬1 (윬øØ""Òëy?'ûî³»à[ý_üíÎι{ÎÁB33³/_Ÿð*(ð^0Á®UUU ö"XÓÀÀ@°Š5EÿVp[·nóæÍÒï ÞŸ}[ýúõ±Š££££££(5ÝÝÝÝÝÝE©)ÔöíÛ===óòò°Õ×¶mÛD¬yàÀk9sFj"~1uuuE¬Ù[7kÚÙÙXkÏ=2éSàÿM4éÍ7%%%Bï0@ÃlÛ¶ÍÒÒòáòèöíÛŠŠŠ***-¢Kî߿߫W/Õ«W¯ŽŽ4ºÁ`¬ZµJCCCGGgߟ}BK!vvvl6ÛÌÌìúõëBKV¬X¡««+ýqÄ)$$DÖ!À·eeeÕñ)EQO< ®cÚ¶mÛê5¹H]žp!==}ëÖ ?tŸŸŸÁÁÁQQQt¯¯¯··wttާ§gzz:]®©©sùòåiÓŠÑSüK<<<fÎyñâÅ.p8¬¬,Áõë× M:UèdÚF¡Äaذabþ¯ .ø}€?jÛ¶íìÙ³ËÊÊjûvÏ9S¶ÁÜ¥É,))¡(ªžžÂ[RTTÄd2¹I«««¹¯ ÐÇrÃf0BKöïß߯_?uuõ_ýUÌç"åoŽTaaaOjBÓtõêÕ%Kýú7Åþýû;wî,Š ZžÈÈÈ}ûöíÚµ«G² Å266\ãæææ±±±111tI·nÝbcc§MÍ»àJ%'Nlݺum%®®®®®®<èß¿ÿÊ+Åx.H@<,,,dêÓ§ObiÇÚÚº[·nb€Áls IDATiªÅ;}ú4!€W¯^ýúõu,ÐîîîóæÍ + +¢K¢¢¢8NPP¹¹ùÞœ{ëÕZ||Œ¿¿ÿ3è ),¡§þëèèÔ6l×`HŸ¡oߟO>¥_¯]»bkkû÷ßóUãœÎ;ïSÞKêu[Ÿ^° +A qsçÎ}þü¹¥¥¥¬À ÉÓÒÒÒÒÒuà\Á9uôèÑgÏ5ìØ«W¯7$rêòåË/_u mÉ-0MÓׯ_ߌyÓøv[µjÕøv@È< qk×®mߟýýû÷eÉ+**úðáCee¥¬@ OÈ<Òóõë×AÉ: +øç>|ø`bbÒºukYÇ ¿þúë d}@ª««ÓÓÓÙlv6mdTB>~üÈdâ·.ÈÂÂÂŒŒ<Yÿ ?E mãÇ?r䬣ª¥KþöÛo§Oîׯ¬c¶ÃO4IÖQÀÿÃ3·lÙ²ÂÂÂ>}úÈ:Ü<6Íf³e!ž WÈ$r A GHÜÒ¥KÆ[·dy@ #Hähß±Ž&óF$)럢š[·nߟýÕ«W;w^ºt©§§'ï§¢7Å`0êUäEQ%%%âmÁ`šššTTT·eé`±Xl6[ÖQx Š.44ôÀìÙ³çëׯW¯^ÍÝË/%ÑòàÁ%Ѭp8={öÈ: +$ÐÔmÛ¶íøñã={ö$íÝ»÷Sî ~ff&ùwï¡¡attŽœœ=ÁX¹råŠMLfhhšùw¢Ðû÷ïß÷ööÎÈÈèÞœ{LLùßôkŽk×®Û·o»»»¿{÷.((HÂ_6ïŸûNÖQÈ^iiiJJ¬£qBMÝÛ·oÍÍÍ¿YÍÃÃcæÌ/^ŒpáÃÉÊÊ"hjjæää\Ÿ|yÚŽiôµ{SŒŒŒ|}}œœœ£££===ÓÓÓk«Ù»wïÒÒRB¯¯opp°§§gTTTN®Q£FEDDÈ: +Ù{õê¡¡¡¬£qÂCÀÐÔuìØŸ¯[ZZ§§§££ãÓ§OéÂeeeÜÜÜo¶éã㣢¢BßàûŽŠŠûÚÕÕUQQ>ÄËË«uëÖ§§ ;H ©ôòòJKK«ªªzñâ ···Ðj111ÅÅÅEq/Öþç8ÅÊÉÉ©£nÝºÅÆÆDGGwïÞ.ÔÑÑ9}útiié;ž5ÌÿÞ:377---iÄ)HhêæÎ;uêÔ~ú©uëÖµ=F§Í`0j[ÓÏÏÏÈÈš¶O£¢¢¶oß®®®MnÜžÑÍÍMOO¯ @ðÈÈÈÐÐPׯ_7èä€ +«"ôäççkii¹žž9rDÖ±ÔêÅÆÆÆÓ§OÇ3äßg° +4ÆáÃ'M1}útYÇà\A GÈ$r ÁNÀÐmÜžw;w®k×®õ:JQQñÙ³gõí@Ê@KÝ¡CVZIŽ£÷ïßWVVJޱ@-ßþÙ·o_v1dÈk×®IޱÀ3r dQfjjÊf³cbb$Ý#ÁtÐ|!¬ÐÐОžž9sæòå˲äÉÚ¶mÛÞœ{Y,ÑÞœ{ !÷ïßïÕ«ÅêÕ«WZZ!Á`¬ZµJCCCGGgߟ}ô± vvvl6ÛÌÌìúõ뎎4kkk&Iüsÿ¥_Öçœ?À}Í`0fÍÅf³¥ø Ù@ Yoߟ577ç+ôòòòññùòå§§']š©©óÇÌ?[¯ÐÃÃÃÏϯ°°pË-âéééááQ\\LQ!û/ýB°~mz÷î]ZZ*ÆŠ duìØ1++¯033ÓÇÇGEEÅÛÛ;##.PVVvppÈÍÍåÖä+LKKóôôTRRrtt|úô)!$##Ã××·¶uNësÕÔÔðŸuuuUTTlôé@S@²œŒŒÒÒÒªªª^ŒxáííMéÖ[lllIIIttt÷îÝé + +B~'óZZZÆÄÄÐãýô|="##ËË˹uX,VNNNmõuttN>]ZZÊ·E ¡äÉ;wîÔ©Súé§Ö[;88<µ}ûvuuõÈÈÈèèhÑ[ÓÖÖæÎòVVVæNè÷óó322¢ß +Ößžq£^AAøÏ<÷HÁæ-޵µýûï¿yKè)û|¯MLLRRRx޶¶NOOç- §_Ö÷ððððð _ÿòË/@ËZŸyóæijjJŽGIŽ}qA-œü¥€á Zh@K²téÒzòòåKooïmÛ¶I(*B-Åb±Xõ:DIIÂd2%,a 9@zž+u¶^ BÐÒ`MOš9@²nߟmjjª¢¢²hÑ"º$33ÓÎÎÍf .QºbÅ +]]]îÆœÆ¬Y³Øl6!äÉ'úúúeeeÒÒR}}ý'OЊ¥¥Y[[3Lî ÁŠøúy@²|}}sss;tè@xxxøùùnÙ² ÃáðÕ_¿~ýï¿ÿ^RRBÏäZ¹wïÞ¥¥¥333[[Û={öBöìÙÓ·o_333º§§§Gqq1wF`S|}\ €åóçÏYPçÏBŠO.®L&} ]\\LÿÖe2ÿ fÁWÿþýýúõSWWÿõ×_ V&TVVrë_¿~œsçÎEEE:uºqã]>Ÿúç¯)ŸŸeggB8žŸ :Du ð_ž Yæææ±±±¥¥¥111t¥¥eLL}u^SSÃWßÕÕõæÍ.]Ú°aCmy/åíìì:vì8~üøÎ;÷ïß[Þ£GÈÈÈòòrn`S|}<ÀF`Ð9sæâÅõ:$??rûömî})((¬Y³F°<22ÒÝÝ}ÞŒyAAAtI||Œ¿¿ÿ3è¹ûÔÿN¿¡§ãëèè,Y²äi.tvvNLLä-öòò3g=Þ#Ž)ŸŸ@0þ-üü|---#GÈ:¿üòÐrIPTT¬ªªN_RóêÕ+CCCC?fÐ4iRDDÄôéÓe; öîÝkaa!Ñ.üüüÒÓÓ%ÚX ÏÜÜŒwïÞí¢M6m@\ð0A GÈ$r A GÈ$r@ËüôéSvñáö .H å[±b zQTTB/Z² &ÔëÜÜÜ 2ÄÃã^*(`R%4H %³¶¶¶¶¶®×!/^ŒXžp¡©©©§§§d%WÈ$r A GÈ$r A G°>}JKKu²÷þý{Yb@cÇ;vLÖQÿ¡¡¡1þ|YGÑÜŸ}{È!²Ä ÀÿÐÖÖÞ°a¬£hBzö쩪ª*ë(@lð0Ôêùóç=JHHu 6H V€€€ªª*YÇâjEýçåå]»vMÖ±x á>~üxóæÍÖ[3hp'Nš®®.))iÕª=Z$ \BBÁ={¶Ý«W¯<x ë@EEE)))[¶l $ÐR`hÒ>þ,ë(Z zb7 at mÎ9SVVæììL5j²²rBBBHH¬ãÆBMZ\\\@@¬£h9âââ"ë( I£Çû!***#F8~üxvv¶¡¡¡¬CFAÍÀСC +dEñäÉ7oÊ: +hê*++O<ihhØ«W/ºÄÉÉéøñãÁÁÁ² + 43gÎ0a¬£ Ý»wÏ7¯šš¢šzÈ`0D?Á`Ð/©W;BíÚµ |Ó+Wòóó===¹%ãÆSTTLHH@ÐÜá!`z ¹zõj.ÁëuEQµÕo@×Üt@tôüú®®®œœýµk×>}ú$»ž@ÔÃ?ÿücii)ë($¢šÄÄD{{ûüüü 9râìì\]]$ë Q@³fmmÍd2¹CÚYYYöööl6ÛÔÔôÊ+ѧO)SŠM2 .a0,ËÒÒ2%% rïÞœîÝ»+++/^ŒÛÁXŽhªªªUSE7X[ááátŒ×=/xjBñµ#4Â[·jkkkiiíÙ³ü;üÿÍx¥ŠŠŸyóóSPP°aÃ3gÎÆb Íh6<==œœœ¹Ó`ÜÜÜfÎYXXîããCîÝ»÷àÁô8%=Ь¬lûöíÓŠM#p8Y³fåååñ¶ß¶mÛ>ôëׯ¶Æé~ëCY²dÉôéÓÿþûïòòrnµoÎÛ<5¡ø>zúL&óíÛ·ñññ/1f>íÚµ[Žh_y×®]}}}ýýýe + -ôþ...¢²cÇBÈÑ£G)b2ô%2ùÿO±såûwûöí + + +Ü:L&³€€¢šÂsq\QQQwãÏÅ4ßÒñãÇÇkbbÒŠMeËñV«ã(ÁSÚ_¡ÐÓ¯¬¬ä«É×ÎÎ; !Gl@Pvv6!ÃáÈ:hÆ:Du ð_žÍ¹¹ytttEE·ÄÊÊêÄ¥¥¥EÕÔÔ=jÞŒy»ví***JJJ¢(n'..®ŽŽôàÁŒ5Y,ï[Q'<×ÖôÛqãÆ8q"+++11qãÆ"%xj==œÔÔÔÚZš-BÞ¬Æf³_œzUG; W@³±wïÞ={ö(++s§³ÇÅÅ jjjÖ1Ç}ñâÅSŠLÑ××üø1]²gÏÐÐP--¬¬,úÎP¢4.ûÈÃÙŽiá_G;§F 4hàÜ"F8sæLsss<4$ÐlØØØ<x𠺺;pnffváÂz6ÿ²lÙ²üü|z%ºÄÖÖ6++«žžžÿþŠŠŠtSÀyÁÆ VãCW®®®~ùòå3HíSê>5BÈôéÓy7l§¶Óç544®Swä '°È#zÈŒk×®ôR9Pmmí;vË:$ 0 ¢6mÚ`ÙSä9@ #xŽ¿ÿþ²råÊYÇÒBŒ}û²jժݻwË:hJKKÔÕÕÙl¶¬cÿZ¿~œ¥¥¥¬£æ + 4iùùùÊ:_Rfíóçϲ1$Ѐ +8ðàÁúñÇeKR¯íAÎ .X°àäɲÈ5k~ýõWYGÍhÒèTEEE&ÿWdþ1d0 + +xlLöº@ãá·9A GÈ$Pnݺ¹ººêëëË:<X u3fÌ1cd +îÈ$r A GÈ$PîÞœûÍ7²Ä Ôåܹs~~~=u Hä9¡ »xñbBBÔº[·nÔºÚÆ7lØ ë(ê²qãFwwwYG@hñRSS·nÝ*µîV®\@ú?~üصkWYǯ àõë×eee²à¿\عsç$ÚEppðùóç%Ú <ËÍͪªu¥££Ãb±dEK¶wïÞA«5AQTãÛ9tèÐäÉßÈéÓ§³¡¡aXXÁBHÐb ¹````aaQÛ§bù3¯ŠŠÖÈ öööÏ=uuçÎ>}úHšñªªªmÛ¶I¢åìììÁ_œzõÉ'iGCCÃÓÓSLAÕž®æ€Š€€$))IUUUÛ·oG¢C@pYÐ,šššüðò¢ÒÒÒ?~,Ñ.*++çÌ#¹ö/_ŸÜÈLLLd4S'<<Œ¶O·oߟeË;wÒ¯@ó ¥¥'åN¹M%.^ŒXÒ O>¿þú«:ª/#µŸÂÃÃCCCߌyS]]M¡(þ>ÒÿÒßÊ7nøúú>}úÔÔÔ422ÒÎÎ.--Ãá<|ø°ºº÷ÛûÓO?yzzzxxÐ-0Ì=zlÜžñûï¿'Ü»woÚŽiÙÙÙÁÁÁk×®¥(*++ÃáÜœ{·K.{öìÚC€ššš¬¬\Û§mÚŽñññIJJBõäïîkÞkhÙ0 ÷?I³Ð®]»qãÆœÙÆÏ©ã +Fì,Y²dÉggg###6MþÍxOÁÇÇgÞŒy®®®üñ¯¯ïãÇ===}}}}}}[µjÅéêêºaÃúZn¡ººúÖ['N|ÿþ=!ÃáÌ5kÚŽiñññôQnnnsçÎ0aÂ¥K|||VZ%µs9€¬¬|îܹ#F ÑawžôøŠæõcãÆ +'''åËóôéSWWWeeå©S§>}úáííÍ{õO2eÊû÷ïÛ·oO¿Ý±cG.]Ølöþùçº0##ÃÃãuëÖS§N¥KÒÓÓ§Nª€€äààðüùsI'À¿455Ï;gcc³sçÎ3g6¯X $ ZÀz2ò,--ÍÚÚÉdrG¹nܞѣGÕ£G7nBÆÖ[µµµµŽŽè9ÜI ŒcccÑ¢EªªªVVVBÛ*++ËÞÞÍf^¹r üï-îkŸÆAjÆwâĬ¬¬ÄÄÄ7Ò l6ûÕ«WÜ:ŠŠŠñññ¥¥¥û÷ï755%GGGWTTð6uöìÙÝ»w;99}øð2oÞŒ]»v%%%q¯±ÌÍÍãââJKK<HXYY8q¢ŽŽ¢šÉ1rš$ GtttÎ=[VV)ëX á<==œœœ¹á|||æÎûõë×àà`___ºÉdŸ}û6>>~ñâÅäß1l¢øþ.¶mÛöÃýúõ«Annn3gÎ,,,÷ññ©#TÞÆ¥,<<ÜÐÐNèD0o!YUJJ +!äܹsÖÖÖÜ:Œ`&ŽqÁ€îÅbq8M6Ñ 3gÎ477çF¹iÓŠ6mÚlÞŒþ °wïÞ={ö(++óFÛ¶m[''§_~ùÅÉÉ©ŽŽtñâÅSŠLÑ××ç}¢cÏ=¡¡¡ZZZYYY + + +žžžÐÐPMMMé;È3äPŽ|þüâââ"ú!;vì =zŽÁÒã§N¢(j÷îÝZZZô +À/Ç÷BQœ@Í/_ÓÔÆÄÄ€S§Nôk&I_ýs)**PU\\Ìd2)"TVVÒë~Ÿf !uŽ#ô@&óÿâÎ,§?ª¬¬äíÛø¢E!wîÜiàù €€2vìXúªªê5k222ÊËËéýû÷>}ÚÄÄäŠMfÌAQÔÖ[§LBQÔäÉÃÃùó~Ÿûî»ððð²²2ÞÞç sçÎÜN%!$$rùòeÉuQ·êêê¿þú«[·nÑwvïÞ-V¯^M9þŒXZŠ?6}úô:êìÚµ~ôëóçÏ666ÿ Ç(ªCB"""düîñõõÍÏÏÏËË€j¹ŠOpªàtBïe:owg.¡íBôôôRSS¹o'xÔvsIÛ~ ίmbzPP +ýøàÔ©S³³³O>ÍÑÎGè\yÁÆEßb0&9þ|úË Cž¢@ÍàT +ÁéBñMT[;!!! +â(8ÁcÍ5&MêСœîdS 8Ÿ¶éŒYÖšQ£\\\455 ¶,t®Œ`ãB'â·TôY?þ|È!²9|hflll<xÀ»X»œœ}FFFUUUFFùßù]Üס¡¡ôªàGµµC>}zQQ·²Ù èŠèBÁKKà<x'Šs8ÔÔToooÞvx_+/ØžÐø v¡¡¡ÝØÛÛ*))íܹSÄíA®`H0ý óoV1bD9ù7ûfã|þþûï¢õàãããááQÛ§³fÍ*//fHÐ, hkûT!A)@rw€¢šŒŒ<Y"/ !ÙÙÙ>hGÇ«ªªJޣЩ}ûömÛ¶u ¿²³³ !»wïNNNu,ü233 !ýõ×Ë/E<äÖ[|ÛG°X¬+WòU+..ŠW奩©¹páBŸÂþù',,¯°sçÎþþþ| Ï?â+ìÞœ»»»;_áèµyõíÛ×ÙÙ¯ðêÕ«§Nâ+>|ø÷ßÏWÌÝ€ËÉÉIp3祥ñº¹¹õèѯ0::úÙ³g| 3fÌ000à+ãnð̵`Á---ŸÂß~ûšš¯pÅl6¯ÞW«VèUky®Y³ìرc.|õêU.]6lØ@¯C]øøøû÷ïÓ¯-,,øJMM=rä_a¿~ýø +¯\¹"ø#6bÄaÃñ<yòÚµkÜ·ôOà:lC Î*twwïÞœ;_á={^ŒxÁWЩS'Áfá$¹Æ(üWMMMhhè)S,,,-[Æ·¹<É>ãÆõ\øý÷ßü=ï>Íô÷hj$œÀСCeýC YÊÊÊôòîðñãGÁ_¡# ýúõ¬yîÜ9ÁÎÎÎ5ãââkúùù ÖºÔòåËk.X°@°æ;k +&$cÇ Ö9r€`ÍëׯÖüî»ïkŸxñB°f»víkÒK𺎪ªª`9995éEè>§O.++;uê`ຎ&L¬+Ø{@@`ÍuëÖ Ö\¹r¥`͹sç +Ötss¬éêê*X311Q°æðáÃkÞºu·NeeeAAwÿš +îHÃèE0Øl¶Ý«W¯V®\µaÃ)SŠÈ:º®cÇccc555)tgoo/žü|Ëöúõë?ÿüSÖQŒ³¶¶ŸxºäŽä IDATñââÅÍÌÌdpzzzµ¬ÊçǬ®®NLLä-€÷棩©yçΟBŸ-hÆÆÆ5 Þ®Žµµ¬©¡¡!XsôèÑ5uuukN:uÐ A| úúú5&NÈW(8TO + +â+466¬¹uëÖ¯_¿òÖÜ¿ii)_ak&''WUUñ*++ó0Á/Ðo¥¶¶¶`Í?;V°2!ÄÀÀ@AAÁ`(** +õvíZîœÐÿœœ©ëîî.lýÍ={òäÉÜ·)))K,±ŽŽ¬¹jÕªàà`ŸBÁÛ·oüVòÝ(8uêSXXجY³[.ùºRšššM6;v¬gÏõë×oذÁÕÕÕØØžO>²±%322"lݺuôèѲ¥eJIIBðáà +GGGIw$!O<!«««sýýýÅ~ªªªª°°PŒmEQ555±1±ÌkÓŠ +!ÄÁÁAðB³ÙQRRª¬¬åOÉñ/²²²5ÕÔÔD¬©-JÍöíÛ·oß^:uq:G×®]»ví*JMÑsBkZYYXSÄ/&Ŭ)8Ý k÷îÝùùùgÏ»q##£ºÃÐÑÑqf²(5;wîܹsgî[zýsÊGßJø&$uÿþ}]]ݳgÏrsôÖ[ôíÛ×ÑÑ1.. À7VVV6ÁéÝõrãÆ +Þ·âÍgèËÓ§OKçfWÃÆfhh(úÌx M6mÿþýà +KII6mZFF¬#f d¥€€TVVnݺUðÝÈ#õôô<žiÓ&,ÔP7²²2ú1²æÅbÑd?~\pC#ÑK*))8ÏDúzõêÅ[òÍK~XÁ`0L¡ÏȪªªS§N +<÷+!¢š///¡óâäizTQQqÊ)¡¡¡gΩmÐème[Ì +KxP^~äûï¿?qâØïûׯ_ìÞœ[ÖáÈØŠM-ZŽÿ~ŸçoÞŒéïï.ø04 ¥ŒŒ<Bmú,,,?.ë(çÏÓV@KòîÝ»üü|YGÑ(((®DÙDL4iÒ€I²¢©prrZŽhQbb"_@?I/ž)$ÒñèÑ£#Fðÿùç&&&}ûöIT º +"ò³\-ØÓ§O?~üHQ¬ñ[¶lYttެ£hBZ·nMï$M\·nݺuë\^^®€€€§§§¢¢BIHHPSSkñk7É4iRhhèÏ?ÿlee5dÈÞÖ¯__TTäææFÏ &®mÛ¶W¯^u2æåå#ë(@ŒŒŒòsäRsøðaz{GhÖ[wþüyGGÇ÷ïßB222>}:iÒ$< ÉêÒ¥Ë_ý5lذ±cÇ÷ïßßÌÌ,33sÎ9gÏe0nnn²à¿-[Ö¥KYG!{wîÜIOOu *ggçuëÖ%&&rWW£çÿîK +4!»QxÙÙÙEFFx{{+**öêÕëìÙ³cÆÉÊÊÂ3pakk«§§wüøqîîË l6[Õ 4ž»»ßŒy3,,ÌÊÊÅb;w.))ÉÔÔTÖ¡4o + + +ãÇÿçnݺEy÷îÝÝ»wÊ·0(p!Ÿ}ûÎ5kàÀGýþûïe@AÏö¡gþ?~¢(Ìÿ©h¢ + + +>}Ú°c?~ü(Þ`²aé©©%$$¬[·.!!Á`?^ÖA5]HšC:tHÖQ4ôÿC>|øÒ¥K¶¶¶úúú²ªéBPoÇ¿råJÃ¥×Üžqc7ÿZ°`A»vív,4jjjþþþoG~qvv>tè··wEEæÿÔ + @œ]ŒxqË-i!66¶ÁÇz{{#hñtuuwìØ!ë(Ñ£G³Ùlzû6$uCPoóçÏ÷ððhرëׯ?pàÀ#GÖüäñ¢SWW:tè3gÌÌ̺uë&ëp4$õÖ¡C:4ìX]]]BH·nÝ,,,Ä*--ÍÇǧŸGœ~ý¢(úžcÇŸ}ûÖ÷(F¢(ªÁÖ÷XìgM³³ó3g0üÿMH@Ÿ¥ŠŠ*)))))~²²2!äåË¢R^^^ZZúõë×zÐh + + +\æ»÷ýõ×+W6¬;-¢>þ\QQQUUU]]ŠŠŠ©©Ù¬3ºñãÇÏ9 À7!yôóÏ?HŽuëÖ-ZŽH¢]ÔAKKËÊÊJ¢]Ü»wO¢]žÔÔÔÜŸ}ûÑ£Giii©©©>}ÊÍÍ:J¥€€Ô¡CÎ;öìÙÓÆÆÆÆÆŠuëÖÒYtyyy¹¹¹ ööö%%%÷îÝSUUUSSÃZ at B!Ba0 +3M¥¥eJJD»žq㜜œD»hÊrrrnÜžñÍj666]ºt|8ÂUVV&&&ÆÆÆ&''WWWsËõôôLLLtuuÕÔÔØl6ÉTTTüúõkaaaQQÑþóK.]Œx®Ìb±F1aÂEEEÊÿ+,,LJJúûï¿édFp»áÃs_3Î;wíÚÕÂÂÂÆÆŠgÏÖÖÖÒ·)Bµ}ûöÒÒRú5ýâéÓ§7n䣀€(àd÷î*®¹€I÷îÝsqqùfµ¶mÛ^¹rÅÌÌL,ÖËÉ'ýüüÞœ{G1223f ¹¹¹(Ä^œzu÷îÝ«W¯ÞžqãÔ©S§N +Þ±cäc"//oïÞœqqq>ävêÔÉÎÎN___WWW]]Åbq¢¢¢ÂÂÂׯ_¿~ýúêÕ«Ü|FGGÇßßÁmÚŽÉ4H@²V¬XË[òðáÃðU{öìÙ-[õŒÃzÁu?Žxr2Øáââ2lذÚ>Ý·oßíÛ· +váÂ)ç»wïöóóSTT5kÖâÅÛ·o_ߺtéÒ¥K'BÞŒy³{÷îÍ7»»»ùòEÊÃv555Û·o_²dIQQÂ÷ßïèèhgg×§Ow©®®~ðàÁ+WnݺžjÕª5kÖ¯_¿ŸÁÌ4kH@â + +ëXÉøåË.ܺu+!D®r.Žk×® +òïÌ:ìܹsÜžqcÕªU6mb³Ù[·nÍÈÈg0aaannnçÞœ{ÑÑÑôœx==œû÷ïgdd1âܹsÝ»w·ŽŽüøñãýû÷œœœ322ºwïceeÅ×5!$%%ÅÍÍí·ß~ãp82ü@ËЯû¹PÇv]YYYVVV»vírP]] ŠŠv÷î]SSÓÆ7Ø©S§U«VÍ=ÛÆÆfá ~~~,«ñÍhíÚµ¿üòÊúõëêµMQQ~BQÔ'fÏœiÓŠÜÜÜÆìÎÔ|ÉcÒRŠªªêP»<ØÒÒrëÖÁÁÁòð×Âøý¶wïÞÜREUWWïß¿öìÙtÆû÷ï÷íÛçî£óîÝ»øøøyóæB<<<üüü +·lÙœd·¶¶~þüùæÍ-ZŽeËgÏÑËÎzyyùøø|ùòÅÇÇÇÓÓS°ëžžžÀÀÀääd\ýØ1Y³f±Ùlî[ѱcÇ'NÐoW¯^©©Ù®]»C-_Ÿ\KKK[[û?þ dffÚÙÙ±Ùl33³ëׯÓ-èééœÿ>%% Á`€€€ŒÿŸmÛ¶û÷ï÷êÕÅbõêÕ+--M°kBHJJJûöí£¢¢€pâ£GÞŸ}{NNΰaÃ<y" !999ÕÕÕÕÕÕâÝ<TMM¬¬¬ŒŒ<##CÍÖ¢šåËëèèŒzõjÁ +žúçÃ`0ÆeaaÀý#(Wì±Ùì¹ÊšÑo]]]éǪÂÂÂ:wîÌb±òêÕ+úÓeeåQ£FUVVÎ9~M?óæéé©€€äèèøôéSºŸMRRÒ³gÏ~ûí·'O<yN233}||TTTèû|]B8Nhhš€ +ùÁ¿¿¿súk^\\l``°mÛ¶ÊÊÊF6XUUuàÀ=z|üø±ŠŠF©?}úTUUUPP ÞµËÊÊÞœ{÷õëW:K7H IÐÖÖ·ùßÉx-***:~ü8÷À;=oª¢¥¥eLLLqq1EQ555t¡µµuXX·····wXXýG±[·n±±±%%%ÑÑÑÝ»wçërüøq//¯cÇIìD@Ÿ`°Kú9!ÄÊʪŒŒ<((šuëÖãÇxøð¡èa)zôèÑ;ŠMŠ®®îêêúòåKY +UVV-\ž0//¯ñMEDDæççB€9©éÀ3ÐTÐ9À÷ß/ÏÏ,\ž~ÜjÎ9¢Ô÷÷÷1cFYYùwº +EQ^^^//¯eËÑ£¢¢8NPP¹¹ùÞœ{[spp8sæÌžqãÞŒyò²²ÆßÉfw°ãøñãHII?~<]X÷`G``àÄyW£·¶¶4iÒ+èÁððpòï`ÇŽiÓêìðððعsç?þ(~T`æÌR{ÀÂÂ"))iÏ=ÑÑÑ'Nàζ211éÔ©œrZm+çdggÓ\!AAA-ZœzµLÌíìì^Ÿ|¹aà +6ôèÑÃÑÑÑÞÞŸGFFF¢\-|øð^ÑèæÍ×®]£(JYYyÈ!.]|ìMhBsYG$|£/ŒoW¬X±bÅ +úõòåËù>|mbb"žÎw§Nžõ¶oß{ç×ÖÖöï¿ÿ®kúµ¥¥å7ov^"¢(*11qÅ{öì¡Çy#WŒ€èëë/[¶lÙ²e/^Œžtéw#0îÚŽk×ÎÊÊ^5¿gÏvvvµn;wŸpáÂÑ£G÷íÛòøñã +6BF.]ê^ôùóçÜä + + +vqq>}ú²eË4 |9~9&$$dggK¢e®GIŽýæ{éÿàÁYÇ'çµ~@322222⟩©yÿþý§O ++**ªªªª««ÕÔÔTUUÛŽiÓµk×&xŸU«VS§N:ujuuõÕ«W>|øàÁû÷ïçååÝžqCèÔ&¡§§gkkËÝÕØÖÖVCCCúÁ75H ÉáÍ".ÒÓÓÓÓÓ%Ñ2Å{éOß}~öì¬hánߟMKNIIDÛo©dðRPPèØ±cÇ¥ßuã)**2ï +¡ °°°²²²ªªªªªNfÔÔÔ`&Ó ŠÐ÷æÄøLpߟ}ߟ}ûÛo¿)((888XZZò«aàÀåååwîÜ©ow::: +³åàœôg2¿üòKdd$}ëêmhh(ë( ¹¢w}jüã¢t€ªª*é^µcÇeee ;;;'$$ØÚÚŸ|ùR[[»îF( lÝÔÕÕÕÕÕeE³d/==]è.*oߟýôéÓ©S§DÙn]l6[__ÿþý_¿~ÝŸ}»ŸŸŸÓСCyæÃd2«ªª:tè äÐKYÇÕl7®žžØÉÉÉÙÙyÀŒ0¶xׯ_çp8ÎÎÎÎÎζ¶¶ò¹Og#åää¬Y³æÏ?ÿ€¿={öüæ!':::;;»K.P^üôÓO|óžFsëÖþùç @>}:vìèìì<vìX-AãÉÑ_h + +wîÜYÛ§ÖÖÖ³fÍúôé{d0>|8þ|BBÂ'vîܹsçNuuuGGG''§Ñ£G«©©±;9KÿÆ«®®¶±±9zôhXXXXX¶¶öرcGÉ» +JKóòåËuëÖ[·NOOoüøñÎÎÎCmÕª¬CkNjjjÒÓÓSSS-[fddD'vvvÜÕ0A +ìííé=Ú ÊÈÈžuëÖ7)--¬¬LLLLLLTTT0`³³³nBaXd¬M6£j7hÐ Itª€€4fÌÈÈÈ÷ïß_»vmþüùmÛ¶=pàÀäÉÛ¶mëèè#®É¿û³Å5kØlvÓ¹/LQTBBµµõ?üðèÑ#\ý×¢¢blllAAÁùóçgÍ¥ªªûÃ?èêê:;;ÇÄÄ7+nj\\\ +O:5}út¢"""FݶmÛÉ'<x° @Ö6K.ýòåË#GŠN:hÐ ===sâÄ ùÜýŽRVVNOOñâEhhšœœýµk׿ÌÓµkWKKËùÜÇ + w€*77Òø +ù$íÃ3fÌà+400\óÉ'-â+ìÕ«WHHãyüøñÍ7û÷ïÏW~àÀû÷ïózzz +>÷|þüyŸÂ zxfà +?NHHHNNNNNèÛ·/=f&Æs!u>ÒÀ`0êõÀÃæÍ_ŒxÑ©S'qÄÕ(ô¥?FýÅÉd6lذa[¶lIKKKLLLHHQÀVZ=zôèÑ;wîŒ}ûvBBBBB¡C:Äf³êìì<~üx}}}YGÚ€©ªªºžžžžžTVV^ºtþÏ¢¢2jÔ(ggç1cÆhiiÉ:Ráêû+±eëÚµë9sæÌpîÜ9z=¥.]ºÐÓY(WÓ¡Áð¿Dznݺ €€|æÌŠŒRIIIBB_¡Ð)€?¬Y\\,Þx^Ÿ|.:uê?þà+Ž··L®]»&8F2aÂîÛ=zôèÑnÁ`ÔÔÔÜŒyóÖ[G-**j¿R?}úÔ®þ !{öì¡×÷433={ö7¯þÌ;aÁK.嫲yófBHœ@iÄÄÄ_~ù ¯pûöínnn| §OŠ_kkk_¹råòåËsæÌ±ŽŽtrr;v¬4·ªªªvíÚñ]¹r ~ пÿþýû8pݺu?~üðáÃÙ³gÏ9`kkKÏqzàU]]=zôhŸÂN:íÞœ¯ðéÓ§Œ+Ù×ÔÔTTTØÚÚ®[··Åb³Ù?666n׮ݧO>}útìØ±cÇ1ÌA9;;ýWwãÕvõ/Ä ŒŒ|èС| §NRVVåØEÅÇÇÓ;×7Ú/^øøøðZXXÐ;éêêzyyyyyïØ±#44ôÝ»wŒÓDyêäYSŒŠi?~<f̪ªªþýû_¹reÊ)Giׯ_¿ò +}ÏÖÖV°Š(Lÿøã+Vüç?ÿ±°°ØŽià/Y^ +úðêÕ«çÎËWصkWÁ»Ò/(ºsç=ŒJ¯ÕÀd2L¯vìØÑÔÔ»bãqÿt1+WnÚŽÉdzxx'QÉápîÝ»ghhmooÏ`0víÚE/}M×€[£_wèÐaçÎãÆKKKãp8>¬®®ŠûlM\§CÓÐÐHJJº{÷î+N<imm=|øðÔvïtv¡µéèèÐß&),f"}ªªªÜÿ\BAÑÐÐà^%|ýúµ²²þβÙìvíÚµoߟæHC0úáÍ7×®]£_·nݺ€€¢š»wï*(((((ް -EqS>.sssÁ_¿~¬)ô +õÓ§OW¯^å¶OQRYYYUUÕíÛ·µŽŽè{ÔÀUSSÃýqUWWrìÒ¥K/]ºtéÒ¥nݺ5`fqq±`×UUU|%***?~ä&yyy.\ÐÒÒ%K¹FäeggwèÐAAAaÿþýååå//¯Y&qººº={ö,wqqyøðaiii\\NmÓ#ÊãÆkp7n$:uJð£òòòÓ§OûûûsgзËÿøãüü|Þô®é +÷ç^RR¬««ËûEQ}úô)++;uêýilllUU`SEUWW_ºtÉÐТšïŸûnË-eeeuŽÖׯ_ó;wòûï¿sKîܹ3fÌúK:|øð«W¯òµ³`ÁBÈœ{÷DïZŒßû믿èïŸõéoÜôéÓéµ !jjj&M:pàÀ/_è:ôìcÇXÔâghhHÿœéÏŒyóžÛÑèguè:ôŽÃË/K8di066600š¢šÕ«WBÎ?OWŠüùÐ?N2 »Tb»ví|||JKK)òöö&dggëD!?ÿüsëÖMLLnݺEQTFFFÿþýY,©©éµkמÕX,EQ!!!ÜôâùÇ[Îw +#Ø&!dåÊêêêÚÚÚ±±±t©©©VVVôøTmðêß¿ëÖë>ÁãÇB¶lÙ"øŸŸþ¥KŸù% + + +"<zôè5ù<{ölãÆ ÏÁ`XYYÑ0é +oߟ%ž»»×·åo7o!$--^G:tÑé»('OnÀ±u£ç0ß¹sGì-7}Mtº%ùðáÃÈ#ßœ{îêêJ9zôè#öîÝ«¥¥E_Ê¡#GÐ/"åGújjj=TXXHþý+èìì<|øp)OÍ + w${KKKóôô€¯¹¹H®®®7XÂÂÂ6mÚôîÝ»ºfFF¯¯/ï)B[>}úðÞ +8þü7ïP§NJHHHNNŠÿ¯êééùùùÉÉ8eeeÜÕº>|ø@QWW2e³³óèÑ£ÛŽi#ë%ÅbRÁ`Ô]3''çøñã.\(//'øúú:;;÷ïß_ÒK¬vîÜ9777**Ê××÷áÃ3gÎŒxñâ 8wuüÞœ{Ó÷pÖ¯_6uêTŸlŸrÞ)@BÛÔÔÔÌÉɹ|ùòŽiÓŠMFñôôôöö1cýS[$âòáÃÓ§O;::jkke%k¢RSSéçaèÍæ¹Ó·xgŽ|¬3îË/ôÌÞòŒŒ<z:ïžiTÛZnnn>}æÎ[[ Ý066&Ï?ÿÚµkBGËxIî_!Åzÿþ=]Ò»wïââbÁùJÎ=[RRBGQÕ«W/Ÿ;5wx œ;ߌPYY9räHn²gfföóÏ?ߌy³ÿ«-éÀíÛ·]\\žÙxüýýÏ9S^^^[S-ï@mòÝšC|||ÿþý¹s{÷îœzõê:%q©U\\Ìd2)âøJ_ÄÓÕè)mEíß¿¿_¿~êêê¿þú+ÅóK¯¶r¡mBž?)ÜL&÷ ÐHx5òŠŠæÉ'ËËËÏ;§]["Þøúõk`` w¯~ø!66öÓ§Oµ;¢ÀÒÒÒñãǧ¥¥._Ÿ÷#--3gÎ0`É%ÚÚÚŸŸŸ² +RRSS'NøÓO?ýöÛoRëôíÛ·ñññ +?~<=óøúõëׯ_¯ûšüüüªªªõë××·»~ú©^[êøùùÑ·ããããýýýgÌA?~@ÕþÙ 'NH3g]íåå5gÎúç"zkâ%ôn<¬dßHL&óóçÏœ{÷ŠÇöNþnÁÞŒysôèQsssúß>}ú4µn»wïÞ»woøðáÜÇ€Cll¬GLLýØÒÒ200pâÄ|¿žã®®®®®®<èß¿ÿÊ+¹øÊY,VNN^mm +ÞÙèÑ£Gdd$÷@mËÀ¹¿fÿ¿WEEåèÑ£ÃËËËÙÙyÄâ@Rªªª&ÑD`öwIDATO|åÊWW×°°0Á +úúúgÏ8p ¿¿¿ŠŠŠžvºm.¢££wíÚggg'Í~³³³þùçÛ¬¬î_Þ«pêßGèE!&&&)))Bä+¡£KèTÓÚÚ:==·Š`kÒÄÈ*æåêÕ«My0=zôׯ_[ü$4iRii©Â+Wž«*ÕáîÝ»ÀÀ@zõ5aÂ~úIèG¯^œÒÑÑéСC\\a$ŸVÖÑÑY²dIå ++áôHhhèÔ©S;tèÑÈÖN:eiiLÄ DPÅáp?îèèSÛ$Kccãäää¡Cº¹¹ihh|ÿý÷RS8!»Ô€innnîîîíâСCÑÑÑí¢ÙAP/r{õOÁ=¢Æ;|øpÃlÀÏŠYm ÀÚµk×®]Ë}+t$Bp(Dð-_¹èc%Ü×|Ã"122e_Ñ .dÐH$bÞŒyûöí³··?räHÝgYZZ?~|ÔšQ?üðÃùóçmmm¥€lIùÑÈ#%Ú¶f¬ +Œ~ýZåb ÁH?m"9wîÜqtth HÄï·ß~ÛŒyówß}wâÄ QƱxøðáüÑÑÑñÊ+Ý»wB²Õ¹sgYбX,îc£Â]QT(Ùô@$»þÚµk×Ò¥KN>©©)âQcÇÎÏÏ5jÔþóFòwÄéðáÃ3gÎÔÓÓ;{ö,œ:èÜÜÜòòòGuõêU]]] ÐH'Oä]>##Û¢²oß>W_ÙB 6gÏuwwWWW?}út×®]ÐÂìÙ³óòòVZ5zôè.š©©=HhèUšy·¶idSmdõêÕïÞœã+¬šš¬éççG¯°AÙ»w/Š xܺuëÇd2'Nøî»ïÜÎÊ+óòòvìØáää,ÏËÈ¡ú^žåZ¿/_λõãÇ×®]Ëf³kFGGWWW_¿~}×®]Rê@?~<fÌîº +þùóçN2åÈ#Œ»4:uâŸMIIY»vÐÿšSŠL¡_ *,,¬Á®fgg7. + + +uïÞœÊÊʺW#¬k×®1öíÛ«MárñÂÅecœzõjÔšQ_Ÿ|Ëjh + + +±±±_Ÿ|IHH>}zTTTsßø#33S__~Mÿ~F +KvÒÒÒ8ÎÃéÍê¹åÜýÌÌLsïÞ=CCÃèèh{{{±råÊM61ÌÐÐÐiÓŠÑ_Cú_¡¿ïß¿ïííÑœ{÷+++Þ;ÜIGAAA»víªššž}û¶»»û»wïèéÅHQQQII ~@£ €€ÓàFjÛ,š1TTTŠMÕœ{÷¹sçzxx4r{lÜžñÑ£GãÆf ®®®ªªzíÚµºª²²²€€$ù\«5ÊFùîÝ»°°0WWWq5Ëf³=Ú¿ÿœ{÷.X°@\ÍÊ©©©©©©ŠŠŠŠŠŠÚ?ÿüSRR¢)2zÜBCCCÖç!NÅÅŵgxxxøùùnÙ² Þ1¢©©óÇÌ?ü{ÑOoi)Ž////_ŸøøøxzzÖLïÞœKKK !ŸŸŸÁÁÁ¹¹¹:thÜùñ2eJii©€w^²1cƹ¹¹$ÂÛœ{wpppvvv@@V@@@llìßÿ]SS#bEeffîß¿?((HCCÃÓÓ3##ÃßßÿÏ?ÿDÀµa³Ù,x÷î].]æÏÿêÕ«F6øñãÇ+W>zôhÚŽiíÚµGÍî4\AAÁèÑ£={(ÞÆUTTŒiÓ&E·}©¹ví÷u~~ŸÖÈ#9"âá;wîprroTÏ=ôNŽYYYµ}áëëË»ŽŽ4OOOúª{·$ @AAÁÁÁ!77W233}||œœœçÎËûïoWWWzl>33ÓËËKYYÃáÌ5K. ÉRPPØŒyó%K"""vþ¢šš8|øp + + +õÿõõë×ÿÂ]áMGGgÎ9b$ŲeËTUUé;á¡¡¡œ{÷¶±±±¶¶æZ/_ŸÜŒy355õÎ;III555[·^µjÕ/¿ü"éà&$ +TZZ:~üøŽŽŽÀÀÀåËK¢--3gÎ0`É%ÚÚÚŸŸŸèE>ÅÇÇÇÇÇ˪÷=zDFFÎ1£¶ÀÒÒ200pâÄŒwlï³X¬ÚíÖ[llìŽiÓ¢££éÝåtttN>=xðàšš(n5îÜ}ssóØØXF4¯^œZ¹r¥D»xýúµDÛÆÓÕÕ]ºtéÏ?ÿüðáÃÔÔÔû÷ïß¿ÿòåËåååuÈb±,,,èlKKË:Æ€`îܹAAAþùçæÍéò¶mÛvîÜÆhhhš©©òf2 ÜŠ,,,ÜÝÝyŽ7H¢ªªjòäÉW®\quu +\GúúúgÏ8p ¿¿¿ŠŠŠäú]»v + + +ïQ¿ÿþ{eeå²eËê{ ©©©`attŽ×9sjÀïïï?cÆz +ÍÚ&ùøùù +ÅápÌÍÍ÷îÝKÙžq£[UUÐyeîîîóæÍû3 /_ŸÐø4;,ËÆÆÆÆÆL¬®®ÎÏÏçïoÓŠ +ïmMMÍŠ¶ Å<yòäÉ¿|ùBg2©©©©©©O>ýúõkmG©ªªêêê:;;Ó_Þœ{c«% (âp8Çwü¿öî>Š©ëø©€ (+*dò" +Ãù6q.:ttsf¡SA| Î7CÑ)**3,¯1Ù'žAæbbfè&.*àÛBAÄûûãüvÓõòbéíË÷ó¹{îsKçéœ='"B¥R +Ægwt3Š¢¢bÖ¬YQQQR©töìÙz8§P(Ö¯_ßßœ²³³;::°£A¯œöÚµk×t[Øúé·>>>UUUÜzÛYYYYYYz³N2å_~Ñ}(&&&&&nÓºÃN:õÆt{çÎ8/°?ýôSwÉÈÈ8sæLIII?ßi¡Žjr¹\.óÈI¥ÒÐÐÐÐÐP¶ aZÆ<~üX·quuµöT +~KNNÎÏÏ>}zii© §Ö2"88ž¬¬,,,lÁÕÕÕSŠL1ÃAÀzœùæýÝ%//2eÊ///Ó6¯õgz%€R©T*=z4ÛžtéÒÍ7ûøøðÅÂ,@ý£Õj¿ÿþû òòòQ«_fÌqâÄÎÎÎúúz³À$:;;>|È. D :µeaa!ßá\eeePP_ß?³§÷ffffFFÆ DgPôH$ª««;{ö¬«««=oÞ<µZmd>GËTZZêîî~üøqŸ°}Ã<{ö,77711ïX.**jà +ÿüóÏwß}7àYûd2ÙÑ£GMÍ@Ðoæ_zåWx9.XÝéíéOOÏòòrBHZZ»»;m$šÕêúvû ôÆ©©©ñõõH$ìäÆûL&»{÷nmmí#~þùç:5Ã0cÆùõ×_õÎýÚÓI íÛ·»ºº>Œ€€dëÖnnn2^*1ÃIY6B 888DDDìÙ³mdŠ»»»ššhíÚµ]»víØ±£œœÞÐopõIwHãýM¢ŒŒüÖ[ëÖóôôÌÏÏ ñ÷÷§?Þßßßßß_ï,ôÖÇ4€T*mnnÎÏÏËåMMMÅÅÅÉÉÉæ9)ÀF0óüùó~ø¹nÿþý£Frtt9s&]FW©TæääxxxÐééêÎÎÎìtp,ºL€X,fÓbãýMÂ××7;;ûòåËçϧ úÎ;wíÚE)(( -zg¡Ç` "(,,¬««+11nß¿ß<'eQPØvÙøFSVVFß_²dÉÅÏ;·{÷nBHpp°J¥jkk£ÅÞ8tHVË.iŒ¿IDEE544tvv^¿~œ»»âëë;yòäÒÒÒ7oÎ5{äßõ1©;u»Þ4îf8)ÀFÐY"##Ù b6nÜžhÑ"ÚÚZ¶@ 3gΊM!ÅÅÅ2œ^R©Ü»w¯\.g~6Þß$æÎ;oÞŒaÃmݺU©TÒÆÔÔÔÄÄÄžž8gAþ]Ôß ÍpRëôIww7œrjÏ4ÍöH$^^^à +3y< Ëà$ýiiiiiit.×»ú€.î2ÆûDddddd€^£»»û9s>øàú-÷du×Çìãì¶NÊ¢ èææfoooŸ£°J,X°`ßQ@TVVº»»óÿþúë/ŸCÿb±øøñãæYÕæ¡èÝ ïÝ»ÇwB"ðU«Vñ¥0çrÐ+Ë\Øz¡è]zz:ß!®ššš'ò +#ÍÂȬY³èä*`óPuèêêº~ý:ßQ;É]žp!$$d7¹æææ_~ï(l@ 0É=3 + + +_|ñE~~þÅŸ +ö÷»aQQœøPŠ +Éf466Ö××ó mºsçyt÷îÝÀÀ@óËJÅâÎÎÎk×®ñH_988D"Ÿ£edddffù }LBÒÓÓSSS»ººzêÌÇöÒ³©@ïçJ¿ÕmäþÔûþ:0Ê_ããEÜ/+W®ä;ûõøñ㊊& B!J<HLL»šÍxõÕWM8H$jkk3áGå;effþþûï#Gìû.HX6UpM0!))ï(úçéÓ§NNN|GÑ?F>;xúôéèèècÇÅÆÆxüÏ>ûlÀûØèè芊&ö¿ÞÕ«W?úè£úúúJ5aÂB@ ضmÛ={BáÞœ{.]Êm!šÕêøøø+W®x{{çææN>ÛvðàÁ>rëö+ûÿ`lÞépÏíÀÝHMMËåºÏ ÝV(eeezãÔ××O6ÍÑÑÑ××÷üùóÜ£³KJJrttÔª¶¶v FáOÙ¶mL&ËËËëé'È~{åÊ ¡PT[[k0<œ/]ºäãã#?ýôÓAza<zô²páŸïrøðaBÈÉ'#µzõjŸC0¥BȱcÇølYjj*!ÄÍÍmõspp=ztOgº}ûvBHuuµ]°jkk;pàý?xàÀFsàÀ ÚÕÞÞ^QQáîîn° aÉ'«Tª3gÎøùùlÅJ¥²œœœ×ØJJJ!Gé©7 1k±žÁüJ7wbzKŽØÚ!ý)¬óßd×]»víØ±ŸÙ}»»»Ö®]«7NLLÌ+Z[[÷íÛodØI&iµZÝØØØ¶¶6#!ßÕÕµ¥¥¥°°pà +œW\\ܲeË?~ŒlÙ2ão»²._Ÿ|ݺu<P(FúÃ`kiiÉÎÎþã?øÀž»»1ÂÍúùùùùøøðýõQ«Õqqqb±ÍÔjõ²eË$ œÀöLHHDáááìܺººØØXggçº0·E©TæääxxxlÙ²åç&!Æs-FçÍVÊ`~¥;éînpp6#âæ6ÈÕÆ`:thkk+Ýnmmuvvfz~ç[o£ššèõ×_wqqÙŒy3Ã0ûöí9rä!CÎÝöì8ºsÓGu;tww_ô³)ºB!}u;>!€»»[·Áîô «ÑhB¡Áðô"dw¡·sqžÐ_ý5!$++ï@LWLW 'ÙÙÙííí¢ÿÇÇM¯ è^`wáfìö€IT*nÆÂm¡êêêhÆeD¯WžIÁ\K^ðó«r'éå6ÉŠ®ŒñÆéééF£Ñ€§§Ï1âèèØÒÒÒëŸK,¹xñâ¹sçvïÞMIIIÉÉÉÑh4eeeÃèÌþ<þ6ÊåòÊÊJVKsV»ÈžqãJegg§`O«ñóò÷÷ÏËËkooÏÍÍ +è)<ÝǧÕjU*Ø`°:uý +ÐGJ¥rïÞœr¹h8''çСC...J¥277·_£Èd2@ ¶Ð9sælÚŽéç&!s!#æWz¹ËààlF€Ú&^Ë»uëÖÛo¿-D"QXXØ;wYœz5f1z>r¹|Û¶mÃlÙ²ÅÅÅÅÅÅ ÞWª7Î7BCCuCJ%É\\\èÛ3LoÒ_œz5((þæôw|©ÎuãÑ{añãÇ ÂÀÀÀ+W®OoX|À<yòdèСGGÇGñià + á +X£|À`®¥K/A2_q;÷héæ6ÉŠ +°p(zuüøqBD"!ðiTTTL:õôéÓ|`P5êµ3³©[¬Ý·ß~K¡w@Òm~éÒ¥¹sçòu,ÇÓ§O+** + ¿¿CCÃÙ³g;::Ø&+âÇ|òäIdddUUÕ~šÑhªªªø +l +KAïùyïœ÷د6sXa²²²áÃO62yòd BQ^^N×m0:7ÎàihhXºté LEž|ùrssó;ïŒÃ.?÷î»ïÞ¿ÿâÅ|`LFFFff&ßQ@? °º÷ÿP6sÐÝ»w«««û²X££GÊd2Ÿ£~@`N:õÒK/ ²-3gÎJ¥6°$pUUÕìÙ³Ï=Ëw 6BV899ùùù]žp"¶oßîêê:|øð[·º¹¹Éd²ÂÂBºKJJD"ñõõ©©aÇ¡KùzzzÓo׬YãääD©©©ñõõH$)))캿º;ö ·, +þýöÛojµ:<<ÜÙÙùÏ?ÿ,++klltrržyóæõë×ù,HLLÌ+Z[[÷íÛO¥Risss~~~ttŽ\.ojj*..NNNŠ5êÁIIIË/gÇaŠ»»»ššhíÚµŽeÒ€IZ²|ùòuëÖ=xð@¡Pô+±¥AÀ?zÏüùó !çÎ?~uu5Ûbw ÕÕÕÅÆÆ:;;GDDÜžq6&$$D¢°°°®®®ÄÄDº}ÿþ}úh\\X,W«ÕŽeÿþý£Frtt9sæíÛ·iã%K!jµÝEïèÏ?7ÁØÀÒ àßâÅu?°~ýz5kÖÅâ'rw>}ºÇœ{÷ž=}}}¹=uÿ|SZÛmüøñܹ=ßzë-nÏ«W¯zxx¬^œºO¬R©ÚÚÚaÿÓ9$žÛT^^V«U©TcÇ¥-)))999Ь¬aÚ(þرcDz»Ð¹\^YY©Õj>l$±¥ÁJÀüóòò:xð ÝJ¥ãÆcËå^^^Ü]€R)÷WÜ¿øWWWzC§q; ««+·§·§·§P(€====¥Ri¯1@_¯ZµjåÊ6}7âöíÛr¹\¡PÐ7.Z޲~ýzn¥RD[Ÿú꫚ššgÏ}òÉ'F"@l`~ü`Àlþþûo77· öqììì'OŸÿþûUøòË/?ÿüóêêjÝ@ð¢éâ'/^|äÈ?þØTQÁÀ-@vôwØvA`GPØvA`GPØvDÈwœ«ššhiiá; +þ]ºtïÀê¡+Ãw6XŽðððoŸùï(,K`` ß!CÍÛÛÛÛÛï(l>`GPØvA`GPØvA`GPØvòØÆÆÆÂÂBŸ£3©©©á;ø`n/_æ; +; ÌG";vï(ÓŠMã;ø¿ÿ¬îÊPIEND®B` \ No newline at end of file Added: trunk/simexplorer-is/src/site/fr/rst/devel/enviro.rst =================================================================== --- trunk/simexplorer-is/src/site/fr/rst/devel/enviro.rst (rev 0) +++ trunk/simexplorer-is/src/site/fr/rst/devel/enviro.rst 2008-02-29 18:06:48 UTC (rev 1265) @@ -0,0 +1,66 @@ +============================== +Environnement de développement +============================== + +Environnement d'exécution +========================= + +Bien entendu, il est indispensable d'installer l'application comme spécifié dans . + +Maven +===== + +SimExplorer-IS utilise Maven2 comme outil de build. Ainsi, il est nécessaire d'installer Maven 2.0.8 sur le poste de développement. +Aucune configuration spéciale n'est à prévoir. + +Voir http://maven.apache.org/download.html + +Maven suffit pour compiler et packager l'application. + +Eclipse +======= + +Le développement du projet a été en partie réalisée avec Eclipse 3.3. La version simple Java est suffisante pour ce projet. + +Tous les modules sont inclus dans un seul projet, chaque module ayant ses entrées dans le classpath. Ce fichier est présent dans Subversion, le fichier généré par le plugin +Maven n'étant pas compatible avec certains aspects des fonctionnalités Maven utilisées. + +Plugins +------- + +Les dépendances sont gérées avec le plugin Maven pour Eclipse. Il est nécessaire de l'installer via l'update site http://m2eclipse.codehaus.org/update-dev/ + +La gestion de version se fait avec le plugin Subclipse, installable via l'update site http://subclipse.tigris.org/update_1.2.x + +Enfin, le module web peut être lancé en mode debug depuis Eclipse grâce à Jetty Launcher (update site : http://run-jetty-run.googlecode.com/svn/trunk/updatesite). +Le "Webapp dir" étant simexplorer-is-web/src/main/webapp/META-INF quand on créé une configuration de debug. +Ce plugin permet d'éditer le site Tapestry en appliquant les modifications en temps réél (modification de classe, de page, de properties, ...). + +Débuggage +--------- + +Le module Swing avec le débugger natif d'Eclipse. +Le module Web est débuggé par le plugin RunJettyRun. + +Le module Service est débuggé via une connexion tcp sur le serveur JBoss. +Dans le module simexplorer-is-ear, on peut trouver trois scripts : + - rundebug.sh : ce fichier est à copier dans le dossier de JBoss (/opt/java/jboss-4.2.2.GA/bin/) + - deploy.sh : exécute la commande Maven mvn -o clean package jboss:harddeploy. Il va ainsi construire l'EAR et le mettre dans le dossier deploy du serveur + - debug.sh : lance le script rundebug.sh, avec le serveur simexplorer. Ainsi, un port 8787 est ouvert, permettant à Eclipse de s'y connecter afin de permettre le débuggage. + + Packaging + ========= + + Liste des principales commandes Maven : + + - mvn clean : nettoye le dossier target + - mvn compile : génère et compile les classes + - mvn package : créé les archives des modules + - mvn install : installe les modules dans le dépôt Maven local + - mvn deploy : déploie les modules dans le dépôt Maven Libre-Entreprise + + Options générales : + - -U : force la mise à jour de tous les artifacts + - -o : travail hors ligne, pour utiliser uniquement le dépôt local + + \ No newline at end of file Deleted: trunk/simexplorer-is/src/site/fr/rst/devel/glassfish.txt =================================================================== --- trunk/simexplorer-is/src/site/fr/rst/devel/glassfish.txt 2008-02-29 18:04:51 UTC (rev 1264) +++ trunk/simexplorer-is/src/site/fr/rst/devel/glassfish.txt 2008-02-29 18:06:48 UTC (rev 1265) @@ -1,17 +0,0 @@ -GlassFish -========= - -**GlassFish** est un serveur d'applications compatible J2EE ; la licence est CDDL et GPLv2. - -Fonctions ---------- - -Au niveau des standards, GlassFish est une implémentation complète de la norme Java EE 5 qui recouvre: - - * EJB 3 (approche POJO, configuration par exception, injection de dépendance). L'occasion de se refaire une idée sur les EJB. - * JPA (Java Persistence API): standard implémenté par TopLink (par défaut dans GlassFish), Hibernate ou OpenJPA - * JAX-WS 2.x: nouvelle pile pour les services web - * JAXB 2.0: mise en corresponsance (mapping) XML/Java utilisée par JAX-WS 2.0 - * JSF (Java Server Faces) - Framework MVC dont Apache MyFaces et JSF RI sont des implémentations libres - * StAX - parseur de streaming XML - * JSP 2.1 & Servlet 2.5: pour faire de l'injection de dépendance dans le conteneur web Deleted: trunk/simexplorer-is/src/site/fr/rst/devel/implementation.rst =================================================================== --- trunk/simexplorer-is/src/site/fr/rst/devel/implementation.rst 2008-02-29 18:04:51 UTC (rev 1264) +++ trunk/simexplorer-is/src/site/fr/rst/devel/implementation.rst 2008-02-29 18:06:48 UTC (rev 1265) @@ -1,167 +0,0 @@ -=============================== -SimExplorer SI - Implémentation -=============================== - -Découpage -========= - -Module entities ---------------- - -Ce premier module a trois objectifs : - #. les classes de données - #. les types de contenus attachés aux données - #. les "usines" à instances, capables d'instancier les données, et de sérialiser/désérialiser en XML - -Classes de données -__________________ - -Ce sont des classes sérializables. Elles représentent le modèle de données fournies. -Le type "LoggableElement" se voit rattaché une association vers un "MetaDataEntity". Cette classe contient -toutes les propriétés nécessaires au fonctionnement de Simexplorer SI. - -Types de contenus -_________________ - -Afin de traiter les contenus attachés aux données, ContentType permet de spécifier le type d'un contenu en -fournissant le MIME type et une méthode virtuelle de conversion d'un flux en texte, afin de l'afficher ou de -l'indexer pour la recherche. - -Factories -_________ - -Ces classes servent à charger/sauver les objets sous la forme de fichiers XML. - -Module storage --------------- - -Database -________ - -Cette interface spécifie comment les meta données doivent être gérées. -On y trouvera : - #. ouverture/fermeture/commit - #. insertion d'élément - #. Récupération d'un élément dans sa dernière version, ou dans une version spécifique - grâce à l'obtention de toutes ses versions - #. Recherche paginée d'élements (ie comptage et extraction d'un sous ensemble des résultats) : - - par propriétés - - par type - - par recherche dans le contenu - #. Suppression d'un élément - -Une implémentation est fournie, basée sur Lucene. - -Attachment -__________ - -On trouvera dans cette interface les méthodes nécessaires à la gestion du stockage des flux. -Ainsi, on peut stocker/retrouver/effacer un flux. -Un flux est l'association d'une meta donnée, d'un champ et d'un contenu (InputStream). - -Une implementation est fournie, basée sur le système de fichiers. - -Engine -______ - -On trouvera dans ce dernier package l'association de "Database" et "Attachment". -On retrouvera grosso modo les méthodes disponibles dans "Database", agrémentées des flux de contenu, -en convertissant les contenus attaché aux meta données en données indexables par exemple. -StorageEngine propose aussi le stockage de flux temporaires, afin de dupliquer des InputStream. - -Module service --------------- - -Ce module est constitué d'une interface du service et de ses implémentations. -On retrouvera dans cette interface tout ce qui est nécessaire au fonctionnement de : - #. l'application web, en accès EJB - #. le service de stockage local du client lourd, en instance locale - #. la connexion au serveur central, en accès EJB - -Module web ----------- - -L'accès au service EJB se fait via StorageServiceFactory. Si le proxy n'a pas été initialisé, -on recherche l'EJB via des propriétés JNDI propres à JBoss. -Un ContextListener ouvre le service lors du lancement du serveur, et le ferme à son arrêt. - -Un composant Layout permet de définir toutes les pages. Les autres pages utilisent alors -uniquement ce composant dans leur page, et mette leur contenu propre à l'intérieur. - -Authentification/Autorisations -============================== - -On souhaite pouvoir gérer des utilisateurs et des groupes ayant des droits sur les entités de l'application. - -L'authentification ------------------- - -Les utilisateurs et les groupes sont des données pouvant être stockées dans une base de données, -embarquée type H2 ou dédiée type PostGreSQL. -Afin de permettre le choix de la base et la simplification du développement de l'intégration et du -développement, le stockage sera géré par JPA. - -L'authentification en elle même peut se baser sur JAAS, afin de bénéficier de son expérience -de sécurisation. - -Deux possibilités s'offrent pour l'authentification : - - se baser entièrement la sécurité de JBoss (JBossSX) - Cette solution a l'avantage et l'inconvénient d'être très intégré aux EJB, permettant - de retrouver le Principal de façon simple. De plus, si l'application web est lancée dans le même - JBoss, elle peut utiliser le même contexte de sécurité. - - - créer un EJB d'authentification et fournir un "token" à l'utilisateur - Cette solution implique des développement plus lourds lors des appels métiers, en demandant - à l'utilisateur du service de prouver qu'il est bien authentifié. Le système utilisé serait celui - utilisé par les applications web pour authentifier l'utilisateur, avec un cookie contenant un identifiant - de session. Ce contexte de connexion est alors à passer à chaque appel de méthode. - -La deuxième solution possède le net avantage de ne pas dépendre sur l'implémentation de sécurité de JBoss. - -Les autorisations ------------------ - -De la même façon que la base de données est gérée, une interface définie ce que doit implémenter le service -de gestion des autorisations : - - #. Ajout/création/suppression d'entités (uniquement son identifiant) - #. Ajout/création/suppression des permissions sur les entités - #. Vérification des permissions sur un élément par rapport à un utilisateur - #. Filtrage d'une liste de résultats - -Le principal problème réside dans la recherche par contenu. En effet, cette partie étant gérée par la base -de données, il est possible d'intéragir avec les résultats uniquement a posteriori. Ainsi, le comptage -du nombre de résultats auquel l'utilisateur a accès n'est pas possible. -Il est néanmoins possible d'afficher le nombre de résultats hors filtrage, puis d'appliquer les autorisations -à l'affichage de chaque ligne de résultat. L'utilisateur obtient alors tout de même le nombre d'éléments -auxquels il n'a pas accès. - -Utilisation service -=================== - -L'interface StorageService est la base commune à l'application web et au client lourd. - -Ce service est disponible sur le serveur afin d'afficher les données dans l'application web, et pour -synchroniser le client lourd avec les données locales. - -Une instance est aussi disponible par client lourd lancé, afin de gérer les données stockées localement. - -Afin d'accéder au service sur le serveur, le code suivant est nécessaire : - -:: - StorageService storageService = null; - Properties properties = (Properties) System.getProperties().clone(); - properties.put("java.naming.provider.url", "jnp://localhost:1099"); - properties.put("java.naming.factory.initial", - "org.jnp.interfaces.NamingContextFactory"); - properties - .put("java.naming.factory.url.pkgs", "org.jnp.interfaces"); - - Context context = new InitialContext(properties); - storageService = (StorageService) context - .lookup("StorageService"); - -On trouve alors dans storageService un proxy attaquant le service EJB déployé dans JBoss. - -Les classes nécessaires à l'accès au serveur JBoss sont contenus dans jbossall-client (disponible sur le -dépôt maven java.net). \ No newline at end of file Added: trunk/simexplorer-is/src/site/fr/rst/devel/implementation.rst =================================================================== --- trunk/simexplorer-is/src/site/fr/rst/devel/implementation.rst (rev 0) +++ trunk/simexplorer-is/src/site/fr/rst/devel/implementation.rst 2008-02-29 18:06:48 UTC (rev 1265) @@ -0,0 +1,167 @@ +=============================== +SimExplorer SI - Implémentation +=============================== + +Découpage +========= + +Module entities +--------------- + +Ce premier module a trois objectifs : + #. les classes de données + #. les types de contenus attachés aux données + #. les "usines" à instances, capables d'instancier les données, et de sérialiser/désérialiser en XML + +Classes de données +__________________ + +Ce sont des classes sérializables. Elles représentent le modèle de données fournies. +Le type "LoggableElement" se voit rattaché une association vers un "MetaDataEntity". Cette classe contient +toutes les propriétés nécessaires au fonctionnement de Simexplorer SI. + +Types de contenus +_________________ + +Afin de traiter les contenus attachés aux données, ContentType permet de spécifier le type d'un contenu en +fournissant le MIME type et une méthode virtuelle de conversion d'un flux en texte, afin de l'afficher ou de +l'indexer pour la recherche. + +Factories +_________ + +Ces classes servent à charger/sauver les objets sous la forme de fichiers XML. + +Module storage +-------------- + +Database +________ + +Cette interface spécifie comment les meta données doivent être gérées. +On y trouvera : + #. ouverture/fermeture/commit + #. insertion d'élément + #. Récupération d'un élément dans sa dernière version, ou dans une version spécifique + grâce à l'obtention de toutes ses versions + #. Recherche paginée d'élements (ie comptage et extraction d'un sous ensemble des résultats) : + - par propriétés + - par type + - par recherche dans le contenu + #. Suppression d'un élément + +Une implémentation est fournie, basée sur Lucene. + +Attachment +__________ + +On trouvera dans cette interface les méthodes nécessaires à la gestion du stockage des flux. +Ainsi, on peut stocker/retrouver/effacer un flux. +Un flux est l'association d'une meta donnée, d'un champ et d'un contenu (InputStream). + +Une implementation est fournie, basée sur le système de fichiers. + +Engine +______ + +On trouvera dans ce dernier package l'association de "Database" et "Attachment". +On retrouvera grosso modo les méthodes disponibles dans "Database", agrémentées des flux de contenu, +en convertissant les contenus attaché aux meta données en données indexables par exemple. +StorageEngine propose aussi le stockage de flux temporaires, afin de dupliquer des InputStream. + +Module service +-------------- + +Ce module est constitué d'une interface du service et de ses implémentations. +On retrouvera dans cette interface tout ce qui est nécessaire au fonctionnement de : + #. l'application web, en accès EJB + #. le service de stockage local du client lourd, en instance locale + #. la connexion au serveur central, en accès EJB + +Module web +---------- + +L'accès au service EJB se fait via StorageServiceFactory. Si le proxy n'a pas été initialisé, +on recherche l'EJB via des propriétés JNDI propres à JBoss. +Un ContextListener ouvre le service lors du lancement du serveur, et le ferme à son arrêt. + +Un composant Layout permet de définir toutes les pages. Les autres pages utilisent alors +uniquement ce composant dans leur page, et mette leur contenu propre à l'intérieur. + +Authentification/Autorisations +============================== + +On souhaite pouvoir gérer des utilisateurs et des groupes ayant des droits sur les entités de l'application. + +L'authentification +------------------ + +Les utilisateurs et les groupes sont des données pouvant être stockées dans une base de données, +embarquée type H2 ou dédiée type PostGreSQL. +Afin de permettre le choix de la base et la simplification du développement de l'intégration et du +développement, le stockage sera géré par JPA. + +L'authentification en elle même peut se baser sur JAAS, afin de bénéficier de son expérience +de sécurisation. + +Deux possibilités s'offrent pour l'authentification : + - se baser entièrement la sécurité de JBoss (JBossSX) + Cette solution a l'avantage et l'inconvénient d'être très intégré aux EJB, permettant + de retrouver le Principal de façon simple. De plus, si l'application web est lancée dans le même + JBoss, elle peut utiliser le même contexte de sécurité. + + - créer un EJB d'authentification et fournir un "token" à l'utilisateur + Cette solution implique des développement plus lourds lors des appels métiers, en demandant + à l'utilisateur du service de prouver qu'il est bien authentifié. Le système utilisé serait celui + utilisé par les applications web pour authentifier l'utilisateur, avec un cookie contenant un identifiant + de session. Ce contexte de connexion est alors à passer à chaque appel de méthode. + +La deuxième solution possède le net avantage de ne pas dépendre sur l'implémentation de sécurité de JBoss. + +Les autorisations +----------------- + +De la même façon que la base de données est gérée, une interface définie ce que doit implémenter le service +de gestion des autorisations : + + #. Ajout/création/suppression d'entités (uniquement son identifiant) + #. Ajout/création/suppression des permissions sur les entités + #. Vérification des permissions sur un élément par rapport à un utilisateur + #. Filtrage d'une liste de résultats + +Le principal problème réside dans la recherche par contenu. En effet, cette partie étant gérée par la base +de données, il est possible d'intéragir avec les résultats uniquement a posteriori. Ainsi, le comptage +du nombre de résultats auquel l'utilisateur a accès n'est pas possible. +Il est néanmoins possible d'afficher le nombre de résultats hors filtrage, puis d'appliquer les autorisations +à l'affichage de chaque ligne de résultat. L'utilisateur obtient alors tout de même le nombre d'éléments +auxquels il n'a pas accès. + +Utilisation service +=================== + +L'interface StorageService est la base commune à l'application web et au client lourd. + +Ce service est disponible sur le serveur afin d'afficher les données dans l'application web, et pour +synchroniser le client lourd avec les données locales. + +Une instance est aussi disponible par client lourd lancé, afin de gérer les données stockées localement. + +Afin d'accéder au service sur le serveur, le code suivant est nécessaire : + +:: + StorageService storageService = null; + Properties properties = (Properties) System.getProperties().clone(); + properties.put("java.naming.provider.url", "jnp://localhost:1099"); + properties.put("java.naming.factory.initial", + "org.jnp.interfaces.NamingContextFactory"); + properties + .put("java.naming.factory.url.pkgs", "org.jnp.interfaces"); + + Context context = new InitialContext(properties); + storageService = (StorageService) context + .lookup("StorageService"); + +On trouve alors dans storageService un proxy attaquant le service EJB déployé dans JBoss. + +Les classes nécessaires à l'accès au serveur JBoss sont contenus dans jbossall-client (disponible sur le +dépôt maven java.net). \ No newline at end of file Deleted: trunk/simexplorer-is/src/site/fr/rst/devel/index.rst =================================================================== --- trunk/simexplorer-is/src/site/fr/rst/devel/index.rst 2008-02-29 18:04:51 UTC (rev 1264) +++ trunk/simexplorer-is/src/site/fr/rst/devel/index.rst 2008-02-29 18:06:48 UTC (rev 1265) @@ -1,117 +0,0 @@ -============== -SimExplorer SI -============== - -Introduction -============ - -Ce document détaille la solution proposée en réponse à la demande d'un outil -d'exploration de simulation. - -Spécifications -============== - -Découpage ---------- - -Plusieurs parties ont été identifiées : - - - Une première partie s'exécute sur le serveur d'application et fournit les services - d'authentification et de gestion des données. - - Une seconde partie sert les pages web au navigateur l'utilisateur - - Une dernière partie s'exécute sur la machine de l'utilisateur, avec des données locales - et une communication avec le serveur. - -Serveur d'application ---------------------- - -Base de données -_______________ - -Une base de données de type PostGreSQL sert de référentiel pour les autorisations et les -données métier. - -Pour certains types de données (résultat de simulation par exemple), le flux pourra être -stocké sur le disque. - -Les objets persistants sont générés depuis le modèle de conception. - -Authentification -________________ - -L'authentification inclut la gestion des utilisateurs et des groupes. Mais elle permet aussi -la gestion des droits sur les données. - -Ces informations sont stockées par des objets persistants générés. - -La logique associant les utilisateurs, les groupes et les données est implantée via un service. - -L'utilisation d'une brique d'authentification est possible, à partir du moment où elle est -capable de gérer des droits sur des entités. - -.. figure:: ../../../../xmi/images/entities.png - :alt: Diagramme de classe entités pour l'authentification - - Diagramme de classe entités pour l'authentification. - -.. figure:: ../../../../xmi/images/auth.png - :alt: Diagramme de classe services pour l'authentification - - Diagramme de classe services pour l'authentification. - -Stockage des données -____________________ - -Ce composant a la charge de gérer l'ensemble des informations relatives aux explorations. - -Celui-ci inclut une logique métier sur les versions et doit être en mesure de synchroniser -son statut avec celui du client lourd. - -Des services exposent la gestion des informations et des versions en tenant compte de l'identité -de l'utilisateur connecté. - -.. figure:: ../../../../xmi/images/data.png - :alt: Diagramme de classe entités pour le stockage - - Diagramme de classe entités pour le stockage. - -Application web ---------------- - -A partir des briques du serveur d'application, le serveur web permet à l'utilisateur connecté avec -un client léger (navigateur standard) de manipuler les données auxquelles il a accès. - -L'application réutilise la logique métier du serveur d'application. - -Client lourd ------------- - -Autonomie -_________ - -Le client lourd doit pouvoir être possible de l'embarquer dans l'application RCP SimExplorer. De plus, -il doit être utilisé de façon déconnecté du serveur d'application. - -Mode embarqué -_____________ - -SimExplorer SI doit être accessible depuis l'application existante. - -Le mode de communication avec cette application est à déterminer. - -Mode déconnecté -_______________ - -L'utilisateur peut uniquement interragir avec les données locales. - -Le fonctionnement est très similaire à la partie données du serveur d'application, l'authentification en -moins. Ainsi, les données sont stockées dans une base locale, avec des fichiers externes pour les -informations trop volumineuses. - -Mode connecté -_____________ - -Dans ce mode l'utilisateur peut consulter/supprimer des données du serveur selon son authentification. - -Une synchronisation est possible, la logique étant executé côté serveur et le client est mis à jour en -fonction du traitement réalisé. Added: trunk/simexplorer-is/src/site/fr/rst/devel/index.rst =================================================================== --- trunk/simexplorer-is/src/site/fr/rst/devel/index.rst (rev 0) +++ trunk/simexplorer-is/src/site/fr/rst/devel/index.rst 2008-02-29 18:06:48 UTC (rev 1265) @@ -0,0 +1,117 @@ +============== +SimExplorer SI +============== + +Introduction +============ + +Ce document détaille la solution proposée en réponse à la demande d'un outil +d'exploration de simulation. + +Spécifications +============== + +Découpage +--------- + +Plusieurs parties ont été identifiées : + + - Une première partie s'exécute sur le serveur d'application et fournit les services + d'authentification et de gestion des données. + - Une seconde partie sert les pages web au navigateur l'utilisateur + - Une dernière partie s'exécute sur la machine de l'utilisateur, avec des données locales + et une communication avec le serveur. + +Serveur d'application +--------------------- + +Base de données +_______________ + +Une base de données de type PostGreSQL sert de référentiel pour les autorisations et les +données métier. + +Pour certains types de données (résultat de simulation par exemple), le flux pourra être +stocké sur le disque. + +Les objets persistants sont générés depuis le modèle de conception. + +Authentification +________________ + +L'authentification inclut la gestion des utilisateurs et des groupes. Mais elle permet aussi +la gestion des droits sur les données. + +Ces informations sont stockées par des objets persistants générés. + +La logique associant les utilisateurs, les groupes et les données est implantée via un service. + +L'utilisation d'une brique d'authentification est possible, à partir du moment où elle est +capable de gérer des droits sur des entités. + +.. figure:: ../../../../xmi/images/entities.png + :alt: Diagramme de classe entités pour l'authentification + + Diagramme de classe entités pour l'authentification. + +.. figure:: ../../../../xmi/images/auth.png + :alt: Diagramme de classe services pour l'authentification + + Diagramme de classe services pour l'authentification. + +Stockage des données +____________________ + +Ce composant a la charge de gérer l'ensemble des informations relatives aux explorations. + +Celui-ci inclut une logique métier sur les versions et doit être en mesure de synchroniser +son statut avec celui du client lourd. + +Des services exposent la gestion des informations et des versions en tenant compte de l'identité +de l'utilisateur connecté. + +.. figure:: ../../../../xmi/images/data.png + :alt: Diagramme de classe entités pour le stockage + + Diagramme de classe entités pour le stockage. + +Application web +--------------- + +A partir des briques du serveur d'application, le serveur web permet à l'utilisateur connecté avec +un client léger (navigateur standard) de manipuler les données auxquelles il a accès. + +L'application réutilise la logique métier du serveur d'application. + +Client lourd +------------ + +Autonomie +_________ + +Le client lourd doit pouvoir être possible de l'embarquer dans l'application RCP SimExplorer. De plus, +il doit être utilisé de façon déconnecté du serveur d'application. + +Mode embarqué +_____________ + +SimExplorer SI doit être accessible depuis l'application existante. + +Le mode de communication avec cette application est à déterminer. + +Mode déconnecté +_______________ + +L'utilisateur peut uniquement interragir avec les données locales. + +Le fonctionnement est très similaire à la partie données du serveur d'application, l'authentification en +moins. Ainsi, les données sont stockées dans une base locale, avec des fichiers externes pour les +informations trop volumineuses. + +Mode connecté +_____________ + +Dans ce mode l'utilisateur peut consulter/supprimer des données du serveur selon son authentification. + +Une synchronisation est possible, la logique étant executé côté serveur et le client est mis à jour en +fonction du traitement réalisé. Deleted: trunk/simexplorer-is/src/site/fr/rst/devel/maven.rst =================================================================== --- trunk/simexplorer-is/src/site/fr/rst/devel/maven.rst 2008-02-29 18:04:51 UTC (rev 1264) +++ trunk/simexplorer-is/src/site/fr/rst/devel/maven.rst 2008-02-29 18:06:48 UTC (rev 1265) @@ -1,21 +0,0 @@ -Les dépôts suivants doivent être disponibles dans le fichier ~/.m2/settings.xml : - -:: - <repository> - <id>codelutin-lib</id> - <url>http://lutinbuilder.labs.libre-entreprise.org/maven2</url> - </repository> - <repository> - <id>openhms</id> - <url>http://open.hmsonline.com/repo/maven2</url> - </repository> - <repository> - <id>repository.jboss.com</id> - <url>http://download.java.net/maven/2</url> - </repository> - <repository> - <id>t5components</id> - <name>T5Components Maven Repository</name> - <url>http://213.160.23.119:8080/t5components/maven-repository</url> - </repository> - \ No newline at end of file Deleted: trunk/simexplorer-is/src/site/fr/rst/devel/migration.txt =================================================================== --- trunk/simexplorer-is/src/site/fr/rst/devel/migration.txt 2008-02-29 18:04:51 UTC (rev 1264) +++ trunk/simexplorer-is/src/site/fr/rst/devel/migration.txt 2008-02-29 18:06:48 UTC (rev 1265) @@ -1,190 +0,0 @@ -ToPIA Migration Service -======================= - -ToPIA Migration Service est un module ToPIA chargᅵ d'effectuer la migration -d'une base de donnᅵes existante sans perte de donnᅵes. - -Configuration -------------- -Ce service doit disposer de quelques proprietᅵs de configuration pour effectuer -la migration d'une base de donnᅵes. - -Ces propriᅵtᅵs sont fournies au service via un TopiaContext et font donc partie -de la configuration de l'application. - - -Configuration de la base de donnᅵes -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -:: - - hibernate.dialect=org.hibernate.dialect.H2Dialect - hibernate.connection.username=sa - hibernate.connection.password= - hibernate.connection.driver_class=org.h2.Driver - - topia.persistence.directories=directory1,directory2 - topia.persistence.classes=classImpl1,classImpl2 - topia.persistence.properties.file=??? - -Ces informations servent ᅵ crᅵer une configuration hibernate (qui contient les -informations de connexion et les mappings de l'application). - -Les lignes commencant par "hibernate" sont spᅵcifiques ᅵ hibernate et au type de -base de donnᅵes utilisᅵ. Les lignes suivantes sont spᅵcifiques ᅵ ToPIA mais -contiennent les mappings indispensable pour crᅵer le schᅵma de la base de -donnᅵes aprᅵs migration. - - -Configuration des mappings -~~~~~~~~~~~~~~~~~~~~~~~~~~ -La configuration doit contenir ces propriᅵtᅵs : - -:: - - topia.service.migration.mappingsdir=oldmappings - topia.service.migration.modelnames=model1,model2,model3 - -qui spᅵcifie le rᅵpertoire de recherche des anciens mappings pour les diffᅵrents -modᅵles. - -Ce dossier contient ensuite un sous-dossier par modᅵle comportant chacun un -sous-dossier par version par version (nommᅵ X, *X* ᅵtant la version), avec pour -chaque dossier, l'ensemble des mappings hibernate de cette version. - -Exemple : - -:: - - oldmappings/ - model1/ - 1/ - Class1.hbm.xml - Class2.hbm.xml - Class3.hbm.xml - 2/ - Class1.hbm.xml - Class2New.hbm.xml - Class3.hbm.xml - 2.2/ - Class2.hbm.xml - Class3.hbm.xml - Class4New.hbm.xml - - -Configuration de la version -~~~~~~~~~~~~~~~~~~~~~~~~~~~ -La configuration doit contenir une propriᅵtᅵ : - -:: - - topia.service.migration.version=3.5.1 (exemple) - -Cette propriᅵtᅵs renseigne la version *courante* de l'application. - - -Configuration du callback -~~~~~~~~~~~~~~~~~~~~~~~~~ -Il est possible de dᅵfinir une classe de type MigrationCallbackHandler, pour -interagir, par exemple, avec l'utilisateur et lui demander s'il faut migrer la -base de donnᅵes. - -Ces //callback// doivent implᅵmenter MigrationCallbackHandler et se trouver dans -la configuration: - -:: - - topia.service.migration.callbackhandlers=org.codelutin.test.SwingCallbackHandler - - -Configuration du service -~~~~~~~~~~~~~~~~~~~~~~~~ -Enfin pour utiliser le service, il faut l'activer. La configuration doit -contenir la propriᅵtᅵs suivante : - -:: - - topia.service.migration=org.codelutin.topia.security.TopiaSecurityServiceImpl - - -Utilisation ------------ -Ce module ᅵtant un service ToPIA, il doit ᅵtre activᅵ pour pouvoir s'exᅵcuter. - -Il commence par se connecter au SGBD, vᅵrifie si les versions diffᅵrent, et -effectue la migration si besoin. - -Classes de migration -~~~~~~~~~~~~~~~~~~~~ -Pour savoir comment migrer les donnᅵes, le dᅵveloppeur utilisant le module de -migration doit produire des classes Java de migration (une par classe -nᅵcᅵssitant une modification et par version). - -Ces classes doivent : - -- hᅵriter de la classe ``AbstractMigration`` ou de l'interface ``Migration`` -- se trouver dans un sous package des classes d'implᅵmentation rᅵfᅵrencᅵes - par les mappings. Ce package doit se nommer VnVm oᅵ: - - - *n* est la version de dᅵpart de migration - - *m* la version d'arrivᅵe - -- respecter une convention de nommage de la forme - MigrationClass oᅵ: - - - *Class* est le nom de l'entitᅵ devant ᅵtre migrᅵe - - Exemple, pour migrer une Personne d'une version 2 ᅵ 2.1: - ``V2V2_1.MigratePersonne.java`` - - Note: les "." ᅵtant interdits dans le nom de fichier, ils sont remplacᅵs par - le caractᅵre "_". - -Ensuite, chaque classe doit : - -- implᅵmenter au moins la mᅵthode ``migrate(MapAdapter, MapHelper)`` - cette mᅵthode prend une MapAdapter en paramᅵtre, pour modifier un tuple et un - MapHelper pouvant servir ᅵ retrouver des informations sur le reste des tuples - de la base -- surcharger (si besoin) la mᅵthode ``public ProxyClass migrateFrom()`` dans le - cas oᅵ les tuples ᅵ modifier proviennent d'une classe diffᅵrente de la classe - courante. - -Exemple : - -Ici, la modification porte sur la transformation de l'attribut ``timestampNaissance`` -de la classe ``domaine.Personne`` en une nouvelle table ``domaine.Naissance``, effectᅵe -dans le changement de la version 1 ᅵ la version 2 : - -:: - - // migrateFrom() - public ProxyClass migrateFrom() { - return new SimpleProxyClass("domaine.Personne"); - } - - // migrate(MapAdapter, MapHelper) - public void migrate(MapAdapter map, MapHelper helper) { - - // map d'entree vide, conversion du timestamp - // en jour, mois, annee - try { - Long timestamp = (Long) map.getOldValue("timestampNaissance"); - Calendar c = Calendar.getInstance(); - c.setTimeInMillis(timestamp); - map.setValue("jour", c.get(Calendar.DAY_OF_MONTH)); - map.setValue("mois", c.get(Calendar.MONTH)); - map.setValue("annee", c.get(Calendar.YEAR)); - } catch (ExceptionAttributeUndefined e) { - e.printStackTrace(); - } - } - -Donc cette classe : - -- doit se nommer ``MigrateNaissance.java`` et se trouver dans le package - ``domaine.V1V2`` -- redᅵfinit la methode migrateFrom() pour indiquer que les donnees proviennent de - ``domaine.Personne`` -- implᅵmente ``migrate()`` pour produire des tuples de type ``domaine.Naissance`` - ᅵ partir de tuples ``domaine.Personne`` Deleted: trunk/simexplorer-is/src/site/fr/rst/devel/nok.png =================================================================== (Binary files differ) Added: trunk/simexplorer-is/src/site/fr/rst/devel/nok.png =================================================================== --- trunk/simexplorer-is/src/site/fr/rst/devel/nok.png (rev 0) +++ trunk/simexplorer-is/src/site/fr/rst/devel/nok.png 2008-02-29 18:06:48 UTC (rev 1265) @@ -0,0 +1,6 @@ +PNG + + +IHDRóÿasBIT|d pHYsEEËžºôtEXtSoftwarewww.inkscape.orgî<ÕIDAT8 _HSaßsvüÎqÃp7B +)Ž ããžé3VÌ.36Á+¢)è"(Á+QdžAa^ÈBi]íb|/2ófB :Øêl?ùuQRïå÷yxy¢((¥Wu]KÉÂcÌÀmA^1f«ÕêToooØápl*²1ÿ_ây~§¥¥ec|.°Ã,ŠiNNNJ]]]×yßÁ_9"²í±XLÚÞÞV5M{Á1ÍfË{{{ ááás<ÏgdYŸWœ^ï»ÝŸF%·ÛÍ$ÉŠi BÈ;R +c,ÂûññqÉétB±XD"¡ªªºÃá%I\.WÝØØø€ëºb1Reù$I¢ `Y€R©GGGtpp°ã8ØßßÅÅÅa/===Ï\.×ýX,&±,{⺮ÃììlYUÕ[ÍZ~b+ÉLn€R©JýÉ€jÆÌßð)¥T³,ëT v»ÝƲìÅúü@å1QB¡PSýb(²;ÎÏç{|ŠcìihhxDDã ZÂÚÚÇ¿W*°ÙlDDçboÔžZÍ¡W{{;hKKKåB¡°y||Œ zÅÖÖV888ùùùoax !J)(òcìëïïG BâñxY×õ×Lfú÷u×B+@@êîîævwwéêêêWÃ0.³ã$I@ òù<ÌÍÍ©ªªFk0!$mfg:þžŒŒ\ikkc:::BO¿ß¿Þ××w³T*i¹\N5M3HÙ:UïK8çgl6Û]ÇcÏf³EÆï÷¿Ž,kâŠi>'ÏëDîÆÆÆ)Èÿ5&BéXêYªIEND®B` \ No newline at end of file Deleted: trunk/simexplorer-is/src/site/fr/rst/devel/ok.png =================================================================== (Binary files differ) Added: trunk/simexplorer-is/src/site/fr/rst/devel/ok.png =================================================================== --- trunk/simexplorer-is/src/site/fr/rst/devel/ok.png (rev 0) +++ trunk/simexplorer-is/src/site/fr/rst/devel/ok.png 2008-02-29 18:06:48 UTC (rev 1265) @@ -0,0 +1,5 @@ +PNG + + +IHDRóÿasBIT|d pHYsùù.( EtEXtSoftwarewww.inkscape.orgî<ðIDAT8AQÇ¿7cÉkt0æ:tõf<4vÔCP°&]7ÁöžÕ!:ì¡S CD];5§;°*ìayÑÁ4Êë0scæ9(¯KÉ®ë~ðþïû}ÿÿûç.Z[ã·¡¡pÑaMÓ%Ï¡ëóùümê0ƯE© ž®ûÞ²¬ÝÆž©ªêù|¶m²,«°QñÇt:œL&/Û¶m1Æ.µsù|þªª·3ÌÓ41ÆîSJOl¯lmmí)R+Ëñf³ù1vR:ý÷Mr!ts~D)ýŸr¹Ü,ËûJEÖu}ásJéÕ%h4ÚL¥R×<Ï;.?}ßßK$œ«Õjòx<æã|ív»/OsÍf;ãÖëõ«çåZÖÁd2V«UÇ¡ÝnO Ø=+&âC6œÅ>4 +Y$X, "nÆ¡iÛg~¿ÁS]×DQÎ9t:iOÖ}ôÉzœÞ×uC0x}Jé·Ÿï?0ãclýñºaàÿ׊œ(Ja¡Pè¬j§udÈÛcìѹÛà/¢ªx²IEND®B` \ No newline at end of file Copied: trunk/simexplorer-is/src/site/fr/rst/devel/old/architecture.abw (from rev 1257, trunk/simexplorer-is/src/site/fr/rst/devel/architecture.abw) =================================================================== --- trunk/simexplorer-is/src/site/fr/rst/devel/old/architecture.abw (rev 0) +++ trunk/simexplorer-is/src/site/fr/rst/devel/old/architecture.abw 2008-02-29 18:06:48 UTC (rev 1265) @@ -0,0 +1,420 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE abiword PUBLIC "-//ABISOURCE//DTD AWML 1.0 Strict//EN" "http://www.abisource.com/awml.dtd"> +<abiword template="false" version="2.4.6" xmlns:svg="http://www.w3.org/2000/svg" xid-max="480" xmlns:dc="http://purl.org/dc/elements/1.1/" fileformat="1.1" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:awml="http://www.abisource.com/awml.dtd" xmlns="http://www.abisource.com/awml.dtd" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" props="dom-dir:ltr; document-footnote-restart-section:0; document-endnote-type:numeric; document-endnote-place-enddoc:1; document-endnote-initial:1; lang:fr-FR; document-endnote-restart-section:0; document-footnote-restart-page:0; document-footnote-type:numeric; document-footnote-initial:1; document-endnote-place-endsection:0"> +<!-- ======================================================================== --> +<!-- This file is an AbiWord document. --> +<!-- AbiWord is a free, Open Source word processor. --> +<!-- More information about AbiWord is available at http://www.abisource.com/ --> +<!-- You should not edit this file by hand. --> +<!-- ======================================================================== --> + +<metadata> +<m key="dc.format">application/x-abiword</m> +<m key="abiword.generator">AbiWord</m> +</metadata> +<history version="60" edit-time="56556" last-saved="1196101722" uid="e5b61a06-9845-11dc-84e0-f93525e6000d"> +<version id="1" started="1195658750" uid="0abf655a-9846-11dc-84e0-f93525e6000d" auto="0" top-xid="328"/> +<version id="3" started="1195658775" uid="55ff20f0-984b-11dc-97cb-8f99009bf653" auto="0" top-xid="330"/> +<version id="11" started="1195723478" uid="2b673fac-990a-11dc-8d16-acd61ab3f596" auto="0" top-xid="332"/> +<version id="14" started="1195813646" uid="5d32eb8a-99af-11dc-8b35-982ad6d9719b" auto="0" top-xid="437"/> +<version id="60" started="1196067628" uid="6a36dbb6-9c4d-11dc-9e05-9e041a8dd754" auto="0" top-xid="468"/> +</history> +<styles> +<s type="P" name="Normal" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; text-align:left; font-variant:normal; margin-left:0pt; bgcolor:transparent; widows:2; font-style:normal; text-indent:0in; text-position:normal; font-weight:normal; margin-right:0pt; font-size:12pt; margin-bottom:0pt; text-decoration:none; line-height:1.0; color:000000; lang:fr-FR; font-stretch:normal"/> +<s type="C" name="Reference" props="font-size:10pt"/> +</styles> +<pagesize pagetype="Custom" orientation="portrait" width="17.715278" height="11.691667" units="in" page-scale="1.000000"/> +<section xid="1" props="page-margin-right:25.4mm; columns:1; page-margin-header:0.0mm; page-margin-left:25.4mm; page-margin-footer:0.0mm; page-margin-top:25.4mm; page-margin-bottom:25.4mm"> +<p style="Normal" xid="2"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">=======================================</c></p> +<p style="Normal" xid="3" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">SimExplorer SI - Dossier d'architecture</c></p> +<p style="Normal" xid="4"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">=======================================</c></p> +<p style="Normal" xid="5"></p> +<p style="Normal" xid="6" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. contents:: :depth: 3</c></p> +<p style="Normal" xid="7" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. sectnum::</c></p> +<p style="Normal" xid="8"></p> +<p style="Normal" xid="9" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Introduction</c></p> +<p style="Normal" xid="10"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">============</c></p> +<p style="Normal" xid="11"></p> +<p style="Normal" xid="12" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Ce document détaille la solution proposée en réponse à la demande d'un outil d'exploration de simulation.</c></p> +<p style="Normal" xid="13"></p> +<p style="Normal" xid="14" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Architecture conceptuelle</c></p> +<p style="Normal" xid="15"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">=========================</c></p> +<p style="Normal" xid="16"></p> +<p style="Normal" xid="17" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Rappel des fonctions de l'application</c></p> +<p style="Normal" xid="18"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">-------------------------------------</c></p> +<p style="Normal" xid="19"></p> +<p style="Normal" xid="20" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">L'application permet l'utilisation d'outils de simulation dans un environnement multi-utilisateurs. Un mode client léger met à disposition la gestion des utilisateurs et la consultation des paramÚtres des simulations. Ce mode est accessible avec un simple navigateur. Avec un logiciel fourni (nommé aussi client lourd), l'utilisateur peut de même gérer les utilisateurs, mais aussi les simulations afin de les lancer. Une fonction de synchronisation met à jour les données locales par rapport aux données centralisées.</c></p> +<p style="Normal" xid="21"></p> +<p style="Normal" xid="22" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Chaque fonction est limitée en fonction des droits de l'utilisateur connecté. Cet utilisateur, en fonction des groupes auxquels il appartient, obtient des droits sur les simulations et les utilisateurs (création, modification, suppression).</c></p> +<p style="Normal" xid="23"></p> +<p style="Normal" xid="24" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Les modifications des paramÚtres des simulations sont sauvegardé afin de conserver un historique. Cet historique se synchronise avec les données centralisées et les données de l'utilisateur.</c></p> +<p style="Normal" xid="25"></p> +<p style="Normal" xid="26" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Décomposition de l'application en modules</c></p> +<p style="Normal" xid="27"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">-----------------------------------------</c></p> +<p style="Normal" xid="28"></p> +<p style="Normal" xid="29" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">L'authentification s'appuie sur un module unique. Celui ci permet d'authentifier les utilisateurs se connectant via le client léger ou le client lourd. Un premier niveau impératif nécessite l'appartenance de l'utilisateur à un groupe destiné à contenir les accrédités à utiliser l'application. Ce module fourni aussi les groupes d'appartenance d'un utilisateur, afin de déterminer ses droits. Enfin, ce module permet l'édition des utilisateurs et des groupes par les utilisateurs avec pouvoir.</c></p> +<p style="Normal" xid="30"></p> +<p style="Normal" xid="31" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Les autorisations sont gérées conjointement avec l'authentification. Une simulation a des droits associés en fonction de son propriétaire et son groupe d'appartenance. Ses droits sont décorélés des données métier, seul un identifiant technique permet aux services d'interroger le module d'autorisation afin de valider l'accÚs à une simulation. Le niveau de granularité des droits est similaire à la gestion des modes sur les fichiers. Les droits sur les actions création/modification/exécution sont alloués en fonction de l'utilisateur/groupe/autre.</c></p> +<p style="Normal" xid="32"></p> +<p style="Normal" xid="33" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Le stockage est un module dupliqué à la fois sur le serveur gérant les données centralisées et sur chaque client lourd. Celui-ci a la charge de conserver les données dans une base, et de stocker les données volumineuses dans le systÚme de fichier. Il est capable de persister les objets utilisés par l'application. Un mécanisme de synchronisation permet de mettre à jour les données locales et les données centralisées en fonction de rÚgles de gestion de versionnement.</c></p> +<p style="Normal" xid="34"></p> +<p style="Normal" xid="35" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">La logique métier de l'application est contenue dans des services. Ceux ci peuvent être exécutés localement, lors de l'exécution d'une simulation sur le client lourd par exemple. Certains services sont présents uniquement sur le serveur, parce qu'ils nécessitent les modules d'autorisation et les données centralisées. Le client lourd fait alors appel à ces services dans un mode appel distant.</c></p> +<p style="Normal" xid="36"></p> +<p style="Normal" xid="37" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Le module d'interface est composé de deux parties. CÃŽté serveur, l'utilisateur accÚde avec un navigateur Internet standard à l'application. Les pages sont servies par un serveur web utilisant un contrÃŽleur. Celui ci interagit avec les services afin de présenter les données à l'utilisateur. CÃŽté client, l'interface graphique s'appuie aussi sur un contrÃŽleur utilisant les services.</c></p> +<p style="Normal" xid="38"></p> +<p style="Normal" xid="39"></p> +<p style="Normal" xid="40" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Exigences et contraintes</c></p> +<p style="Normal" xid="41"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">------------------------</c></p> +<p style="Normal" xid="42"></p> +<p style="Normal" xid="43" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Contraintes d'urbanisme</c></p> +<p style="Normal" xid="44"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">_______________________</c></p> +<p style="Normal" xid="45"></p> +<p style="Normal" xid="46" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Le client lourd doit s'intégrer dans SimExplorer RCP.</c></p> +<p style="Normal" xid="47"></p> +<p style="Normal" xid="48" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Les services déployés sur le serveur et mis à disposition du client lourd doivent pouvoir être réutilisés par des applications tierces.</c></p> +<p style="Normal" xid="49"></p> +<p style="Normal" xid="50" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Le serveur doit être en mesure de lancer des simulations et de récupérer les résultats.</c></p> +<p style="Normal" xid="51"></p> +<p style="Normal" xid="52" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Exigences et contraintes liées à des fonctionnalités particuliÚres</c></p> +<p style="Normal" xid="53"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">__________________________________________________________________</c></p> +<p style="Normal" xid="54"></p> +<p style="Normal" xid="55" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Un serveur d'authentification.existant pourra être réutilisé dans la mesure où il est accessible via des protocoles standards. Une note précisant le fonctionnement de ce serveur devra être fourni afin de rendre possible son utilisation. ex : LDAP</c></p> +<p style="Normal" xid="56"></p> +<p style="Normal" xid="57" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Les appels de lancement des simulations devra être formalisés dans une note. Ceux ci pourront alors être intégrés dans les services.</c></p> +<p style="Normal" xid="58"></p> +<p style="Normal" xid="59" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">L'authentification implique l'établissement d'une connexion sécurisée entre le client et le serveur, afin de ne pas faire passer en clair les mots de passe sur le réseau. Le serveur disposera d'un certificat afin de crypter les flux.</c></p> +<p style="Normal" xid="60"></p> +<p style="Normal" xid="61" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Contraintes d'ergonomie</c></p> +<p style="Normal" xid="62"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">_______________________</c></p> +<p style="Normal" xid="63"></p> +<p style="Normal" xid="64" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">L'application web se doit d'être compatible avec les navigateurs récents : Firefox2+ et IE6+.</c></p> +<p style="Normal" xid="331" props="text-align:left; dom-dir:ltr"></p> +<p style="Normal" xid="332" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">L'application client lourd est un application standard type bureautique, et doit être compatible avec le maximum de plateformes. Le lancement de l'application doit se faire simplement par un raccourci.</c></p> +<p style="Normal" xid="65"></p> +<p style="Normal" xid="66" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Volumétrie</c></p> +<p style="Normal" xid="67"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">__________</c></p> +<p style="Normal" xid="68"></p> +<p style="Normal" xid="69" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Les données associées aux simulations sont parfois trÚs volumineuses (>100Mo). Ces données doivent être stockées en local mais aussi sur le serveur, avec des transferts entre le client et le serveur.</c></p> +<p style="Normal" xid="70"></p> +<p style="Normal" xid="71" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Contraintes et exigences liées à l'exploitation</c></p> +<p style="Normal" xid="72"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">_______________________________________________</c></p> +<p style="Normal" xid="73"></p> +<p style="Normal" xid="74" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Lors de la mise à jour de l'application, la base de données doit être synchrone avec l'applicatif. De même, le client lourd doit être à jour par rapport à la version déployée sur le serveur.</c></p> +<p style="Normal" xid="75"></p> +<p style="Normal" xid="76" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Les données doivent pouvoir être simplement sauvegardées et restaurées.</c></p> +<p style="Normal" xid="77"></p> +<p style="Normal" xid="78" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Architecture logique</c></p> +<p style="Normal" xid="79"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">====================</c></p> +<p style="Normal" xid="80"></p> +<p style="Normal" xid="81" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Schéma d'architecture logique</c></p> +<p style="Normal" xid="82"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">-----------------------------</c></p> +<p style="Normal" xid="83"></p> +<p style="Normal" xid="84" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:fr-FR">.. image::</c><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> diagramme1.png</c></p> +<p style="Normal" xid="85" props="text-align:left; dom-dir:ltr"></p> +<p style="Normal" xid="87" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Description des flux</c></p> +<p style="Normal" xid="88"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">--------------------</c></p> +<p style="Normal" xid="89"></p> +<p style="Normal" xid="90" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> #. Serveur web</c></p> +<p style="Normal" xid="91"></p> +<p style="Normal" xid="92" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> L'interface client léger passe par ce flux. L'authentification se fera en HTTPS, le reste de l'application pourra être au choix en HTTP ou en HTTPS. Le contenu sera constitué de pages XHTML compatibles avec les navigateurs récents.</c></p> +<p style="Normal" xid="93"></p> +<p style="Normal" xid="94" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> #. Interface client lourd</c></p> +<p style="Normal" xid="95"></p> +<p style="Normal" xid="96" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> C'est à travers ce canal que l'utilisateur interagit avec l'application.</c></p> +<p style="Normal" xid="97"></p> +<p style="Normal" xid="98" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> #. Serveur d'authentification</c></p> +<p style="Normal" xid="99"></p> +<p style="Normal" xid="100" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> Le framework d'authentification utilise un serveur externe afin d'authentifier les utilisateurs. Ce flux dépend du serveur.</c></p> +<p style="Normal" xid="101"></p> +<p style="Normal" xid="102" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> #. Autorisations</c></p> +<p style="Normal" xid="103"></p> +<p style="Normal" xid="104" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> Toutes les informations relatives à la protection des accÚs aux simulations sont retrouvées via ce lien vers une base de données.</c></p> +<p style="Normal" xid="105"></p> +<p style="Normal" xid="106" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> #. Persistance cÃŽté serveur</c></p> +<p style="Normal" xid="107"></p> +<p style="Normal" xid="108" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> Les objets sont stockés dans une base de donnée à travers ce flux.</c></p> +<p style="Normal" xid="109"></p> +<p style="Normal" xid="110" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> #. Persistance cÃŽté client</c></p> +<p style="Normal" xid="111"></p> +<p style="Normal" xid="112" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> De même, les objets sont stockés dans une base de données. Nous sommes ici en présence d'une base de données embarquée, afin de rendre le client lourd autonome.</c></p> +<p style="Normal" xid="113"></p> +<p style="Normal" xid="114" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> #. SystÚme de fichiers serveur</c></p> +<p style="Normal" xid="115"></p> +<p style="Normal" xid="116" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> Les données volumineuses sont stockées dans le systÚme de fichier plutÃŽt que dans la base.</c></p> +<p style="Normal" xid="117"></p> +<p style="Normal" xid="118" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> #. SystÚme de fichiers client</c></p> +<p style="Normal" xid="119"></p> +<p style="Normal" xid="120" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> De la même façon que sur le serveur, les données sont stockées sous forme de fichiers dans le systÚme de fichier de l'utilisateur.</c></p> +<p style="Normal" xid="121"></p> +<p style="Normal" xid="122" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> #. Services distants</c></p> +<p style="Normal" xid="123"></p> +<p style="Normal" xid="124" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> La communication entre le client lourd et le serveur passe par ce flux. Celui ci est crypté et intégré à haut niveau dans l'application. Les appels de service se font de façon transparente, de façon similaire à un appel local.</c></p> +<p style="Normal" xid="125"></p> +<p style="Normal" xid="126"></p> +<p style="Normal" xid="127" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Initialisation des entrepÃŽts de données</c></p> +<p style="Normal" xid="128"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">---------------------------------------</c></p> +<p style="Normal" xid="129"></p> +<p style="Normal" xid="130" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Pour l'authentification, un groupe d'utilisateur doit être créé afin d'accueillir les personnes accréditées. De plus, un groupe d'administrateur avec un utilisateur doit exister afin de permettre l'administration des utilisateurs. Ces deux groupes seront à spécifier lors de l'installation.</c></p> +<p style="Normal" xid="131"></p> +<p style="Normal" xid="132" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Si l'application doit utiliser un serveur d'authentification existant, le groupe des administrateurs doit avoir les droits de lister les utilisateurs amenés à être ajouté aux personnes accréditées.</c></p> +<p style="Normal" xid="133"></p> +<p style="Normal" xid="134" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Les bases de données d'autorisation et de stockage peuvent être initialisés lors du lancement de l'application de façon automatique. Si les droits de création de table et de champs n'est pas autorisé pour l'application, un script doit être exécuté avant le déploiement d'une nouvelle version afin de mettre à jour la base et migrer les données.</c></p> +<p style="Normal" xid="135"></p> +<p style="Normal" xid="136" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">CÃŽté client, le problÚme ne se pose pas, la base de données est embarquée dans l'application.</c></p> +<p style="Normal" xid="137"></p> +<p style="Normal" xid="138" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Les modules de l'application</c></p> +<p style="Normal" xid="139"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">----------------------------</c></p> +<p style="Normal" xid="140"></p> +<p style="Normal" xid="141" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Le module authentification</c></p> +<p style="Normal" xid="142"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">__________________________</c></p> +<p style="Normal" xid="143"></p> +<p style="Normal" xid="144" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">La technologie JAAS (Java Authentication and Authorization Service) a été retenue. La partie autorisation est utilisée uniquement pour valider l'accÚs de l'utilisateur authentifié à l'application.</c></p> +<p style="Normal" xid="145"></p> +<p style="Normal" xid="146" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Plusieurs méthodes d'authentification sont déjà implantées (login/mot de passe/groupes dans une base de données avec JDBC, LDAP, ...).</c></p> +<p style="Normal" xid="147"></p> +<p style="Normal" xid="148" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Les modules services</c></p> +<p style="Normal" xid="149"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">____________________</c></p> +<p style="Normal" xid="150"></p> +<p style="Normal" xid="151" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Les services sont contenus dans des EJB (Entreprise Java Bean). Chaque service est un composant disposant d'outils facilitant la mise en oeuvre des transactions et la distribution.</c></p> +<p style="Normal" xid="152"></p> +<p style="Normal" xid="153" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Ces services sont destinés à contenir toute la logique métier.</c></p> +<p style="Normal" xid="154"></p> +<p style="Normal" xid="155" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Les services contiennent aussi le contexte d'authentification de l'appelant.</c></p> +<p style="Normal" xid="156"></p> +<p style="Normal" xid="157" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Le module autorisation </c></p> +<p style="Normal" xid="158"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">______________________</c></p> +<p style="Normal" xid="159"></p> +<p style="Normal" xid="160" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Grâce au contexte d'authentification des EJB, les appels au module d'autorisation vont sécurisés les accÚs aux données.</c></p> +<p style="Normal" xid="161"></p> +<p style="Normal" xid="162" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Le module stockage</c></p> +<p style="Normal" xid="163"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">__________________</c></p> +<p style="Normal" xid="164"></p> +<p style="Normal" xid="165" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Ce module repose en grande partie sur la technologie JPA (Java Persistence API). Elle permet un mapping entre les objets et la base de données de façon transparente et interropérable. Le choix de la base de données n'est alors plus vérouillé, de nombreux systÚmes étant compatibles. Afin de gérer les volumétries associées aux simulations, certaines propriétés seront stockées sur le disque dur.</c></p> +<p style="Normal" xid="166"></p> +<p style="Normal" xid="167" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Lors de l'accÚs à une donnée, le module gérant les autorisations est appelé afin de vérifier les droits. De même, lorsque l'utilisateur crée une nouvelle entité, les droits lui sont associés via ce service.</c></p> +<p style="Normal" xid="168"></p> +<p style="Normal" xid="169" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Le module interface</c></p> +<p style="Normal" xid="170"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">___________________</c></p> +<p style="Normal" xid="171"></p> +<p style="Normal" xid="172" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">CÃŽté client léger, le site est réalisé avec Tapestry 5. Ce framework apporte le développement orienté objet au applications web. De nombreuses fonctionnalités sont incluses et facilitent le développement.</c></p> +<p style="Normal" xid="173"></p> +<p style="Normal" xid="174" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">CÃŽté client lourd, le framework JAXX est utilisé. Ce framework transforme des XML décrivant l'interface en classes Java.</c></p> +<p style="Normal" xid="175"></p> +<p style="Normal" xid="474"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Développement de l'application</c></p> +<p style="Normal" xid="177"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">------------------------------</c></p> +<p style="Normal" xid="178"></p> +<p style="Normal" xid="179" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Lors de la construction de Simexplorer SI, nous utilisons le framework ToPIA ainsi que différents outils développés par Code Lutin. Ceux ci sont tous sous licence LGPL.</c></p> +<p style="Normal" xid="180"></p> +<p style="Normal" xid="181" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">A partir du modÚle conceptuel, le process de développement génÚre une partie de l'application, entre autre sous la forme d'interfaces à implémenter. Nous obtenons alors :</c></p> +<p style="Normal" xid="182" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> - les entités persistées</c></p> +<p style="Normal" xid="183" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> - les interfaces des services</c></p> +<p style="Normal" xid="184" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt"> - les interfaces des composants des pages web</c></p> +<p style="Normal" xid="185"></p> +<p style="Normal" xid="186"></p> +<p style="Normal" xid="187" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Architecture physique</c></p> +<p style="Normal" xid="188"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">=====================</c></p> +<p style="Normal" xid="189"></p> +<p style="Normal" xid="190" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Architecture logicielle</c></p> +<p style="Normal" xid="191"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">-----------------------</c></p> +<p style="Normal" xid="192"></p> +<p style="Normal" xid="193" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">L'ensemble de l'application est développée avec le langage Java. La version de référence lors du développement de l'application est JRE 6 Update 3.</c></p> +<p style="Normal" xid="194"></p> +<p style="Normal" xid="195" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Serveur Web</c></p> +<p style="Normal" xid="196"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">___________</c></p> +<p style="Normal" xid="197"></p> +<p style="Normal" xid="198" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Le serveur web est constitué d'un Apache 2.2. Le module mod_proxy_ajp permet de ne pas lancer le serveur d'application en root et d'avoir accÚs au port HTTP et HTTPS.</c></p> +<p style="Normal" xid="200"></p> +<p style="Normal" xid="201" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Serveur Applicatif</c></p> +<p style="Normal" xid="202"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">__________________</c></p> +<p style="Normal" xid="203"></p> +<p style="Normal" xid="204"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">+------------------------+------------------------+------------------------+------------------------+------------------------+</c></p> +<p style="Normal" xid="205" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">| |JBoss 4.2.2 GA |Geronimo JEE5 2.0.2 |JOnAS 5.0 M1 |GlassFish V2 |</c></p> +<p style="Normal" xid="206"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">+========================+========================+========================+========================+========================+</c></p> +<p style="Normal" xid="207" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">|EJB3 | |ok| [#jba]_ | |ok| [#grc]_ | |ok| [#joa]_ | |uok| |</c></p> +<p style="Normal" xid="208"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">+------------------------+------------------------+------------------------+------------------------+------------------------+</c></p> +<p style="Normal" xid="209" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">|- RemoteBinding | |ok| [#jbb]_ | |ok| [#grd]_ | |uok| | |uok| |</c></p> +<p style="Normal" xid="210"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">+------------------------+------------------------+------------------------+------------------------+------------------------+</c></p> +<p style="Normal" xid="211" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">|- SSL | |ok| [#jbc]_ | |ok| [#gra]_ | |uok| | |ok| [#gfd]_ |</c></p> +<p style="Normal" xid="212"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">+------------------------+------------------------+------------------------+------------------------+------------------------+</c></p> +<p style="Normal" xid="213" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">|- SecurityDomain | |ok| [#jbd]_ | |uok| | |ok| [#joc]_ | |ok| [#gfe]_ |</c></p> +<p style="Normal" xid="214"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">+------------------------+------------------------+------------------------+------------------------+------------------------+</c></p> +<p style="Normal" xid="215" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">|- WebService | |ok| [#jbe]_ | |ok| [#gre]_ | |ok| [#job]_ | |ok| [#gfa]_ |</c></p> +<p style="Normal" xid="216"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">+------------------------+------------------------+------------------------+------------------------+------------------------+</c></p> +<p style="Normal" xid="217" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">| * Sécurisé | |ok| [#jbe]_ | |uok| [#gre]_ | |uok| | |ok| [#gff]_ |</c></p> +<p style="Normal" xid="218"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">+------------------------+------------------------+------------------------+------------------------+------------------------+</c></p> +<p style="Normal" xid="219" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">| * WebServiceContext | |ok| [#jbe]_ | |ok| [#gre]_ | |ok| [#job]_ | |uok| |</c></p> +<p style="Normal" xid="220"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">+------------------------+------------------------+------------------------+------------------------+------------------------+</c></p> +<p style="Normal" xid="221" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">|- SessionContext | |uok| | |uok| | |uok| | |uok| |</c></p> +<p style="Normal" xid="222"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">+------------------------+------------------------+------------------------+------------------------+------------------------+</c></p> +<p style="Normal" xid="223" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">|JPA | |ok| [#jbf]_ | |ok| [#grf]_ | |ok| [#jof]_ | |ok| [#gfb]_ |</c></p> +<p style="Normal" xid="224"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">+------------------------+------------------------+------------------------+------------------------+------------------------+</c></p> +<p style="Normal" xid="225" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">|- XML datasource | |ok| [#jbg]_ | |ok| [#grj]_ | |ok| [#joe]_ | |uok| |</c></p> +<p style="Normal" xid="226"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">+------------------------+------------------------+------------------------+------------------------+------------------------+</c></p> +<p style="Normal" xid="227" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">|- persistence.xml | |ok| [#jbh]_ | |ok| [#grg]_ | |ok| [#jog]_ | |uok| |</c></p> +<p style="Normal" xid="228"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">+------------------------+------------------------+------------------------+------------------------+------------------------+</c></p> +<p style="Normal" xid="229" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">|- orm.xml | |uok| | |ok| [#grh]_ | |ok| [#joh]_ | |ok| [#gfc]_ |</c></p> +<p style="Normal" xid="230"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">+------------------------+------------------------+------------------------+------------------------+------------------------+</c></p> +<p style="Normal" xid="231" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">|Servlet | |ok| [#jbi]_ | |ok| [#gri]_ | |uok| | |uok| |</c></p> +<p style="Normal" xid="232"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">+------------------------+------------------------+------------------------+------------------------+------------------------+</c></p> +<p style="Normal" xid="233" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">|- JAAS | |ok| [#jbj]_ | |ok| [#grb]_ | |ok| [#jod]_ | |uok| |</c></p> +<p style="Normal" xid="234"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">+------------------------+------------------------+------------------------+------------------------+------------------------+</c></p> +<p style="Normal" xid="235" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">|Corba | |uok| | |uok| | |uok| | |uok| |</c></p> +<p style="Normal" xid="236"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">+------------------------+------------------------+------------------------+------------------------+------------------------+</c></p> +<p style="Normal" xid="237"></p> +<p style="Normal" xid="238" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. |ok| image:: ok.png</c></p> +<p style="Normal" xid="239" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. |nok| image:: nok.png</c></p> +<p style="Normal" xid="240" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. |uok| image:: uok.png</c></p> +<p style="Normal" xid="241"></p> +<p style="Normal" xid="242" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#jba] http://docs.jboss.org/ejb3/app-server/reference/build/reference/en/html/index.html</c></p> +<p style="Normal" xid="243" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#jbb] http://docs.jboss.org/ejb3/app-server/tutorial/jndibinding/jndi.html</c></p> +<p style="Normal" xid="244" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#jbc] http://docs.jboss.org/ejb3/app-server/reference/build/reference/en/html/transport.html</c></p> +<p style="Normal" xid="245" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#jbd] http://docs.jboss.org/ejb3/app-server/tutorial/security/security.html</c></p> +<p style="Normal" xid="246" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#jbe] http://labs.jboss.com/jbossws/docs/jaxws_userguide-2.0/index.html</c></p> +<p style="Normal" xid="247" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#jbf] http://labs.jboss.com/file-access/default/members/jbossas/freezone/docs/Server_Configuration_Guide/beta422/html/EJB3_Services-Entity_Beans.html</c></p> +<p style="Normal" xid="248" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#jbg] http://labs.jboss.com/file-access/default/members/jbossas/freezone/docs/Server_Configuration_Guide/beta422/html/Connectors_on_JBoss-Configuring_JDBC_DataSources.html</c></p> +<p style="Normal" xid="249" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#jbh] http://labs.jboss.com/file-access/default/members/jbossas/freezone/docs/Server_Configuration_Guide/beta422/html/ch01s02s01.html</c></p> +<p style="Normal" xid="250" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#jbi] http://labs.jboss.com/file-access/default/members/jbossas/freezone/docs/Getting_Started_Guide/beta422/html/ch01s07.html</c></p> +<p style="Normal" xid="251" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#jbj] http://labs.jboss.com/file-access/default/members/jbossas/freezone/docs/Server_Configuration_Guide/beta422/html/Security_on_JBoss-J2EE_Declarative_Security_Overview.html</c></p> +<p style="Normal" xid="252"></p> +<p style="Normal" xid="253" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#grc] http://openejb.apache.org/</c></p> +<p style="Normal" xid="254" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#grd] http://openejb.apache.org/jndi-names.html</c></p> +<p style="Normal" xid="255" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#gra] http://www.ibm.com/developerworks/opensource/library/os-ag-corba1/</c></p> +<p style="Normal" xid="256" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#gre] http://cwiki.apache.org/GMOxPMGT/geronimo-20-web-services-support.html</c></p> +<p style="Normal" xid="257" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#grf] http://openjpa.apache.org/builds/1.0.1/apache-openjpa-1.0.1/docs/manual/jpa_overview_intro.html</c></p> +<p style="Normal" xid="258" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#grj] http://cwiki.apache.org/GMOxDOC11/geronimo-connector-11xsd.html#geronimo-connector-1.1.xsd-definitioninstanceType</c></p> +<p style="Normal" xid="259" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#grg] http://openjpa.apache.org/builds/1.0.1/apache-openjpa-1.0.1/docs/manual/jpa_overview_persistence.html</c></p> +<p style="Normal" xid="260" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#grh] http://openjpa.apache.org/builds/1.0.1/apache-openjpa-1.0.1/docs/manual/jpa_overview_meta.html</c></p> +<p style="Normal" xid="261" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#gri] http://cwiki.apache.org/GMOxKB/jetty-or-tomcat.html</c></p> +<p style="Normal" xid="262" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#grb] http://www.ibm.com/developerworks/opensource/library/os-ag-security/</c></p> +<p style="Normal" xid="263"></p> +<p style="Normal" xid="264" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#joa] http://www.easybeans.org/doc/userguide/en/chunk-integrated/ejb3_introduction.html</c></p> +<p style="Normal" xid="265" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#joc] http://jonas.objectweb.org/current/doc/doc-en/integrated/configuration_guide.html#config.security</c></p> +<p style="Normal" xid="266" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#job] http://wiki.easybeans.org/xwiki/bin/view/Main/JAXWS</c></p> +<p style="Normal" xid="267"></p> +<p style="Normal" xid="268" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#jof] http://www.jpox.org/docs/jpa/index.html</c></p> +<p style="Normal" xid="269" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#joe] http://jonas.objectweb.org/current/doc/doc-en/integrated/configuration_guide.html#N11268</c></p> +<p style="Normal" xid="270" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#jog] http://www.jpox.org/docs/jpa/persistence_xml.html</c></p> +<p style="Normal" xid="271" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#joh] http://www.jpox.org/docs/jpa/orm_xml.html</c></p> +<p style="Normal" xid="272"></p> +<p style="Normal" xid="273" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#jod] http://jonas.objectweb.org/current/doc/doc-en/integrated/configuration_guide.html#N10F4F</c></p> +<p style="Normal" xid="274"></p> +<p style="Normal" xid="275" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#gfd] http://blogs.sun.com/swchan/entry/enterprise_java_bean_over_ssl</c></p> +<p style="Normal" xid="276" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#gfe] http://java.sun.com/developer/technicalArticles/J2EE/security_annotation/</c></p> +<p style="Normal" xid="277" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#gfa] http://wiki.glassfish.java.net/Wiki.jsp?page=WebServicesTechnologies</c></p> +<p style="Normal" xid="278" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#gff] https://glassfish.dev.java.net/javaee5/docs/AG/ablrk.html#ablry</c></p> +<p style="Normal" xid="279" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#gfb] https://glassfish.dev.java.net/javaee5/persistence/</c></p> +<p style="Normal" xid="280" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. [#gfc] https://glassfish.dev.java.net/javaee5/persistence/persistence_faq.html#5</c></p> +<p style="Normal" xid="281"></p> +<p style="Normal" xid="282" props="text-align:left; dom-dir:ltr"></p> +<p style="Normal" xid="285" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">SGBD</c></p> +<p style="Normal" xid="286"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">____</c></p> +<p style="Normal" xid="287"></p> +<p style="Normal" xid="288" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Pour la base sur le serveur, les performances et la stabilité de PostgreSQL ont été retenues. CÃŽté client lourd, la base de donnée embarquée H2 est utilisée. Un export XML sera réalisé pour l'interopérabilité.</c></p> +<p style="Normal" xid="289"></p> +<p style="Normal" xid="290"></p> +<p style="Normal" xid="291" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Choix technologiques transverses</c></p> +<p style="Normal" xid="292"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">________________________________</c></p> +<p style="Normal" xid="293"></p> +<p style="Normal" xid="294" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Dans la perspective de réutilisation, les services publiés utiliseront des protocoles standardisés et inter opérables, afin de ne pas limiter le choix du langage.</c></p> +<p style="Normal" xid="295"></p> +<p style="Normal" xid="296" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">La technologie ... a été choisie pour son support de la sécurité et son utilisation courante dans différents langages et sur différents systÚmes d'exploitation.</c></p> +<p style="Normal" xid="297"></p> +<p style="Normal" xid="298" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Solution aux contraintes d'ergonomie</c></p> +<p style="Normal" xid="299"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">____________________________________</c></p> +<p style="Normal" xid="300"></p> +<p style="Normal" xid="301" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">L'application web respectera les standards W3C XHTML.</c></p> +<p style="Normal" xid="302"></p> +<p style="Normal" xid="303" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">L'application client lourd utilise le framework Swing, disponible sur un grand nombre de plateformes. Sur celles où Java Web Start est disponible, l'application pourra être installée par un simple clic sur le site du client léger.</c></p> +<p style="Normal" xid="304"></p> +<p style="Normal" xid="305" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Dimensionnement</c></p> +<p style="Normal" xid="306"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">_______________</c></p> +<p style="Normal" xid="307"></p> +<p style="Normal" xid="308" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Une attention particuliÚre devra être faite à la taille des partitions lors de l'intégration en fonction de la volumétrie cible. De même, cÃŽté client, l'utilisateur doit être informé de l'espace utilisé par l'application par rapport à son espace disponible. La synchronisation doit vérifier au préalable la suffisance d'espace.</c></p> +<p style="Normal" xid="309"></p> +<p style="Normal" xid="310" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">En supposant que chaque simulation prend environ 100ko de paramÚtres, que 10 utilisateurs utilisent l'application en créant 5 simulations par jour, on obtient environ 10Go de paramÚtres de simulation sur 10 ans.</c></p> +<p style="Normal" xid="311"></p> +<p style="Normal" xid="312" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Solution pour l'exploitation du systÚme</c></p> +<p style="Normal" xid="313"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">_______________________________________</c></p> +<p style="Normal" xid="314"></p> +<p style="Normal" xid="315"></p> +<p style="Normal" xid="316" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Lors de la mise à jour de l'application, plusieurs aspects doivent être gérés. Tout d'abord la base de données doit être synchrone avec l'applicatif. Ceci devra se faire automatiquement avec une migration des données executée lors du déploiement d'une nouvelle version.</c></p> +<p style="Normal" xid="317"></p> +<p style="Normal" xid="318" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Dans un environnement client/serveur, il est nécessaire de garantir la compatibilité entre les deux applications. Ainsi, le serveur mettra à disposition dans la mesure du possible les services avec une compatibilité ascendante. Si la version du client est obsolÚte, l'utilisateur est notifié et il ne peut plus utiliser l'application en mode connecté.</c></p> +<p style="Normal" xid="319"></p> +<p style="Normal" xid="320"></p> +<p style="Normal" xid="321" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">ModÚle conceptuel</c></p> +<p style="Normal" xid="322"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">-----------------</c></p> +<p style="Normal" xid="329"></p> +<p style="Normal" xid="353" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Entités des données</c></p> +<p style="Normal" xid="410" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">___________________</c></p> +<p style="Normal" xid="411" props="text-align:left; dom-dir:ltr"></p> +<p style="Normal" xid="412" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. </c><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:fr-FR">image</c><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">:: ../../../../xmi/images/data.png</c></p> +<p style="Normal" xid="413" props="text-align:left; dom-dir:ltr"></p> +<p style="Normal" xid="414" props="text-align:left; dom-dir:ltr"></p> +<p style="Normal" xid="415" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Entités des authorisations</c></p> +<p style="Normal" xid="416" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">__________________________</c></p> +<p style="Normal" xid="417" props="text-align:left; dom-dir:ltr"></p> +<p style="Normal" xid="418" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. </c><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:fr-FR">image</c><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">:: ../../../../xmi/images/entities.png</c></p> +<p style="Normal" xid="419" props="text-align:left; dom-dir:ltr"></p> +<p style="Normal" xid="420" props="text-align:left; dom-dir:ltr"></p> +<p style="Normal" xid="421" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Services de stockage</c></p> +<p style="Normal" xid="422" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">____________________</c></p> +<p style="Normal" xid="423" props="text-align:left; dom-dir:ltr"></p> +<p style="Normal" xid="424" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. </c><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:fr-FR">image</c><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">:: ../../../../xmi/images/storage.png</c></p> +<p style="Normal" xid="425" props="text-align:left; dom-dir:ltr"></p> +<p style="Normal" xid="426" props="text-align:left; dom-dir:ltr"></p> +<p style="Normal" xid="427" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Services d'authorisation</c></p> +<p style="Normal" xid="428" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">________________________</c></p> +<p style="Normal" xid="429" props="text-align:left; dom-dir:ltr"></p> +<p style="Normal" xid="430" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. </c><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:fr-FR">image</c><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">:: ../../../../xmi/images/authorization.png</c></p> +<p style="Normal" xid="431" props="text-align:left; dom-dir:ltr"></p> +<p style="Normal" xid="432" props="text-align:left; dom-dir:ltr"></p> +<p style="Normal" xid="433" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Application web</c></p> +<p style="Normal" xid="434" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">_______________</c></p> +<p style="Normal" xid="435" props="text-align:left; dom-dir:ltr"></p> +<p style="Normal" xid="436" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">.. image:: ../../../../xmi/images/applications.png</c></p> +<p style="Normal" xid="347" props="margin-top:0.0000in; margin-left:0.0000in; text-indent:0.0000in; dom-dir:ltr; margin-bottom:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"></p> +<p style="Normal" xid="323" props="font-family:Times New Roman; font-size:12pt; color:000000; lang:fr-FR; text-position:normal; font-weight:normal; font-style:normal; text-decoration:none"></p> +<p style="Normal" xid="324" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Séquences d'utilisation</c></p> +<p style="Normal" xid="325"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">-----------------------</c></p> +<p style="Normal" xid="326"></p> +<p style="Normal" xid="469"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Gestion des authorisations</c></p> +<p style="Normal" xid="471"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">__________________________</c></p> +<p style="Normal" xid="472"></p> +<p style="Normal" xid="473" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:fr-FR">.. image:: ./authorization.jpg</c></p> +<p style="Normal" xid="470"></p> +<p style="Normal" xid="327" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Ãcrans de l'application</c></p> +<p style="Normal" xid="328"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">-----------------------</c></p> +<p style="Normal" xid="438"></p> +<p style="Normal" xid="439"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Liste des éléments</c></p> +<p style="Normal" xid="440"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">__________________</c></p> +<p style="Normal" xid="456"></p> +<p style="Normal" xid="457"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:fr-FR">.. image:: ./screenshots/Screenshot.png</c></p> +<p style="Normal" xid="441"></p> +<p style="Normal" xid="442"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Importer un élément</c></p> +<p style="Normal" xid="443"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">___________________</c></p> +<p style="Normal" xid="444"></p> +<p style="Normal" xid="458"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:fr-FR">.. image:: ./screenshots/Screenshot-1.png</c></p> +<p style="Normal" xid="459" props="margin-top:0.0000in; margin-left:0.0000in; text-indent:0.0000in; dom-dir:ltr; margin-bottom:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"></p> +<p style="Normal" xid="445" props="font-family:Bitstream Vera Sans Mono; font-size:12pt; color:000000; lang:fr-FR; text-position:normal; font-weight:normal; font-style:normal; text-decoration:none"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Liste des utilisateurs</c></p> +<p style="Normal" xid="446"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">______________________</c></p> +<p style="Normal" xid="447"></p> +<p style="Normal" xid="460"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:fr-FR">.. image:: ./screenshots/Screenshot-2.png</c></p> +<p style="Normal" xid="461" props="margin-top:0.0000in; margin-left:0.0000in; text-indent:0.0000in; dom-dir:ltr; margin-bottom:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"></p> +<p style="Normal" xid="448" props="font-family:Bitstream Vera Sans Mono; font-size:12pt; color:000000; lang:fr-FR; text-position:normal; font-weight:normal; font-style:normal; text-decoration:none"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Ajouter/éditer un utilisateur</c></p> +<p style="Normal" xid="449"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">_____________________________</c></p> +<p style="Normal" xid="450"></p> +<p style="Normal" xid="462"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:fr-FR">.. image:: ./screenshots/Screenshot-3.png</c></p> +<p style="Normal" xid="463" props="margin-top:0.0000in; margin-left:0.0000in; text-indent:0.0000in; dom-dir:ltr; margin-bottom:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"></p> +<p style="Normal" xid="451" props="font-family:Bitstream Vera Sans Mono; font-size:12pt; color:000000; lang:fr-FR; text-position:normal; font-weight:normal; font-style:normal; text-decoration:none"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Liste des groupes</c></p> +<p style="Normal" xid="452"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">_________________</c></p> +<p style="Normal" xid="453"></p> +<p style="Normal" xid="464"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:fr-FR">.. image:: ./screenshots/Screenshot-4.png</c></p> +<p style="Normal" xid="465" props="margin-top:0.0000in; margin-left:0.0000in; text-indent:0.0000in; dom-dir:ltr; margin-bottom:0.0000in; line-height:1.000000; text-align:left; margin-right:0.0000in"></p> +<p style="Normal" xid="454" props="font-family:Bitstream Vera Sans Mono; font-size:12pt; color:000000; lang:fr-FR; text-position:normal; font-weight:normal; font-style:normal; text-decoration:none"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">Ajouter/éditer un groupe</c></p> +<p style="Normal" xid="455"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt">________________________</c></p> +<p style="Normal" xid="466"></p> +<p style="Normal" xid="467" props="font-family:Bitstream Vera Sans Mono; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal"><c props="font-family:Bitstream Vera Sans Mono; font-size:12pt; color:000000; text-decoration:none; text-position:normal; font-weight:normal; font-style:normal; lang:fr-FR">.. image:: ./screenshots/Screenshot-5.png</c></p> +<p style="Normal" xid="468" props="font-family:Bitstream Vera Sans Mono; dom-dir:ltr; font-style:normal; margin-left:0.0000in; lang:fr-FR; margin-bottom:0.0000in; text-indent:0.0000in; text-position:normal; margin-top:0.0000in; font-weight:normal; margin-right:0.0000in; text-decoration:none; text-align:left; line-height:1.000000; font-size:12pt"></p> +</section> +</abiword> Copied: trunk/simexplorer-is/src/site/fr/rst/devel/old/architecture.txt (from rev 1257, trunk/simexplorer-is/src/site/fr/rst/devel/architecture.txt) =================================================================== --- trunk/simexplorer-is/src/site/fr/rst/devel/old/architecture.txt (rev 0) +++ trunk/simexplorer-is/src/site/fr/rst/devel/old/architecture.txt 2008-02-29 18:06:48 UTC (rev 1265) @@ -0,0 +1,390 @@ +======================================= +SimExplorer SI - Dossier d'architecture +======================================= + +.. contents:: :depth: 3 +.. sectnum:: + +Introduction +============ + +Ce document détaille la solution proposée en réponse à la demande d'un outil d'exploration de simulation. + +Architecture conceptuelle +========================= + +Rappel des fonctions de l'application +------------------------------------- + +L'application permet l'utilisation d'outils de simulation dans un environnement multi-utilisateurs. Un mode client léger met à disposition la gestion des utilisateurs et la consultation des paramÚtres des simulations. Ce mode est accessible avec un simple navigateur. Avec un logiciel fourni (nommé aussi client lourd), l'utilisateur peut de même gérer les utilisateurs, mais aussi les simulations afin de les lancer. Une fonction de synchronisation met à jour les données locales par rapport aux données centralisées. + +Chaque fonction est limitée en fonction des droits de l'utilisateur connecté. Cet utilisateur, en fonction des groupes auxquels il appartient, obtient des droits sur les simulations et les utilisateurs (création, modification, suppression). + +Les modifications des paramÚtres des simulations sont sauvegardé afin de conserver un historique. Cet historique se synchronise avec les données centralisées et les données de l'utilisateur. + +Décomposition de l'application en modules +----------------------------------------- + +L'authentification s'appuie sur un module unique. Celui ci permet d'authentifier les utilisateurs se connectant via le client léger ou le client lourd. Un premier niveau impératif nécessite l'appartenance de l'utilisateur à un groupe destiné à contenir les accrédités à utiliser l'application. Ce module fourni aussi les groupes d'appartenance d'un utilisateur, afin de déterminer ses droits. Enfin, ce module permet l'édition des utilisateurs et des groupes par les utilisateurs avec pouvoir. + +Les autorisations sont gérées conjointement avec l'authentification. Une simulation a des droits associés en fonction de son propriétaire et son groupe d'appartenance. Ses droits sont décorélés des données métier, seul un identifiant technique permet aux services d'interroger le module d'autorisation afin de valider l'accÚs à une simulation. Le niveau de granularité des droits est similaire à la gestion des modes sur les fichiers. Les droits sur les actions création/modification/exécution sont alloués en fonction de l'utilisateur/groupe/autre. + +Le stockage est un module dupliqué à la fois sur le serveur gérant les données centralisées et sur chaque client lourd. Celui-ci a la charge de conserver les données dans une base, et de stocker les données volumineuses dans le systÚme de fichier. Il est capable de persister les objets utilisés par l'application. Un mécanisme de synchronisation permet de mettre à jour les données locales et les données centralisées en fonction de rÚgles de gestion de versionnement. + +La logique métier de l'application est contenue dans des services. Ceux ci peuvent être exécutés localement, lors de l'exécution d'une simulation sur le client lourd par exemple. Certains services sont présents uniquement sur le serveur, parce qu'ils nécessitent les modules d'autorisation et les données centralisées. Le client lourd fait alors appel à ces services dans un mode appel distant. + +Le module d'interface est composé de deux parties. CÃŽté serveur, l'utilisateur accÚde avec un navigateur Internet standard à l'application. Les pages sont servies par un serveur web utilisant un contrÃŽleur. Celui ci interagit avec les services afin de présenter les données à l'utilisateur. CÃŽté client, l'interface graphique s'appuie aussi sur un contrÃŽleur utilisant les services. + + +Exigences et contraintes +------------------------ + +Contraintes d'urbanisme +_______________________ + +Le client lourd doit s'intégrer dans SimExplorer RCP. + +Les services déployés sur le serveur et mis à disposition du client lourd doivent pouvoir être réutilisés par des applications tierces. + +Le serveur doit être en mesure de lancer des simulations et de récupérer les résultats. + +Exigences et contraintes liées à des fonctionnalités particuliÚres +__________________________________________________________________ + +Un serveur d'authentification.existant pourra être réutilisé dans la mesure où il est accessible via des protocoles standards. Une note précisant le fonctionnement de ce serveur devra être fourni afin de rendre possible son utilisation. ex : LDAP + +Les appels de lancement des simulations devra être formalisés dans une note. Ceux ci pourront alors être intégrés dans les services. + +L'authentification implique l'établissement d'une connexion sécurisée entre le client et le serveur, afin de ne pas faire passer en clair les mots de passe sur le réseau. Le serveur disposera d'un certificat afin de crypter les flux. + +Contraintes d'ergonomie +_______________________ + +L'application web se doit d'être compatible avec les navigateurs récents : Firefox2+ et IE6+. + +L'application client lourd est un application standard type bureautique, et doit être compatible avec le maximum de plateformes. Le lancement de l'application doit se faire simplement par un raccourci. + +Volumétrie +__________ + +Les données associées aux simulations sont parfois trÚs volumineuses (>100Mo). Ces données doivent être stockées en local mais aussi sur le serveur, avec des transferts entre le client et le serveur. + +Contraintes et exigences liées à l'exploitation +_______________________________________________ + +Lors de la mise à jour de l'application, la base de données doit être synchrone avec l'applicatif. De même, le client lourd doit être à jour par rapport à la version déployée sur le serveur. + +Les données doivent pouvoir être simplement sauvegardées et restaurées. + +Architecture logique +==================== + +Schéma d'architecture logique +----------------------------- + +.. image:: diagramme1.png + +Description des flux +-------------------- + + #. Serveur web + + L'interface client léger passe par ce flux. L'authentification se fera en HTTPS, le reste de l'application pourra être au choix en HTTP ou en HTTPS. Le contenu sera constitué de pages XHTML compatibles avec les navigateurs récents. + + #. Interface client lourd + + C'est à travers ce canal que l'utilisateur interagit avec l'application. + + #. Serveur d'authentification + + Le framework d'authentification utilise un serveur externe afin d'authentifier les utilisateurs. Ce flux dépend du serveur. + + #. Autorisations + + Toutes les informations relatives à la protection des accÚs aux simulations sont retrouvées via ce lien vers une base de données. + + #. Persistance cÃŽté serveur + + Les objets sont stockés dans une base de donnée à travers ce flux. + + #. Persistance cÃŽté client + + De même, les objets sont stockés dans une base de données. Nous sommes ici en présence d'une base de données embarquée, afin de rendre le client lourd autonome. + + #. SystÚme de fichiers serveur + + Les données volumineuses sont stockées dans le systÚme de fichier plutÃŽt que dans la base. + + #. SystÚme de fichiers client + + De la même façon que sur le serveur, les données sont stockées sous forme de fichiers dans le systÚme de fichier de l'utilisateur. + + #. Services distants + + La communication entre le client lourd et le serveur passe par ce flux. Celui ci est crypté et intégré à haut niveau dans l'application. Les appels de service se font de façon transparente, de façon similaire à un appel local. + + +Initialisation des entrepÃŽts de données +--------------------------------------- + +Pour l'authentification, un groupe d'utilisateur doit être créé afin d'accueillir les personnes accréditées. De plus, un groupe d'administrateur avec un utilisateur doit exister afin de permettre l'administration des utilisateurs. Ces deux groupes seront à spécifier lors de l'installation. + +Si l'application doit utiliser un serveur d'authentification existant, le groupe des administrateurs doit avoir les droits de lister les utilisateurs amenés à être ajouté aux personnes accréditées. + +Les bases de données d'autorisation et de stockage peuvent être initialisés lors du lancement de l'application de façon automatique. Si les droits de création de table et de champs n'est pas autorisé pour l'application, un script doit être exécuté avant le déploiement d'une nouvelle version afin de mettre à jour la base et migrer les données. + +CÃŽté client, le problÚme ne se pose pas, la base de données est embarquée dans l'application. + +Les modules de l'application +---------------------------- + +Le module authentification +__________________________ + +La technologie JAAS (Java Authentication and Authorization Service) a été retenue. La partie autorisation est utilisée uniquement pour valider l'accÚs de l'utilisateur authentifié à l'application. + +Plusieurs méthodes d'authentification sont déjà implantées (login/mot de passe/groupes dans une base de données avec JDBC, LDAP, ...). + +Les modules services +____________________ + +Les services sont contenus dans des EJB (Entreprise Java Bean). Chaque service est un composant disposant d'outils facilitant la mise en oeuvre des transactions et la distribution. + +Ces services sont destinés à contenir toute la logique métier. + +Les services contiennent aussi le contexte d'authentification de l'appelant. + +Le module autorisation +______________________ + +Grâce au contexte d'authentification des EJB, les appels au module d'autorisation vont sécurisés les accÚs aux données. + +Le module stockage +__________________ + +Ce module repose en grande partie sur la technologie JPA (Java Persistence API). Elle permet un mapping entre les objets et la base de données de façon transparente et interropérable. Le choix de la base de données n'est alors plus vérouillé, de nombreux systÚmes étant compatibles. Afin de gérer les volumétries associées aux simulations, certaines propriétés seront stockées sur le disque dur. + +Lors de l'accÚs à une donnée, le module gérant les autorisations est appelé afin de vérifier les droits. De même, lorsque l'utilisateur crée une nouvelle entité, les droits lui sont associés via ce service. + +Le module interface +___________________ + +CÃŽté client léger, le site est réalisé avec Tapestry 5. Ce framework apporte le développement orienté objet au applications web. De nombreuses fonctionnalités sont incluses et facilitent le développement. + +CÃŽté client lourd, le framework JAXX est utilisé. Ce framework transforme des XML décrivant l'interface en classes Java. + +Développement de l'application +------------------------------ + +Lors de la construction de Simexplorer SI, nous utilisons le framework ToPIA ainsi que différents outils développés par Code Lutin. Ceux ci sont tous sous licence LGPL. + +A partir du modÚle conceptuel, le process de développement génÚre une partie de l'application, entre autre sous la forme d'interfaces à implémenter. Nous obtenons alors : + - les entités persistées + - les interfaces des services + - les interfaces des composants des pages web + + +Architecture physique +===================== + +Architecture logicielle +----------------------- + +L'ensemble de l'application est développée avec le langage Java. La version de référence lors du développement de l'application est JRE 6 Update 3. + +Serveur Web +___________ + +Le serveur web est constitué d'un Apache 2.2. Le module mod_proxy_ajp permet de ne pas lancer le serveur d'application en root et d'avoir accÚs au port HTTP et HTTPS. + +Serveur Applicatif +__________________ + ++------------------------+------------------------+------------------------+------------------------+------------------------+ +| |JBoss 4.2.2 GA |Geronimo JEE5 2.0.2 |JOnAS 5.0 M1 |GlassFish V2 | ++========================+========================+========================+========================+========================+ +|EJB3 | |ok| [#jba]_ | |ok| [#grc]_ | |ok| [#joa]_ | |uok| | ++------------------------+------------------------+------------------------+------------------------+------------------------+ +|- RemoteBinding | |ok| [#jbb]_ | |ok| [#grd]_ | |uok| | |uok| | ++------------------------+------------------------+------------------------+------------------------+------------------------+ +|- SSL | |ok| [#jbc]_ | |ok| [#gra]_ | |uok| | |ok| [#gfd]_ | ++------------------------+------------------------+------------------------+------------------------+------------------------+ +|- SecurityDomain | |ok| [#jbd]_ | |uok| | |ok| [#joc]_ | |ok| [#gfe]_ | ++------------------------+------------------------+------------------------+------------------------+------------------------+ +|- WebService | |ok| [#jbe]_ | |ok| [#gre]_ | |ok| [#job]_ | |ok| [#gfa]_ | ++------------------------+------------------------+------------------------+------------------------+------------------------+ +| * Sécurisé | |ok| [#jbe]_ | |uok| [#gre]_ | |uok| | |ok| [#gff]_ | ++------------------------+------------------------+------------------------+------------------------+------------------------+ +| * WebServiceContext | |ok| [#jbe]_ | |ok| [#gre]_ | |ok| [#job]_ | |uok| | ++------------------------+------------------------+------------------------+------------------------+------------------------+ +|- SessionContext | |uok| | |uok| | |uok| | |uok| | ++------------------------+------------------------+------------------------+------------------------+------------------------+ +|JPA | |ok| [#jbf]_ | |ok| [#grf]_ | |ok| [#jof]_ | |ok| [#gfb]_ | ++------------------------+------------------------+------------------------+------------------------+------------------------+ +|- XML datasource | |ok| [#jbg]_ | |ok| [#grj]_ | |ok| [#joe]_ | |uok| | ++------------------------+------------------------+------------------------+------------------------+------------------------+ +|- persistence.xml | |ok| [#jbh]_ | |ok| [#grg]_ | |ok| [#jog]_ | |uok| | ++------------------------+------------------------+------------------------+------------------------+------------------------+ +|- orm.xml | |uok| | |ok| [#grh]_ | |ok| [#joh]_ | |ok| [#gfc]_ | ++------------------------+------------------------+------------------------+------------------------+------------------------+ +|Servlet | |ok| [#jbi]_ | |ok| [#gri]_ | |uok| | |uok| | ++------------------------+------------------------+------------------------+------------------------+------------------------+ +|- JAAS | |ok| [#jbj]_ | |ok| [#grb]_ | |ok| [#jod]_ | |uok| | ++------------------------+------------------------+------------------------+------------------------+------------------------+ +|Corba | |uok| | |uok| | |uok| | |uok| | ++------------------------+------------------------+------------------------+------------------------+------------------------+ + +.. |ok| image:: ok.png +.. |nok| image:: nok.png +.. |uok| image:: uok.png + +.. [#jba] http://docs.jboss.org/ejb3/app-server/reference/build/reference/en/html/inde... +.. [#jbb] http://docs.jboss.org/ejb3/app-server/tutorial/jndibinding/jndi.html +.. [#jbc] http://docs.jboss.org/ejb3/app-server/reference/build/reference/en/html/tran... +.. [#jbd] http://docs.jboss.org/ejb3/app-server/tutorial/security/security.html +.. [#jbe] http://labs.jboss.com/jbossws/docs/jaxws_userguide-2.0/index.html +.. [#jbf] http://labs.jboss.com/file-access/default/members/jbossas/freezone/docs/Serv... +.. [#jbg] http://labs.jboss.com/file-access/default/members/jbossas/freezone/docs/Serv... +.. [#jbh] http://labs.jboss.com/file-access/default/members/jbossas/freezone/docs/Serv... +.. [#jbi] http://labs.jboss.com/file-access/default/members/jbossas/freezone/docs/Gett... +.. [#jbj] http://labs.jboss.com/file-access/default/members/jbossas/freezone/docs/Serv... + +.. [#grc] http://openejb.apache.org/ +.. [#grd] http://openejb.apache.org/jndi-names.html +.. [#gra] http://www.ibm.com/developerworks/opensource/library/os-ag-corba1/ +.. [#gre] http://cwiki.apache.org/GMOxPMGT/geronimo-20-web-services-support.html +.. [#grf] http://openjpa.apache.org/builds/1.0.1/apache-openjpa-1.0.1/docs/manual/jpa_... +.. [#grj] http://cwiki.apache.org/GMOxDOC11/geronimo-connector-11xsd.html#geronimo-con... +.. [#grg] http://openjpa.apache.org/builds/1.0.1/apache-openjpa-1.0.1/docs/manual/jpa_... +.. [#grh] http://openjpa.apache.org/builds/1.0.1/apache-openjpa-1.0.1/docs/manual/jpa_... +.. [#gri] http://cwiki.apache.org/GMOxKB/jetty-or-tomcat.html +.. [#grb] http://www.ibm.com/developerworks/opensource/library/os-ag-security/ + +.. [#joa] http://www.easybeans.org/doc/userguide/en/chunk-integrated/ejb3_introduction... +.. [#joc] http://jonas.objectweb.org/current/doc/doc-en/integrated/configuration_guide... +.. [#job] http://wiki.easybeans.org/xwiki/bin/view/Main/JAXWS + +.. [#jof] http://www.jpox.org/docs/jpa/index.html +.. [#joe] http://jonas.objectweb.org/current/doc/doc-en/integrated/configuration_guide... +.. [#jog] http://www.jpox.org/docs/jpa/persistence_xml.html +.. [#joh] http://www.jpox.org/docs/jpa/orm_xml.html + +.. [#jod] http://jonas.objectweb.org/current/doc/doc-en/integrated/configuration_guide... + +.. [#gfd] http://blogs.sun.com/swchan/entry/enterprise_java_bean_over_ssl +.. [#gfe] http://java.sun.com/developer/technicalArticles/J2EE/security_annotation/ +.. [#gfa] http://wiki.glassfish.java.net/Wiki.jsp?page=WebServicesTechnologies +.. [#gff] https://glassfish.dev.java.net/javaee5/docs/AG/ablrk.html#ablry +.. [#gfb] https://glassfish.dev.java.net/javaee5/persistence/ +.. [#gfc] https://glassfish.dev.java.net/javaee5/persistence/persistence_faq.html#5 + + +SGBD +____ + +Pour la base sur le serveur, les performances et la stabilité de PostgreSQL ont été retenues. CÃŽté client lourd, la base de donnée embarquée H2 est utilisée. Un export XML sera réalisé pour l'interopérabilité. + + +Choix technologiques transverses +________________________________ + +Dans la perspective de réutilisation, les services publiés utiliseront des protocoles standardisés et inter opérables, afin de ne pas limiter le choix du langage. + +La technologie ... a été choisie pour son support de la sécurité et son utilisation courante dans différents langages et sur différents systÚmes d'exploitation. + +Solution aux contraintes d'ergonomie +____________________________________ + +L'application web respectera les standards W3C XHTML. + +L'application client lourd utilise le framework Swing, disponible sur un grand nombre de plateformes. Sur celles où Java Web Start est disponible, l'application pourra être installée par un simple clic sur le site du client léger. + +Dimensionnement +_______________ + +Une attention particuliÚre devra être faite à la taille des partitions lors de l'intégration en fonction de la volumétrie cible. De même, cÃŽté client, l'utilisateur doit être informé de l'espace utilisé par l'application par rapport à son espace disponible. La synchronisation doit vérifier au préalable la suffisance d'espace. + +En supposant que chaque simulation prend environ 100ko de paramÚtres, que 10 utilisateurs utilisent l'application en créant 5 simulations par jour, on obtient environ 10Go de paramÚtres de simulation sur 10 ans. + +Solution pour l'exploitation du systÚme +_______________________________________ + + +Lors de la mise à jour de l'application, plusieurs aspects doivent être gérés. Tout d'abord la base de données doit être synchrone avec l'applicatif. Ceci devra se faire automatiquement avec une migration des données executée lors du déploiement d'une nouvelle version. + +Dans un environnement client/serveur, il est nécessaire de garantir la compatibilité entre les deux applications. Ainsi, le serveur mettra à disposition dans la mesure du possible les services avec une compatibilité ascendante. Si la version du client est obsolÚte, l'utilisateur est notifié et il ne peut plus utiliser l'application en mode connecté. + + +ModÚle conceptuel +----------------- + +Entités des données +___________________ + +.. image:: ../../../../xmi/images/data.png + + +Entités des authorisations +__________________________ + +.. image:: ../../../../xmi/images/entities.png + + +Services de stockage +____________________ + +.. image:: ../../../../xmi/images/storage.png + + +Services d'authorisation +________________________ + +.. image:: ../../../../xmi/images/authorization.png + + +Application web +_______________ + +.. image:: ../../../../xmi/images/applications.png + + +Séquences d'utilisation +----------------------- + +Gestion des authorisations +__________________________ + +.. image:: ./authorization.jpg + +Ãcrans de l'application +----------------------- + +Liste des éléments +__________________ + +.. image:: ./screenshots/Screenshot.png + +Importer un élément +___________________ + +.. image:: ./screenshots/Screenshot-1.png + +Liste des utilisateurs +______________________ + +.. image:: ./screenshots/Screenshot-2.png + +Ajouter/éditer un utilisateur +_____________________________ + +.. image:: ./screenshots/Screenshot-3.png + +Liste des groupes +_________________ + +.. image:: ./screenshots/Screenshot-4.png + +Ajouter/éditer un groupe +________________________ + +.. image:: ./screenshots/Screenshot-5.png Copied: trunk/simexplorer-is/src/site/fr/rst/devel/old/architecture.xhtml (from rev 1257, trunk/simexplorer-is/src/site/fr/rst/devel/architecture.xhtml) =================================================================== --- trunk/simexplorer-is/src/site/fr/rst/devel/old/architecture.xhtml (rev 0) +++ trunk/simexplorer-is/src/site/fr/rst/devel/old/architecture.xhtml 2008-02-29 18:06:48 UTC (rev 1265) @@ -0,0 +1,940 @@ +<?xml version="1.0" encoding="utf-8" ?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name="generator" content="Docutils 0.5: http://docutils.sourceforge.net/" /> +<title>SimExplorer SI - Dossier d'architecture</title> +<style type="text/css"> + +/* +:Author: David Goodger (goodger at python.org) +:Id: $Id: html4css1.css 5196 2007-06-03 20:25:28Z wiemann $ +:Copyright: This stylesheet has been placed in the public domain. + +Default cascading style sheet for the HTML output of Docutils. + +See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to +customize this style sheet. +*/ + +/* used to remove borders from tables and images */ +.borderless, table.borderless td, table.borderless th { + border: 0 } + +table.borderless td, table.borderless th { + /* Override padding for "table.docutils td" with "! important". + The right padding separates the table cells. */ + padding: 0 0.5em 0 0 ! important } + +.first { + /* Override more specific margin styles with "! important". */ + margin-top: 0 ! important } + +.last, .with-subtitle { + margin-bottom: 0 ! important } + +.hidden { + display: none } + +a.toc-backref { + text-decoration: none ; + color: black } + +blockquote.epigraph { + margin: 2em 5em ; } + +dl.docutils dd { + margin-bottom: 0.5em } + +/* Uncomment (and remove this text!) to get bold-faced definition list terms +dl.docutils dt { + font-weight: bold } +*/ + +div.abstract { + margin: 2em 5em } + +div.abstract p.topic-title { + font-weight: bold ; + text-align: center } + +div.admonition, div.attention, div.caution, div.danger, div.error, +div.hint, div.important, div.note, div.tip, div.warning { + margin: 2em ; + border: medium outset ; + padding: 1em } + +div.admonition p.admonition-title, div.hint p.admonition-title, +div.important p.admonition-title, div.note p.admonition-title, +div.tip p.admonition-title { + font-weight: bold ; + font-family: sans-serif } + +div.attention p.admonition-title, div.caution p.admonition-title, +div.danger p.admonition-title, div.error p.admonition-title, +div.warning p.admonition-title { + color: red ; + font-weight: bold ; + font-family: sans-serif } + +/* Uncomment (and remove this text!) to get reduced vertical space in + compound paragraphs. +div.compound .compound-first, div.compound .compound-middle { + margin-bottom: 0.5em } + +div.compound .compound-last, div.compound .compound-middle { + margin-top: 0.5em } +*/ + +div.dedication { + margin: 2em 5em ; + text-align: center ; + font-style: italic } + +div.dedication p.topic-title { + font-weight: bold ; + font-style: normal } + +div.figure { + margin-left: 2em ; + margin-right: 2em } + +div.footer, div.header { + clear: both; + font-size: smaller } + +div.line-block { + display: block ; + margin-top: 1em ; + margin-bottom: 1em } + +div.line-block div.line-block { + margin-top: 0 ; + margin-bottom: 0 ; + margin-left: 1.5em } + +div.sidebar { + margin: 0 0 0.5em 1em ; + border: medium outset ; + padding: 1em ; + background-color: #ffffee ; + width: 40% ; + float: right ; + clear: right } + +div.sidebar p.rubric { + font-family: sans-serif ; + font-size: medium } + +div.system-messages { + margin: 5em } + +div.system-messages h1 { + color: red } + +div.system-message { + border: medium outset ; + padding: 1em } + +div.system-message p.system-message-title { + color: red ; + font-weight: bold } + +div.topic { + margin: 2em } + +h1.section-subtitle, h2.section-subtitle, h3.section-subtitle, +h4.section-subtitle, h5.section-subtitle, h6.section-subtitle { + margin-top: 0.4em } + +h1.title { + text-align: center } + +h2.subtitle { + text-align: center } + +hr.docutils { + width: 75% } + +img.align-left { + clear: left } + +img.align-right { + clear: right } + +ol.simple, ul.simple { + margin-bottom: 1em } + +ol.arabic { + list-style: decimal } + +ol.loweralpha { + list-style: lower-alpha } + +ol.upperalpha { + list-style: upper-alpha } + +ol.lowerroman { + list-style: lower-roman } + +ol.upperroman { + list-style: upper-roman } + +p.attribution { + text-align: right ; + margin-left: 50% } + +p.caption { + font-style: italic } + +p.credits { + font-style: italic ; + font-size: smaller } + +p.label { + white-space: nowrap } + +p.rubric { + font-weight: bold ; + font-size: larger ; + color: maroon ; + text-align: center } + +p.sidebar-title { + font-family: sans-serif ; + font-weight: bold ; + font-size: larger } + +p.sidebar-subtitle { + font-family: sans-serif ; + font-weight: bold } + +p.topic-title { + font-weight: bold } + +pre.address { + margin-bottom: 0 ; + margin-top: 0 ; + font-family: serif ; + font-size: 100% } + +pre.literal-block, pre.doctest-block { + margin-left: 2em ; + margin-right: 2em } + +span.classifier { + font-family: sans-serif ; + font-style: oblique } + +span.classifier-delimiter { + font-family: sans-serif ; + font-weight: bold } + +span.interpreted { + font-family: sans-serif } + +span.option { + white-space: nowrap } + +span.pre { + white-space: pre } + +span.problematic { + color: red } + +span.section-subtitle { + /* font-size relative to parent (h1..h6 element) */ + font-size: 80% } + +table.citation { + border-left: solid 1px gray; + margin-left: 1px } + +table.docinfo { + margin: 2em 4em } + +table.docutils { + margin-top: 0.5em ; + margin-bottom: 0.5em } + +table.footnote { + border-left: solid 1px black; + margin-left: 1px } + +table.docutils td, table.docutils th, +table.docinfo td, table.docinfo th { + padding-left: 0.5em ; + padding-right: 0.5em ; + vertical-align: top } + +table.docutils th.field-name, table.docinfo th.docinfo-name { + font-weight: bold ; + text-align: left ; + white-space: nowrap ; + padding-left: 0 } + +h1 tt.docutils, h2 tt.docutils, h3 tt.docutils, +h4 tt.docutils, h5 tt.docutils, h6 tt.docutils { + font-size: 100% } + +ul.auto-toc { + list-style-type: none } + +</style> +</head> +<body> +<div class="document" id="simexplorer-si-dossier-d-architecture"> +<h1 class="title">SimExplorer SI - Dossier d'architecture</h1> + +<div class="contents topic" id="contents"> +<p class="topic-title first">Contents</p> +<ul class="auto-toc simple"> +<li><a class="reference internal" href="#introduction" id="id40">1 Introduction</a></li> +<li><a class="reference internal" href="#architecture-conceptuelle" id="id41">2 Architecture conceptuelle</a><ul class="auto-toc"> +<li><a class="reference internal" href="#rappel-des-fonctions-de-l-application" id="id42">2.1 Rappel des fonctions de l'application</a></li> +<li><a class="reference internal" href="#d-composition-de-l-application-en-modules" id="id43">2.2 Décomposition de l'application en modules</a></li> +<li><a class="reference internal" href="#exigences-et-contraintes" id="id44">2.3 Exigences et contraintes</a><ul class="auto-toc"> +<li><a class="reference internal" href="#contraintes-d-urbanisme" id="id45">2.3.1 Contraintes d'urbanisme</a></li> +<li><a class="reference internal" href="#exigences-et-contraintes-li-es-des-fonctionnalit-s-particuli-res" id="id46">2.3.2 Exigences et contraintes liées à des fonctionnalités particuliÚres</a></li> +<li><a class="reference internal" href="#contraintes-d-ergonomie" id="id47">2.3.3 Contraintes d'ergonomie</a></li> +<li><a class="reference internal" href="#volum-trie" id="id48">2.3.4 Volumétrie</a></li> +<li><a class="reference internal" href="#contraintes-et-exigences-li-es-l-exploitation" id="id49">2.3.5 Contraintes et exigences liées à l'exploitation</a></li> +</ul> +</li> +</ul> +</li> +<li><a class="reference internal" href="#architecture-logique" id="id50">3 Architecture logique</a><ul class="auto-toc"> +<li><a class="reference internal" href="#sch-ma-d-architecture-logique" id="id51">3.1 Schéma d'architecture logique</a></li> +<li><a class="reference internal" href="#description-des-flux" id="id52">3.2 Description des flux</a></li> +<li><a class="reference internal" href="#initialisation-des-entrep-ts-de-donn-es" id="id53">3.3 Initialisation des entrepÃŽts de données</a></li> +<li><a class="reference internal" href="#les-modules-de-l-application" id="id54">3.4 Les modules de l'application</a><ul class="auto-toc"> +<li><a class="reference internal" href="#le-module-authentification" id="id55">3.4.1 Le module authentification</a></li> +<li><a class="reference internal" href="#les-modules-services" id="id56">3.4.2 Les modules services</a></li> +<li><a class="reference internal" href="#le-module-autorisation" id="id57">3.4.3 Le module autorisation</a></li> +<li><a class="reference internal" href="#le-module-stockage" id="id58">3.4.4 Le module stockage</a></li> +<li><a class="reference internal" href="#le-module-interface" id="id59">3.4.5 Le module interface</a></li> +</ul> +</li> +<li><a class="reference internal" href="#d-veloppement-de-l-application" id="id60">3.5 Développement de l'application</a></li> +</ul> +</li> +<li><a class="reference internal" href="#architecture-physique" id="id61">4 Architecture physique</a><ul class="auto-toc"> +<li><a class="reference internal" href="#architecture-logicielle" id="id62">4.1 Architecture logicielle</a><ul class="auto-toc"> +<li><a class="reference internal" href="#serveur-web" id="id63">4.1.1 Serveur Web</a></li> +<li><a class="reference internal" href="#serveur-applicatif" id="id64">4.1.2 Serveur Applicatif</a></li> +<li><a class="reference internal" href="#sgbd" id="id65">4.1.3 SGBD</a></li> +<li><a class="reference internal" href="#choix-technologiques-transverses" id="id66">4.1.4 Choix technologiques transverses</a></li> +<li><a class="reference internal" href="#solution-aux-contraintes-d-ergonomie" id="id67">4.1.5 Solution aux contraintes d'ergonomie</a></li> +<li><a class="reference internal" href="#dimensionnement" id="id68">4.1.6 Dimensionnement</a></li> +<li><a class="reference internal" href="#solution-pour-l-exploitation-du-syst-me" id="id69">4.1.7 Solution pour l'exploitation du systÚme</a></li> +</ul> +</li> +<li><a class="reference internal" href="#mod-le-conceptuel" id="id70">4.2 ModÚle conceptuel</a><ul class="auto-toc"> +<li><a class="reference internal" href="#entit-s-des-donn-es" id="id71">4.2.1 Entités des données</a></li> +<li><a class="reference internal" href="#entit-s-des-authorisations" id="id72">4.2.2 Entités des authorisations</a></li> +<li><a class="reference internal" href="#services-de-stockage" id="id73">4.2.3 Services de stockage</a></li> +<li><a class="reference internal" href="#services-d-authorisation" id="id74">4.2.4 Services d'authorisation</a></li> +<li><a class="reference internal" href="#application-web" id="id75">4.2.5 Application web</a></li> +</ul> +</li> +<li><a class="reference internal" href="#s-quences-d-utilisation" id="id76">4.3 Séquences d'utilisation</a><ul class="auto-toc"> +<li><a class="reference internal" href="#gestion-des-authorisations" id="id77">4.3.1 Gestion des authorisations</a></li> +</ul> +</li> +<li><a class="reference internal" href="#crans-de-l-application" id="id78">4.4 Ãcrans de l'application</a><ul class="auto-toc"> +<li><a class="reference internal" href="#liste-des-l-ments" id="id79">4.4.1 Liste des éléments</a></li> +<li><a class="reference internal" href="#importer-un-l-ment" id="id80">4.4.2 Importer un élément</a></li> +<li><a class="reference internal" href="#liste-des-utilisateurs" id="id81">4.4.3 Liste des utilisateurs</a></li> +<li><a class="reference internal" href="#ajouter-diter-un-utilisateur" id="id82">4.4.4 Ajouter/éditer un utilisateur</a></li> +<li><a class="reference internal" href="#liste-des-groupes" id="id83">4.4.5 Liste des groupes</a></li> +<li><a class="reference internal" href="#ajouter-diter-un-groupe" id="id84">4.4.6 Ajouter/éditer un groupe</a></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="section" id="introduction"> +<h1><a class="toc-backref" href="#id40">1 Introduction</a></h1> +<p>Ce document détaille la solution proposée en réponse à la demande d'un outil d'exploration de simulation.</p> +</div> +<div class="section" id="architecture-conceptuelle"> +<h1><a class="toc-backref" href="#id41">2 Architecture conceptuelle</a></h1> +<div class="section" id="rappel-des-fonctions-de-l-application"> +<h2><a class="toc-backref" href="#id42">2.1 Rappel des fonctions de l'application</a></h2> +<p>L'application permet l'utilisation d'outils de simulation dans un environnement multi-utilisateurs. Un mode client léger met à disposition la gestion des utilisateurs et la consultation des paramÚtres des simulations. Ce mode est accessible avec un simple navigateur. Avec un logiciel fourni (nommé aussi client lourd), l'utilisateur peut de même gérer les utilisateurs, mais aussi les simulations afin de les lancer. Une fonction de synchronisation met à jour les données locales par rapport aux données centralisées.</p> +<p>Chaque fonction est limitée en fonction des droits de l'utilisateur connecté. Cet utilisateur, en fonction des groupes auxquels il appartient, obtient des droits sur les simulations et les utilisateurs (création, modification, suppression).</p> +<p>Les modifications des paramÚtres des simulations sont sauvegardé afin de conserver un historique. Cet historique se synchronise avec les données centralisées et les données de l'utilisateur.</p> +</div> +<div class="section" id="d-composition-de-l-application-en-modules"> +<h2><a class="toc-backref" href="#id43">2.2 Décomposition de l'application en modules</a></h2> +<p>L'authentification s'appuie sur un module unique. Celui ci permet d'authentifier les utilisateurs se connectant via le client léger ou le client lourd. Un premier niveau impératif nécessite l'appartenance de l'utilisateur à un groupe destiné à contenir les accrédités à utiliser l'application. Ce module fourni aussi les groupes d'appartenance d'un utilisateur, afin de déterminer ses droits. Enfin, ce module permet l'édition des utilisateurs et des groupes par les utilisateurs avec pouvoir.</p> +<p>Les autorisations sont gérées conjointement avec l'authentification. Une simulation a des droits associés en fonction de son propriétaire et son groupe d'appartenance. Ses droits sont décorélés des données métier, seul un identifiant technique permet aux services d'interroger le module d'autorisation afin de valider l'accÚs à une simulation. Le niveau de granularité des droits est similaire à la gestion des modes sur les fichiers. Les droits sur les actions création/modification/exécution sont alloués en fonction de l'utilisateur/groupe/autre.</p> +<p>Le stockage est un module dupliqué à la fois sur le serveur gérant les données centralisées et sur chaque client lourd. Celui-ci a la charge de conserver les données dans une base, et de stocker les données volumineuses dans le systÚme de fichier. Il est capable de persister les objets utilisés par l'application. Un mécanisme de synchronisation permet de mettre à jour les données locales et les données centralisées en fonction de rÚgles de gestion de versionnement.</p> +<p>La logique métier de l'application est contenue dans des services. Ceux ci peuvent être exécutés localement, lors de l'exécution d'une simulation sur le client lourd par exemple. Certains services sont présents uniquement sur le serveur, parce qu'ils nécessitent les modules d'autorisation et les données centralisées. Le client lourd fait alors appel à ces services dans un mode appel distant.</p> +<p>Le module d'interface est composé de deux parties. CÃŽté serveur, l'utilisateur accÚde avec un navigateur Internet standard à l'application. Les pages sont servies par un serveur web utilisant un contrÃŽleur. Celui ci interagit avec les services afin de présenter les données à l'utilisateur. CÃŽté client, l'interface graphique s'appuie aussi sur un contrÃŽleur utilisant les services.</p> +</div> +<div class="section" id="exigences-et-contraintes"> +<h2><a class="toc-backref" href="#id44">2.3 Exigences et contraintes</a></h2> +<div class="section" id="contraintes-d-urbanisme"> +<h3><a class="toc-backref" href="#id45">2.3.1 Contraintes d'urbanisme</a></h3> +<p>Le client lourd doit s'intégrer dans SimExplorer RCP.</p> +<p>Les services déployés sur le serveur et mis à disposition du client lourd doivent pouvoir être réutilisés par des applications tierces.</p> +<p>Le serveur doit être en mesure de lancer des simulations et de récupérer les résultats.</p> +</div> +<div class="section" id="exigences-et-contraintes-li-es-des-fonctionnalit-s-particuli-res"> +<h3><a class="toc-backref" href="#id46">2.3.2 Exigences et contraintes liées à des fonctionnalités particuliÚres</a></h3> +<p>Un serveur d'authentification.existant pourra être réutilisé dans la mesure où il est accessible via des protocoles standards. Une note précisant le fonctionnement de ce serveur devra être fourni afin de rendre possible son utilisation. ex : LDAP</p> +<p>Les appels de lancement des simulations devra être formalisés dans une note. Ceux ci pourront alors être intégrés dans les services.</p> +<p>L'authentification implique l'établissement d'une connexion sécurisée entre le client et le serveur, afin de ne pas faire passer en clair les mots de passe sur le réseau. Le serveur disposera d'un certificat afin de crypter les flux.</p> +</div> +<div class="section" id="contraintes-d-ergonomie"> +<h3><a class="toc-backref" href="#id47">2.3.3 Contraintes d'ergonomie</a></h3> +<p>L'application web se doit d'être compatible avec les navigateurs récents : Firefox2+ et IE6+.</p> +<p>L'application client lourd est un application standard type bureautique, et doit être compatible avec le maximum de plateformes. Le lancement de l'application doit se faire simplement par un raccourci.</p> +</div> +<div class="section" id="volum-trie"> +<h3><a class="toc-backref" href="#id48">2.3.4 Volumétrie</a></h3> +<p>Les données associées aux simulations sont parfois trÚs volumineuses (>100Mo). Ces données doivent être stockées en local mais aussi sur le serveur, avec des transferts entre le client et le serveur.</p> +</div> +<div class="section" id="contraintes-et-exigences-li-es-l-exploitation"> +<h3><a class="toc-backref" href="#id49">2.3.5 Contraintes et exigences liées à l'exploitation</a></h3> +<p>Lors de la mise à jour de l'application, la base de données doit être synchrone avec l'applicatif. De même, le client lourd doit être à jour par rapport à la version déployée sur le serveur.</p> +<p>Les données doivent pouvoir être simplement sauvegardées et restaurées.</p> +</div> +</div> +</div> +<div class="section" id="architecture-logique"> +<h1><a class="toc-backref" href="#id50">3 Architecture logique</a></h1> +<div class="section" id="sch-ma-d-architecture-logique"> +<h2><a class="toc-backref" href="#id51">3.1 Schéma d'architecture logique</a></h2> +<img alt="diagramme1.png" src="diagramme1.png" /> +</div> +<div class="section" id="description-des-flux"> +<h2><a class="toc-backref" href="#id52">3.2 Description des flux</a></h2> +<blockquote> +<ol class="arabic"> +<li><p class="first">Serveur web</p> +<p>L'interface client léger passe par ce flux. L'authentification se fera en HTTPS, le reste de l'application pourra être au choix en HTTP ou en HTTPS. Le contenu sera constitué de pages XHTML compatibles avec les navigateurs récents.</p> +</li> +<li><p class="first">Interface client lourd</p> +<p>C'est à travers ce canal que l'utilisateur interagit avec l'application.</p> +</li> +<li><p class="first">Serveur d'authentification</p> +<p>Le framework d'authentification utilise un serveur externe afin d'authentifier les utilisateurs. Ce flux dépend du serveur.</p> +</li> +<li><p class="first">Autorisations</p> +<p>Toutes les informations relatives à la protection des accÚs aux simulations sont retrouvées via ce lien vers une base de données.</p> +</li> +<li><p class="first">Persistance cÃŽté serveur</p> +<p>Les objets sont stockés dans une base de donnée à travers ce flux.</p> +</li> +<li><p class="first">Persistance cÃŽté client</p> +<p>De même, les objets sont stockés dans une base de données. Nous sommes ici en présence d'une base de données embarquée, afin de rendre le client lourd autonome.</p> +</li> +<li><p class="first">SystÚme de fichiers serveur</p> +<p>Les données volumineuses sont stockées dans le systÚme de fichier plutÃŽt que dans la base.</p> +</li> +<li><p class="first">SystÚme de fichiers client</p> +<p>De la même façon que sur le serveur, les données sont stockées sous forme de fichiers dans le systÚme de fichier de l'utilisateur.</p> +</li> +<li><p class="first">Services distants</p> +<p>La communication entre le client lourd et le serveur passe par ce flux. Celui ci est crypté et intégré à haut niveau dans l'application. Les appels de service se font de façon transparente, de façon similaire à un appel local.</p> +</li> +</ol> +</blockquote> +</div> +<div class="section" id="initialisation-des-entrep-ts-de-donn-es"> +<h2><a class="toc-backref" href="#id53">3.3 Initialisation des entrepÃŽts de données</a></h2> +<p>Pour l'authentification, un groupe d'utilisateur doit être créé afin d'accueillir les personnes accréditées. De plus, un groupe d'administrateur avec un utilisateur doit exister afin de permettre l'administration des utilisateurs. Ces deux groupes seront à spécifier lors de l'installation.</p> +<p>Si l'application doit utiliser un serveur d'authentification existant, le groupe des administrateurs doit avoir les droits de lister les utilisateurs amenés à être ajouté aux personnes accréditées.</p> +<p>Les bases de données d'autorisation et de stockage peuvent être initialisés lors du lancement de l'application de façon automatique. Si les droits de création de table et de champs n'est pas autorisé pour l'application, un script doit être exécuté avant le déploiement d'une nouvelle version afin de mettre à jour la base et migrer les données.</p> +<p>CÃŽté client, le problÚme ne se pose pas, la base de données est embarquée dans l'application.</p> +</div> +<div class="section" id="les-modules-de-l-application"> +<h2><a class="toc-backref" href="#id54">3.4 Les modules de l'application</a></h2> +<div class="section" id="le-module-authentification"> +<h3><a class="toc-backref" href="#id55">3.4.1 Le module authentification</a></h3> +<p>La technologie JAAS (Java Authentication and Authorization Service) a été retenue. La partie autorisation est utilisée uniquement pour valider l'accÚs de l'utilisateur authentifié à l'application.</p> +<p>Plusieurs méthodes d'authentification sont déjà implantées (login/mot de passe/groupes dans une base de données avec JDBC, LDAP, ...).</p> +</div> +<div class="section" id="les-modules-services"> +<h3><a class="toc-backref" href="#id56">3.4.2 Les modules services</a></h3> +<p>Les services sont contenus dans des EJB (Entreprise Java Bean). Chaque service est un composant disposant d'outils facilitant la mise en oeuvre des transactions et la distribution.</p> +<p>Ces services sont destinés à contenir toute la logique métier.</p> +<p>Les services contiennent aussi le contexte d'authentification de l'appelant.</p> +</div> +<div class="section" id="le-module-autorisation"> +<h3><a class="toc-backref" href="#id57">3.4.3 Le module autorisation</a></h3> +<p>Grâce au contexte d'authentification des EJB, les appels au module d'autorisation vont sécurisés les accÚs aux données.</p> +</div> +<div class="section" id="le-module-stockage"> +<h3><a class="toc-backref" href="#id58">3.4.4 Le module stockage</a></h3> +<p>Ce module repose en grande partie sur la technologie JPA (Java Persistence API). Elle permet un mapping entre les objets et la base de données de façon transparente et interropérable. Le choix de la base de données n'est alors plus vérouillé, de nombreux systÚmes étant compatibles. Afin de gérer les volumétries associées aux simulations, certaines propriétés seront stockées sur le disque dur.</p> +<p>Lors de l'accÚs à une donnée, le module gérant les autorisations est appelé afin de vérifier les droits. De même, lorsque l'utilisateur crée une nouvelle entité, les droits lui sont associés via ce service.</p> +</div> +<div class="section" id="le-module-interface"> +<h3><a class="toc-backref" href="#id59">3.4.5 Le module interface</a></h3> +<p>CÃŽté client léger, le site est réalisé avec Tapestry 5. Ce framework apporte le développement orienté objet au applications web. De nombreuses fonctionnalités sont incluses et facilitent le développement.</p> +<p>CÃŽté client lourd, le framework JAXX est utilisé. Ce framework transforme des XML décrivant l'interface en classes Java.</p> +</div> +</div> +<div class="section" id="d-veloppement-de-l-application"> +<h2><a class="toc-backref" href="#id60">3.5 Développement de l'application</a></h2> +<p>Lors de la construction de Simexplorer SI, nous utilisons le framework ToPIA ainsi que différents outils développés par Code Lutin. Ceux ci sont tous sous licence LGPL.</p> +<dl class="docutils"> +<dt>A partir du modÚle conceptuel, le process de développement génÚre une partie de l'application, entre autre sous la forme d'interfaces à implémenter. Nous obtenons alors :</dt> +<dd><ul class="first last simple"> +<li>les entités persistées</li> +<li>les interfaces des services</li> +<li>les interfaces des composants des pages web</li> +</ul> +</dd> +</dl> +</div> +</div> +<div class="section" id="architecture-physique"> +<h1><a class="toc-backref" href="#id61">4 Architecture physique</a></h1> +<div class="section" id="architecture-logicielle"> +<h2><a class="toc-backref" href="#id62">4.1 Architecture logicielle</a></h2> +<p>L'ensemble de l'application est développée avec le langage Java. La version de référence lors du développement de l'application est JRE 6 Update 3.</p> +<div class="section" id="serveur-web"> +<h3><a class="toc-backref" href="#id63">4.1.1 Serveur Web</a></h3> +<p>Le serveur web est constitué d'un Apache 2.2. Le module mod_proxy_ajp permet de ne pas lancer le serveur d'application en root et d'avoir accÚs au port HTTP et HTTPS.</p> +</div> +<div class="section" id="serveur-applicatif"> +<h3><a class="toc-backref" href="#id64">4.1.2 Serveur Applicatif</a></h3> +<table border="1" class="docutils"> +<colgroup> +<col width="20%" /> +<col width="20%" /> +<col width="20%" /> +<col width="20%" /> +<col width="20%" /> +</colgroup> +<thead valign="bottom"> +<tr><th class="head"> </th> +<th class="head">JBoss 4.2.2 GA</th> +<th class="head">Geronimo JEE5 2.0.2</th> +<th class="head">JOnAS 5.0 M1</th> +<th class="head">GlassFish V2</th> +</tr> +</thead> +<tbody valign="top"> +<tr><td>EJB3</td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#jba" id="id1">[1]</a></td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#grc" id="id2">[11]</a></td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#joa" id="id3">[21]</a></td> +<td><img alt="uok" src="uok.png" /></td> +</tr> +<tr><td><ul class="first last simple"> +<li>RemoteBinding</li> +</ul> +</td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#jbb" id="id4">[2]</a></td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#grd" id="id5">[12]</a></td> +<td><img alt="uok" src="uok.png" /></td> +<td><img alt="uok" src="uok.png" /></td> +</tr> +<tr><td><ul class="first last simple"> +<li>SSL</li> +</ul> +</td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#jbc" id="id6">[3]</a></td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#gra" id="id7">[13]</a></td> +<td><img alt="uok" src="uok.png" /></td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#gfd" id="id8">[29]</a></td> +</tr> +<tr><td><ul class="first last simple"> +<li>SecurityDomain</li> +</ul> +</td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#jbd" id="id9">[4]</a></td> +<td><img alt="uok" src="uok.png" /></td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#joc" id="id10">[22]</a></td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#gfe" id="id11">[30]</a></td> +</tr> +<tr><td><ul class="first last simple"> +<li>WebService</li> +</ul> +</td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#jbe" id="id12">[5]</a></td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#gre" id="id13">[14]</a></td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#job" id="id14">[23]</a></td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#gfa" id="id15">[31]</a></td> +</tr> +<tr><td><ul class="first last simple"> +<li>Sécurisé</li> +</ul> +</td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#jbe" id="id16">[5]</a></td> +<td><img alt="uok" src="uok.png" /> <a class="footnote-reference" href="#gre" id="id17">[14]</a></td> +<td><img alt="uok" src="uok.png" /></td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#gff" id="id18">[32]</a></td> +</tr> +<tr><td><ul class="first last simple"> +<li>WebServiceContext</li> +</ul> +</td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#jbe" id="id19">[5]</a></td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#gre" id="id20">[14]</a></td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#job" id="id21">[23]</a></td> +<td><img alt="uok" src="uok.png" /></td> +</tr> +<tr><td><ul class="first last simple"> +<li>SessionContext</li> +</ul> +</td> +<td><img alt="uok" src="uok.png" /></td> +<td><img alt="uok" src="uok.png" /></td> +<td><img alt="uok" src="uok.png" /></td> +<td><img alt="uok" src="uok.png" /></td> +</tr> +<tr><td>JPA</td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#jbf" id="id22">[6]</a></td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#grf" id="id23">[15]</a></td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#jof" id="id24">[24]</a></td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#gfb" id="id25">[33]</a></td> +</tr> +<tr><td><ul class="first last simple"> +<li>XML datasource</li> +</ul> +</td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#jbg" id="id26">[7]</a></td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#grj" id="id27">[16]</a></td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#joe" id="id28">[25]</a></td> +<td><img alt="uok" src="uok.png" /></td> +</tr> +<tr><td><ul class="first last simple"> +<li>persistence.xml</li> +</ul> +</td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#jbh" id="id29">[8]</a></td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#grg" id="id30">[17]</a></td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#jog" id="id31">[26]</a></td> +<td><img alt="uok" src="uok.png" /></td> +</tr> +<tr><td><ul class="first last simple"> +<li>orm.xml</li> +</ul> +</td> +<td><img alt="uok" src="uok.png" /></td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#grh" id="id32">[18]</a></td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#joh" id="id33">[27]</a></td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#gfc" id="id34">[34]</a></td> +</tr> +<tr><td>Servlet</td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#jbi" id="id35">[9]</a></td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#gri" id="id36">[19]</a></td> +<td><img alt="uok" src="uok.png" /></td> +<td><img alt="uok" src="uok.png" /></td> +</tr> +<tr><td><ul class="first last simple"> +<li>JAAS</li> +</ul> +</td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#jbj" id="id37">[10]</a></td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#grb" id="id38">[20]</a></td> +<td><img alt="ok" src="ok.png" /> <a class="footnote-reference" href="#jod" id="id39">[28]</a></td> +<td><img alt="uok" src="uok.png" /></td> +</tr> +<tr><td>Corba</td> +<td><img alt="uok" src="uok.png" /></td> +<td><img alt="uok" src="uok.png" /></td> +<td><img alt="uok" src="uok.png" /></td> +<td><img alt="uok" src="uok.png" /></td> +</tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="jba" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id1">[1]</a></td><td><a class="reference external" href="http://docs.jboss.org/ejb3/app-server/reference/build/reference/en/html/index.html">http://docs.jboss.org/ejb3/app-server/reference/build/reference/en/html/index.html</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="jbb" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id4">[2]</a></td><td><a class="reference external" href="http://docs.jboss.org/ejb3/app-server/tutorial/jndibinding/jndi.html">http://docs.jboss.org/ejb3/app-server/tutorial/jndibinding/jndi.html</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="jbc" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id6">[3]</a></td><td><a class="reference external" href="http://docs.jboss.org/ejb3/app-server/reference/build/reference/en/html/transport.html">http://docs.jboss.org/ejb3/app-server/reference/build/reference/en/html/transport.html</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="jbd" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id9">[4]</a></td><td><a class="reference external" href="http://docs.jboss.org/ejb3/app-server/tutorial/security/security.html">http://docs.jboss.org/ejb3/app-server/tutorial/security/security.html</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="jbe" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label">[5]</td><td><em>(<a class="fn-backref" href="#id12">1</a>, <a class="fn-backref" href="#id16">2</a>, <a class="fn-backref" href="#id19">3</a>)</em> <a class="reference external" href="http://labs.jboss.com/jbossws/docs/jaxws_userguide-2.0/index.html">http://labs.jboss.com/jbossws/docs/jaxws_userguide-2.0/index.html</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="jbf" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id22">[6]</a></td><td><a class="reference external" href="http://labs.jboss.com/file-access/default/members/jbossas/freezone/docs/Server_Configuration_Guide/beta422/html/EJB3_Services-Entity_Beans.html">http://labs.jboss.com/file-access/default/members/jbossas/freezone/docs/Server_Configuration_Guide/beta422/html/EJB3_Services-Entity_Beans.html</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="jbg" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id26">[7]</a></td><td><a class="reference external" href="http://labs.jboss.com/file-access/default/members/jbossas/freezone/docs/Server_Configuration_Guide/beta422/html/Connectors_on_JBoss-Configuring_JDBC_DataSources.html">http://labs.jboss.com/file-access/default/members/jbossas/freezone/docs/Server_Configuration_Guide/beta422/html/Connectors_on_JBoss-Configuring_JDBC_DataSources.html</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="jbh" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id29">[8]</a></td><td><a class="reference external" href="http://labs.jboss.com/file-access/default/members/jbossas/freezone/docs/Server_Configuration_Guide/beta422/html/ch01s02s01.html">http://labs.jboss.com/file-access/default/members/jbossas/freezone/docs/Server_Configuration_Guide/beta422/html/ch01s02s01.html</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="jbi" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id35">[9]</a></td><td><a class="reference external" href="http://labs.jboss.com/file-access/default/members/jbossas/freezone/docs/Getting_Started_Guide/beta422/html/ch01s07.html">http://labs.jboss.com/file-access/default/members/jbossas/freezone/docs/Getting_Started_Guide/beta422/html/ch01s07.html</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="jbj" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id37">[10]</a></td><td><a class="reference external" href="http://labs.jboss.com/file-access/default/members/jbossas/freezone/docs/Server_Configuration_Guide/beta422/html/Security_on_JBoss-J2EE_Declarative_Security_Overview.html">http://labs.jboss.com/file-access/default/members/jbossas/freezone/docs/Server_Configuration_Guide/beta422/html/Security_on_JBoss-J2EE_Declarative_Security_Overview.html</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="grc" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id2">[11]</a></td><td><a class="reference external" href="http://openejb.apache.org/">http://openejb.apache.org/</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="grd" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id5">[12]</a></td><td><a class="reference external" href="http://openejb.apache.org/jndi-names.html">http://openejb.apache.org/jndi-names.html</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="gra" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id7">[13]</a></td><td><a class="reference external" href="http://www.ibm.com/developerworks/opensource/library/os-ag-corba1/">http://www.ibm.com/developerworks/opensource/library/os-ag-corba1/</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="gre" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label">[14]</td><td><em>(<a class="fn-backref" href="#id13">1</a>, <a class="fn-backref" href="#id17">2</a>, <a class="fn-backref" href="#id20">3</a>)</em> <a class="reference external" href="http://cwiki.apache.org/GMOxPMGT/geronimo-20-web-services-support.html">http://cwiki.apache.org/GMOxPMGT/geronimo-20-web-services-support.html</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="grf" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id23">[15]</a></td><td><a class="reference external" href="http://openjpa.apache.org/builds/1.0.1/apache-openjpa-1.0.1/docs/manual/jpa_overview_intro.html">http://openjpa.apache.org/builds/1.0.1/apache-openjpa-1.0.1/docs/manual/jpa_overview_intro.html</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="grj" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id27">[16]</a></td><td><a class="reference external" href="http://cwiki.apache.org/GMOxDOC11/geronimo-connector-11xsd.html#geronimo-connector-1.1.xsd-definitioninstanceType">http://cwiki.apache.org/GMOxDOC11/geronimo-connector-11xsd.html#geronimo-connector-1.1.xsd-definitioninstanceType</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="grg" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id30">[17]</a></td><td><a class="reference external" href="http://openjpa.apache.org/builds/1.0.1/apache-openjpa-1.0.1/docs/manual/jpa_overview_persistence.html">http://openjpa.apache.org/builds/1.0.1/apache-openjpa-1.0.1/docs/manual/jpa_overview_persistence.html</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="grh" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id32">[18]</a></td><td><a class="reference external" href="http://openjpa.apache.org/builds/1.0.1/apache-openjpa-1.0.1/docs/manual/jpa_overview_meta.html">http://openjpa.apache.org/builds/1.0.1/apache-openjpa-1.0.1/docs/manual/jpa_overview_meta.html</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="gri" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id36">[19]</a></td><td><a class="reference external" href="http://cwiki.apache.org/GMOxKB/jetty-or-tomcat.html">http://cwiki.apache.org/GMOxKB/jetty-or-tomcat.html</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="grb" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id38">[20]</a></td><td><a class="reference external" href="http://www.ibm.com/developerworks/opensource/library/os-ag-security/">http://www.ibm.com/developerworks/opensource/library/os-ag-security/</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="joa" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id3">[21]</a></td><td><a class="reference external" href="http://www.easybeans.org/doc/userguide/en/chunk-integrated/ejb3_introduction.html">http://www.easybeans.org/doc/userguide/en/chunk-integrated/ejb3_introduction.html</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="joc" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id10">[22]</a></td><td><a class="reference external" href="http://jonas.objectweb.org/current/doc/doc-en/integrated/configuration_guide.html#config.security">http://jonas.objectweb.org/current/doc/doc-en/integrated/configuration_guide.html#config.security</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="job" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label">[23]</td><td><em>(<a class="fn-backref" href="#id14">1</a>, <a class="fn-backref" href="#id21">2</a>)</em> <a class="reference external" href="http://wiki.easybeans.org/xwiki/bin/view/Main/JAXWS">http://wiki.easybeans.org/xwiki/bin/view/Main/JAXWS</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="jof" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id24">[24]</a></td><td><a class="reference external" href="http://www.jpox.org/docs/jpa/index.html">http://www.jpox.org/docs/jpa/index.html</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="joe" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id28">[25]</a></td><td><a class="reference external" href="http://jonas.objectweb.org/current/doc/doc-en/integrated/configuration_guide.html#N11268">http://jonas.objectweb.org/current/doc/doc-en/integrated/configuration_guide.html#N11268</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="jog" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id31">[26]</a></td><td><a class="reference external" href="http://www.jpox.org/docs/jpa/persistence_xml.html">http://www.jpox.org/docs/jpa/persistence_xml.html</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="joh" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id33">[27]</a></td><td><a class="reference external" href="http://www.jpox.org/docs/jpa/orm_xml.html">http://www.jpox.org/docs/jpa/orm_xml.html</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="jod" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id39">[28]</a></td><td><a class="reference external" href="http://jonas.objectweb.org/current/doc/doc-en/integrated/configuration_guide.html#N10F4F">http://jonas.objectweb.org/current/doc/doc-en/integrated/configuration_guide.html#N10F4F</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="gfd" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id8">[29]</a></td><td><a class="reference external" href="http://blogs.sun.com/swchan/entry/enterprise_java_bean_over_ssl">http://blogs.sun.com/swchan/entry/enterprise_java_bean_over_ssl</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="gfe" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id11">[30]</a></td><td><a class="reference external" href="http://java.sun.com/developer/technicalArticles/J2EE/security_annotation/">http://java.sun.com/developer/technicalArticles/J2EE/security_annotation/</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="gfa" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id15">[31]</a></td><td><a class="reference external" href="http://wiki.glassfish.java.net/Wiki.jsp?page=WebServicesTechnologies">http://wiki.glassfish.java.net/Wiki.jsp?page=WebServicesTechnologies</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="gff" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id18">[32]</a></td><td><a class="reference external" href="https://glassfish.dev.java.net/javaee5/docs/AG/ablrk.html#ablry">https://glassfish.dev.java.net/javaee5/docs/AG/ablrk.html#ablry</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="gfb" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id25">[33]</a></td><td><a class="reference external" href="https://glassfish.dev.java.net/javaee5/persistence/">https://glassfish.dev.java.net/javaee5/persistence/</a></td></tr> +</tbody> +</table> +<table class="docutils footnote" frame="void" id="gfc" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id34">[34]</a></td><td><a class="reference external" href="https://glassfish.dev.java.net/javaee5/persistence/persistence_faq.html#5">https://glassfish.dev.java.net/javaee5/persistence/persistence_faq.html#5</a></td></tr> +</tbody> +</table> +</div> +<div class="section" id="sgbd"> +<h3><a class="toc-backref" href="#id65">4.1.3 SGBD</a></h3> +<p>Pour la base sur le serveur, les performances et la stabilité de PostgreSQL ont été retenues. CÃŽté client lourd, la base de donnée embarquée H2 est utilisée. Un export XML sera réalisé pour l'interopérabilité.</p> +</div> +<div class="section" id="choix-technologiques-transverses"> +<h3><a class="toc-backref" href="#id66">4.1.4 Choix technologiques transverses</a></h3> +<p>Dans la perspective de réutilisation, les services publiés utiliseront des protocoles standardisés et inter opérables, afin de ne pas limiter le choix du langage.</p> +<p>La technologie ... a été choisie pour son support de la sécurité et son utilisation courante dans différents langages et sur différents systÚmes d'exploitation.</p> +</div> +<div class="section" id="solution-aux-contraintes-d-ergonomie"> +<h3><a class="toc-backref" href="#id67">4.1.5 Solution aux contraintes d'ergonomie</a></h3> +<p>L'application web respectera les standards W3C XHTML.</p> +<p>L'application client lourd utilise le framework Swing, disponible sur un grand nombre de plateformes. Sur celles où Java Web Start est disponible, l'application pourra être installée par un simple clic sur le site du client léger.</p> +</div> +<div class="section" id="dimensionnement"> +<h3><a class="toc-backref" href="#id68">4.1.6 Dimensionnement</a></h3> +<p>Une attention particuliÚre devra être faite à la taille des partitions lors de l'intégration en fonction de la volumétrie cible. De même, cÃŽté client, l'utilisateur doit être informé de l'espace utilisé par l'application par rapport à son espace disponible. La synchronisation doit vérifier au préalable la suffisance d'espace.</p> +<p>En supposant que chaque simulation prend environ 100ko de paramÚtres, que 10 utilisateurs utilisent l'application en créant 5 simulations par jour, on obtient environ 10Go de paramÚtres de simulation sur 10 ans.</p> +</div> +<div class="section" id="solution-pour-l-exploitation-du-syst-me"> +<h3><a class="toc-backref" href="#id69">4.1.7 Solution pour l'exploitation du systÚme</a></h3> +<p>Lors de la mise à jour de l'application, plusieurs aspects doivent être gérés. Tout d'abord la base de données doit être synchrone avec l'applicatif. Ceci devra se faire automatiquement avec une migration des données executée lors du déploiement d'une nouvelle version.</p> +<p>Dans un environnement client/serveur, il est nécessaire de garantir la compatibilité entre les deux applications. Ainsi, le serveur mettra à disposition dans la mesure du possible les services avec une compatibilité ascendante. Si la version du client est obsolÚte, l'utilisateur est notifié et il ne peut plus utiliser l'application en mode connecté.</p> +</div> +</div> +<div class="section" id="mod-le-conceptuel"> +<h2><a class="toc-backref" href="#id70">4.2 ModÚle conceptuel</a></h2> +<div class="section" id="entit-s-des-donn-es"> +<h3><a class="toc-backref" href="#id71">4.2.1 Entités des données</a></h3> +<img alt="../../../../xmi/images/data.png" src="../../../../xmi/images/data.png" /> +</div> +<div class="section" id="entit-s-des-authorisations"> +<h3><a class="toc-backref" href="#id72">4.2.2 Entités des authorisations</a></h3> +<img alt="../../../../xmi/images/entities.png" src="../../../../xmi/images/entities.png" /> +</div> +<div class="section" id="services-de-stockage"> +<h3><a class="toc-backref" href="#id73">4.2.3 Services de stockage</a></h3> +<img alt="../../../../xmi/images/storage.png" src="../../../../xmi/images/storage.png" /> +</div> +<div class="section" id="services-d-authorisation"> +<h3><a class="toc-backref" href="#id74">4.2.4 Services d'authorisation</a></h3> +<img alt="../../../../xmi/images/authorization.png" src="../../../../xmi/images/authorization.png" /> +</div> +<div class="section" id="application-web"> +<h3><a class="toc-backref" href="#id75">4.2.5 Application web</a></h3> +<img alt="../../../../xmi/images/applications.png" src="../../../../xmi/images/applications.png" /> +</div> +</div> +<div class="section" id="s-quences-d-utilisation"> +<h2><a class="toc-backref" href="#id76">4.3 Séquences d'utilisation</a></h2> +<div class="section" id="gestion-des-authorisations"> +<h3><a class="toc-backref" href="#id77">4.3.1 Gestion des authorisations</a></h3> +<img alt="./authorization.jpg" src="./authorization.jpg" /> +</div> +</div> +<div class="section" id="crans-de-l-application"> +<h2><a class="toc-backref" href="#id78">4.4 Ãcrans de l'application</a></h2> +<div class="section" id="liste-des-l-ments"> +<h3><a class="toc-backref" href="#id79">4.4.1 Liste des éléments</a></h3> +<img alt="./screenshots/Screenshot.png" src="./screenshots/Screenshot.png" /> +</div> +<div class="section" id="importer-un-l-ment"> +<h3><a class="toc-backref" href="#id80">4.4.2 Importer un élément</a></h3> +<img alt="./screenshots/Screenshot-1.png" src="./screenshots/Screenshot-1.png" /> +</div> +<div class="section" id="liste-des-utilisateurs"> +<h3><a class="toc-backref" href="#id81">4.4.3 Liste des utilisateurs</a></h3> +<img alt="./screenshots/Screenshot-2.png" src="./screenshots/Screenshot-2.png" /> +</div> +<div class="section" id="ajouter-diter-un-utilisateur"> +<h3><a class="toc-backref" href="#id82">4.4.4 Ajouter/éditer un utilisateur</a></h3> +<img alt="./screenshots/Screenshot-3.png" src="./screenshots/Screenshot-3.png" /> +</div> +<div class="section" id="liste-des-groupes"> +<h3><a class="toc-backref" href="#id83">4.4.5 Liste des groupes</a></h3> +<img alt="./screenshots/Screenshot-4.png" src="./screenshots/Screenshot-4.png" /> +</div> +<div class="section" id="ajouter-diter-un-groupe"> +<h3><a class="toc-backref" href="#id84">4.4.6 Ajouter/éditer un groupe</a></h3> +<img alt="./screenshots/Screenshot-5.png" src="./screenshots/Screenshot-5.png" /> +</div> +</div> +</div> +</div> +</body> +</html> Copied: trunk/simexplorer-is/src/site/fr/rst/devel/old/authorization.uxf (from rev 1257, trunk/simexplorer-is/src/site/fr/rst/devel/authorization.uxf) =================================================================== --- trunk/simexplorer-is/src/site/fr/rst/devel/old/authorization.uxf (rev 0) +++ trunk/simexplorer-is/src/site/fr/rst/devel/old/authorization.uxf 2008-02-29 18:06:48 UTC (rev 1265) @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8"?><umlet_diagram><element><type>com.umlet.element.base.SequenceDiagram</type><coordinates><x>20</x><y>20</y><w>790</w><h>510</h></coordinates><panel_attributes>user|_storageManager_|_loggableManager_|_credentialManager_ +1->>2:1,2:getElement(12) +2->>4:1,2,4:getCurrentLoggedActor() +4->2:1,2,4:actor +2->>2:1,2:getElement(12) +2->>3:1,2,3:getCredentials(element) +3->2:1,2,3:itemCredential +2->1:1,2:element +1->1:1:Modify element +1->>2:1,2:saveElement(element) +2->>3:1,2,3:getCredentials(element.parent) +3->2:1,2,3:itemCredential +2->>2:1,2:saveElement(element) +2->>3:1,2:registerElement(element) +2->1:1,2:element +</panel_attributes><additional_attributes></additional_attributes></element></umlet_diagram> \ No newline at end of file Copied: trunk/simexplorer-is/src/site/fr/rst/devel/old/developpement.abw (from rev 1257, trunk/simexplorer-is/src/site/fr/rst/devel/developpement.abw) =================================================================== --- trunk/simexplorer-is/src/site/fr/rst/devel/old/developpement.abw (rev 0) +++ trunk/simexplorer-is/src/site/fr/rst/devel/old/developpement.abw 2008-02-29 18:06:48 UTC (rev 1265) @@ -0,0 +1,54 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE abiword PUBLIC "-//ABISOURCE//DTD AWML 1.0 Strict//EN" "http://www.abisource.com/awml.dtd"> +<abiword template="false" styles="unlocked" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:math="http://www.w3.org/1998/Math/MathML" xid-max="32" xmlns:dc="http://purl.org/dc/elements/1.1/" fileformat="1.1" xmlns:svg="http://www.w3.org/2000/svg" xmlns:awml="http://www.abisource.com/awml.dtd" xmlns="http://www.abisource.com/awml.dtd" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.9.1" xml:space="preserve" props="dom-dir:ltr; document-footnote-restart-section:0; document-endnote-type:numeric; document-endnote-place-enddoc:1; document-endnote-initial:1; lang:fr-FR; document-endnote-restart-section:0; document-footnote-restart-page:0; document-footnote-type:numeric; document-footnote-initial:1; document-endnote-place-endsection:0"> +<!-- ======================================================================== --> +<!-- This file is an AbiWord document. --> +<!-- AbiWord is a free, Open Source word processor. --> +<!-- More information about AbiWord is available at http://www.abisource.com/ --> +<!-- You should not edit this file by hand. --> +<!-- ======================================================================== --> + +<metadata> +<m key="dc.format">application/x-abiword</m> +<m key="abiword.generator">AbiWord</m> +</metadata> +<history version="10" edit-time="2201" last-saved="1197912765" uid="f4025158-acc0-11dc-9495-ead58c2affe3"> +<version id="10" started="1197910595" uid="13efae3e-acc6-11dc-9495-ead58c2affe3" auto="0" top-xid="2"/> +</history> +<styles> +<s type="P" name="Normal" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; color:000000; margin-left:0pt; text-position:normal; widows:2; font-style:normal; text-indent:0in; font-variant:normal; margin-right:0pt; lang:fr-FR; line-height:1.0; font-size:12pt; text-decoration:none; margin-bottom:0pt; font-weight:normal; bgcolor:transparent; text-align:left; font-stretch:normal"/> +</styles> +<pagesize pagetype="Custom" orientation="portrait" width="450.000000" height="297.000000" units="mm" page-scale="1.000000"/> +<section xid="1" props="page-margin-right:25.4mm; page-margin-footer:12.7mm; page-margin-header:12.7mm; page-margin-left:25.4mm; page-margin-top:25.4mm; page-margin-bottom:25.4mm"> +<p style="Normal" xid="2"><c props="font-family:Bitstream Vera Sans Mono">Documentation développement Simexplorer-SI</c></p> +<p style="Normal" xid="3"></p> +<p style="Normal" xid="4"><c props="font-family:Bitstream Vera Sans Mono">Stockage des données</c></p> +<p style="Normal" xid="5"></p> +<p style="Normal" xid="6"><c props="font-family:Bitstream Vera Sans Mono">Découpage</c></p> +<p style="Normal" xid="7"></p> +<p style="Normal" xid="8" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono">Les données ont été décomposées en trois groupes :</c></p> +<p style="Normal" xid="9" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono"> * les meta-données de chaque élément, permettant de l'identifier, de connaître son type, son parent en version, etc</c></p> +<p style="Normal" xid="10" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono"> * le contenu indexé, provenant d'une librairie, de résultat, etc. C'est sur ce contenu que la recherche full text sera faite</c></p> +<p style="Normal" xid="11" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono"> * les données à proprement parler, qui sont stockées sur le systÚme de fichier. On conserve dans ces fichiers les meta données, afin de permettre la reconstruction d'une base à partir d'un dossier.</c></p> +<p style="Normal" xid="12" props="text-align:left; dom-dir:ltr"></p> +<p style="Normal" xid="13" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono">Stockage des meta données</c></p> +<p style="Normal" xid="14" props="text-align:left; dom-dir:ltr"></p> +<p style="Normal" xid="15" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono">Une interface permet la gestion de meta-données : Database.</c></p> +<p style="Normal" xid="16" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono">Son implémentation est faite par LuceneDatabase.</c></p> +<p style="Normal" xid="17" props="text-align:left; dom-dir:ltr"></p> +<p style="Normal" xid="18" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono">Stockage des données</c></p> +<p style="Normal" xid="19" props="text-align:left; dom-dir:ltr"></p> +<p style="Normal" xid="20" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono">Une interface permet la gestion du stockage de données : AttachmentHandler.</c></p> +<p style="Normal" xid="21" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono">Son implémentation est faite par FileSystemAttachmentHandler.</c></p> +<p style="Normal" xid="22" props="text-align:left; dom-dir:ltr"></p> +<p style="Normal" xid="23" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono">Stockage des données et des meta données</c></p> +<p style="Normal" xid="24" props="text-align:left; dom-dir:ltr"></p> +<p style="Normal" xid="25" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono">Les deux interfaces sont utilisées dans StorageEngine. Cette classe permet en plus de stocker des données temporaires.</c></p> +<p style="Normal" xid="26" props="text-align:left; dom-dir:ltr"></p> +<p style="Normal" xid="27" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono">Service de gestion des données</c></p> +<p style="Normal" xid="28" props="text-align:left; dom-dir:ltr"></p> +<p style="Normal" xid="31" props="text-align:left; dom-dir:ltr"></p> +<p style="Normal" xid="32" props="text-align:left; dom-dir:ltr"></p> +<p style="Normal" xid="29" props="text-align:left; dom-dir:ltr"><c props="font-family:Bitstream Vera Sans Mono">Service publié</c></p> +</section> +</abiword> Copied: trunk/simexplorer-is/src/site/fr/rst/devel/old/diagramme1.dia (from rev 1257, trunk/simexplorer-is/src/site/fr/rst/devel/diagramme1.dia) =================================================================== (Binary files differ) Copied: trunk/simexplorer-is/src/site/fr/rst/devel/old/glassfish.txt (from rev 1257, trunk/simexplorer-is/src/site/fr/rst/devel/glassfish.txt) =================================================================== --- trunk/simexplorer-is/src/site/fr/rst/devel/old/glassfish.txt (rev 0) +++ trunk/simexplorer-is/src/site/fr/rst/devel/old/glassfish.txt 2008-02-29 18:06:48 UTC (rev 1265) @@ -0,0 +1,17 @@ +GlassFish +========= + +**GlassFish** est un serveur d'applications compatible J2EE ; la licence est CDDL et GPLv2. + +Fonctions +--------- + +Au niveau des standards, GlassFish est une implémentation complète de la norme Java EE 5 qui recouvre: + + * EJB 3 (approche POJO, configuration par exception, injection de dépendance). L'occasion de se refaire une idée sur les EJB. + * JPA (Java Persistence API): standard implémenté par TopLink (par défaut dans GlassFish), Hibernate ou OpenJPA + * JAX-WS 2.x: nouvelle pile pour les services web + * JAXB 2.0: mise en corresponsance (mapping) XML/Java utilisée par JAX-WS 2.0 + * JSF (Java Server Faces) - Framework MVC dont Apache MyFaces et JSF RI sont des implémentations libres + * StAX - parseur de streaming XML + * JSP 2.1 & Servlet 2.5: pour faire de l'injection de dépendance dans le conteneur web Copied: trunk/simexplorer-is/src/site/fr/rst/devel/old/maven.rst (from rev 1257, trunk/simexplorer-is/src/site/fr/rst/devel/maven.rst) =================================================================== --- trunk/simexplorer-is/src/site/fr/rst/devel/old/maven.rst (rev 0) +++ trunk/simexplorer-is/src/site/fr/rst/devel/old/maven.rst 2008-02-29 18:06:48 UTC (rev 1265) @@ -0,0 +1,21 @@ +Les dépôts suivants doivent être disponibles dans le fichier ~/.m2/settings.xml : + +:: + <repository> + <id>codelutin-lib</id> + <url>http://lutinbuilder.labs.libre-entreprise.org/maven2</url> + </repository> + <repository> + <id>openhms</id> + <url>http://open.hmsonline.com/repo/maven2</url> + </repository> + <repository> + <id>repository.jboss.com</id> + <url>http://download.java.net/maven/2</url> + </repository> + <repository> + <id>t5components</id> + <name>T5Components Maven Repository</name> + <url>http://213.160.23.119:8080/t5components/maven-repository</url> + </repository> + \ No newline at end of file Copied: trunk/simexplorer-is/src/site/fr/rst/devel/old/migration.txt (from rev 1257, trunk/simexplorer-is/src/site/fr/rst/devel/migration.txt) =================================================================== --- trunk/simexplorer-is/src/site/fr/rst/devel/old/migration.txt (rev 0) +++ trunk/simexplorer-is/src/site/fr/rst/devel/old/migration.txt 2008-02-29 18:06:48 UTC (rev 1265) @@ -0,0 +1,190 @@ +ToPIA Migration Service +======================= + +ToPIA Migration Service est un module ToPIA chargᅵ d'effectuer la migration +d'une base de donnᅵes existante sans perte de donnᅵes. + +Configuration +------------- +Ce service doit disposer de quelques proprietᅵs de configuration pour effectuer +la migration d'une base de donnᅵes. + +Ces propriᅵtᅵs sont fournies au service via un TopiaContext et font donc partie +de la configuration de l'application. + + +Configuration de la base de donnᅵes +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +:: + + hibernate.dialect=org.hibernate.dialect.H2Dialect + hibernate.connection.username=sa + hibernate.connection.password= + hibernate.connection.driver_class=org.h2.Driver + + topia.persistence.directories=directory1,directory2 + topia.persistence.classes=classImpl1,classImpl2 + topia.persistence.properties.file=??? + +Ces informations servent ᅵ crᅵer une configuration hibernate (qui contient les +informations de connexion et les mappings de l'application). + +Les lignes commencant par "hibernate" sont spᅵcifiques ᅵ hibernate et au type de +base de donnᅵes utilisᅵ. Les lignes suivantes sont spᅵcifiques ᅵ ToPIA mais +contiennent les mappings indispensable pour crᅵer le schᅵma de la base de +donnᅵes aprᅵs migration. + + +Configuration des mappings +~~~~~~~~~~~~~~~~~~~~~~~~~~ +La configuration doit contenir ces propriᅵtᅵs : + +:: + + topia.service.migration.mappingsdir=oldmappings + topia.service.migration.modelnames=model1,model2,model3 + +qui spᅵcifie le rᅵpertoire de recherche des anciens mappings pour les diffᅵrents +modᅵles. + +Ce dossier contient ensuite un sous-dossier par modᅵle comportant chacun un +sous-dossier par version par version (nommᅵ X, *X* ᅵtant la version), avec pour +chaque dossier, l'ensemble des mappings hibernate de cette version. + +Exemple : + +:: + + oldmappings/ + model1/ + 1/ + Class1.hbm.xml + Class2.hbm.xml + Class3.hbm.xml + 2/ + Class1.hbm.xml + Class2New.hbm.xml + Class3.hbm.xml + 2.2/ + Class2.hbm.xml + Class3.hbm.xml + Class4New.hbm.xml + + +Configuration de la version +~~~~~~~~~~~~~~~~~~~~~~~~~~~ +La configuration doit contenir une propriᅵtᅵ : + +:: + + topia.service.migration.version=3.5.1 (exemple) + +Cette propriᅵtᅵs renseigne la version *courante* de l'application. + + +Configuration du callback +~~~~~~~~~~~~~~~~~~~~~~~~~ +Il est possible de dᅵfinir une classe de type MigrationCallbackHandler, pour +interagir, par exemple, avec l'utilisateur et lui demander s'il faut migrer la +base de donnᅵes. + +Ces //callback// doivent implᅵmenter MigrationCallbackHandler et se trouver dans +la configuration: + +:: + + topia.service.migration.callbackhandlers=org.codelutin.test.SwingCallbackHandler + + +Configuration du service +~~~~~~~~~~~~~~~~~~~~~~~~ +Enfin pour utiliser le service, il faut l'activer. La configuration doit +contenir la propriᅵtᅵs suivante : + +:: + + topia.service.migration=org.codelutin.topia.security.TopiaSecurityServiceImpl + + +Utilisation +----------- +Ce module ᅵtant un service ToPIA, il doit ᅵtre activᅵ pour pouvoir s'exᅵcuter. + +Il commence par se connecter au SGBD, vᅵrifie si les versions diffᅵrent, et +effectue la migration si besoin. + +Classes de migration +~~~~~~~~~~~~~~~~~~~~ +Pour savoir comment migrer les donnᅵes, le dᅵveloppeur utilisant le module de +migration doit produire des classes Java de migration (une par classe +nᅵcᅵssitant une modification et par version). + +Ces classes doivent : + +- hᅵriter de la classe ``AbstractMigration`` ou de l'interface ``Migration`` +- se trouver dans un sous package des classes d'implᅵmentation rᅵfᅵrencᅵes + par les mappings. Ce package doit se nommer VnVm oᅵ: + + - *n* est la version de dᅵpart de migration + - *m* la version d'arrivᅵe + +- respecter une convention de nommage de la forme + MigrationClass oᅵ: + + - *Class* est le nom de l'entitᅵ devant ᅵtre migrᅵe + + Exemple, pour migrer une Personne d'une version 2 ᅵ 2.1: + ``V2V2_1.MigratePersonne.java`` + + Note: les "." ᅵtant interdits dans le nom de fichier, ils sont remplacᅵs par + le caractᅵre "_". + +Ensuite, chaque classe doit : + +- implᅵmenter au moins la mᅵthode ``migrate(MapAdapter, MapHelper)`` + cette mᅵthode prend une MapAdapter en paramᅵtre, pour modifier un tuple et un + MapHelper pouvant servir ᅵ retrouver des informations sur le reste des tuples + de la base +- surcharger (si besoin) la mᅵthode ``public ProxyClass migrateFrom()`` dans le + cas oᅵ les tuples ᅵ modifier proviennent d'une classe diffᅵrente de la classe + courante. + +Exemple : + +Ici, la modification porte sur la transformation de l'attribut ``timestampNaissance`` +de la classe ``domaine.Personne`` en une nouvelle table ``domaine.Naissance``, effectᅵe +dans le changement de la version 1 ᅵ la version 2 : + +:: + + // migrateFrom() + public ProxyClass migrateFrom() { + return new SimpleProxyClass("domaine.Personne"); + } + + // migrate(MapAdapter, MapHelper) + public void migrate(MapAdapter map, MapHelper helper) { + + // map d'entree vide, conversion du timestamp + // en jour, mois, annee + try { + Long timestamp = (Long) map.getOldValue("timestampNaissance"); + Calendar c = Calendar.getInstance(); + c.setTimeInMillis(timestamp); + map.setValue("jour", c.get(Calendar.DAY_OF_MONTH)); + map.setValue("mois", c.get(Calendar.MONTH)); + map.setValue("annee", c.get(Calendar.YEAR)); + } catch (ExceptionAttributeUndefined e) { + e.printStackTrace(); + } + } + +Donc cette classe : + +- doit se nommer ``MigrateNaissance.java`` et se trouver dans le package + ``domaine.V1V2`` +- redᅵfinit la methode migrateFrom() pour indiquer que les donnees proviennent de + ``domaine.Personne`` +- implᅵmente ``migrate()`` pour produire des tuples de type ``domaine.Naissance`` + ᅵ partir de tuples ``domaine.Personne`` Copied: trunk/simexplorer-is/src/site/fr/rst/devel/old/sequence1.uxf (from rev 1257, trunk/simexplorer-is/src/site/fr/rst/devel/sequence1.uxf) =================================================================== --- trunk/simexplorer-is/src/site/fr/rst/devel/old/sequence1.uxf (rev 0) +++ trunk/simexplorer-is/src/site/fr/rst/devel/old/sequence1.uxf 2008-02-29 18:06:48 UTC (rev 1265) @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="UTF-8"?><umlet_diagram><element><type>com.umlet.element.base.SequenceDiagram</type><coordinates><x>0</x><y>0</y><w>750</w><h>180</h></coordinates><panel_attributes>ui|_storageManager_|_versionManager_|_loggableManager_ +1->>2:1,2:saveElement(element, true) +2->>3:1,2,3:getVersions(element.id) +3.>2:1,2,3:[1.0, 1.1, 1.2, 2.0, 2.1]</panel_attributes><additional_attributes></additional_attributes></element></umlet_diagram> \ No newline at end of file Copied: trunk/simexplorer-is/src/site/fr/rst/devel/old/template.uxf (from rev 1257, trunk/simexplorer-is/src/site/fr/rst/devel/template.uxf) =================================================================== --- trunk/simexplorer-is/src/site/fr/rst/devel/old/template.uxf (rev 0) +++ trunk/simexplorer-is/src/site/fr/rst/devel/old/template.uxf 2008-02-29 18:06:48 UTC (rev 1265) @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?><umlet_diagram><element><type>com.umlet.element.base.SequenceDiagram</type><coordinates><x>20</x><y>20</y><w>390</w><h>330</h></coordinates><panel_attributes>_alpha:A_|_beta:B_|_gamma:G_ +1->>2:1,2 +2-/>1:async Msg. +3->>>1:1,3 +1.>3:1,3:async return Msg +1->1:1:self +iframe{:interaction frame +2->3:2,3:async Msg. +iframe}</panel_attributes><additional_attributes></additional_attributes></element></umlet_diagram> \ No newline at end of file Copied: trunk/simexplorer-is/src/site/fr/rst/devel/old/version.uxf (from rev 1257, trunk/simexplorer-is/src/site/fr/rst/devel/version.uxf) =================================================================== --- trunk/simexplorer-is/src/site/fr/rst/devel/old/version.uxf (rev 0) +++ trunk/simexplorer-is/src/site/fr/rst/devel/old/version.uxf 2008-02-29 18:06:48 UTC (rev 1265) @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?><umlet_diagram><element><type>com.umlet.element.base.SequenceDiagram</type><coordinates><x>20</x><y>20</y><w>330</w><h>390</h></coordinates><panel_attributes>_server_|user1|_user2_ +2->>2:2:création/édition +2->>1:1,2:commit + +1->>2:1,2 +2-/>1:async Msg. +3->>>1:1,3 +1.>3:1,3:async return Msg +1->1:1:self +iframe{:interaction frame +2->3:2,3:async Msg. +iframe}</panel_attributes><additional_attributes></additional_attributes></element></umlet_diagram> \ No newline at end of file Deleted: trunk/simexplorer-is/src/site/fr/rst/devel/sequence1.uxf =================================================================== --- trunk/simexplorer-is/src/site/fr/rst/devel/sequence1.uxf 2008-02-29 18:04:51 UTC (rev 1264) +++ trunk/simexplorer-is/src/site/fr/rst/devel/sequence1.uxf 2008-02-29 18:06:48 UTC (rev 1265) @@ -1,4 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?><umlet_diagram><element><type>com.umlet.element.base.SequenceDiagram</type><coordinates><x>0</x><y>0</y><w>750</w><h>180</h></coordinates><panel_attributes>ui|_storageManager_|_versionManager_|_loggableManager_ -1->>2:1,2:saveElement(element, true) -2->>3:1,2,3:getVersions(element.id) -3.>2:1,2,3:[1.0, 1.1, 1.2, 2.0, 2.1]</panel_attributes><additional_attributes></additional_attributes></element></umlet_diagram> \ No newline at end of file Deleted: trunk/simexplorer-is/src/site/fr/rst/devel/template.uxf =================================================================== --- trunk/simexplorer-is/src/site/fr/rst/devel/template.uxf 2008-02-29 18:04:51 UTC (rev 1264) +++ trunk/simexplorer-is/src/site/fr/rst/devel/template.uxf 2008-02-29 18:06:48 UTC (rev 1265) @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?><umlet_diagram><element><type>com.umlet.element.base.SequenceDiagram</type><coordinates><x>20</x><y>20</y><w>390</w><h>330</h></coordinates><panel_attributes>_alpha:A_|_beta:B_|_gamma:G_ -1->>2:1,2 -2-/>1:async Msg. -3->>>1:1,3 -1.>3:1,3:async return Msg -1->1:1:self -iframe{:interaction frame -2->3:2,3:async Msg. -iframe}</panel_attributes><additional_attributes></additional_attributes></element></umlet_diagram> \ No newline at end of file Deleted: trunk/simexplorer-is/src/site/fr/rst/devel/uok.png =================================================================== (Binary files differ) Added: trunk/simexplorer-is/src/site/fr/rst/devel/uok.png =================================================================== --- trunk/simexplorer-is/src/site/fr/rst/devel/uok.png (rev 0) +++ trunk/simexplorer-is/src/site/fr/rst/devel/uok.png 2008-02-29 18:06:48 UTC (rev 1265) @@ -0,0 +1,8 @@ +PNG + + +IHDRóÿasBIT|d pHYsÕÕgwŠtEXtSoftwarewww.inkscape.orgî<£IDAT8ÁKAÆß³3Iíbì"j¶ +9ôà\Úz.Ä¥HJ¡B¡ÐS±=X(í¡àIzŽTðOH=ì©! êBA +(œ,dHMÝéŠD"Ò~×ïÇ÷Þ<æSÚí6ô16E)]RU5'¥Ì`kQí!6]×=îåncBV(¥Ëe¥ÃPt] À÷ýv±X¬!ÖÂ0\u]7Ÿ`¡d2Y2M3kÛ¶v~~ÛÛÛüôôô¢(J&QgggobÁqçyÕV«õÀuÝBVLÓÌæóy-ØØØrÎÇëõúÃÃÃ×ëëë\J ù|^3M3KY@7/Û¶T*Þl6Çq\ŠŸG=*ËZÖÛÝÝݶmkÒeÆØ¢.Y"0Æ÷Éd%ËœÔuý#cìòëÉÉèle¥(¥KXUÕaJ÷ªóóó###/4M#gggMÎyßBÇÆÆ]Î0EUÕRfº×èïïRVëûûûÂ0[ÒwÙlöFÓu€P³Ùq!<,/,,ÜœÆ!q-kÆðð0%Œéëë{µžž8099yÅ0Æ5EÑïûlhhHéæææŽT*õ8N+étúÚß÷ÛQí !Äf±X¬axØÛÛkJ¥[[[s~ÅÃ:¿r¹®{,Xs§ÑŽ...îFQô¹V«] p§!Xs]÷uW=Ï« + FwéééD"øŠªê³ËÉ B¡áy^5ÃUR +D8ç/S¯þ·Î¿Ôæ\(<IEND®B` \ No newline at end of file Deleted: trunk/simexplorer-is/src/site/fr/rst/devel/version.uxf =================================================================== --- trunk/simexplorer-is/src/site/fr/rst/devel/version.uxf 2008-02-29 18:04:51 UTC (rev 1264) +++ trunk/simexplorer-is/src/site/fr/rst/devel/version.uxf 2008-02-29 18:06:48 UTC (rev 1265) @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?><umlet_diagram><element><type>com.umlet.element.base.SequenceDiagram</type><coordinates><x>20</x><y>20</y><w>330</w><h>390</h></coordinates><panel_attributes>_server_|user1|_user2_ -2->>2:2:création/édition -2->>1:1,2:commit - -1->>2:1,2 -2-/>1:async Msg. -3->>>1:1,3 -1.>3:1,3:async return Msg -1->1:1:self -iframe{:interaction frame -2->3:2,3:async Msg. -iframe}</panel_attributes><additional_attributes></additional_attributes></element></umlet_diagram> \ No newline at end of file Added: trunk/simexplorer-is/src/site/fr/rst/index.rst =================================================================== --- trunk/simexplorer-is/src/site/fr/rst/index.rst (rev 0) +++ trunk/simexplorer-is/src/site/fr/rst/index.rst 2008-02-29 18:06:48 UTC (rev 1265) @@ -0,0 +1,4 @@ +Le Cemagref développe un outil d'exploration de simulation, SimExplorer. Les explorations sont faites par la programmation de plans d'expériences qui génèrent un grand nombre de simulations. + +Simexplorer-IS mets en place des outils qui permettent de gérer toutes les données et les codes permettant de définir une application d'exploration, aussi bien par leur stockage +que par les autorisations données aux utilisateurs pour les manipuler. Modified: trunk/simexplorer-is/src/site/site_fr.xml =================================================================== --- trunk/simexplorer-is/src/site/site_fr.xml 2008-02-29 18:04:51 UTC (rev 1264) +++ trunk/simexplorer-is/src/site/site_fr.xml 2008-02-29 18:06:48 UTC (rev 1265) @@ -35,11 +35,22 @@ href="http://simexplorer-si.labs.libre-entreprise.org/en/index.html" /> </links> - <menu name="Survol"> + <menu name="Utilisation"> <item href="/index.html" name="Présentation"></item> + <item href="/install.html" name="Installation"></item> + <item href="/todo.html" name="Reste à faire"></item> + </menu> + + <menu name="Développement"> + <item href="/devel/index.html" + name="Présentation"> + </item> <item href="/devel/implementation.html" name="Implémentation"> </item> + <item href="/devel/enviro.html" + name="Environnement"> + </item> </menu> <menu name="Liens">
participants (1)
-
glandais@users.labs.libre-entreprise.org