From 2e9369a27b72b39e9e2700cb3ddd114b9f38b4ca Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 28 Oct 2008 00:19:36 +0000 Subject: [PATCH] Added patch from matelli --- htdocs/comm/prospect/prospects.php | 270 +++++++++++++++++- htdocs/langs/en_US/companies.lang | 1 + htdocs/langs/fr_FR/companies.lang | 1 + htdocs/lib/functions.lib.php | 22 ++ htdocs/lib/lib_head.js | 4 +- htdocs/theme/auguria/img/stcomm-1_grayed.png | Bin 0 -> 360 bytes htdocs/theme/auguria/img/stcomm0_grayed.png | Bin 0 -> 532 bytes htdocs/theme/auguria/img/stcomm1_grayed.png | Bin 0 -> 559 bytes htdocs/theme/auguria/img/stcomm2_grayed.png | Bin 0 -> 432 bytes htdocs/theme/auguria/img/stcomm3_grayed.png | Bin 0 -> 564 bytes htdocs/theme/auguria/img/stcomm4_grayed.png | Bin 0 -> 564 bytes .../theme/bluelagoon/img/stcomm-1_grayed.png | Bin 0 -> 360 bytes .../theme/bluelagoon/img/stcomm0_grayed.png | Bin 0 -> 532 bytes .../theme/bluelagoon/img/stcomm1_grayed.png | Bin 0 -> 559 bytes .../theme/bluelagoon/img/stcomm2_grayed.png | Bin 0 -> 432 bytes .../theme/bluelagoon/img/stcomm3_grayed.png | Bin 0 -> 564 bytes .../theme/bluelagoon/img/stcomm4_grayed.png | Bin 0 -> 564 bytes htdocs/theme/dev/img/stcomm-1_grayed.png | Bin 0 -> 360 bytes htdocs/theme/dev/img/stcomm0_grayed.png | Bin 0 -> 532 bytes htdocs/theme/dev/img/stcomm1_grayed.png | Bin 0 -> 559 bytes htdocs/theme/dev/img/stcomm2_grayed.png | Bin 0 -> 432 bytes htdocs/theme/dev/img/stcomm3_grayed.png | Bin 0 -> 564 bytes htdocs/theme/dev/img/stcomm4_grayed.png | Bin 0 -> 564 bytes htdocs/theme/eldy/img/stcomm-1_grayed.png | Bin 0 -> 360 bytes htdocs/theme/eldy/img/stcomm0_grayed.png | Bin 0 -> 532 bytes htdocs/theme/eldy/img/stcomm1_grayed.png | Bin 0 -> 559 bytes htdocs/theme/eldy/img/stcomm2_grayed.png | Bin 0 -> 432 bytes htdocs/theme/eldy/img/stcomm3_grayed.png | Bin 0 -> 564 bytes htdocs/theme/eldy/img/stcomm4_grayed.png | Bin 0 -> 564 bytes htdocs/theme/freelug/img/stcomm-1_grayed.png | Bin 0 -> 360 bytes htdocs/theme/freelug/img/stcomm0_grayed.png | Bin 0 -> 532 bytes htdocs/theme/freelug/img/stcomm1_grayed.png | Bin 0 -> 559 bytes htdocs/theme/freelug/img/stcomm2_grayed.png | Bin 0 -> 432 bytes htdocs/theme/freelug/img/stcomm3_grayed.png | Bin 0 -> 564 bytes htdocs/theme/freelug/img/stcomm4_grayed.png | Bin 0 -> 564 bytes htdocs/theme/yellow/img/stcomm-1_grayed.png | Bin 0 -> 360 bytes htdocs/theme/yellow/img/stcomm0_grayed.png | Bin 0 -> 532 bytes htdocs/theme/yellow/img/stcomm1_grayed.png | Bin 0 -> 559 bytes htdocs/theme/yellow/img/stcomm2_grayed.png | Bin 0 -> 432 bytes htdocs/theme/yellow/img/stcomm3_grayed.png | Bin 0 -> 564 bytes htdocs/theme/yellow/img/stcomm4_grayed.png | Bin 0 -> 564 bytes 41 files changed, 289 insertions(+), 9 deletions(-) create mode 100644 htdocs/theme/auguria/img/stcomm-1_grayed.png create mode 100644 htdocs/theme/auguria/img/stcomm0_grayed.png create mode 100644 htdocs/theme/auguria/img/stcomm1_grayed.png create mode 100644 htdocs/theme/auguria/img/stcomm2_grayed.png create mode 100644 htdocs/theme/auguria/img/stcomm3_grayed.png create mode 100644 htdocs/theme/auguria/img/stcomm4_grayed.png create mode 100644 htdocs/theme/bluelagoon/img/stcomm-1_grayed.png create mode 100644 htdocs/theme/bluelagoon/img/stcomm0_grayed.png create mode 100644 htdocs/theme/bluelagoon/img/stcomm1_grayed.png create mode 100644 htdocs/theme/bluelagoon/img/stcomm2_grayed.png create mode 100644 htdocs/theme/bluelagoon/img/stcomm3_grayed.png create mode 100644 htdocs/theme/bluelagoon/img/stcomm4_grayed.png create mode 100644 htdocs/theme/dev/img/stcomm-1_grayed.png create mode 100644 htdocs/theme/dev/img/stcomm0_grayed.png create mode 100644 htdocs/theme/dev/img/stcomm1_grayed.png create mode 100644 htdocs/theme/dev/img/stcomm2_grayed.png create mode 100644 htdocs/theme/dev/img/stcomm3_grayed.png create mode 100644 htdocs/theme/dev/img/stcomm4_grayed.png create mode 100644 htdocs/theme/eldy/img/stcomm-1_grayed.png create mode 100644 htdocs/theme/eldy/img/stcomm0_grayed.png create mode 100644 htdocs/theme/eldy/img/stcomm1_grayed.png create mode 100644 htdocs/theme/eldy/img/stcomm2_grayed.png create mode 100644 htdocs/theme/eldy/img/stcomm3_grayed.png create mode 100644 htdocs/theme/eldy/img/stcomm4_grayed.png create mode 100644 htdocs/theme/freelug/img/stcomm-1_grayed.png create mode 100644 htdocs/theme/freelug/img/stcomm0_grayed.png create mode 100644 htdocs/theme/freelug/img/stcomm1_grayed.png create mode 100644 htdocs/theme/freelug/img/stcomm2_grayed.png create mode 100644 htdocs/theme/freelug/img/stcomm3_grayed.png create mode 100644 htdocs/theme/freelug/img/stcomm4_grayed.png create mode 100644 htdocs/theme/yellow/img/stcomm-1_grayed.png create mode 100644 htdocs/theme/yellow/img/stcomm0_grayed.png create mode 100644 htdocs/theme/yellow/img/stcomm1_grayed.png create mode 100644 htdocs/theme/yellow/img/stcomm2_grayed.png create mode 100644 htdocs/theme/yellow/img/stcomm3_grayed.png create mode 100644 htdocs/theme/yellow/img/stcomm4_grayed.png diff --git a/htdocs/comm/prospect/prospects.php b/htdocs/comm/prospect/prospects.php index 5e7771691df..38d225e3484 100644 --- a/htdocs/comm/prospect/prospects.php +++ b/htdocs/comm/prospect/prospects.php @@ -28,6 +28,7 @@ require("./pre.inc.php"); require_once(DOL_DOCUMENT_ROOT."/prospect.class.php"); $langs->load("propal"); +$langs->load("companies"); // Security check $socid = isset($_GET["socid"])?$_GET["socid"]:''; @@ -47,7 +48,97 @@ $pagenext = $page + 1; if (! $sortorder) $sortorder="ASC"; if (! $sortfield) $sortfield="s.nom"; +// Added by Matelli (see http://matelli.fr/showcases/patchs-dolibarr/enhance-prospect-searching.html) +// Load potentiels filters +$search_level_from = isset($_GET["search_level_from"])?$_GET["search_level_from"]:(isSet($_POST["search_level_from"])?$_POST["search_level_from"]:''); +$search_level_to = isset($_GET["search_level_to"])?$_GET["search_level_to"]:(isSet($_POST["search_level_to"])?$_POST["search_level_to"]:''); +// If both parameters are set, search for everything BETWEEN them +if ($search_level_from != '' && $search_level_to != '') +{ + // Ensure that these parameters are numbers + $search_level_from = (int) $search_level_from; + $search_level_to = (int) $search_level_to; + + // If from is greater than to, reverse orders + if ($search_level_from > $search_level_to) + { + $tmp = $search_level_to; + $search_level_to = $search_level_from; + $search_level_from = $tmp; + } + + // Generate the SQL request + $sortwhere = '(sortorder BETWEEN '.$search_level_from.' AND '.$search_level_to.') AS is_in_range'; +} +// If only "from" parameter is set, search for everything GREATER THAN it +else if ($search_level_from != '') +{ + // Ensure that this parameter is a number + $search_level_from = (int) $search_level_from; + + // Generate the SQL request + $sortwhere = '(sortorder >= '.$search_level_from.') AS is_in_range'; +} +// If only "to" parameter is set, search for everything LOWER THAN it +else if ($search_level_to != '') +{ + // Ensure that this parameter is a number + $search_level_to = (int) $search_level_to; + + // Generate the SQL request + $sortwhere = '(sortorder <= '.$search_level_to.') AS is_in_range'; +} +// If no parameters are set, dont search for anything +else +{ + $sortwhere = '0 as is_in_range'; +} + +// Select every potentiels, and note each potentiels which fit in search parameters +dolibarr_syslog('prospects::prospects_prospect_level',LOG_DEBUG); +$sql = "SELECT code, label, sortorder, ".$sortwhere; +$sql.= " FROM ".MAIN_DB_PREFIX."c_prospectlevel"; +$sql.= " WHERE active > 0"; +$sql.= " ORDER BY sortorder"; +$resql = $db->query($sql); +if ($resql) +{ + $tab_level = array(); + $search_levels = array(); + + while ($obj = $db->fetch_object($resql)) + { + // Compute level text + $level=$langs->trans($obj->code); + if ($level == $obj->code) $level=$langs->trans($obj->label); + + // Put it in the array sorted by sortorder + $tab_level[$obj->sortorder] = $level; + + // If this potentiel fit in parameters, add its code to the $search_levels array + if ($obj->is_in_range == 1) + { + $search_levels[] = '"'.preg_replace('[^A-Za-z0-9_-]', '', $obj->code).'"'; + } + + $i++; + } + + // Implode the $search_levels array so that it can be use in a "IN (...)" where clause. + // If no paramters was set, $search_levels will be empty + $search_levels = implode(',', $search_levels); +} +else dolibarr_print_error($db); + +// Load sale and categ filters +$search_sale = isset($_GET["search_sale"])?$_GET["search_sale"]:$_POST["search_sale"]; +$search_categ = isset($_GET["search_categ"])?$_GET["search_categ"]:$_POST["search_categ"]; +// If the user must only see his prospect, force searching by him +if (!$user->rights->societe->client->voir && !$socid) $search_sale = $user->id; + +// List of avaible states; we'll need that for each lines (quick changing prospect states) and for search bar (filter by prospect state) +$sts = array(-1,0,1,2,3); /* * Actions @@ -67,13 +158,23 @@ if ($_GET["action"] == 'cstc') $sql = "SELECT s.rowid, s.nom, s.ville, ".$db->pdate("s.datec")." as datec, ".$db->pdate("s.datea")." as datea,"; $sql.= " st.libelle as stcomm, s.prefix_comm, s.fk_stcomm, s.fk_prospectlevel,"; $sql.= " d.nom as departement"; -if (!$user->rights->societe->client->voir && !$socid) $sql .= ", sc.fk_soc, sc.fk_user"; +// Updated by Matelli (see http://matelli.fr/showcases/patchs-dolibarr/enhance-prospect-searching.html) +// We'll need these fields in order to filter by sale (including the case where the user can only see his prospects) +if ($search_sale) $sql .= ", sc.fk_soc, sc.fk_user"; +// We'll need these fields in order to filter by categ +if ($search_categ) $sql .= ", cs.fk_categorie, cs.fk_societe"; $sql .= " FROM ".MAIN_DB_PREFIX."c_stcomm as st"; -if (!$user->rights->societe->client->voir && !$socid) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; +// We'll need this table joined to the select in order to filter by sale +if ($search_sale) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; +// We'll need this table joined to the select in order to filter by categ +if ($search_categ) $sql .= ", ".MAIN_DB_PREFIX."categorie_societe as cs"; $sql.= ", ".MAIN_DB_PREFIX."societe as s"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_departements as d on (d.rowid = s.fk_departement)"; $sql.= " WHERE s.fk_stcomm = st.id AND s.client = 2"; -if (!$user->rights->societe->client->voir && !$socid) $sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id; +// Join for the needed table to filter by sale +if ($search_sale) $sql .= " AND s.rowid = sc.fk_soc"; +// Join for the needed table to filter by categ +if ($search_categ) $sql .= " AND s.rowid = cs.fk_societe"; if (isset($stcomm) && $stcomm != '') { @@ -86,6 +187,21 @@ if ($user->societe_id) if ($_GET["search_nom"]) $sql .= " AND s.nom like '%".addslashes(strtolower($_GET["search_nom"]))."%'"; if ($_GET["search_ville"]) $sql .= " AND s.ville like '%".addslashes(strtolower($_GET["search_ville"]))."%'"; +// Insert levels filters +if ($search_levels) +{ + $sql .= " AND s.fk_prospectlevel IN (".$search_levels.')'; +} +// Insert salee filter +if ($search_sale) +{ + $sql .= " AND sc.fk_user = ".$search_sale; +} +// Insert categ filter +if ($search_categ) +{ + $sql .= " AND cs.fk_categorie = ".$search_categ; +} if ($socname) { @@ -122,9 +238,109 @@ if ($resql) } $param='&stcomm='.$stcomm.'&search_nom='.urlencode($_GET["search_nom"]).'&search_ville='.urlencode($_GET["search_ville"]); - + // Added by Matelli (see http://matelli.fr/showcases/patchs-dolibarr/enhance-prospect-searching.html) + // Store the status filter in the URL + if (isSet($search_cstc)) + { + foreach ($search_cstc as $key => $value) + { + if ($value == 'true') + $param.='&search_cstc['.((int) $key).']=true'; + else + $param.='&search_cstc['.((int) $key).']=false'; + } + } + // Store the potentiels filters in the URL + if ($search_level_from != '') + { + $param.='&search_level_from='.$search_level_from; + } + if ($search_level_to != '') + { + $param.='&search_level_to='.$search_level_to; + } + // Store the categ filter in the URL + if ($search_categ != '') + { + $param.='&search_categ='.$search_categ; + } + // Store the sale filter in the URL + if ($search_sale != '') + { + $param.='&search_sale='.$search_sale; + } + // $param and $urladd should have the same value + $urladd = $param; + print_barre_liste($langs->trans("ListOfProspects"), $page, $_SERVER["PHP_SELF"], $param, $sortfield,$sortorder,'',$num,$nbtotalofrecords); + + // Print the search-by-sale and search-by-categ filters + print '
'; + + // If the user can view prospects other than his' + if ($user->rights->societe->client->voir || $socid) + { + // Select each sales and print them in a select input + print $langs->trans('SalesRepresentatives'). ': '; + print '       '; + } + + // Include Categorie class + if ($conf->categorie->enabled) + { + require_once(DOL_DOCUMENT_ROOT."/categories/categorie.class.php"); + + // Load list of "categories" + $static_categs = new Categorie($db); + $tab_categs = $static_categs->get_full_arbo(2); + + // Print a select with each of them + print $langs->trans('Categories'). ': '; + print '
'; + } + print ''; print ''; print_liste_field_titre($langs->trans("Company"),"prospects.php","s.nom","",$param,"valign=\"center\"",$sortfield,$sortorder); @@ -136,14 +352,54 @@ if ($resql) print ''; print "\n"; - print ''; print ''; print ''; - print ''; + print ''; + + // Added by Matelli (see http://matelli.fr/showcases/patchs-dolibarr/enhance-prospect-searching.html) + print ''; + print ''; + + // Print the search button + print ''; @@ -180,7 +436,7 @@ if ($resql) print $prospectstatic->LibStatut($obj->fk_stcomm,2); print ""; - $sts = array(-1,0,1,2,3); + //$sts = array(-1,0,1,2,3); print '
 
'; print ''; print ''; print ''; print ''; + print ''; + print ' '; + print ''; + print ' '; + print ''; + // Generate in $options_from the list of each option sorted + $options_from = ''; + foreach ($tab_level as $tab_level_sortorder => $tab_level_label) + { + $options_from .= ''; + } + + // Reverse the list + array_reverse($tab_level, true); + + // Generate in $options_to the list of each option sorted in the reversed order + $options_to = ''; + foreach ($tab_level as $tab_level_sortorder => $tab_level_label) + { + $options_to .= ''; + } + + // Print these two select + print $langs->trans("From").' '; + print ' '; + print $langs->trans("To").' '; + + print ''; + print ' '; + print ''; print ''; print ''; foreach ($sts as $key => $value) { diff --git a/htdocs/langs/en_US/companies.lang b/htdocs/langs/en_US/companies.lang index eee094f459b..4e4a823d465 100644 --- a/htdocs/langs/en_US/companies.lang +++ b/htdocs/langs/en_US/companies.lang @@ -197,6 +197,7 @@ ContactPrivate=Private ContactPublic=Shared ContactVisibility=Visibility OthersNotLinkedToThirdParty=Others, not linked to a third party +PL_NONE=Aucun PL_UNKNOWN=Unknown PL_LOW=Low PL_MEDIUM=Medium diff --git a/htdocs/langs/fr_FR/companies.lang b/htdocs/langs/fr_FR/companies.lang index 846f9d60807..69f73af0c02 100644 --- a/htdocs/langs/fr_FR/companies.lang +++ b/htdocs/langs/fr_FR/companies.lang @@ -197,6 +197,7 @@ ContactPrivate=Priv ContactPublic=Partagé ContactVisibility=Visibilité OthersNotLinkedToThirdParty=Autres, non liés à un tiers +PL_NONE=Aucun PL_UNKNOWN=Indéterminé PL_LOW=Faible PL_MEDIUM=Moyen diff --git a/htdocs/lib/functions.lib.php b/htdocs/lib/functions.lib.php index a18e9f27caf..559ff384585 100644 --- a/htdocs/lib/functions.lib.php +++ b/htdocs/lib/functions.lib.php @@ -3122,4 +3122,26 @@ function utf8_check($Str) return true; } + + +/** + * \brief Search for prospect state selection in $_GET, $_POST, and $_REQUEST + * \return prospect state selection (array of prospect_state_id => 'true'/'false') + * \author Matelli (www.matelli.fr) + * \remarks See http://matelli.fr/showcases/patchs-dolibarr/add-icons-for-prospect-status.html for details + */ +function get_prospect_state_selection() +{ + $sts = array(-1,0,1,2,3); + + if (isSet($_POST["nouvel_etat"])) + return $_POST["nouvel_etat"]; + else if (isSet($_GET["nouvel_etat"])) + return $_GET["nouvel_etat"]; + else if (isSet($_REQUEST["nouvel_etat"])) + return $_REQUEST["nouvel_etat"]; + else + return false; +} + ?> \ No newline at end of file diff --git a/htdocs/lib/lib_head.js b/htdocs/lib/lib_head.js index 49c6f372010..6e511930af4 100644 --- a/htdocs/lib/lib_head.js +++ b/htdocs/lib/lib_head.js @@ -1,7 +1,7 @@ // Copyright (C) 2005-2008 Laurent Destailleur // Copyright (C) 2005-2007 Regis Houssin // -// Script javascript mis en en-tete de pages (dans section head) +// Script javascript added in header of pages (in HEAD section) // // \file htdocs/lib/lib_head.js // \brief File that include javascript functions (included if option use_javascript activated) @@ -676,4 +676,4 @@ var win = new Window({className: "dialog", /*win.getContent().innerHTML = message;*/ win.getContent().update(message); win.showCenter(); -} \ No newline at end of file +} diff --git a/htdocs/theme/auguria/img/stcomm-1_grayed.png b/htdocs/theme/auguria/img/stcomm-1_grayed.png new file mode 100644 index 0000000000000000000000000000000000000000..20a7219535e8b243ead09bd9f13be1cdc3bd51b3 GIT binary patch literal 360 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJdx@v7EBg%&7C{!Czf)Jp0EIXU zJR*x37`Q%wFr(8NlNmrkmUKs7M+SzC{oH>NS%LiU0G|+7AT2B`%*@Qp&CP9WY%DD; zt*x!?=;+wp-RlqATD7XSw${qZ%ErbfA|j%-wKXj* zO<7sl(9kd=BSTG1EhHqw+S+<=-rW+Q(TpWQe!&b5&u*jvIqjYoJIKb6@4z0(?zXzP++spb?<8+#{XQav{SUMKu-%!v*p3i;hnbmtpXd wW_T^u!M=vi@}Yiq`OTxRe)+xG{C1oC@g3~4MsvS^2Rezt)78&qol`;+0N50H{{R30 literal 0 HcmV?d00001 diff --git a/htdocs/theme/auguria/img/stcomm0_grayed.png b/htdocs/theme/auguria/img/stcomm0_grayed.png new file mode 100644 index 0000000000000000000000000000000000000000..a92e15585063a3780a5f0a2396e5328ccbb59656 GIT binary patch literal 532 zcmV+v0_**WP)zk5RVX#L|EBK*b-Zbm5slk5-YK=wX+cx zB#ngyL4N6xne5-r!Ip_DCTn>N6Z{eFN7x)!R#B!FPyY9ExW{?Ah z32%qH{GK@)N^c?sFkey^s~8zSJ6GJ^>~hfk9Q(=B#(4Of&|8x0DI9b4)#`b0Q1A>r ze5SKW%#&fzu8tZ*>}uL!HNII(j&x*mUIn&-#-8n Wt(bqJ3Hay$00007|8!iCh26`#xY(kCrrm(Tr=jM3>Gv}+}_@7&a)*`dT z+2d=gRJ@Ro!wD3W+t>Q>j)Ye(qubUMY%0$85d=)=h(kpXdF|HsT1={_bA4*8F0nYT zVX!}oRrt9}savt!yr>@vn_1xuJJ@3;gRn-G9CdaEgjS3)AN4tvr zT2|kd`Rz>o2oHHNi#qyekmg#+E^O*!vMXG{%o05V47g5`jufKC!fxyfJ|HFwu<*4E zc9`@PN!rD9=J!|aGbXQ+%4bX4;bY{{_W(cX8%h3}PmG#BuBT;5nNvLTItn?%66TD9 x==N}W1S=G}E1S~mTYPMWP0xiejwkoO{}NUgmzCtTXyX6?002ovPDHLkV1gOU`uzX^ literal 0 HcmV?d00001 diff --git a/htdocs/theme/auguria/img/stcomm2_grayed.png b/htdocs/theme/auguria/img/stcomm2_grayed.png new file mode 100644 index 0000000000000000000000000000000000000000..0f2a4332cfc64f6c86bdd0125c962606afff16f4 GIT binary patch literal 432 zcmV;h0Z;ykP)o000SaNLh0L03N{r03N{s!)a7g00004XF*Lt006O%3;baP0003$NklYk6vcmO(o`xU9n>OHM9@JWKu0GB-@(PjHxS(1bWkTjMd;vLxH>sI34$F2 zv1*Hr_K!{aeV#8>N^Qc;{dev?=f>N&dBE^ZhX}KGcF52Z@SW*-!w%E{YAU%e22XM=+zHfrfsSqpg^1>sN zd^tL|)>EUPD;{)(ue{DZ%4QW6u>M5B|L@i+yg_j0-LeLv3mIEV1x=_MuB^0MipGbn$* z(C-xMgE>fATuXK)TRK%*9X@Tx&OPwLqC1R6ns+7R4Pl!dyLi-nobc`CbQ2hnwSMP} ze=OqjqJj&SG=%Klsnbs=GB7$$$>!&+p#ToB42xM(LMuE&$1xT_@gIEykKJx;VH*J` zY)V|`60&utrm_G-SXMMqVl#yXbf5`-coD%he5iYdCxAHrP$>JMLqLXu|5^rIaC7^v z07gOLYHfeH2pjBBk%qyLjjxI_f)39Z+Jts?^7ZJl4p*FAu*I<$JLIqxP%lDawOU== zOe@?o!=}Mc#ZPP?i>0&dd!z{Xla)GrgMB=n->4#ob$o#^{u=qW`WwAWcaxO!G#8;p z&aN_)LSe&olknWMrH`;@0`}r{Oo zlHMU~N`&!&lWBva{5x_qxK{t!Iz-a_atTwE#rZ8FNt4ZQEgzBq0000BlbuGP5F z_y@Rj;Y!`;!e~&DAf<(fXb}t})B>H$ct97%ySgXe<9z3{`0w?(=|j02>HF@SJL$`; z{soWOLBBoPej?lY%@`l7J>eG^f1p#QjvIaE)uzJXOoPl*ysAzdtW5uPIM*DW^@cM8 z`yy#9G(U*Y=}eAsT?iLbTSM{7`TlG&BOrtXR7j8~c7E5L+Pu|uB=xY+v&Z&!U_@VM zf)@F$B}()9wHYiLGj(HyIlf4yErDy|qQxigIA>_I+E@Kt$I%wk!WZQNQL2(5B?S21 zSb1TUbj_noSTdE5+XBk*K>Q)=5s%AW2rlOS3L?kMNS=-92z+ zzv||VWC+B1irt)MhW8Z1jahD)-dK-1F0taYiRz^+xl7PB53e30`trPxor6ZK=3DX+;UEFCcmDw32AW-06X$4Ye5-afL# z=jYs(vuH|O>sTm+-Brhr-c-E|^VZd7ooDoJH~Sl89hO)<0#-i&0000NS%LiU0G|+7AT2B`%*@Qp&CP9WY%DD; zt*x!?=;+wp-RlqATD7XSw${qZ%ErbfA|j%-wKXj* zO<7sl(9kd=BSTG1EhHqw+S+<=-rW+Q(TpWQe!&b5&u*jvIqjYoJIKb6@4z0(?zXzP++spb?<8+#{XQav{SUMKu-%!v*p3i;hnbmtpXd wW_T^u!M=vi@}Yiq`OTxRe)+xG{C1oC@g3~4MsvS^2Rezt)78&qol`;+0N50H{{R30 literal 0 HcmV?d00001 diff --git a/htdocs/theme/bluelagoon/img/stcomm0_grayed.png b/htdocs/theme/bluelagoon/img/stcomm0_grayed.png new file mode 100644 index 0000000000000000000000000000000000000000..a92e15585063a3780a5f0a2396e5328ccbb59656 GIT binary patch literal 532 zcmV+v0_**WP)zk5RVX#L|EBK*b-Zbm5slk5-YK=wX+cx zB#ngyL4N6xne5-r!Ip_DCTn>N6Z{eFN7x)!R#B!FPyY9ExW{?Ah z32%qH{GK@)N^c?sFkey^s~8zSJ6GJ^>~hfk9Q(=B#(4Of&|8x0DI9b4)#`b0Q1A>r ze5SKW%#&fzu8tZ*>}uL!HNII(j&x*mUIn&-#-8n Wt(bqJ3Hay$00007|8!iCh26`#xY(kCrrm(Tr=jM3>Gv}+}_@7&a)*`dT z+2d=gRJ@Ro!wD3W+t>Q>j)Ye(qubUMY%0$85d=)=h(kpXdF|HsT1={_bA4*8F0nYT zVX!}oRrt9}savt!yr>@vn_1xuJJ@3;gRn-G9CdaEgjS3)AN4tvr zT2|kd`Rz>o2oHHNi#qyekmg#+E^O*!vMXG{%o05V47g5`jufKC!fxyfJ|HFwu<*4E zc9`@PN!rD9=J!|aGbXQ+%4bX4;bY{{_W(cX8%h3}PmG#BuBT;5nNvLTItn?%66TD9 x==N}W1S=G}E1S~mTYPMWP0xiejwkoO{}NUgmzCtTXyX6?002ovPDHLkV1gOU`uzX^ literal 0 HcmV?d00001 diff --git a/htdocs/theme/bluelagoon/img/stcomm2_grayed.png b/htdocs/theme/bluelagoon/img/stcomm2_grayed.png new file mode 100644 index 0000000000000000000000000000000000000000..0f2a4332cfc64f6c86bdd0125c962606afff16f4 GIT binary patch literal 432 zcmV;h0Z;ykP)o000SaNLh0L03N{r03N{s!)a7g00004XF*Lt006O%3;baP0003$NklYk6vcmO(o`xU9n>OHM9@JWKu0GB-@(PjHxS(1bWkTjMd;vLxH>sI34$F2 zv1*Hr_K!{aeV#8>N^Qc;{dev?=f>N&dBE^ZhX}KGcF52Z@SW*-!w%E{YAU%e22XM=+zHfrfsSqpg^1>sN zd^tL|)>EUPD;{)(ue{DZ%4QW6u>M5B|L@i+yg_j0-LeLv3mIEV1x=_MuB^0MipGbn$* z(C-xMgE>fATuXK)TRK%*9X@Tx&OPwLqC1R6ns+7R4Pl!dyLi-nobc`CbQ2hnwSMP} ze=OqjqJj&SG=%Klsnbs=GB7$$$>!&+p#ToB42xM(LMuE&$1xT_@gIEykKJx;VH*J` zY)V|`60&utrm_G-SXMMqVl#yXbf5`-coD%he5iYdCxAHrP$>JMLqLXu|5^rIaC7^v z07gOLYHfeH2pjBBk%qyLjjxI_f)39Z+Jts?^7ZJl4p*FAu*I<$JLIqxP%lDawOU== zOe@?o!=}Mc#ZPP?i>0&dd!z{Xla)GrgMB=n->4#ob$o#^{u=qW`WwAWcaxO!G#8;p z&aN_)LSe&olknWMrH`;@0`}r{Oo zlHMU~N`&!&lWBva{5x_qxK{t!Iz-a_atTwE#rZ8FNt4ZQEgzBq0000BlbuGP5F z_y@Rj;Y!`;!e~&DAf<(fXb}t})B>H$ct97%ySgXe<9z3{`0w?(=|j02>HF@SJL$`; z{soWOLBBoPej?lY%@`l7J>eG^f1p#QjvIaE)uzJXOoPl*ysAzdtW5uPIM*DW^@cM8 z`yy#9G(U*Y=}eAsT?iLbTSM{7`TlG&BOrtXR7j8~c7E5L+Pu|uB=xY+v&Z&!U_@VM zf)@F$B}()9wHYiLGj(HyIlf4yErDy|qQxigIA>_I+E@Kt$I%wk!WZQNQL2(5B?S21 zSb1TUbj_noSTdE5+XBk*K>Q)=5s%AW2rlOS3L?kMNS=-92z+ zzv||VWC+B1irt)MhW8Z1jahD)-dK-1F0taYiRz^+xl7PB53e30`trPxor6ZK=3DX+;UEFCcmDw32AW-06X$4Ye5-afL# z=jYs(vuH|O>sTm+-Brhr-c-E|^VZd7ooDoJH~Sl89hO)<0#-i&0000NS%LiU0G|+7AT2B`%*@Qp&CP9WY%DD; zt*x!?=;+wp-RlqATD7XSw${qZ%ErbfA|j%-wKXj* zO<7sl(9kd=BSTG1EhHqw+S+<=-rW+Q(TpWQe!&b5&u*jvIqjYoJIKb6@4z0(?zXzP++spb?<8+#{XQav{SUMKu-%!v*p3i;hnbmtpXd wW_T^u!M=vi@}Yiq`OTxRe)+xG{C1oC@g3~4MsvS^2Rezt)78&qol`;+0N50H{{R30 literal 0 HcmV?d00001 diff --git a/htdocs/theme/dev/img/stcomm0_grayed.png b/htdocs/theme/dev/img/stcomm0_grayed.png new file mode 100644 index 0000000000000000000000000000000000000000..a92e15585063a3780a5f0a2396e5328ccbb59656 GIT binary patch literal 532 zcmV+v0_**WP)zk5RVX#L|EBK*b-Zbm5slk5-YK=wX+cx zB#ngyL4N6xne5-r!Ip_DCTn>N6Z{eFN7x)!R#B!FPyY9ExW{?Ah z32%qH{GK@)N^c?sFkey^s~8zSJ6GJ^>~hfk9Q(=B#(4Of&|8x0DI9b4)#`b0Q1A>r ze5SKW%#&fzu8tZ*>}uL!HNII(j&x*mUIn&-#-8n Wt(bqJ3Hay$00007|8!iCh26`#xY(kCrrm(Tr=jM3>Gv}+}_@7&a)*`dT z+2d=gRJ@Ro!wD3W+t>Q>j)Ye(qubUMY%0$85d=)=h(kpXdF|HsT1={_bA4*8F0nYT zVX!}oRrt9}savt!yr>@vn_1xuJJ@3;gRn-G9CdaEgjS3)AN4tvr zT2|kd`Rz>o2oHHNi#qyekmg#+E^O*!vMXG{%o05V47g5`jufKC!fxyfJ|HFwu<*4E zc9`@PN!rD9=J!|aGbXQ+%4bX4;bY{{_W(cX8%h3}PmG#BuBT;5nNvLTItn?%66TD9 x==N}W1S=G}E1S~mTYPMWP0xiejwkoO{}NUgmzCtTXyX6?002ovPDHLkV1gOU`uzX^ literal 0 HcmV?d00001 diff --git a/htdocs/theme/dev/img/stcomm2_grayed.png b/htdocs/theme/dev/img/stcomm2_grayed.png new file mode 100644 index 0000000000000000000000000000000000000000..0f2a4332cfc64f6c86bdd0125c962606afff16f4 GIT binary patch literal 432 zcmV;h0Z;ykP)o000SaNLh0L03N{r03N{s!)a7g00004XF*Lt006O%3;baP0003$NklYk6vcmO(o`xU9n>OHM9@JWKu0GB-@(PjHxS(1bWkTjMd;vLxH>sI34$F2 zv1*Hr_K!{aeV#8>N^Qc;{dev?=f>N&dBE^ZhX}KGcF52Z@SW*-!w%E{YAU%e22XM=+zHfrfsSqpg^1>sN zd^tL|)>EUPD;{)(ue{DZ%4QW6u>M5B|L@i+yg_j0-LeLv3mIEV1x=_MuB^0MipGbn$* z(C-xMgE>fATuXK)TRK%*9X@Tx&OPwLqC1R6ns+7R4Pl!dyLi-nobc`CbQ2hnwSMP} ze=OqjqJj&SG=%Klsnbs=GB7$$$>!&+p#ToB42xM(LMuE&$1xT_@gIEykKJx;VH*J` zY)V|`60&utrm_G-SXMMqVl#yXbf5`-coD%he5iYdCxAHrP$>JMLqLXu|5^rIaC7^v z07gOLYHfeH2pjBBk%qyLjjxI_f)39Z+Jts?^7ZJl4p*FAu*I<$JLIqxP%lDawOU== zOe@?o!=}Mc#ZPP?i>0&dd!z{Xla)GrgMB=n->4#ob$o#^{u=qW`WwAWcaxO!G#8;p z&aN_)LSe&olknWMrH`;@0`}r{Oo zlHMU~N`&!&lWBva{5x_qxK{t!Iz-a_atTwE#rZ8FNt4ZQEgzBq0000BlbuGP5F z_y@Rj;Y!`;!e~&DAf<(fXb}t})B>H$ct97%ySgXe<9z3{`0w?(=|j02>HF@SJL$`; z{soWOLBBoPej?lY%@`l7J>eG^f1p#QjvIaE)uzJXOoPl*ysAzdtW5uPIM*DW^@cM8 z`yy#9G(U*Y=}eAsT?iLbTSM{7`TlG&BOrtXR7j8~c7E5L+Pu|uB=xY+v&Z&!U_@VM zf)@F$B}()9wHYiLGj(HyIlf4yErDy|qQxigIA>_I+E@Kt$I%wk!WZQNQL2(5B?S21 zSb1TUbj_noSTdE5+XBk*K>Q)=5s%AW2rlOS3L?kMNS=-92z+ zzv||VWC+B1irt)MhW8Z1jahD)-dK-1F0taYiRz^+xl7PB53e30`trPxor6ZK=3DX+;UEFCcmDw32AW-06X$4Ye5-afL# z=jYs(vuH|O>sTm+-Brhr-c-E|^VZd7ooDoJH~Sl89hO)<0#-i&0000NS%LiU0G|+7AT2B`%*@Qp&CP9WY%DD; zt*x!?=;+wp-RlqATD7XSw${qZ%ErbfA|j%-wKXj* zO<7sl(9kd=BSTG1EhHqw+S+<=-rW+Q(TpWQe!&b5&u*jvIqjYoJIKb6@4z0(?zXzP++spb?<8+#{XQav{SUMKu-%!v*p3i;hnbmtpXd wW_T^u!M=vi@}Yiq`OTxRe)+xG{C1oC@g3~4MsvS^2Rezt)78&qol`;+0N50H{{R30 literal 0 HcmV?d00001 diff --git a/htdocs/theme/eldy/img/stcomm0_grayed.png b/htdocs/theme/eldy/img/stcomm0_grayed.png new file mode 100644 index 0000000000000000000000000000000000000000..a92e15585063a3780a5f0a2396e5328ccbb59656 GIT binary patch literal 532 zcmV+v0_**WP)zk5RVX#L|EBK*b-Zbm5slk5-YK=wX+cx zB#ngyL4N6xne5-r!Ip_DCTn>N6Z{eFN7x)!R#B!FPyY9ExW{?Ah z32%qH{GK@)N^c?sFkey^s~8zSJ6GJ^>~hfk9Q(=B#(4Of&|8x0DI9b4)#`b0Q1A>r ze5SKW%#&fzu8tZ*>}uL!HNII(j&x*mUIn&-#-8n Wt(bqJ3Hay$00007|8!iCh26`#xY(kCrrm(Tr=jM3>Gv}+}_@7&a)*`dT z+2d=gRJ@Ro!wD3W+t>Q>j)Ye(qubUMY%0$85d=)=h(kpXdF|HsT1={_bA4*8F0nYT zVX!}oRrt9}savt!yr>@vn_1xuJJ@3;gRn-G9CdaEgjS3)AN4tvr zT2|kd`Rz>o2oHHNi#qyekmg#+E^O*!vMXG{%o05V47g5`jufKC!fxyfJ|HFwu<*4E zc9`@PN!rD9=J!|aGbXQ+%4bX4;bY{{_W(cX8%h3}PmG#BuBT;5nNvLTItn?%66TD9 x==N}W1S=G}E1S~mTYPMWP0xiejwkoO{}NUgmzCtTXyX6?002ovPDHLkV1gOU`uzX^ literal 0 HcmV?d00001 diff --git a/htdocs/theme/eldy/img/stcomm2_grayed.png b/htdocs/theme/eldy/img/stcomm2_grayed.png new file mode 100644 index 0000000000000000000000000000000000000000..0f2a4332cfc64f6c86bdd0125c962606afff16f4 GIT binary patch literal 432 zcmV;h0Z;ykP)o000SaNLh0L03N{r03N{s!)a7g00004XF*Lt006O%3;baP0003$NklYk6vcmO(o`xU9n>OHM9@JWKu0GB-@(PjHxS(1bWkTjMd;vLxH>sI34$F2 zv1*Hr_K!{aeV#8>N^Qc;{dev?=f>N&dBE^ZhX}KGcF52Z@SW*-!w%E{YAU%e22XM=+zHfrfsSqpg^1>sN zd^tL|)>EUPD;{)(ue{DZ%4QW6u>M5B|L@i+yg_j0-LeLv3mIEV1x=_MuB^0MipGbn$* z(C-xMgE>fATuXK)TRK%*9X@Tx&OPwLqC1R6ns+7R4Pl!dyLi-nobc`CbQ2hnwSMP} ze=OqjqJj&SG=%Klsnbs=GB7$$$>!&+p#ToB42xM(LMuE&$1xT_@gIEykKJx;VH*J` zY)V|`60&utrm_G-SXMMqVl#yXbf5`-coD%he5iYdCxAHrP$>JMLqLXu|5^rIaC7^v z07gOLYHfeH2pjBBk%qyLjjxI_f)39Z+Jts?^7ZJl4p*FAu*I<$JLIqxP%lDawOU== zOe@?o!=}Mc#ZPP?i>0&dd!z{Xla)GrgMB=n->4#ob$o#^{u=qW`WwAWcaxO!G#8;p z&aN_)LSe&olknWMrH`;@0`}r{Oo zlHMU~N`&!&lWBva{5x_qxK{t!Iz-a_atTwE#rZ8FNt4ZQEgzBq0000BlbuGP5F z_y@Rj;Y!`;!e~&DAf<(fXb}t})B>H$ct97%ySgXe<9z3{`0w?(=|j02>HF@SJL$`; z{soWOLBBoPej?lY%@`l7J>eG^f1p#QjvIaE)uzJXOoPl*ysAzdtW5uPIM*DW^@cM8 z`yy#9G(U*Y=}eAsT?iLbTSM{7`TlG&BOrtXR7j8~c7E5L+Pu|uB=xY+v&Z&!U_@VM zf)@F$B}()9wHYiLGj(HyIlf4yErDy|qQxigIA>_I+E@Kt$I%wk!WZQNQL2(5B?S21 zSb1TUbj_noSTdE5+XBk*K>Q)=5s%AW2rlOS3L?kMNS=-92z+ zzv||VWC+B1irt)MhW8Z1jahD)-dK-1F0taYiRz^+xl7PB53e30`trPxor6ZK=3DX+;UEFCcmDw32AW-06X$4Ye5-afL# z=jYs(vuH|O>sTm+-Brhr-c-E|^VZd7ooDoJH~Sl89hO)<0#-i&0000NS%LiU0G|+7AT2B`%*@Qp&CP9WY%DD; zt*x!?=;+wp-RlqATD7XSw${qZ%ErbfA|j%-wKXj* zO<7sl(9kd=BSTG1EhHqw+S+<=-rW+Q(TpWQe!&b5&u*jvIqjYoJIKb6@4z0(?zXzP++spb?<8+#{XQav{SUMKu-%!v*p3i;hnbmtpXd wW_T^u!M=vi@}Yiq`OTxRe)+xG{C1oC@g3~4MsvS^2Rezt)78&qol`;+0N50H{{R30 literal 0 HcmV?d00001 diff --git a/htdocs/theme/freelug/img/stcomm0_grayed.png b/htdocs/theme/freelug/img/stcomm0_grayed.png new file mode 100644 index 0000000000000000000000000000000000000000..a92e15585063a3780a5f0a2396e5328ccbb59656 GIT binary patch literal 532 zcmV+v0_**WP)zk5RVX#L|EBK*b-Zbm5slk5-YK=wX+cx zB#ngyL4N6xne5-r!Ip_DCTn>N6Z{eFN7x)!R#B!FPyY9ExW{?Ah z32%qH{GK@)N^c?sFkey^s~8zSJ6GJ^>~hfk9Q(=B#(4Of&|8x0DI9b4)#`b0Q1A>r ze5SKW%#&fzu8tZ*>}uL!HNII(j&x*mUIn&-#-8n Wt(bqJ3Hay$00007|8!iCh26`#xY(kCrrm(Tr=jM3>Gv}+}_@7&a)*`dT z+2d=gRJ@Ro!wD3W+t>Q>j)Ye(qubUMY%0$85d=)=h(kpXdF|HsT1={_bA4*8F0nYT zVX!}oRrt9}savt!yr>@vn_1xuJJ@3;gRn-G9CdaEgjS3)AN4tvr zT2|kd`Rz>o2oHHNi#qyekmg#+E^O*!vMXG{%o05V47g5`jufKC!fxyfJ|HFwu<*4E zc9`@PN!rD9=J!|aGbXQ+%4bX4;bY{{_W(cX8%h3}PmG#BuBT;5nNvLTItn?%66TD9 x==N}W1S=G}E1S~mTYPMWP0xiejwkoO{}NUgmzCtTXyX6?002ovPDHLkV1gOU`uzX^ literal 0 HcmV?d00001 diff --git a/htdocs/theme/freelug/img/stcomm2_grayed.png b/htdocs/theme/freelug/img/stcomm2_grayed.png new file mode 100644 index 0000000000000000000000000000000000000000..0f2a4332cfc64f6c86bdd0125c962606afff16f4 GIT binary patch literal 432 zcmV;h0Z;ykP)o000SaNLh0L03N{r03N{s!)a7g00004XF*Lt006O%3;baP0003$NklYk6vcmO(o`xU9n>OHM9@JWKu0GB-@(PjHxS(1bWkTjMd;vLxH>sI34$F2 zv1*Hr_K!{aeV#8>N^Qc;{dev?=f>N&dBE^ZhX}KGcF52Z@SW*-!w%E{YAU%e22XM=+zHfrfsSqpg^1>sN zd^tL|)>EUPD;{)(ue{DZ%4QW6u>M5B|L@i+yg_j0-LeLv3mIEV1x=_MuB^0MipGbn$* z(C-xMgE>fATuXK)TRK%*9X@Tx&OPwLqC1R6ns+7R4Pl!dyLi-nobc`CbQ2hnwSMP} ze=OqjqJj&SG=%Klsnbs=GB7$$$>!&+p#ToB42xM(LMuE&$1xT_@gIEykKJx;VH*J` zY)V|`60&utrm_G-SXMMqVl#yXbf5`-coD%he5iYdCxAHrP$>JMLqLXu|5^rIaC7^v z07gOLYHfeH2pjBBk%qyLjjxI_f)39Z+Jts?^7ZJl4p*FAu*I<$JLIqxP%lDawOU== zOe@?o!=}Mc#ZPP?i>0&dd!z{Xla)GrgMB=n->4#ob$o#^{u=qW`WwAWcaxO!G#8;p z&aN_)LSe&olknWMrH`;@0`}r{Oo zlHMU~N`&!&lWBva{5x_qxK{t!Iz-a_atTwE#rZ8FNt4ZQEgzBq0000BlbuGP5F z_y@Rj;Y!`;!e~&DAf<(fXb}t})B>H$ct97%ySgXe<9z3{`0w?(=|j02>HF@SJL$`; z{soWOLBBoPej?lY%@`l7J>eG^f1p#QjvIaE)uzJXOoPl*ysAzdtW5uPIM*DW^@cM8 z`yy#9G(U*Y=}eAsT?iLbTSM{7`TlG&BOrtXR7j8~c7E5L+Pu|uB=xY+v&Z&!U_@VM zf)@F$B}()9wHYiLGj(HyIlf4yErDy|qQxigIA>_I+E@Kt$I%wk!WZQNQL2(5B?S21 zSb1TUbj_noSTdE5+XBk*K>Q)=5s%AW2rlOS3L?kMNS=-92z+ zzv||VWC+B1irt)MhW8Z1jahD)-dK-1F0taYiRz^+xl7PB53e30`trPxor6ZK=3DX+;UEFCcmDw32AW-06X$4Ye5-afL# z=jYs(vuH|O>sTm+-Brhr-c-E|^VZd7ooDoJH~Sl89hO)<0#-i&0000NS%LiU0G|+7AT2B`%*@Qp&CP9WY%DD; zt*x!?=;+wp-RlqATD7XSw${qZ%ErbfA|j%-wKXj* zO<7sl(9kd=BSTG1EhHqw+S+<=-rW+Q(TpWQe!&b5&u*jvIqjYoJIKb6@4z0(?zXzP++spb?<8+#{XQav{SUMKu-%!v*p3i;hnbmtpXd wW_T^u!M=vi@}Yiq`OTxRe)+xG{C1oC@g3~4MsvS^2Rezt)78&qol`;+0N50H{{R30 literal 0 HcmV?d00001 diff --git a/htdocs/theme/yellow/img/stcomm0_grayed.png b/htdocs/theme/yellow/img/stcomm0_grayed.png new file mode 100644 index 0000000000000000000000000000000000000000..a92e15585063a3780a5f0a2396e5328ccbb59656 GIT binary patch literal 532 zcmV+v0_**WP)zk5RVX#L|EBK*b-Zbm5slk5-YK=wX+cx zB#ngyL4N6xne5-r!Ip_DCTn>N6Z{eFN7x)!R#B!FPyY9ExW{?Ah z32%qH{GK@)N^c?sFkey^s~8zSJ6GJ^>~hfk9Q(=B#(4Of&|8x0DI9b4)#`b0Q1A>r ze5SKW%#&fzu8tZ*>}uL!HNII(j&x*mUIn&-#-8n Wt(bqJ3Hay$00007|8!iCh26`#xY(kCrrm(Tr=jM3>Gv}+}_@7&a)*`dT z+2d=gRJ@Ro!wD3W+t>Q>j)Ye(qubUMY%0$85d=)=h(kpXdF|HsT1={_bA4*8F0nYT zVX!}oRrt9}savt!yr>@vn_1xuJJ@3;gRn-G9CdaEgjS3)AN4tvr zT2|kd`Rz>o2oHHNi#qyekmg#+E^O*!vMXG{%o05V47g5`jufKC!fxyfJ|HFwu<*4E zc9`@PN!rD9=J!|aGbXQ+%4bX4;bY{{_W(cX8%h3}PmG#BuBT;5nNvLTItn?%66TD9 x==N}W1S=G}E1S~mTYPMWP0xiejwkoO{}NUgmzCtTXyX6?002ovPDHLkV1gOU`uzX^ literal 0 HcmV?d00001 diff --git a/htdocs/theme/yellow/img/stcomm2_grayed.png b/htdocs/theme/yellow/img/stcomm2_grayed.png new file mode 100644 index 0000000000000000000000000000000000000000..0f2a4332cfc64f6c86bdd0125c962606afff16f4 GIT binary patch literal 432 zcmV;h0Z;ykP)o000SaNLh0L03N{r03N{s!)a7g00004XF*Lt006O%3;baP0003$NklYk6vcmO(o`xU9n>OHM9@JWKu0GB-@(PjHxS(1bWkTjMd;vLxH>sI34$F2 zv1*Hr_K!{aeV#8>N^Qc;{dev?=f>N&dBE^ZhX}KGcF52Z@SW*-!w%E{YAU%e22XM=+zHfrfsSqpg^1>sN zd^tL|)>EUPD;{)(ue{DZ%4QW6u>M5B|L@i+yg_j0-LeLv3mIEV1x=_MuB^0MipGbn$* z(C-xMgE>fATuXK)TRK%*9X@Tx&OPwLqC1R6ns+7R4Pl!dyLi-nobc`CbQ2hnwSMP} ze=OqjqJj&SG=%Klsnbs=GB7$$$>!&+p#ToB42xM(LMuE&$1xT_@gIEykKJx;VH*J` zY)V|`60&utrm_G-SXMMqVl#yXbf5`-coD%he5iYdCxAHrP$>JMLqLXu|5^rIaC7^v z07gOLYHfeH2pjBBk%qyLjjxI_f)39Z+Jts?^7ZJl4p*FAu*I<$JLIqxP%lDawOU== zOe@?o!=}Mc#ZPP?i>0&dd!z{Xla)GrgMB=n->4#ob$o#^{u=qW`WwAWcaxO!G#8;p z&aN_)LSe&olknWMrH`;@0`}r{Oo zlHMU~N`&!&lWBva{5x_qxK{t!Iz-a_atTwE#rZ8FNt4ZQEgzBq0000BlbuGP5F z_y@Rj;Y!`;!e~&DAf<(fXb}t})B>H$ct97%ySgXe<9z3{`0w?(=|j02>HF@SJL$`; z{soWOLBBoPej?lY%@`l7J>eG^f1p#QjvIaE)uzJXOoPl*ysAzdtW5uPIM*DW^@cM8 z`yy#9G(U*Y=}eAsT?iLbTSM{7`TlG&BOrtXR7j8~c7E5L+Pu|uB=xY+v&Z&!U_@VM zf)@F$B}()9wHYiLGj(HyIlf4yErDy|qQxigIA>_I+E@Kt$I%wk!WZQNQL2(5B?S21 zSb1TUbj_noSTdE5+XBk*K>Q)=5s%AW2rlOS3L?kMNS=-92z+ zzv||VWC+B1irt)MhW8Z1jahD)-dK-1F0taYiRz^+xl7PB53e30`trPxor6ZK=3DX+;UEFCcmDw32AW-06X$4Ye5-afL# z=jYs(vuH|O>sTm+-Brhr-c-E|^VZd7ooDoJH~Sl89hO)<0#-i&0000