From e8126b3d516b8a5100edd38e3b12ba7fc079fcee Mon Sep 17 00:00:00 2001
From: Oldperl <44996956+oldperl@users.noreply.github.com>
Date: Sat, 15 Feb 2020 13:59:55 +0100
Subject: [PATCH 01/41] Create .htaccess
---
cms/data/.htaccess | 1 +
1 file changed, 1 insertion(+)
create mode 100644 cms/data/.htaccess
diff --git a/cms/data/.htaccess b/cms/data/.htaccess
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/cms/data/.htaccess
@@ -0,0 +1 @@
+
From 8a43617725abf433733e44bde56681aca467f914 Mon Sep 17 00:00:00 2001
From: Oldperl <44996956+oldperl@users.noreply.github.com>
Date: Sat, 15 Feb 2020 14:02:52 +0100
Subject: [PATCH 02/41] Delete .directory
---
conlite/.directory | 4 ----
1 file changed, 4 deletions(-)
delete mode 100644 conlite/.directory
diff --git a/conlite/.directory b/conlite/.directory
deleted file mode 100644
index d730ff7..0000000
--- a/conlite/.directory
+++ /dev/null
@@ -1,4 +0,0 @@
-[Dolphin]
-Timestamp=2016,9,20,14,42,23
-Version=3
-ViewMode=1
From 7d8bc5f6744b27aa6179358ce5b99b9341da839b Mon Sep 17 00:00:00 2001
From: Oldperl <44996956+oldperl@users.noreply.github.com>
Date: Sat, 15 Feb 2020 14:04:42 +0100
Subject: [PATCH 03/41] Delete spider-it.functions.inc.php
---
cms/includes/spider-it.functions.inc.php | 859 -----------------------
1 file changed, 859 deletions(-)
delete mode 100644 cms/includes/spider-it.functions.inc.php
diff --git a/cms/includes/spider-it.functions.inc.php b/cms/includes/spider-it.functions.inc.php
deleted file mode 100644
index 3803fdb..0000000
--- a/cms/includes/spider-it.functions.inc.php
+++ /dev/null
@@ -1,859 +0,0 @@
-
- * @copyright Spider IT Deutschland ' . str_replace(array(str_repeat(chr(32), 4), chr(9)), '', $value) . '
Records: ' . intval(@$db->num_rows());
- break;
- default:
- if (is_array($value)) {
- echo ''; var_dump($value); echo '
';
- } elseif (is_object($value)) {
- echo 'Object:'; var_dump($value); echo '
';
- } else {
- echo $value;
- }
- break;
- }
- echo '
', $db->f('description')));
- }
- if (strlen(trim($sDesc)) == 0) {
- $sql = 'SELECT description
- FROM ' . $cfg['tab']['upl'] . '
- WHERE (idupl=' . $idupl . ')';
- $db->query($sql);
- if ($db->next_record()) {
- $sDesc = $db->f('description');
- }
- }
- return $sDesc;
-}
-
-# sitGetRemoteContentToFile()
-#
-# Holt entfernten Inhalt ab und speichert diesen lokal
-#
-# Parameter:
-# $url - Die Adresse von wo der Inhalt geholt werden soll
-# $file - Die Datei in der gespeichert werden soll (inkl. Pfad)
-# $errno - Die Fehlernummer (Rückgabe)
-# $errmsg - Die Fehlerbeschreibung (Rückgabe)
-#
-# Die Daten (Webseite, Bild, Feed usw) werden per cURL geholt,
-# wobei Weiterleitungen gefolgt werden.
-# Diese Methode ist unabhängig von allow_url_fopen und verarbeitet
-# auch Anfragen per https (SSL).
-function sitGetRemoteContentToFile($url, $file, $errno, $errmsg) {
- $options = array(
- CURLOPT_RETURNTRANSFER => true, // return web page
- CURLOPT_HEADER => false, // don't return headers
- CURLOPT_FOLLOWLOCATION => true, // follow redirects
- CURLOPT_ENCODING => "", // handle compressed
- CURLOPT_USERAGENT => "spider", // who am i
- CURLOPT_AUTOREFERER => true, // set referer on redirect
- CURLOPT_CONNECTTIMEOUT => 10, // timeout on connect
- CURLOPT_TIMEOUT => 10, // timeout on response
- CURLOPT_MAXREDIRS => 10, // stop after 10 redirects
- );
-
- $ch = curl_init($url);
- curl_setopt_array($ch, $options);
- $content = curl_exec($ch);
- $errno = curl_errno($ch);
- $errmsg = curl_error($ch);
- $header = curl_getinfo($ch);
- curl_close($ch);
-
- if (($errno == 0) && ($header['http_code'] == 200)) {
- # Content in Datei speichern
- if ($fp = fopen($file, 'w')) {
- fputs($fp, $content);
- fclose($fp);
- return true;
- } else {
- $errno = -1;
- $errmsg = 'Can\'t write to file ' . $file;
- return false;
- }
- } else {
- return false;
- }
-}
-
-# sitGetSubdirs()
-#
-# Listet Unterverzeichnisse eines Verzeichnisses
-#
-# Parameter:
-# $dir - Übergeordnetes Verzeichnis
-# $levels - Anzahl Ebenen an Unterverzeichnisse die mit aufgelistet werden sollen
-# $__dirs - interner Parameter für Rekursion
-#
-# Listet die Unterverzeichnisse eines Verzeichnisses inkl. aller Unterverzeichnisse
-# bis zu der angegebenen Anzahl an Ebenen (die Tiefe).
-function sitGetSubdirs($dir, $levels = 1, $__dirs = array()) {
- $a = array();
- $p = opendir($dir);
- while (($s = readdir($p)) !== false) {
- if (($s == '.') || ($s == '..')) {
- continue;
- }
- if (is_dir($dir . ((substr($dir, -1) == '/') ? '' : '/') . $s)) {
- $a[] = $dir . ((substr($dir, -1) == '/') ? '' : '/') . $s . '/';
- }
- }
- closedir($p);
- sort($a, SORT_STRING);
- for ($i = 0; $i < count($a); $i ++) {
- $__dirs[] = $a[$i];
- if ($levels > 1) {
- $__dirs = sitGetSubdirs($a[$i], ($levels - 1), $__dirs);
- }
- }
- return $__dirs;
-}
-
-# sitImgScale()
-#
-# Skaliert oder zoomt ein Bild auch mit Transparenz
-#
-# Parameter:
-# $img - Pfad und Dateiname der Originaldatei relativ zum Mandantenverzeichnis
-# $maxX - Maximale Breite des neuen Bildes
-# $maxY - Maximale Höhe des neuen Bildes
-# $crop - Bild darf beschnitten werden (optional)
-# $expand - Bild darf vergrößert werden
-# $cacheTime - Ältere Version nutzen oder überschreiben
-# $wantHQ - Bild soll in hoher Qualität sein
-# $quality - Qualität bei JPG und GIF
-# $keepType - Dateityp beibehalten
-# $fixedSize - Zielbild wird auf angegebene Größe erstellt und transparent (GIF und PNG) gefüllt
-# $fixedBG - Bei $fixedSize und JPG wird dies die Hintergrundfarbe des umgebenden Bereichs
-#
-# Erstellt im cache Verzeichnis eine skalierte Version des Originalbildes
-# wie auch die Con-Funktion capiImgScale(), aber behält Transparenz in GIF
-# und PNG Bilder bei. Der zusätzliche Parameter $fixedSize ermöglicht es,
-# das Zielbild mit fixe Abmessungen zu erstellen und das skalierte Bild
-# darin zu zentrieren, wobei der umgebenden Bereich bei GIF und PNG Bilder
-# transparent, bei JPG Bilder mit der in $fixedBG angegebenen Farbe gefüllt
-# wird. Ist $fixedBG nicht angegeben, wird weiß (#FFF) angenommen.
-function sitImgScale($img, $maxX = 0, $maxY = 0, $crop = false, $expand = false, $cacheTime = 10, $wantHQ = true, $quality = 75, $keepType = false, $fixedSize = false, $fixedBG = 'FFFFFF') {
- global $cfgClient, $client, $lang;
-
- if (($maxX <= 0) && ($maxY <= 0)) {
- return false;
- }
-
- # Cache
- $md5 = capiImgScaleGetMD5CacheFile($img, $maxX, $maxY, $crop, $expand);
- list($oWidth, $oHeight, $oType) = @getimagesize($cfgClient[$client]['path']['frontend'] . $img);
- switch ($oType) {
- case IMAGETYPE_GIF:
- $cfileName = $md5 . '.gif';
- break;
- case IMAGETYPE_JPEG:
- if ($keepType) {
- $cfileName = $md5 . '.jpg';
- } else {
- $cfileName = $md5 . '.png';
- }
- break;
- case IMAGETYPE_PNG:
- $cfileName = $md5 . '.png';
- break;
- default:
- return false;
- }
- $cacheFile = $cfgClient[$client]['path']['frontend'] . 'cache/' . $cfileName;
- $webFile = $cfgClient[$client]['path']['htmlpath'] . 'cache/' . $cfileName;
- if (file_exists($cacheFile)) {
- if ($cacheTime == 0) {
- # Datei läuft nicht ab, also direkt ausgeben
- return $webFile;
- } elseif ((filemtime($cacheFile) + (60 * $cacheTime)) < time()) {
- # Datei ist abgelaufen
- unlink($cacheFile);
- } else {
- # Datei ist noch nicht abgelaufen
- return $webFile;
- }
- }
-
- # Bild neu aufbauen
- $nLeft = 0;
- $nTop = 0;
- $nWidth = 0;
- $nHeight = 0;
- if ($fixedSize) {
- $iWidth = $maxX;
- $iHeight = $maxY;
- # Abmessung und Position in neues Bild berechnen
- if (($oWidth > $maxX) || ($oHeight > $maxY) || ($expand)) {
- # Bild ist größer oder soll vergrößert werden
- if ($crop) {
- $faktor = max($maxX / $oWidth, $maxY / $oHeight);
- } else {
- $faktor = min($maxX / $oWidth, $maxY / $oHeight);
- }
- if ($faktor == ($maxX / $oWidth)) {
- $nLeft = 0;
- $nWidth = $maxX;
- $nHeight = floor($oHeight * $faktor);
- $nTop = floor(($maxY - $nHeight) / 2);
- } else {
- $nTop = 0;
- $nHeight = $maxY;
- $nWidth = floor($oWidth * $faktor);
- $nLeft = floor(($maxX - $nWidth) / 2);
- }
- } else {
- $nLeft = floor(($maxX - $oWidth) / 2);
- $nTop = floor(($maxY / $oHeight) / 2);
- $nWidth = $oWidth;
- $nHeight = $oHeight;
- }
- } else {
- # Abmessung des neuen Bildes berechnen
- if (($oWidth > $maxX) || ($oHeight > $maxY) || ($expand)) {
- if ($crop) {
- $faktor = max($maxX / $oWidth, $maxY / $oHeight);
- } else {
- $faktor = min($maxX / $oWidth, $maxY / $oHeight);
- }
- if ($faktor == ($maxX / $oWidth)) {
- $nWidth = $maxX;
- $nHeight = floor($oHeight * $faktor);
- $iWidth = $maxX;
- $iHeight = (($nHeight > $maxY) ? $maxY : $nHeight);
- $nTop = (($nHeight > $maxY) ? floor(($maxY - $nHeight) / 2) : 0);
- } else {
- $nHeight = $maxY;
- $nWidth = floor($oWidth * $faktor);
- $iHeight = $maxY;
- $iWidth = (($nWidth > $maxX) ? $maxX : $nWidth);
- $nLeft = (($nWidth > $maxX) ? floor(($maxX - $nWidth) / 2) : 0);
- }
- } else {
- # Bild ist kleiner und soll nicht vergrößert werden
- $iWidth = $nWidth = $oWidth;
- $iHeight = $nHeight = $oHeight;
- }
- }
- # Bild einlesen
- switch ($oType) {
- case IMAGETYPE_GIF:
- $image = imagecreatefromgif($img);
- break;
- case IMAGETYPE_JPEG:
- $image = imagecreatefromjpeg($img);
- break;
- case IMAGETYPE_PNG:
- $image = imagecreatefrompng($img);
- break;
- default:
- return false;
- }
- # Neues Bild erzeugen und Hintergrundfarbe einstellen
- $nImage = imagecreatetruecolor($iWidth, $iHeight);
- if (($oType == IMAGETYPE_GIF) || ($oType == IMAGETYPE_PNG)) {
- $transIdx = imagecolortransparent($image);
- if ($transIdx >= 0) {
- # Es gibt eine transparente Farbe (GIF oder PNG8)
- $transColor = imagecolorsforindex($image, $transIdx);
- $transIdx = imagecolorallocate($nImage, $transColor['red'], $transColor['green'], $transColor['blue']);
- imagefill($nImage, 0, 0, $transIdx);
- imagecolortransparent($nImage, $transIdx);
- } elseif ($oType == IMAGETYPE_PNG) {
- # Ein PNG24 kriegt ein transparenter Hintergrund per Alpha-Kanal
- imagealphablending($nImage, false);
- $oColor = imagecolorallocatealpha($nImage, 0, 0, 0, 127);
- imagefill($nImage, 0, 0, $oColor);
- imagesavealpha($nImage, true);
- }
- } else {
-$debug = 1;
- if ($keepType) {
- # Andere Bilder (JPG) kriegen eine Hintergrundfarbe
- $oColor = imagecolorallocate($nImage, hexdec(substr($fixedBG, 0, 2)), hexdec(substr($fixedBG, 2, 2)), hexdec(substr($fixedBG, 4, 2)));
-#debug('imagecolorallocate($nImage, ' . hexdec(substr($fixedBG, 0, 2)) . ', ' . hexdec(substr($fixedBG, 2, 2)) . ', ' . hexdec(substr($fixedBG, 4, 2)) . ') = ' . $oColor);
-# imagefill($nImage, 0, 0, $oColor);
- imagefilledrectangle($nImage, 0, 0, $iWidth, $iHeight, $oColor);
- } else {
- # JPG-Bilder werden in PNG24 umgewandelt
- $oType = IMAGETYPE_PNG;
- imagealphablending($nImage, false);
- $oColor = imagecolorallocatealpha($nImage, 0, 0, 0, 127);
-# imagefill($nImage, 0, 0, $oColor);
- imagefilledRectangle($nImage, 0, 0, $iWidth, $iHeight, $oColor);
- imagesavealpha($nImage, true);
- }
- }
- # Das Originalbild skaliert hinein kopieren
- imagecopyresampled($nImage, $image, $nLeft, $nTop, 0, 0, $nWidth, $nHeight, $oWidth, $oHeight);
- # Das neue Bild speichern
- switch ($oType) {
- case IMAGETYPE_GIF:
- imagegif($nImage, $cacheFile);
- break;
- case IMAGETYPE_JPEG:
- imagejpeg($nImage, $cacheFile);
- break;
- case IMAGETYPE_PNG:
- imagepng($nImage, $cacheFile);
- break;
- }
- # Aufräumen
- imagedestroy($image);
- imagedestroy($nImage);
- # Pfad zurück liefern
- return $webFile;
-}
-
-# sitMoveAllUploadFiles()
-#
-# Verschiebt alle Dateien eines Verzeichnisses
-#
-# Parameter:
-# $source - Quellverzeichnis
-# $dest - Zielverzeichnis
-#
-# Verschiebt alle Dateien eines Verzeichnisses im Upload-Bereich (unter /upload/)
-# und passt die Einträge in der Datenbank entsprechend an.
-function sitMoveAllUploadFiles($source, $dest) {
- global $cfgClient, $client, $db, $cfg;
-
- $source .= ((substr($source, -1) == '/') ? '' : '/');
- $dest .= ((substr($dest, -1) == '/') ? '' : '/');
-
- $a = array();
- $p = opendir($cfgClient[$client]['upl']['path'] . $source);
- while (($s = readdir($p)) !== false) {
- if (is_dir($cfgClient[$client]['upl']['path'] . $source . $s)) {
- continue;
- } elseif (strlen($s) > 2) {
- $a[] = $s;
- }
- }
- for ($i = 0, $n = count($a); $i < $n; $i ++) {
- rename($cfgClient[$client]['upl']['path'] . $source . $a[$i], $cfgClient[$client]['upl']['path'] . $dest . $a[$i]);
- $sql = 'UPDATE ' . $cfg['tab']['upl'] . '
- SET dirname = "' . $dest . '"
- WHERE ((dirname="' . $source . '")
- AND (filename="' . $a[$i] . '"))';
- $db->query($sql);
- }
-}
-
-# sitSafeStringEscape()
-#
-# Escaped eine Zeichenfolge für SQL-Anweisungen
-#
-# Parameter:
-# $string - Zu escapenden Zeichenfolge
-#
-# Escaped eine Zeichenfolge so, dass diese sicher in die Datenbank eingetragen
-# werden kann.
-function sitSafeStringEscape($string) {
- $escapeCount = 0;
- $targetString = '';
- for($offset = 0; $offset < strlen($string); $offset ++) {
- switch ($c = $string{$offset}) {
- case "'":
- if ($escapeCount % 2 == 0) {
- $targetString .= "\\";
- }
- $escapeCount = 0;
- $targetString .= $c;
- break;
- case '"':
- if ($escapeCount % 2 == 0) {
- $targetString .= "\\";
- }
- $escapeCount = 0;
- $targetString .= $c;
- break;
- case '\\':
- $escapeCount ++ ;
- $targetString .= $c;
- break;
- default:
- $escapeCount = 0;
- $targetString .= $c;
- }
- }
- return $targetString;
-}
-
-# sitSendHtmlMail()
-#
-# Sendet eine HTML-Mail mit HTML- und Textteil
-#
-# Parameter:
-# $html - HTML-Teil der Mail
-# $subject - Betreffzeile der Mail
-# $receipients - Array von Empfänger ('name' und 'email', mehrere möglich)
-# $attachments - Dateipfad oder Array von Dateipfade für Anhänge (optional)
-# $sname - Absendername (optional)
-# $smail - Absenderadresse (optional)
-# $mailer - Versandmethode ('mail' / 'qmail' / 'sendmail' / 'smtp') (optional)
-# $sserver - SMTP-Server Adresse (optional)
-# $slogin - SMTP Login (optional)
-# $spass - SMTP Passwort (optional)
-# $sport - SMTP Port (optional)
-#
-# Sendet eine HTML-Mail mit HTML- und Textteil an einen oder mehrere Empfänger
-# mit keinen oder mehrere Anhänge und liefert den Erfolgsstatus zurück.
-# Die Angaben zum Absender und den Mailer werden, sofern sie nicht mit angegeben
-# sind, aus den Mandanten- bzw. Systemeinstellungen ausgelesen.
-# - email - absende-name
-# - email - absender-email
-# - email - mailer
-# - email - smtp-server
-# - email - smtp-login
-# - email - smtp-passwort
-# - email - smtp-port - 25
-# Die Empfänger werden als Array aus Name(n) und Email-Adresse(n) übergeben.
-# Beispiel 1: array('name' => 'xyz', 'email' => 'xyz@abc.de');
-# Beispiel 2: array(array('name' => 'xyz', 'email' => 'xyz@abc.de'), array('name'...
-function sitSendHtmlMail($html, $subject, $receipients, $attachments = '', $sname = '', $smail = '', $mailer = '', $sserver = '', $slogin = '', $spass = '', $sport = '') {
- # Eingaben ergänzen
- if (!is_array($attachments)) {
- $attachments = array($attachments);
- }
- $sname = ((strlen($sname)) ? $sname : getEffectiveSetting('email', 'absender-name'));
- $smail = ((strlen($smail)) ? $smail : getEffectiveSetting('email', 'absender-email'));
- if (strlen($sname) == 0) {
- $sname = $smail;
- }
- $mailer = strtolower(((strlen($mailer)) ? $mailer : getEffectiveSetting('email', 'mailer')));
- if (strlen($mailer) == 0) {
- $mailer = 'mail';
- }
- if ($mailer == 'smtp') {
- $sserver = ((strlen($sserver)) ? $sserver : getEffectiveSetting('email', 'smtp-server'));
- $slogin = ((strlen($slogin)) ? $slogin : getEffectiveSetting('email', 'smtp-login'));
- $spass = ((strlen($spass)) ? $spass : getEffectiveSetting('email', 'smtp-passwort'));
- $sport = intval(((strlen($sport)) ? $sport : getEffectiveSetting('email', 'smtp-port')));
- if ($sport == 0) {
- $sport = 25;
- }
- }
- # Prüfen, ob genügend Angaben vorliegen
- if ((strlen($html) == 0) || (strlen($subject) == 0)) {
- return false;
- }
- if ((!is_array($receipients)) || ((strlen($receipients['email']) == 0) && (strlen($receipients[0]['email']) == 0))) {
- return false;
- }
- if (strlen($smail) == 0) {
- return false;
- }
- if (($mailer == 'smtp') && ((strlen($sserver) == 0) || (strlen($slogin) == 0) || (strlen($spass) == 0))) {
- return false;
- }
- # Mail aufbereiten und versenden
- $oMail = new PHPMailer();
- $oMail->IsHTML(true);
- $oMail->Mailer = $mailer;
- if ($mailer == 'smtp') {
- $oMail->SMTPAuth = true;
- $oMail->Host = $sserver;
- $oMail->Port = $sport;
- $oMail->Username = $slogin;
- $oMail->Password = $spass;
- }
- $oMail->Subject = $subject;
- $oMail->From = $smail;
- $oMail->FromName = $sname;
- if (is_array($receipients[0])) {
- for ($i = 0, $n = count($receipients); $i < $n; $i ++) {
- if (strlen($receipients[$i]['email'])) {
- $oMail->AddAddress($receipients[$i]['email'], ((strlen($receipients[$i]['name'])) ? $receipients[$i]['name'] : $receipients[$i]['email']));
- }
- }
- } else {
- $oMail->AddAddress($receipients['email'], ((strlen($receipients['name'])) ? $receipients['name'] : $receipients['email']));
- }
- $oMail->Body = $html;
- # Nur-Text-Bereich -->
- $sMsg = substr($html, strpos($html, '', '
', '
'), array('', "
"; + //print_r($this->_aAreas); + } + +} diff --git a/conlite/plugins/pluginmanager/classes/setup/class.pim.setup.plugin.uninstall.php b/conlite/plugins/pluginmanager/classes/setup/class.pim.setup.plugin.uninstall.php new file mode 100644 index 0000000..b52ea86 --- /dev/null +++ b/conlite/plugins/pluginmanager/classes/setup/class.pim.setup.plugin.uninstall.php @@ -0,0 +1,38 @@ +isLoaded()) { // plugin exists in db + $this->_iPiId = (int) $iIdPlugin; + $this->_getRelations(); + if(is_array($this->_aRelations) && count($this->_aRelations) > 0) { + if($this->_deleteRelationEntries()) { + $this->_deleteRelations(); + } else { + return FALSE; + } + } + + if($sDeleteSql == "delete") { + $this->_getPluginSql(); + } + + if($this->doQueries()) { + return $this->_PimPluginCollection->delete($iIdPlugin); + } + } + return FALSE; + } +} \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/css/images/error.png b/conlite/plugins/pluginmanager/css/images/error.png new file mode 100644 index 0000000000000000000000000000000000000000..296415e2f6c565b38c2bfa0edd53f0b11ffa5cf3 GIT binary patch literal 4340 zcmVKLZ*U+ IBfRsybQWXdwQbLP>6p Aqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uh f59&ghTmgWD0l;*T zI7 09Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&nehQ1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_ LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_Ifq H8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ 0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 z fg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vF IcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a (?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-k iKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BK T#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z000IbNkl pgpD*}NI6sR_e0@m-g^ZS%v##Np(?z&ro_ z_S+fYH1HR|{VC-_YrR?o-VTLACw}+B3+z2~h)663<($#FE-&PA{JXoGFM4|LJnuO0 z;c5|B4Zz7qAA9U*qN|J8x^ ;K8ngi3B>A!y6evFDxuKQsTNml)}Gx6F;5C+_sJ9jvPUGURU3h zD{j3=R0DYXSC2e$^uS9mp=M_AM@GQ+7me$R^)k oW6hkTym*I#2i^bm&+9b$TF z>gadr^jLLHRQ7?eX__ZGUw<8L-^L#rf
$x>G4A%ggUv7wtHB$t3Y&k-fWj z1H4-gfMH1a-oB@w#=mhR$npwr%7!kaQoMZeBHiiqqPN;{xG*w8XI~!|#>SSscim+` zy=&KarlSKX#Cw2I4dB4eojVC4khY@8Ds`kCJuWwnlCi?s79v>$$ zFtA+y%{Pd$;bJl1(z6;Iq;2a~fM=@#Jn@UhMsz-3i`;S0u8aNr^ELIFxOS~Zmff`r zmCFT9Ykoe^S&F8bo1--v1$d&m3^zA=9-?Bu@qO?-bg>wem*+9t-cEBexnf_RZEr`c z*7psA=3)_Gb9Ds5DwRS{PNHUJ&_Di&wrzAiAB3>na)sctU=M5Pv$i%6Vr7;RVVcOf zIVwxB48T>6g9wEXh5=I6RnlYIBvPrm01~MbJ+{5Fal=4_LMYdz@{}wCn6!N#844jy z6Cou+h-JK*@oEs&-wG*_ril!Nuzeq3vKl~g+I11pC?XtQib4e^Zr!ReXz$up3*y$T zns0?+1bU-Urh^D1s{wpIY}**oC^8zY8--lZ#TF^Id-tmH8t4WMUe zYKnOwkd_rh!Zd4gA=l9n80qL(lf0aGA{s?n7I`TdnwkRWsRrOHt>3>mHion;j94rf zFbtz6p>j_?SvS$@$%SDcA`y&O3~5<>F+Psc`hCE!cNl%pKR(VqrI7JBMpM&@AlAZ* z#+#au@i_OC;>y? BiXTmbUG}g?0WU7r!X5Dkg*tkE{DqJgOjd28C4oCm727yAnc8e z=x~@b{rwE2)2Hi=V=LYZ{+7wSrnYTsx)Zed1$Q>LIhKB zI2@FkWg)_0?$|b;T)xczW@b)*bocICZ*1DcngIavqq}$i^s?_eW9QBt+xzgt9DMw7 z8aHfMoFugG2ZvNC;mR~uDA4`YS6mqyV%l|2p3P?eT-s{?=KuiUY&QGPs1R4bcbwNQ z4GuoDy|uM*`<5;Ia?>WPNQAIy;(8u=$6+j!;pW5yH>alNrakZSMce+Qp!N4_x*OIZ z1vo&qp!MzZv$OvI&hO0UcWfOU-O+3qTS7uu5<&`!MXmF*zCSTuEMEW5!oqc67Ptds iOM29*SF`&`{~rK=WQCuj>qPGW0000 ;(@ literal 0 HcmV?d00001 diff --git a/conlite/plugins/pluginmanager/css/images/info.png b/conlite/plugins/pluginmanager/css/images/info.png new file mode 100644 index 0000000000000000000000000000000000000000..83de6545870d0e0af384f39f59b6a05c7277a3b9 GIT binary patch literal 4403 zcmV-35zOw1P) KLZ*U+ IBfRsybQWXdwQbLP>6p Aqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uh f59&ghTmgWD0l;*T zI7 09Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&nehQ1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_ LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_Ifq H8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ 0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 z fg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vF IcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a (?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-k iKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BK T#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z000JFNkl pg*qg{3T}!CNiW2d)(Mw{L~0-jD1`@ RR3%)dGRE2>0oK~$6SAJqp^yK~p;I3b z#qloSwg1-xdsj6s-|>T|p5!ytX{?3ozG2*p$p?lYhR77)XbA}|S(H?yU6-wE*Ye29 zmArB6XlvJhd+q^t&YJ_Xj9+bja81iMAAJM_WU>*1*^nRxV=cxOR&6XLvNpn4P!jI0 zb-1glitlgvI&XjQ{*Jc)eCz^0S}1_MPd&J% -r5u# ;N?xt4`Ee`b60~I3cV6PO@F(TFHQW@nd^9l5?J4W7ei3w+lPEYQN=@F zTm|s*Y#~rmirtTWc{N=lektY#FvSoUro&(@9K3Xczh0ay<^>q+G+#{8xU@~-WG2tr z2foUOo$b4=wR?cL9KhyP_ukKluNe1(f?->((3UBNOvgWn{Ct^lSn`!k#d$M#h%Ey1 zd`n;6VR^$cF7@_o2Hq_P@c8njpXI_>Kwv5iGSj%RmOuaG8S1NM=I;}K=q-V^Ov_L4 z#zN;vKtp{4mwJ01p8_zI1I_8`JGc=Ud}9cVEt0{H3w&67_l)J+e;MHH;P?yxlc8ZU zG-N|VHZa@>4L2e~F0y!WL2ovUanf}F&6PQ@)Kdw(NDxE@FSf+S5*Y|hVO5c_lpoyJ zax=?(-jw|-ZmRf&UoFV%G{DkI0PZK*h|ySMLc^>rf)o{cE8e7-|IiU29ZA*-%D3Va zfWXJ190?XoynrU9!rrX_NF`8?Bq(?)s07d-MY$EKx~8ytF^3oC!=uFftJf0cN}|ae zK!0T+Y7erbIIciD0;L5~GB1e=d-KYxf?mfJ1ldu5_DTSUb0dA|ghD4IQcI)~2st<1 zw8}Z;rd+QR5}i=wM*08_SBBu=X#W+K#6C_kQOJ63kqebEvN1yGS!1sg5+|u3_8INJ z0&uX>1F^Ms&v55S+@!=!DYPq)S|B7hQMU7+)F#wS`xoBFhWQzCQVX;za8n95DH-WH zMR^&nJd9qwdcKp`%aTYb+_Xl!g>Y25_3)3MVdc`rGXR|U>9@G&&YEf0Yl(IxZd#K_ zDPk|n$hk8Bug=vE1lGj6dfJY(uH3dAsWegw0xu>GEvBr{JbQF_?u?fLDFw +?l%nPSjT> 1fWL~) 3s#2KGbFu9>105asnclr)Z|(m@aiQ_20RX_*Tl@bg z6RG3grf0v?d-BBB>XtQDFK%2$&5|WJ$s|&1OcW7%9@(KGMtd%E?Q+j#n7Q)a#E}DU z7(ah`L3hJhh5>wF-1zz7Yw!N<_rN=oP3xM58dfyvMRzm^?WB>)!Nj4B!dx^l))(|$ t?8tTes{@z-Mu7369y9ON>~@a-4FG!UaA7!CkSG8E002ovPDHLkV1k>#P7nY9 literal 0 HcmV?d00001 diff --git a/conlite/plugins/pluginmanager/css/images/success.png b/conlite/plugins/pluginmanager/css/images/success.png new file mode 100644 index 0000000000000000000000000000000000000000..743ef89c3a48cb65d51f0efb7305be9f2beba401 GIT binary patch literal 4447 zcmV-l5uomgP) KLZ*U+ IBfRsybQWXdwQbLP>6p Aqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uh f59&ghTmgWD0l;*T zI7 09Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&nehQ1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_ LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_Ifq H8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ 0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 z fg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vF IcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a (?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-k iKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BK T#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z000JxNkl *jjqRL#X=$%R?Q{ZV|KBh(? Zq@OI;0_MPo){Ti_SrZrH;{`}q5Tk4 DS8{2Fa|1*s#8{2B7Gn(-GwoV9 zf_tjwb64fPY<=n%96I*)wv+!(dB87cN?`xvwVUgoeDo*e!ZFe#UHCd*l-e3h3}me- zl7X0%!BQmCooQ!4USL7>5}w%b4BF`WPfi^R$|+Gw;JI(yziiv)^*`iF{u1eI=e3M6 z#Y`tW1}hRNQNwBio#X7#XVg?L;d|>gb7`o5Ti3;op3<6_x(|3ty8C|o#Lvk3L-b|N z5^A4F`-G-AY8?=1pUC)=_aYPfb>9QD4hW+>7lu!BCD+fEjXyw2wJ(0E$`W|-(b_ts z2fd?b<3I&M;}cFBi}xZsaa|l+PIgQZ3T=VN21LfEW8@2*iinlpss(tl904hW*tPcI z$LP+q66ic(oOx&pab|^Uz%gK`3zJ#5p6KNDohi >@Hg+63|3fKV4WfBADBSy7AQ zIJ*E@N?_Bn2Oi?8zDzzGEoNbhK-vb^u1%r%-T3JEp0++`PImM6hT{Od(QuOXrarXs zF*Zb7A7caZ;V9W?fW-@!0BkBHuyN6Six|kBi-Q(ofWl-pttUDs0Zlw=>(kcM%Nq^X z@4o-o^(lrBV*@N9#)cRIdNZxm%&!61SV~~!?CL7~=xVXJOfXqYktxu6qKCikJWlJ0 z9ztEfkH!h294*H?d9$H;`u6$WYW!#%UtcBAxp+wn a@&hYL_=cj@H=DkOz@Apoet>YkM0boHX0dFYx zU-Hffkugkd5hlPV?A@2n^Zh*!mIeRqp;buXls|MFP(l#dai%_s6H5?iQ^1u1B?MA9 zlm7e%wbO$AbI-YHzdip!?REbvbtMF@6d2<(^^}|-a53;hJf(1@L`i`Z*L-K=nwuV} zI~&(rH^0=C6u462DMjFi02fOMoEjVT@ub9+0_lk2dQI_$BWufoHyl|zZEmScr #hUe{o%Ts$}WY2k`AsEld*@=;{c7N1P=H1 z4Pzrq(sfC=u@Yqh?oF)+U~g*uEy1OT!Cgtxb+M79w{IBWa47+8t=-#lI!!_;lFG#s z5+y`gNq={A!!2bOPO QVN7{ zZri04cuJD=Tq-@6d@kfn+aSQpH#!XiW9*L9(M~+!GTTc~ RCvs)@JK3!7uSSvxS>no;7LJJ zDP~o8%&G9GbQP&%9rUNOua;|2%e7?NTiY*rj^osCdh9_wrAVlVLKG4h9q*JDGiAFJ zj)OC0%@fL{LMeoGIGj31Yx|`GH)>4FHl-i`>GHGY=a!L?eEpWXrOd5Pl5{-+9T6Ih zHU?vh?YR>ZkfJEPClyi%Mn?0zf256`p3H&f*M^^6{i}O!t1A}GuMO|X|494kq2}!m zEt}8!RrgbsteBios=$Qh@*y8JcW~; {+72gzmJz%-wpu)THeaMsS-}pl{$ax zr=Rye{`G}(XDwcMH}k$Sn`FX8DM1t&@`aG};20g#*;BDvlRdU002ovPDHLkV1oU?Xz2g| literal 0 HcmV?d00001 diff --git a/conlite/plugins/pluginmanager/css/images/warning.png b/conlite/plugins/pluginmanager/css/images/warning.png new file mode 100644 index 0000000000000000000000000000000000000000..1c6b8eb0fb39720842be86b0343adfdcbf929982 GIT binary patch literal 4567 zcmV;|5h(77P) KLZ*U+ IBfRsybQWXdwQbLP>6p Aqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uh f59&ghTmgWD0l;*T zI7 09Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&nehQ1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_ LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_Ifq H8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ 0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 z fg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vF IcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a (?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-k iKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BK T#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z000L9Nkl SNYXfs^Xd58j=jEK@7}%l z&I}K`cCv|0oW5kFbMM@lbI<(GnRCvZ5yluEW|KVRW&`}~r|qj^et&Mu%MJFz!5XWu z$&+E)5z2~;rSjU%&8g(oTXE_)dul%U^=f22^P?NL0sOyqc(y0q>Sm8_PK@t*sZ+@M zmZwQ%TCm(SQrc)05*O#az#nOv89lvYcs%*53qkWgM#9?O19knmRas!A)|cxz@?yjJ z-saA|G(GwXmg4~i4CS}MU~s)gyt;Pk+rGrcXhC*f{_E3|SC7yC)9*O?Wctef&jjFf zzO8@nreycVZEs^IYQPv&aSj#Cp~D4?iZD6`143E|CxMlyLAoiLJNMGiwuAK9KlJ{6 zsI7mSH`Mb$0Q&Rm&p-c#$G5a@{sss^G(S${kD^rwT7%IT%5P)9EcP`*+PIk(>~s?w zd%lC~{ki)u7tQ$|@8;)M1>khPt^fJ0k8Nq){B?Bb6U HT&v& cAovpIFFV}Ho zMF59qd(vOY+~{rZ`X+IHg2L1QM%`Y}r~spbrLnEMzD-p!4Zs(lJBX9al;##m7cnYN ze!QQ^AEvc)FHdEz_a2_@NiPdvotr(@v}rfe=!4v )4;d?m{* zjP)aRk%pEY*16eZ_W(FN+v7fwzOl2heFuff^O(3$sm hvVtyxDzGs6ZyH* 5sKyLC y*WV{}9?d4{Oq<0Lc0<9+BT2S(k&U(S|GJ%dpNoQ$B}&UI7(NL$5}AOHe% zR4nghT&AcL|2nP^2rzTKkGc(CrZ92(zK4$hge{QdNn6EK1pr%U5zP;x3sdOmP7QAV zEv!W`w_ASt0vZsOxc~7d1k#aUa@azP3IMT@#t>k+vSci^%3>lMq3CB;1wdE=%av$~ z#73G506A5)ppB}vT??a2C){c(CF5TtUDw8}6!%eHl+5p1#IYi$sun5$%&64$FbcYp zUI~Ck!78i}=SRp6{1$OP0J5~W HG2UI`#h9m(hX?z%_PSS5!?vy3m?>41LB z`D+DYWoTdH($Sh&dGBqBRb?Yxn|v w{=}3enR-~YM zJKuWqKfL_2tE}1nLxR{W%O@R)m9Vgr4oJa5b`D=9-l_m_psqhWmD_M)dep~CIM_)S z%e9cUL`bnLb?yE>RmmCvx^{n$Ok>+UJkpj}u2qtkaF`zRIhEUR;y_)0c+X)p9M S#J(R!tdvxRjFn8%a;=*Xfys#zGwU=bY$}ltLGaT0LTecuM zP}iS3>31CU2F7|jwznZHiI5T%gy=|NbfrH8(;qQ(?3oHjt8hBU!b-T l2S 9RMYR}b}deK3$Zd#UdVQK)dLJrecRRMn@c zs!dZ>lftd`a5G8VYLBX#RB60EO`^UUr`jV56@&k}!UqGXv#%cN>w3_#T)zI3zOTLh z%2R)QZtmjF#`Xr*KHiM&Re`sd1`Wo55R@O~ wcevY`0m;_cU&HPtYwWOGEEu0S`XW`k(NX&O&rGLvw8eUpV5iPoSJMH z{Kb1yhy3h~%b)dTq=6!k^|SfWw|{=>$3V@#{at&uZZzB1SI<6@w3XusB_d;)LTp7h z=iRAu*PM@!9l7v649)>lK(;JLub8GE_VxUK0{}V|?Uw7&oV002ovPDHLkV1mX9 By~_Xq literal 0 HcmV?d00001 diff --git a/conlite/plugins/pluginmanager/css/pluginmanager.css b/conlite/plugins/pluginmanager/css/pluginmanager.css new file mode 100644 index 0000000..2239862 --- /dev/null +++ b/conlite/plugins/pluginmanager/css/pluginmanager.css @@ -0,0 +1,101 @@ +/** + * + * @package pluginmanager + * @version $Rev:$ + * @author Ortwin Pinke + * + * $Id:$ + */ + +#addplugin { + border: 1px solid #B5B5B5; + border-top: 0px; + height: 40px; + padding: 8px; + margin-left: 10px; + width: 650px; + text-align: center; +} + +.plugininfo { + width: 550px; + margin-top: 10px; +} + +hr { + border-color: #B5B5B5; + line-leight: 1em; +} + +ul#pimPluginsInstalled, ul#pimPluginsExtracted { + max-width: 550px; + list-style-type: none; + margin: 0; + padding: 5px; + margin-top: 10px; + background: #eee; +} + +ul#pimPluginsInstalled li, ul#pimPluginsExtracted li { + margin: 0 5px 5px 5px; + padding: 5px; + font-size: 1.2em; +} + +ul#pimPluginsInstalled li>div .pimHeadline, ul#pimPluginsExtracted li>div .pimHeadline { + cursor: move; +} + +.ui-state-highlight { + height: 1.5em; + line-height: 1.2em; + background-color: #eee; +} + +ul#pimPluginsInstalled li:nth-of-type(even) { + background-color: #dddddd; +} + +.loadie { + position: absolute; + top: 0; + left: 0; + background-color: #000; + width: 0; + height: 4px; + -webkit-transition: width 0.5s ease-out; + box-shadow: 0px 1px 5px rgba(0,0,0,0.25); +} + +#pimmsg { + font-family:Arial, Helvetica, sans-serif; + font-size:13px; + margin: 10px 0px; + padding:15px 10px 15px 50px; + background-repeat: no-repeat; + background-position: 10px center; + box-shadow: 10px 10px 10px grey; + border: 1px solid grey; +} + +.info, .success, .warning, .error, .validation {} +.info { + color: #00529B; + background-color: #BDE5F8; + background-image: url('images/info.png'); +} +.success { + color: #4F8A10; + background-color: #DFF2BF; + background-image:url('images/success.png'); +} +.warning { + color: #9F6000; + background-color: #FEEFB3; + background-image: url('images/warning.png'); +} +.error { + color: #D8000C; + background-color: #FFBABA; + background-image: url('images/error.png'); +} \ No newline at end of file diff --git a/conlite/plugins/pluginmanager/docs/Dokumentation Contenido Plugin Manager.pdf b/conlite/plugins/pluginmanager/docs/Dokumentation Contenido Plugin Manager.pdf new file mode 100644 index 0000000000000000000000000000000000000000..07a29aec38996a46944d709eafac6d6b66db0778 GIT binary patch literal 104821 zcmbrl1CTA<(&yc_ZR50U+qQk$w(UO6)3$Bfwr$(i^mFHZ@61Hpn27nliXFA9YQ>J) zYh|v?{Qp)Jsl2c#4FfGR6ls4!e@A~)e>M~&0X>1Op#>B-H=VSJjj59v0n^VFMLJP) zD<=~NI#DYFClg^4BU@t=US23iCkGP)YbdvjOP$eZl4iutXSD+jKdB7|U=Uy(DQw;` zn;v`uEijnz5U1Jebd5n0jav+u->S|rL##*iC)z2-)O4zK%FpNH)0t-r0 *Da5I;$oRq=x>kHsa^b6-MZgSr`|&3 z40F(8Z(|e_+VG)q*>7)}IL96FW)|O1C}61~0T?d9=x-oiXsR!0MOa@;5mmu;vX*1X zYHtzZYToI|tl(McJw9(BvO$W{+XpprRyi4SS3a-y5K^J)t9hQ3>os2T;7NG)SU0P2 zybLV7_U^u~T_q#B^MRD Y;>;;0 zE>XlKE8%bsa3~Q>?Lh_~T1DQpOgcMSnKQou1i>pMgW&486mun@VJH>Vqb F?1xaJ6muE3(9IiDKjMUBH-0BV1kZl$p?T g~| >tbe8Tf}x}n!z`@oLB&*SSVKXY}rb-kBjqfNAa z-cDal!yr~cNre%#Jz;CJB}wB|=Q&40^HxDtM?IznEC6M*N*g-hE2%`&cO@cPGj>Y1AT&S1>Gp7`W zarV35nb;r>1O;Q9-RC?Ikel+@;e^qQ2?VcRznNFG4)0$-Kuo$+pqU&N_k4mPaTDVN z<7SwJW+Ftbr`=o!S~T atDMlKfKjW%aFYRlYgL63FS&;EjSCtv0~7~!h7bE8 z7B&q))&*s|;cm(>M=+_oSa~LP7R0Pz z(VN8%d1>m!Byoh`{jZB4$}N-~Bve^BQY@p{s$#mLZO)gW0&Enu-t7(-8P=Lg4a&^} zUb4&RFpQomVl=)5h5Goy+Ppn+0G QK8TucDh8A_)F3N^QJuaehgUJ zg?@ =2+qDEZNq9w4zQmk~gt;4utYUNzH_Px|Y zL|qHo!adDjCU=!A@Xorc%Z 7*3j)UY zrv?Ps+f^Xva};1ZA^8Ba0sxywr_=}%pur{2%wX%sLc+vgy8S<%P$Gxi{b5nSk*pjR zzt{?woVRCXkOw}J?C)I)MeE^7038hmw0mgJWB|G7-8mY(G_d X359=S|D oX3p5WXOUu-% zW+#Ay>S t6#o-IRL~rmQ}9{vbh1}j31*!EjrX=rSEhs@;@I2nZ>ZgK0STw#^7KqwQFqV z)O_k)=} DUrr7ci cIt$@I$119A0mK%d zZ3&kM>J3$jfM@ry2HmE%91=5Hs)LJ5cZP$WtTCq%?e2cH1^_-}i&dXOZQ|`!lzr6C zciWDigz^%X-!}-gG5du|Xf%93(k{~&eT)rRhC985OG-1n{l5H2W7qY^u=vmz;T%oC z34EQ-wCUqz(qmrwi_vvHO=#P7pV7^BPNz5|@b~rC#-9XN)T-vsmq_*3by_aU->qhE z=Y~n>^Y=c9K8@R7x8%#2- _o*wL`R3Xtd>siZ>G-@}&5`;4|e)!|?$a-(+q)J=FII(;SKF+^JnFS{JR z>u^-jIHRGgjS+z@^w4>{g;~t{B+?gO6pSnUExwIVgVvVNP7o0Qp$ytLjSlS FQBJ5K`j`8%)9ZoPlMF@(#r$GehVYKJC1>(U|W%~ows zEGnh3X$`!3cm*uZzft(T!fZ?P>6+ =|5UT=-EFF8w zJuaOIx(Gwp5I(t_#e Cw3h{$=B^=9yoNoarjejw$)B;GBBf6gH!K) zDnE7^XC%_{dt1GA{e4_*u~DhbJZj%2II2~5$SLx&abBm(tF^@T_3p6o<)Jso$$h$D zyk8jIcGyTFBYbgr5Y@KoT(9GO9mu@v!{)Ia`KT?sH*w8tMUeHR(IOjm>^Wz+%4~%w z4jA25t3kJnvGA2IpQEfnjS6kZ(#Fp%30)EWy#FqhJOw=d-ee)3Ig=T5#ieglp-IEk zuTgH4!`cXN+YhW|WNyqRM@8rl&doE3icih;62}S?+yXUDb4Tu4FF7)F<3)(79_vB7 zLG-Xf$+j&ID-b<7Y#RMBEHQmosCgDTH^t;-;LSn(lS^seRu$On-vp#!7QleWF0<1H z-CDcQ^*8-`O6JGE5d?c^%MML&w}z5fEB6LNV6YQmQLjXeKn5|v$-`KZ1pdB#n|6B! z2zR;e!J^XW+!HWz=6Y^EUu_o>&Dq^kgVTdJ@9{cxdBQxVg_T3U)KSg_y_ =$1ANHqbOY68&6; zZOQ)zd|faDW&y(&7`+yylle+k4Y6c8d a0QHzgj8Rc@p++i6S4a{?T9pW#CF%I4Os3H&~%d#d?J;K6nMlhPGJzmwX?HPj( zIn|w@+z;PxA8r7BT9U8&GHxwQwf`cyqo>oc<7bF@zoog5`;+lx!sqs`=s2a-1Zl-C zwV%pIRYTlAY1?+a7|%e{6R$ro1n7N5Z9%{n?(7QCANpZ2pGCU}Mn1{h0EJo+sSV?H zpr$G4@x`~H_*?~LVq^SYGVbT-ALR%2kKp^~fQf~H^`GW{U1a%Rx=`8O&V)`~&d|cd z$cawL+0f~qa|vq$QxiHhbK@Vy$iT`#KqqcuZffR4z|2NKCur{EC~x8*WNU3_Yhz;L zM8Hn)-{O+>A8`rwAJiqCkgb)igOZ(rkqMo!iHo_BiK3Vw)c>J5)3o9P2@pgy-l*By z?GzK!DDpNZK}7_nU!h~3o`9wO$AJL;Yl|T(%q}P0h}gQ7rdX6a{bj!Lwn}_a7FNht zR&=e#r4!s?T{YpO8Stbn!OM {Sf@skTFdT}l^Q^rkWsl;+dT2u^>Cf_3m0=S&wt|)L7JYZvCuN9} zmoH(+4B-FlLeGw!mpviuaM`U&*Yn>s3N7fE%7lKp%D?r8lssaEqRZ~s5BpBnEnnTu zX0PpPorDpW&r2Kx$G(rdsg#Z7&mGHW8Ob?LorSen^_eP<6-M1lC&i8~5qR#;DW+A1 zq!*t~TLAW`%vOG4oso$h&-3oscL=H2`df|aaoREpUkcZ+n)@J`@W%}!7hVXMR{h#s zz>JZy|2@DjH_-bONP_>tnf@{GKMur9&+>0yV*Y>dB_?L3fBVuuZuNihCAR+`zO-TB zP)-jcs^GF!!9+Ded&fA59il#GiV2f)lyw?o7-X$zjIH_R^>2>?;NN84)YbE?*i@Q= zz|i}PWm-5 $W1uMx3-g zoz5!Yw376qdnrnhy}Dpv18GMy>qHhWI1#0@=h>*mb8DzH{bIOfD&faRz^4#V-pPWg z1@5nVc@~luJ%$evB_~&13 yM&lYKxNm`#SCo-}FGQK@~grY={+xA- |J2)sJg+VgBrkxz4MjLf+1cPMg%^e2TJ{m+#UI zZIyUzNIAPo`K0FQI@uy>+l%Cg9P(S6j2mSPSlRD6PSW6YAxXC9IVRWxdwlW=EGNxs zOZP8poA_>nclCN$5zE9>pcD4_84cc-Ff;X!98cK0tVwha+`;H*TdOZl(F4- iEcCGJ|RB)L78QN8IM965l5_2osO zr7!xGd`-v jr_IDv*I9tu1>5bsp7+v{kib zJsR%dtRgu~kUW(LrNq>(A47LF1E<=Mh&)4Zp68o-+weOegk?c0CwL6Tvuh@)osTZ) zP3% 0g->X Q^0z(SRhkx=b1X|CIkJ+ zbUP~!&oVrpdvZ!%)h_uSdH0hYEeA~yFr=^9zIk^i7R``({Y?YU7HpEQ6Gd>2Qhp4l z=2Y3lgAM8jn#upn403Fi0#mPBz&eti;Fe{JBKidF%Fz{0hzAQbwgo5UFMfTTE1qiX zBRq!#f|=UQrFDO43}^stO~%%v^Nx|>B9nS-TPpN+)}@3~xkev*cpz=f;mFkgeLDPC zpY-9s0c_zpum3~*`X{LT6TcYfnV9|^z&QR_0Q)aU%0T~5@c9pU?0?T#hdS#Pm+VO1 z(`qlR_%2%L+c}scQ&ax#+z2V~DP8 D<-`w7oYek(UMd@vk=Az}aO83WflYBmAUyl!s3is35-8`_DCKqYB*K|fkn$P^p zE0L!kmEB)8O&0sr_mlmDpIy>dNu! 6&kt3`LbD@&bA(dX(RPlC dS1~(+e ; Z;*+ymB(&
$#bOLn}0Oap8}exFuj~;Jq~}wdT9v zm8^mMu?5IOghSp2yIk{|PVXE{Ou^$r(LpimERhHBwt&t7_Qlaf3%x-gYk-+t+|9Td znGyKQ5X&}`942T?NGoaWKQK~Sw0&hkt7w-!JW$ZHlE=3kNbUKxO-K`-V zl$(`|VPY^50y%M-62Y9*gt7Nq@%@2Ic#i4uG+7)5t&}g;B66Q8FnJ^@jNL`FqX`z& zE=Bia0Kk-ovR3ZivtbTQM^aD{g#{^hDBKjSqqy`(XLvt%>E))P4*{aC3_==sa^9=h zQdo+(YY#7x%IS$Uglu2>XiA7SUM+(lU_J$168q&=S&|6ao=NEi4annygK-hJWAWtk z95YiCiWeOw?x7>EM4RX!a3`gEPAq~Ke`dj5;IItW7`sV4rju^Q1?JT{-=nbsMH?qU z=p!jsTu4DhqX}^CdN2NqC}#e7G2LkR%n+kfI`+{C%E`6AMbYH4HT61iu?DD2e#wDt zwC$Hx90Aep6b{lger^-*%^);RKdx8pozO}si 0suyVRSi#Ya8%ISwhOaX*Zs4?EMS8OP8PMGp&Y>33S~}Egdm94V^6~m zM^hNETTz$gL-qI#X%m58x05wOf2GY-n1*QPNS4HJ7G7Pi@FClkXhGQdJ#oSz1xKpE zc>Q7~nhaycUUr+3x#2l<`)2DFCIK(1nOU11E&Ryr?yD^2S|^oQ$$`KQQ*U*luQ~Z_ zDPdteZ9S6sugNayZYRGAnY(41X+GL)FW_&^zrO4bms$F&=>kb#oXboyKMua>Ki+)a z7C$`LC`o*Jz NLLI0|< ze-pv<5`$wHyXYeZdg+^iz7)TiAj<<^@9e6o#(KmyM=Nn0#pgWDI^j+;Bv026Ogie& z9Bg^Fp`wG_6cfo1hqj_t;Y(RNuU+`pEQFrF?Rw@nNv2fj@67W&dH?0vfi#*; A+Y3Z( zAOr|UO}JOZvXf3yKL$iC)Bo2ao`bx7`cW#y5YrtVnF@t4Ath1*TjnsruMx|ByGhaZ zKbQg;v1cVR_lR3TN5p$kR3S!SZM5h~E~4$R)3W(71cY}DMr>jQR`(5Pt{TVz(^YC- z`$(y8qUS!IcWY@n#%HusNvE{c_NCoi3*MMyv^qna;CY-dgTU;IbyHo>&U)h?b1hDM z?`JIwaA4 M~%=63B7$HSz*0NY%1tq zA{g#f@GHXa#NCJ4>38G707DHYv}=q}U*dm_>K6N;i<0JvwJFbb%E^eWiM__|=p jl&!_OKMzrlnhj3dqeb~S@sdQf+exd<$RcR=_xKx7USaTCm7Z^B3Rk3zp z ctZFTfs!V)p*>X|Uu x( z7 ^m_m`R^spp$^AU`^YND^1Pa+3gL3N( zkNjx+AAB=)eX(ZaB~y?PaK 0tYuo#10YZ&xpu}+xmVnlEn%})^&P9uvzg_sCz zTTB_4@{(n|7op(=15J-0h2!{38u@v9<>@=s;!Js`=21AdREf?1W $EbLkI#$vhSUu{>~zeqm{%9Yg||CMRx=po ;hESeZM_=RqZ8KaZ;ig>9SM3r($=7`cS{y~+8qb`F%)dIR7Ch)lJt*iURox{gU5 z?MTzMAQmstpTJVFQDV#pbO}0?M%iS;7JLfl=>4Ne3n6Ec(ZGGA4gqL;?Kxk2higvL zK=fp6u&3AMMZiVdZ8*DD-2fz@_u6gtu#?k3mRD9<#~4ZzUD4AE6t`RpmLovMl}V_H zHy8W6mq`_9&NnK3M;Y52hz$6i&mutfFMy`LdS!iUhzQRXNJM}Xisd # zWcEdP8(1p)%+!@PiB{!dKJ&`}<;uW*?ffX6lW1>4%mKjhcR=# AxqD7uu~}`m*U1UL z;N!pI-b7kQhXW+c=kN<5ynQ!*Cru)5?yCffMH~ mMMdfkQ347HbEiF-#FL@l6-Om;7TRJF`vY~>(b(+9y=4v zl`TJ&ZIyrh+0 Z(=Kr zB|+?>ObeGs6|)8hQ={!-RRfBQ#JH9R0h#fSN?b8%^b)|R%h(V12Y%t$CZ*2V$WuS& zk9giv2bavzXlsjgo?W(kQ|C*w?#l0Aj}ofHTRaN)<3;zTKbyx;m{UOPCM(xFm<}F2 z)F3_V!r6OqN+u%|6Qs!Z*I{2h{Ina= =7DeJE5q2E)+)gZ34lq7gOEp;P7zsVP6aYo7r&AANb9ND9yp@Vb8(NwarU!+i z_)3q *w=BI^e75i-v0XTb6miPsICI4;nAIklI)$#w- z`-~i{jQ_6p8UA001vAGF^7?Q3^+US;FT{f3AFB5M6@O)#+Tp4+U6)@azu$J{*=%~~ zZI!p>{yyRjNhRFy$HeGi)u*T50fbrcW150I4s&ek)rcn@Z^9vwQk~M^
FmRZdTspZJW929%oy;_HsDt*xDzabS#X zaj$3R?fR_^yVF!`nwzY)+vCSVQCgLkS6(y}pP`M9rP<`^>ZGnN;^c(7+R+&~l{tQK zjsFVCY5sE;%m;Y>oZE0@^SHRgg7q~ppZE2It1AwzrU55c_)PB9CPR^xJQ0E8DU%Go z>_%e=diO2Q>G9#>k=l^AH#|J+6@t>(3aPpWe? +7O=9(DVr||PRoDY@V*Ed-60xJ=IRV9eta-eWn-(0r>v~(e5bb{C#O!QeJ`0B za_6Yc8PVN+lFMa4wqn4l>i(II!;8H%FRwl?&*)m01)g0`b*a`yhs0cO`vaTJL874< zUhy)K%AHRW9F}o}An+>};z75O5=OnM>gsEdP8JQVsq-QJ{cyZhRyLJfw%}?r{pF(m zSWNUnMP>8*L9X4ybGVyTLb5EKcXNJ{#`FDYB@Ju*rp9_Wx@EH+`Iksz0=XWy!$60* z5;LNwwDe*c%Pxseybabrruqy-2-}=xSXpLM)ZLN*da$v+#K&toK5TSyfdlFTcsw~# zcXZrdS$WB3zkE`VL`7*}WqugLt&6j v(t!w8h%=p>((#fHG^_KH(Dot#`49{VT=Up+minGKjUjW z13bI3qOPa6EjJnb&v~psjGy0wzrTNW8ub7CJs#jE3_&MvV^@1wJ6YEdtJQwpl=ia5 zY$=~Loq02y<}fN|9gK>w@ Q>P@pPcJoXYst^u40PvQjTIwL>X!fZ0z-gg#tY^6qFUKCVTf0{-*Zk z^;JwvOm{w<-@kvOp`v>Gc5yYB&lknTU9ZNl);@l|KQAwor0;lmdiMAAiHhMrg}!(` z=!ESe @)at)dpC8sKbjO0+WwXz za@MTeS2(G1y3!W4u^InlqL0G^oBJ_ZLg~?1q8Ab=>7}zX+Lz TS37>Ow jnyA=tMC3XYIe@04UUq9!Q;kZeo@p)f!vjiVqX}yn`zix{PyWWyI#>LimS&69 zrJCLvu->Ejqceqb5~nljWcYTLIA^@mjxRojnG#pLHwD+-`1;v-*~Qr72<|Lvc|Zy9 zCGbwxrUia|jJx!+8I?8gmFAt+km#_*WFx@7{xJbZ^<<0aCr~%H#e_wLR2B9W=22aB zYc*MIQFY-ot1&QnC-424?I}5vx+IugJBOM{3e4u>rZPl=c2aP1ruW&!WH4J`GFVIk zzr7YVkBqHZjfGKJM?F(%Q&Um9XOG1pSxg%kczs%$;`#ad+dHD#^Nf76b4zhsdfKf? zpYaWPFB@OG`xCrrr1!!uS{viT-a2~W*T8dN;njy*la(*~b zSmaJir=p_j6{QCU8yWrH-8J~S|C{@;q-A@$B;| L62W`lNQfT21{2Zt!}+t|3EpkSu-?Ck8~!sg$*}?Je&D-PoV-aGtO$o%oSRxhBsd6DUC0O`eEv#@*(k_&ch~x%2Q_Ki; z$QW@%Pdx^FMp&)`zK~9>VK4?IOJpvT+Co%7Nzhv`vIV=-N$d%VzZQQ@2pDq!MjTjY z(xCq@h!D^@=Md-Qg^i8liwp{Ap!T*9)k-L026i)G`tx(oh=?`j&Y0iEekB;)f8b0^ z*&q*8RbAfRlS6_N;bFb^cR=P8O7f8f=-wnn@HmE~3Jw+Irf>dWi+Dbh0U>^VE}3T8 zuXS*Ej3;5R!$47LwJ{s7)*+yyKawv I=tS=clxN*xV$IZ+n4wCp@D%NH8vPC zvwpojoaT>?PK5zIqvLjRa(nsk^BbESR!&VF5)zj8_brJCul%hY=nT(Mo!QH&>tQ?# ze<1=okzL8OTfe!}LVntiO%6@e%kV;6AhqVT;r;G&zgKW9iiE<6Q iKL@bS4G8A-db^XMdEW^OJ#bd{BLWBb@-qNP12CN9?QXdx#w5K>+k-H1}G&f6L6 z%^epyg-ay4k}@_#s%7148neoW5Su$Kp7;MO`J=#ioijFHJios7CekUKay*rpkg;5? z2Od2D(=)`j<+i`m8yLkXB1BWi^L|kuQ~?0=TRLR5-t^w=>*Mu&sdBx}1UmnHZ!l6S ziCUw{3KR7G?X6{$J(Ja1Q(PQ^I1Lf1Y&wI3iJUx?0LLzc%av9rtM>j}?;8uo)x`x( zHq473Mg%&QU%5w2GR}It%X^{T`CPRZ5W@&Zg2Ey!CT1Bnkqm@}hnrj9{B*7`$ZO=| zx%>Nb=nr-&pj)fUB^D~uI^WmJzKV)U1hD^~c9%;|hXV))elolE-;-DvE>?nJ7J$=r zb&O?ucbTqR?w^m#iI5;n8^_=4w%sz %`^PMF-`VPQGM Y<&Sxm>AAQhtv8I=6jr5{><<(tpC;2f0Z2)r# T8s*RSWB7DC z+-lp~+wFqS%r%qo43}XS$H&hX)$|fqFmiJVV35r1BtDIW27}IRY-|>y+(hCZ(uz)@ zqahOzgo3SS mwBA+xmbkJ89r|A$;nGW*(sldpF$YUcs)JkBtG%6uH16@MnB0h$vm6F$JEPN zn 6eAlUy*x1*izW=cVvkdy8C0koAZYTWPfJ!?nNIV9-#&LJdqlP zb;Gu@Hc3HA$pFbd*I+T*NLjx0tUDD+IVHInGE~Y+VAc1qOi?=7wv*4=W)IVuGtNnt zbr$T6BsEU|v ehBsHdZv?_}12C zXs9_XEQhr8X%l1i!XgJ>9Vc~naSk|$<)r LU zIcEuWv-vr9F!AtwmY*^B2l&44`J~)JFerXN1l3(z58_;S{=+GEtY8m}m8gh_KgTdL zkguC?q;PIDF8XCpjkLO55xZoc$Oc-tL;{(8Li7$6N@$_Yi4K|Segv>&1Z$$u+CZBf z(S(w=Zg^PZjLGm`4_0qwObq-6QXG+l2$P%6^@-p^bg#Jm*M7lF*c9s5!Yye$aRJv^ zCY)i(h-49b5GF=hi)Tu%!bg}*3BAO53)0+A0|*TP&S0 52aAr(y8pwH`PNq7n|J5{^1wt}X=Ecd)v+RPQsy)U782 zLg~zZ4%^y_qf&Fo%Nw)ZqULa+emzmRU$@men!VbD95{;(YxC_6=aV>({Q@qjtFzqg z%NZGwyg3a<*G_?}(8m0cgityD)%LE_?suc}xVV9vn?m1rbl~yv7Q?95I5-;^sEO)Y z?LFJRBJ%PATI=J-(|RTm*0lisT>Ja|RFqzkky>x>z~f`G#f8C1$$Z{N(#C_E+y2n7 z&hUd*QJo)8hrcgjQbQU-pq1!SqEi4CosONZSGROfb!4ZxU>o4vI?iV`R!=!L>uFnQ z=P8)_DTt2^;l3#jze3(CYqV~`_lTQC(L7L(bf-)><#F|_FPrxWAWoIKWX&h6tVV5b zQ?Hehm0j->(knqLi$2Nr?hUsMr7DB@iqSJ1=nk7un>V#W#H5P~{rv|H5;iv`oSom1 zkoQwN+S{`w75d-hyuG*Y?}&E)W_6Je?6iy?WMy_fMenzB{h RiumK4j z@fT7tgXmNi&-f%Zn+<&|gKZw;5Mwfk&%}1EF+rqQlpZBuWQ)*4Uo82T`|DwHsZ7A) z<$Ciu9aE~|z6{1xl=tsyV_+Ic4amzDV^NrXq;)1~5 NhM{qUr9-lv7h zC3>@4K^@Oqp2{LI0Bm)$)zf_6I94EIJ<_RYqtH+ PFXeqaZcbeNkxN?x4)j6 z#Zw^eYlrcK>?4jq-GqP3!^uL#3keC?s{pXa=Mqfaj*@2!zvyFa3J@62Jj(i(0(L5K z;DQg|I8BV(Vb=eiG^`6bpWQw~K}AK($ r924fwlnnaF3WwktQpGya8|_#2F(3 z>GL_mFLo^m`W5D!3b3~W;4(J%Ybj3(V|KTRUfJDIL{{h8k0vBSuvLgvS{Vkl1ND e&y&`TU~k>fFAM+X$0&e-SXwJZzEBVq{m(@O8li-kz$6!T;@eoEZ!Bs?rU z@M+rUA5^rmcOhWlaY@NFWMs?ugmbGV1^n#1j*g^;hLE8lT^Z;_S03-$j{5oXnwqZS zVP!3?rCC6;?O&7@a}{anTOuO7A|i)ru8~z0QRP)+a Uel}IZH3Vazex!vtf=D6%qnUe zX*-_sl4P`MjF!Jk(y`*Q@N%+svdI7&l#7b 5 zjNEorcXS{>m+7&xvKlT%Il1>@prikUGsr0ViW(sVRAiGV@fYDVLVn?anIZxOv_O;w z;~c~yAg(CAE2D1|wFdMke*d6G81OSfJ|l2yLwSTjcTZ1X2&c%j)|hL8Gb4f%oIU6R zTy}eEAMmZPj6<2Oj=4|+3_k Z^)!B-lnioL2AF<8*#(x-4{+nxM5p6-Tmbmmkw<|Qy+Q9uOGZN? z_@!C=J9TqMM(_#*tZl0lu%Ix#0QC{1yUEWFfF$GwGR5^`Wp~BC&+0EUcEsDBE5eik z3<)7DUchUZ+S~ZT{*TT=%Fh!P>+A=X8`aAlG#3{wf|sr+_)Q2S1f!zc*WXd)y1~g) zsApJW=vIPfIY4R YTB7KR!HWf!~Uo*?7H+M|E3cd!7jgrGSVs zu4Yu(vN;Bc zx$vdqA-|`Pk>H}u60`PJ<__@5hZ%>!&;p^R0*t&l1 z1G0Zoa^*f67YG7 ^hR0P z*yJ|YN4@k^dt^z<7d16CJ@`CPwKO%26ZXC16B3X`t};yx&)ICZCPo#KRmW&kLbnkm zwoPQFcz)6=BORSw%jNkw6)kN@XkK0(xJ9OJ&yDxhT{}48!Fz4Cy^~t!cA}u5AX!!6 z2NfdG;`57s2`(;fbc}IeI58|NtaozmnpM*~^TN{7QaDxQmB7^0)ZP69F` pLIX}hK7mhhDpd C7lb4&DwE4#T5#No43}~)MT3F ze)J>V@|10Cs*G6E5Sq-zlT2g%Og|6WT(`a1M6`IzQg2JB`_V$;0^!U^g!{ySYZLyg ziHpnf@$muDG7@;jVN}k5N{(89U_?el#1rMYdP9P6Xt59xvh){saSF~hsf; >;U~!Sv59ma8eWRX7*Z=v*&M6b>39R{apI{r&x2Nmq&E>FnpHr=*6+$jC0R zEXCg5-UW^+`BpyjIT8R3Hsys}TW}#_P*Bje+%rQQ(~{ry?mtW;&-?6^RtR-AJXcZx z3kgyw=%GfGL_dazJHE&{#69RoRCi*{g4X3i@5+- R z)?@Oj$jWq^s2iG=0&2ORGtQ4D8GaTHdfb2T_}yXdM{sbW@1x3@6kThA`{~@yYW*k9 zd2`GkT-J28pkQxA#My;)Y#o)yzF=s*q2cSLCEiR~seMG>*UCy3wDGhsh`Hg$oq>jF zlqO1QHwin9SS)xDYB)10bLedh+C(lJma(5#O&-QbSC8<2P|I3&wTN|8Jm~tYRvxr1 zO4i$ADfMzi+CW+?D&dc6vzch=&0o2!6^INZViSI9eq<|P3#x)SETz^M))TJybCZ6a z?5wL}EMi>*Ty#I3RUCrzoH2u%`_YI%bJW=Ku|;a5hJ!hxdZ4C^q>fb2G^A)L;1UX# z8iOy_I|-Q(l=DW^X1QD?lf|8?kW;b>2N<5tY90UB!{u_(V!uCB?ekdfcsxZ)N?NI2 zYq;KIeck=tm3KM*@^L?nd76T+Uh8lunU%%qEIG?6pnvm&qZ6cZu2*V}e(=V%k&)3q z)sJBQ4>0T_w^4*QQl0o`)aGa}c4g>&LMS=1J+E4MJfAYy?G4|bE(5CQtFzw`5fSb0 z4kR`;&2az9tNdo1ow++4uhv#@&6dgJbbdTrYyj0hK0Zz;Iz7(z)m4=|2T}VWn7JG~ zY4!(4M`Vd3XY67`c7 vl$ctNFf5^DF>xi8RTb6kFpeRVdkS<^c4^bhl--V!XiGvuY**i zgAtMoIy*W}l R)BSPy1(DM8I;qC2qh(`Yi+l?f}zp#h-cgLbMru9 zoO=U6A>?N_&_W_CqobpTeh2MNOiV;XKw%U?GDe;l$F=57V(s|b5TQ|iPk(>NZGemT z+(zon$iPT5Ly%>2I3E3B+aie0qt^8KDcza 3S%h^jYody53)3v z?+ HQrYx;xfElR1}I!C?|0VLtRqR0 z)oF>1OHoHfQEoDkdWgogzwZ8d2zRxOrKqql#^>}){EQrK8x_Bsj^Q>Ro6Y$7q=L&6 z6HHXJsHFvmF+Djr$PFDev8mZMDq_#!AB-}hKQ@b!!)PcY?4HtQjkD9Jb@|5i=X!%D zZ5H7xxD2A(q|6jj18?smsy-ubuY1k6#TMfrIb$|GA6pSyvR^VXFoM`s1dIk!awQX? zj=G?@mE1U?Ev>n}L+L5Ct#jvyX*^VXi`CFEbuZqDAl$-4taw@)U(j{ef1;q&_hIU{ z7MWSS>H9dIu9&!5LnmupBtrc_63XNX%42`^d6vf+#p *yzxxPv6gF-$Z)z zsSFMn F;>kkNr7pm+<&8yFa%)0GXY zvI}w=>0OWa27;St@YeOA`_*o^KQ5{jiW?XZ>dYU1jVI9rA{&w@;1t?n-pElj03$J0 z4^y3*Dng#Niw&cS38+KNCCwmKAQuulGGMz?1^X^XQmrld-0g42 ^WPZQU6ebf00KVK+cY0@O3hqe*&TB zSKRLN$$2LR*FxzvV4Cd>))6=zjh%Gp1OY-7EuGArvHuoF;x)$TlQJN8n+*u`hRc YkEhJ!raL-4k?ZTQyuGEqZbBXX z#3Ur%t9`v$3G_dH4;^)NImg9)= JC%LU}<6s)ELCg3)`sCpA&N z%{tae*OrpsT%HSsE(t3mAee5i06O}!%7(>+J)bc@K|YCT%0x*-^|OrER^HZYEcmdL zr}`Tl)*O}xmd8ixQxaHG23#hI6S^xuzayWcIhAb0{dIF(CRN58nR$@<_k7Wb 0c3a zCtMOrVGM*)n!ux nxdcUapZv7!6-QWW4GSbC zR`*=D+ntW&murc3kSiB-G!|lH`isDyxc7OmSSKzgWGLaGf?s_QbwH55rFbSJTvJn1 zKld5^1yo*;;GnGVx{H39hg6GT?+9=tsMNqNqBr^e@0F+cp}@Bj4D|=*)0sikcSLBA z@sBAAK<=!PUqG14dHjAjObht7;`4aGxhSan$v>IEY(U|s@t;K=k~Oe3!`<_go=`qZ zl@$i*1~oERwSxqsR7qTIq1#7LMB0U1q2y}7fnA0BJPmx-<_Kc)wwaSk)u;F>Xd)w@ zyNRqG4J76Ps=_#LD$rYKy;HCvsZ*{Z`fbH*TZ$&e#uXSTql$nHkA~|DBF2nbNW^&@ zsH((23-wflIdlgY7&sbZt*oSkah8O|JRIhhnH4_5bJz{Xi1$7ZGE%3FwxqUp#~6D7 zu|ZiiAnWupCof|KFbgn{l;i@^S08 xZddP-e`}tCcud^$VlaxNTl#49d zVw@%-p#crrD{+v9v4(&Y6rjKnSSEv}n%dJR Jtj!d{5S`8+LV28atl!hii&%;`6^J}BjIk72? #^KD^%+D8RvI0!Z1 (FiJJSid=&vd(T z&7=+r5GyV>X{bzek+j~@3T3Qt0GW99;l`nk9zNfNkypef1{04_whXftyO9*(Q0+li z201~uv!V7%48f}s(VFLZAF&)!GnGv+M1-dVQtm z`|Ydl?40{~>G@#ZI8pMArmVL`2T8}T{f=GZ$#j~uh^SL`AA;G=7};jGL4K3kFgnQN znn2=-G$Hc+p-XvR@OW$ECb+WI?E%{S;!^UQFud@!SRpQ;?IIBCFB`NO(t`OLv1jzG zUKD^O9@|9#3K>A%t<&erHIFIu!Iy}H* ;>?_pF*gI?7s_yw9RH)tdB;uyKKoBr zBY^w E3Yq1%{yC3!~v`118%vj0+NUqJP!;zwG$av#I@vOK9{AnbV4ySess z6{r`a^1sPgJ{UJ{1cOZYncRM9lc(Y5=T9y(NI3j^!uL*Z+Pr2dv%^5@umu?F5kCIC zB{lNQ5xz<3lezKu #YCVsTCk)Jpt;KP6BxN!I5qN@%^ekqq&kGUoAJ0a`9!|y_} zH~caD+S;w30HKKLf+s_+?XX?f>mk~IO>3LWDGJuKvUxn(qY#!spAnxG|EGV<=fWpB zxxe)eJLEU3RdOF*SAD(0&%}08-}n246GiBS>(x5j7+d>G!OKp70fy}+VpwRXtS $VF;i-Zj)X(d~Mx zO(|_4uh+e4F9GA9J5(}mBbKH&8 zlLer_cY5kJHLHb#|6-=MA2)}kr} 8 z5O<-ZKc$7!!$j*6E*-93zE^pi^-RrLy0i*tJ1+05GkEMPW3rs-kMKT58VkaNuGTY} z9(eDC0qzjnm?XEG#P2kPflZUD2w(i-_CgMC8P~_M(`pC3R>Td5neH?8iMa4X9cPZ? zZOd`nj+esXF|)XL^ +2cT3}vGgqnewWeS`4xo@O~H*W)$b zY=eq|0%^I5*#W|^bKt9}++FO742G%ORE(49-_3v)fOn?D>>RM^0*Zz+`ZzTBYO}46 zKb(p`kc1tbom%9+++bdLyk01@>m5#{yUl=+goeh7Oa}eLGzgfBt3ran zcZV+wSol1wAhpcon}R_H*v_`!i=I~f|Frsx$hW$EmX($T5t!l zw`KfOwY*KMgB&r@|U^a z?Th`P)S)ddF17$vHru7&XN%> ((Gs_Cge0O9M85vmgI{jX4 zICNaWAy>$}GoEnijHfSz|DgmBO;Rg=_|3RTzJjYODk{qJ{c-AUX%GJp9eqNU&}9kp z_kV2NFtV?usHv-q%Tvz_APfI(GS!=Z_Bxv)?^L(|%$9;VgfUIo9JYD=^0ie}e;st` zejt=>@dIQ6mi_MD6YH(W7yrcSG?BG6SJ|13ce*)}TAE$V0oy&QLJm0N8|fe*-|G15 zL+(98@FxEn<}989D3*stFygVkPg<{;Tvwplbep$-db&&|qX`AIT3C4UY$zOFiN(Ak zyYo~SpeGuQQ?j%BihoL2z2e#5XBQRo+dXm 4i|M}baoLv 0gJ6=sLevTUf^=M zMXwX2T_oXl)3lLv85h_MJTRQ^>-U$oWA2yb%2Y>d4E`P$@ZGxN^eS)}IP)rB#c#~J z@tS0I8v$NGzoN~kfjxJA*(OI{FiNHZ%^2w$3DXbrZc7iwcts{GtPnTTYoQ$fd)0=z zLaaCMUT|7&O>5A%Y05l-83xc!LW?$1E&*Fl& k_TtpQF z`cY~Z#n~)G;Yx-6FeNj-4b^96Gh8}_ }e15*(l5wQh(Z(ajZ%Dq8 zhdE0`h+qvB0I@P7lh0 0kE0f3Wi=!MMWe-1O!wc7F#3F&5ZC=p2QiV z(*BW=5m8Htcs!+R@!Q!7)t2RTB8UY}k83 qf%H=W;43VJv9Ytp@(!O1LYw>Xozep#-%9EjSY z-e{s89XC!RVMg}GjPLCd=yn{vr}*PyH>|`uq@|qOgLhj{vfN!__zUQCaQ~j-t3f`4 zgx(| h1v6sD>?+Op)`yu0^S$%0YydlMW^!-3^1q=LpZf&^xu#! 5-8^zo@7RAf~IYR%z`q9Q->dba8heg^b+pei=!_ za1-1vm9mt`z} bNbA#lCJg8^`tyxb5y`6Xz07 E>~0b}9r)iLc&bEGApEA&FSLB6&)1UB r<4-jewD*%%OIst@jaDqUhhVTl&!*Bu2EYD*?+(tmf;Xi0e zZ%}h&a0;;tR!|BOoDm;}OCep4+I{>A<(86dM1#-=`20cS#(E$oU7%>=&w^_c)d9Bn zn<>{sMgs=(iXh=fJR=o?hKbSxzqrN(=kXH3Rz<&65p4VJCux>K(vgYQQ->8gY%MJZ z6eh%pAL)^j($ann9s-{7zaa}ffGNGAz+|{9l1FV#4-j)yh_#89czvE}8)R*3Dl8Ic z!61UzgpChF?sS(WS9szfN|N vGEY?ZFqk#)Nm{g4s$#Eoc zX@ {FR4|x>odHqDN0cy2jXI)S$2)AE 7ZGszSlgW>l;n%eF$*y&QaZoe2 No`VWTWTj*MWfxGc$u+E}x_%SfbDd0lCtvoz7;N5fa;VdUxR9 z=Qeu^0#CK|goss&0F~!LV&cHUf?rhByqa1}aB$@4kxh0bJbXz;L^!#nHoqY=K2!GK z^9A?|cVAO^ABCwGRFX?jc^2Ii8;zxu;!J5y6c==Vi~~jnMCC{4ef<&WjoUHz&a7`Y zb$8W4b!CuNpf4Ow0#XBG0kNJRojSS-dKXD5IS$JbC?5(U83Y4t`pYey7hQ|k;QP{h z_)_>lSkP;570-@6Kte{)$L_no*HzJ1d6tdp&7^UOlsce|^&N|oh}R<~0YpTaYQ l3RV;gf|Ps AME z5BdNga`#>0^9_ nKGKv4k@2Zf+x_ff{{%eI?i-v9#hya4u&ZZhG?w)}$CkR$lo) z+)3otrR)oE^jKvfOVhji$xdWk_|OH#HlebN(8ENrzM*;oS>jMw!1|}TpJc!|a~OHT z;RLcItk?};hl~l4o}!$PZKS;_H>G?#qrpr6ly8$NqkPe5HwWeL!@9=uo;Cs|WUTJTPf?nFSbZk~rjN zk!!Z$*bDI}5cPrN)Jb+}cXxM``v6&LH2ZH7ffp+!!Q}5Egd|)m&0zS)c> z(eAfJDB{H4cA%%z2G&AZcqUWjMbs~96 z;+Ws&zdaE!SP7uT!f86A`_C?e{a8WC(`_{vJn-oHC8I+Oy1tzQP%rB0HLujhT%KY9 zOd~u#?76Ojf>es1>oytyxi~X3PPu%qvd%}XpBFm1-bUMq{Tj-{QHIm-@blXPsBPOk zJZ=#+O*g=TG@><~S9{H+wgevt4T(tpb%n=f`=9UVMLq)I7e0SZi2*=n-rZp;wZ7Bu zc|48#_pe_zhlCF8FpYX>awhNFLah$IL;`uXZ0p`0`dC7Ozz_-ND~5bfKa0f@Tl&RH zgu6S!>j$Qoc)G(TmfulySLM&cEGRfYgQbm02QxYKp<_T|_TM*p2+7I$0sKZYGrxly zfol5x3J?|i878&xTx~Ova0QUJwPx(v+AoH_Q|}9P9}$roKuL fPE^Z#0!Y4rnQtt3?j>tJv+Lp%&cl7_^G68v(|u?N*v?+d5plPvV&K|GZCd zS(2cj>V*0GtE<)lKgl#2_m3Y2zR19|A8%>0zn!7sDDn*2=>Z0Y4!@5jRJeaN&_DN6 z9Z{{w6SKJ&{f zR?*ef-TD-f-};}o3$OxskZl 83;h2Ri{ {Z<1FLrAoMz)jR|g;Mx5EJ}Ort&5M+8k4 zN+uX7MuY?c3<6D@7`mN-of-{+zO;Jnlt6K_=cxQUDG8aw-uI>ZH#P? wo&2jB$YY|;(o*VkgZLpxWl3ctbW!mlTvo5qC&vccV={zmbG9tx zw8=PQ{{T%A?8K>v^z?mBR!+_k)Sw^w71sFms}wpq`sOv6bJpLZB@4i%$=r=)qv{$b zf?)#2gxLS{rT*(pEiGs xXCqAsnS$h+A+(~Z-IF7Xhl`Q zgP^A7=KrXaE6&2qh7Qrb({Etd{&Bs@^m*+OHZp?W?ZLspzFu#jadL!Budixqiq+NS z>-{B3+or2;Pe*C#(OD*+pH572di4}=51l>h0r2#h{m*TCb0E9AG9j4F(dP3#OMc&Q za9gRr2t1UNL35cn@W z&vo 0n1onwj=pRD zmx@RC||vg2O)9^u0(My%%k&fh}X z+e)kRQuTtLdBO8*hIlL4bL-}@arh~c>th7t6$Faw*DYGobd#`?LTf~8CezHui0q6C zVG*HNHnE |6ShYE{f$Vge7$eI!(>$NSf z8ulIwKS24VWhq$yp%{4!n5HO(vwAHu+T@Rim+hTdkT)qyx{RQTcZ*%CvK_GdTr#(G z`^|l6E8~!j|NH6X-EGA!kW*F%&& zCdt`%zYS>+ov4#6gF*f=R;4WgNqZ zU0mBg*jmu!ptcRWlz6EDVF@7#3o(jYu-gT-WwtfG%Kl11Hbwc8+fw0W^yS?0>&L~L zm^zHD@$nDZf7xzs1`|h(p1#z0Gpsl_SaE%dk!Tfd+Wkor<8AJyWE-Yk#VZC$Q+F!N zj6i0>L8^QNh%M3mt|7!7cuy7K^V+9{-G#Uk_`VX~E^qtI`;+a|cc}2{c^W8&h;b3N zt?aIo>UN|WXZDwEXgWO@H#HXQLd9lJ>F1WALlXq n61~Mv7Nq{~ zUA|XdSMd;#LIR$R@kQ~^pYBC(k7J8*UZc1I-AqTiu$S;#Tk84sHO(%r_VLVxf |K58+I zqwJ%l)lIPY5-X861nP(;mvc^n|8P)o{=p$iLMjr!g2FI_r5nok{_TCrUuFo$C}c9E zf@46DjHCE0_RW}1Q!RVWa*xV`6{KiihsXEksgT9jtD&FZf~H?`uZI7}%)wp$rG7E* zQ{aVngtxnjdx?eC^z10f1g3I{S-+Y92$#|?zOxL`IXT8ZF64RF@t#I#nbWl$CG5)A zlvgZUWr=zoR$pmBCBTRqq&mfUT4Y;pC CLq)MZ!zaCs!|{4iyhm(ftB(FkLpROebM8I$U|qx!3=& zy1pXn;0dCU7^6PdJKzT-ogi-E6D&xA6(>q`|IYKC(j8?(at>Dhj>U@-Bc{+X*!vtu zg?ek?Djg#lW@egJx4X>i;qQ4m2IkQ3y}f~9#GRq}@NoNgzt`(r9 %; ziJKgO`p?~v@Wpa7Gqc=}XJ|wM+qcVR^9DcXv|ri{^L$*L*|P#9D7_j6^)H?f<>iE3 zUMy3Vw&&O4!}Qh5`D`47)>dBSef)TFAXiFQ0TQMAe~fj#g{e0g4zG8I6qVABv&b3o z0%;T$oF|~8X3u5j2DT|qt37*z4U -#IxQ(WHG7^mmSL=4~Jh)A-kM^5Tc@-MK$>@N`xHONPNS zLO!3^I{GiEe2aS>P{d^}p|TnY@|=tw53H^rMw>X_e|2@aICI@{_4W8_lUKI^TiO}4 zwIwI7BK`#=dZR>@^asd@4Ab>)GxLAj`+Ye@9WI|+1NGTh!%R*y{m%0CCW$h$k)m*b zRA|s3`pI$zCSpG&pUdRLF@$m;RLCzaw>4x+|MB&oO2QZr&Tl}(*9a(fcg{6qNQI}0 zki;#>FJ)v4wp+7Xa9KDybv~;uRRmFmkyXsm5L7ahdqo699X1G72OkK{xFh(h_v^#+ zA^jRauBfljpb4@yJ%36tGc$S*_>}@Y%|My<0T#@_iAMxFW&Yu&{!c8;nkU0Yzp|!5 zTfov*wBDe)GRY@`B9-9U-F|8iV--S^UUn$ePMEN}ii#BY)T(dU@!4ry4X2GwwO>z; z>&y0FdLZ_&1B`Rx9d^obtYI{CH`$uMYEb-WBh5d9(9@>2VaN%SUk@tr LTN0G_%pb(dlSl64l0cdP;Ya|R^3LxHe*Cg77J^u3@8#lDT zP#UL$OO;Z64suc9SB_Dp`6bSVM8KOLt+vMZYc^wG7NS=u2V{7dkr)Y;5Vbh0qRmT( z<=kp}L-*U6D|}$_SZh&U6bw7T+)$K}l`Nh1wH?G2)h;mX(b32L>oUD~Cg`8Be4#|O z9Ho%hi;{ByP|aoh;H|V-X+ixg3kL_6z>lOicWnBR<1_;u@%HA#0X{|)zrFSO{afDj zBsXb_-|A{)BYm4DU~5x+1<&wNB$1vT6O|Ah0u_#>avGbAk!}f<%^8p^xQ!DQJyjG7 zCMSamWzx^gq#C@sHA)(8+;0++yV+z?Rdb7r16M&<+vzMZy_8Z_cuRqLeg4gIUqfr+ zjOdyydThzs=f}h0Rnah)^V^D+>dg1}_b1?~0SXx^BEmu;-;(*)WGw!!-M+T2uI=ck z)#bEMi_URBGrPcoK|^&(yLL4MS%F|nUB^eSn5tcSZ*XwC-kP<*@%6{q3mdDOY7Fdf zFcnz5^wP&!9R+xSe&G&N6B3$Wt$WRIYv6M_-=d1XvcY1LX-2Bp{L9()x9D~77f3;n z$|-9`cHEJ;AqX!B`M0uTlt(hhUWsB>swi6G*VJXY2;C|I yve9C1Jkp#ud< zNz$Xm(WyOL9*|#>F~$%TWMs63S^!%VS>(@V_|RB0Rd6I3UmqsnCawyHCMNiOny09* z_B`=n-S+R1^>F}AWIOS*Z1Yz+3CP0z+MX5=a}Q9b?!?9~C`urYP>{iiA@G`iQnpm- zOT42=)GFqe6-D d4qWWic zcIbL~3MVJs7Ulz+0~-mqZwUD}l=(kSZfrShAT8t;3dY3Y2q1NZf?#qs^uPj8=^*7Q zkG9Cz@lVN@8QOfGY;sn~3)}o{4*7z$`Z`wu&~JG!tECITjCRdyJRI#%?_cEtX+XUa z;^w(Cl@$5Y6Eo~qmUbZknEzX==9(gJywh9lVPofb$`tgb-(c9>BcE@>`@ #F$Y$!TOBmIoPeu}pXG7a1s^iLVfO)g}p%0czDva@i$%x17} zU}21BY&l~&lRr`iIxnMFnVg>rLQeWjTqDNG_OdlPT140=cNkc*zeM?{C8Vqsbkot* z)ZJYm|3})ZbNK`}FBjaTzICI$L6h*`GS$|#L#wvE1H&^I33A97sM)cHYbL=iImIhA zcVs5c9I$Cf-MjX?Yr9)bf|lXsz03Vfw0z<(XBNCWP?$_-IZEhBIxecg%kHN+y7u)r z=3^8V*UTqRjAMNN;PYbN0sPa9=a6`WNr*yv6bT2SjI>F_^K&4C1PhDmE&EWqUH_d5 z)me13oU|zcqsGa<$Mrfoi>>RiZS0~nk&p8>4vwhL;J)bwiI}_wf`)C!UpTQiIN^N7 zWlD^ut|=f!@8q9+s9Bi`v?>Z rel6oV~@3}Ya8_E{QsiEFF|bupAXxRN}tn~k5XPDdMvv_$HNqyueaMEhYq#P zvtwNq_#!>A`frb~jQ}r_e}h!`9|h=3H5G>=;>voFi$Wfx-!VOC{;O{eE*28)&Sbk? zfkJW=Gdx=erz$MN#4v2{XP~BT(tIy37g`6b+X+T2)5ohO+hV2_Q{$KCA%3Q^en3}y zbraCum9??xB2FUIIC^d0qQUYhn7A=@6ZXvRhXj!&eGMlfTv%G)m#o)Opey?{chw*2 z`x8+fG$8Epa`^ZNGL(LNyuF|d%h|bsZ`g