From 337643e53e29b9862b92c6d73ce7a27975e79d02 Mon Sep 17 00:00:00 2001
From: aspangaro <alexandre.spangaro@gmail.com>
Date: Wed, 4 Nov 2015 22:31:24 +0100
Subject: [PATCH 001/197] Accountancy : Correct errors of display in bank
 journal

---
 htdocs/accountancy/journal/bankjournal.php | 70 ++++++++++++++--------
 1 file changed, 46 insertions(+), 24 deletions(-)

diff --git a/htdocs/accountancy/journal/bankjournal.php b/htdocs/accountancy/journal/bankjournal.php
index c97cde97b14..bed5376064f 100644
--- a/htdocs/accountancy/journal/bankjournal.php
+++ b/htdocs/accountancy/journal/bankjournal.php
@@ -264,7 +264,7 @@ if ($result) {
  */
 
 // Write bookkeeping
-if ($action == 'writeBookKeeping')
+if ($action == 'writebookkeeping')
 {
 	$error = 0;
 	foreach ( $tabpay as $key => $val )
@@ -406,10 +406,32 @@ if ($action == 'writeBookKeeping')
 	}
 }
 // Export
-if ($action == 'export_csv')
-{
+if ($action == 'export_csv') {
 	$sep = $conf->global->ACCOUNTING_EXPORT_SEPARATORCSV;
-	$bank_journal = $conf->global->ACCOUNTING_BANK_JOURNAL;
+	
+	// Journal
+	$bank = "SELECT rowid, label, accountancy_journal";
+	$bank.= " FROM ".MAIN_DB_PREFIX."bank_account";
+	$bank.= " WHERE entity = ".$conf->entity;
+	$bank.= " AND rowid = '".$id_accountancy_journal."'";
+
+	$resql = $db->query($bank);
+	if ($resql)
+	{
+        if ($db->num_rows($resql))
+        {
+            $obj = $db->fetch_object($resql);
+
+			$journal = $objp->accountancy_journal;
+        }
+        return 1;
+    }
+    else
+    {
+        dol_print_error($this->db);
+        return -1;
+    }
+	//$journal = $conf->global->ACCOUNTING_BANK_JOURNAL;
 
 	header('Content-Type: text/csv');
 	header('Content-Disposition: attachment;filename=journal_banque.csv');
@@ -421,16 +443,16 @@ if ($action == 'export_csv')
 		$sep = ";";
 		
 		foreach ( $tabpay as $key => $val ) {
-			$date = dol_print_date($db->jdate($val["date"]), '%d%m%Y');
-
-
 			$companystatic->id = $tabcompany[$key]['id'];
 			$companystatic->name = $tabcompany[$key]['name'];
+			$companystatic->client = $tabcompany[$key]['code_client'];
+
+			$date = dol_print_date($db->jdate($val["date"]), '%d%m%Y');
 
 			// Bank
 			foreach ( $tabbq[$key] as $k => $mt ) {
 				print $date . $sep;
-				print $bank_journal . $sep;
+				print $journal . $sep;
 				print length_accountg(html_entity_decode($k)) . $sep;
 				print $sep;
 				print ($mt < 0 ? 'C' : 'D') . $sep;
@@ -448,7 +470,7 @@ if ($action == 'export_csv')
 					if ($mt)
 					{
 						print $date . $sep;
-						print $bank_journal . $sep;
+						print $journal . $sep;
 						if ($val["lib"] == '(SupplierInvoicePayment)') {
 							print length_accountg($conf->global->ACCOUNTING_ACCOUNT_SUPPLIER) . $sep;
 						} else {
@@ -470,8 +492,8 @@ if ($action == 'export_csv')
 					if (1)
 					{
 						print $date . $sep;
-						print $bank_journal . $sep;
-						print $conf->global->ACCOUNTING_ACCOUNT_SUSPENSE . $sep;
+						print $journal . $sep;
+						print length_accountg($conf->global->ACCOUNTING_ACCOUNT_SUSPENSE) . $sep;
 						print $sep;
 						print ($mt < 0 ? 'D' : 'C') . $sep;
 						print ($mt <= 0 ? price(- $mt) : $mt) . $sep;
@@ -482,8 +504,7 @@ if ($action == 'export_csv')
 				}
 			}
 		}
-	} else 	// Model Classic Export
-	{
+	} else { 	// Model Classic Export
 		foreach ( $tabpay as $key => $val ) {
 			$date = dol_print_date($db->jdate($val["date"]), 'day');
 
@@ -525,7 +546,7 @@ if ($action == 'export_csv')
 					{
 						print '"' . $date . '"' . $sep;
 						print '"' . $val["ref"] . '"' . $sep;
-						print '"' . $conf->global->ACCOUNTING_ACCOUNT_SUSPENSE . '"' . $sep;
+						print '"' . length_accountg($conf->global->ACCOUNTING_ACCOUNT_SUSPENSE) . '"' . $sep;
 						print '"' . $langs->trans("Bank") . '"' . $sep;
 						print '"' . ($mt < 0 ? price(- $mt) : '') . '"' . $sep;
 						print '"' . ($mt >= 0 ? price($mt) : '') . '"';
@@ -535,15 +556,13 @@ if ($action == 'export_csv')
 			}
 		}
 	}
-}
-else
-{
-
+} else {
 	$form = new Form($db);
 
 	llxHeader('', $langs->trans("BankJournal"));
 
 	$namereport = $langs->trans("BankJournal");
+	$namereport.= "&nbsp;" . $journal;
 	$description = $langs->trans("DescBankJournal");
 	$period = $form->select_date($date_start, 'date_start', 0, 0, 0, '', 1, 0, 1) . ' - ' . $form->select_date($date_end, 'date_end', 0, 0, 0, '', 1, 0, 1);
 
@@ -553,9 +572,11 @@ else
 	$head[$h][1] = $langs->trans("Report");
 	$head[$h][2] = 'report';
 
-	dol_fiche_head($head, $hselected);
+	dol_fiche_head($head, 'report');
 
 	print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'?id_account='.$id_accountancy_journal.'">';
+	print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
+
 	print '<table width="100%" class="border">';
 
 	// Title
@@ -594,8 +615,8 @@ else
 	
 	print '<input type="button" class="button" style="float: right;" value="' . $langs->trans("Export") . '" onclick="launch_export();" />';
 
-	print '<input type="button" class="button" value="' . $langs->trans("WriteBookKeeping") . '" onclick="writeBookKeeping();" />';
-
+	print '<input type="button" class="button" value="' . $langs->trans("WriteBookKeeping") . '" onclick="writebookkeeping();" />';
+	
 	print '
 	<script type="text/javascript">
 		function launch_export() {
@@ -603,8 +624,8 @@ else
 			$("div.fiche div.tabBar form input[type=\"submit\"]").click();
 		    $("div.fiche div.tabBar form input[name=\"action\"]").val("");
 		}
-		function writeBookKeeping() {
-		    $("div.fiche div.tabBar form input[name=\"action\"]").val("writeBookKeeping");
+		function writebookkeeping() {
+		    $("div.fiche div.tabBar form input[name=\"action\"]").val("writebookkeeping");
 			$("div.fiche div.tabBar form input[type=\"submit\"]").click();
 		    $("div.fiche div.tabBar form input[name=\"action\"]").val("");
 		}
@@ -674,8 +695,9 @@ else
 				print "<tr " . $bc[$var] . ">";
 				print "<td>" . $date . "</td>";
 				print "<td>" . $reflabel . "</td>";
-				print "<td>" . $conf->global->ACCOUNTING_ACCOUNT_SUSPENSE . "</td>";
+				print "<td>" . length_accountg($conf->global->ACCOUNTING_ACCOUNT_SUSPENSE) . "</td>";
 				print "<td>" . $langs->trans('ThirdParty') . "</td>";
+				print "<td>&nbsp;</td>";
 				print "<td align='right'>" . ($mt < 0 ? price(- $mt) : '') . "</td>";
 				print "<td align='right'>" . ($mt >= 0 ? price($mt) : '') . "</td>";
 				print "</tr>";
-- 
GitLab


From 9f27e2323f33e42e27fb55ddaf7dfffced77f87a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marcos=20Garci=CC=81a=20de=20La=20Fuente?=
 <marcosgdf@gmail.com>
Date: Sat, 21 Nov 2015 11:51:23 +0100
Subject: [PATCH 002/197] FIX #3734 Do not show empty links of deleted source
 objects in stock movement list

---
 htdocs/product/stock/class/mouvementstock.class.php | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/htdocs/product/stock/class/mouvementstock.class.php b/htdocs/product/stock/class/mouvementstock.class.php
index 2d4a8971f1b..7cc687c9191 100644
--- a/htdocs/product/stock/class/mouvementstock.class.php
+++ b/htdocs/product/stock/class/mouvementstock.class.php
@@ -508,7 +508,10 @@ class MouvementStock
 				break;
 		}
 		
-		$origin->fetch($fk_origin);
-		return $origin->getNomUrl(1);
+		if ($origin->fetch($fk_origin) > 0) {
+			return $origin->getNomUrl(1);
+		}
+
+		return '';
 	}
 }
-- 
GitLab


From 91ce70a6e98035e8796f2953974a9ba3fe9a17f5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rapha=C3=ABl=20Doursenaud?= <rdoursenaud@gpcsolutions.fr>
Date: Mon, 23 Nov 2015 17:25:10 +0100
Subject: [PATCH 003/197] FIX #4081 Added missing translation

---
 htdocs/langs/en_US/users.lang | 1 +
 1 file changed, 1 insertion(+)

diff --git a/htdocs/langs/en_US/users.lang b/htdocs/langs/en_US/users.lang
index a9d789b8c31..197d56e37ee 100644
--- a/htdocs/langs/en_US/users.lang
+++ b/htdocs/langs/en_US/users.lang
@@ -119,3 +119,4 @@ HierarchicView=Hierarchical view
 UseTypeFieldToChange=Use field Type to change
 OpenIDURL=OpenID URL
 LoginUsingOpenID=Use OpenID to login
+DisabledInMonoUserMode=Disabled in maintenance mode
-- 
GitLab


From 973e42d10f5a70fc26f1e133f8006160c9de8169 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rapha=C3=ABl=20Doursenaud?= <rdoursenaud@gpcsolutions.fr>
Date: Wed, 25 Nov 2015 19:30:20 +0100
Subject: [PATCH 004/197] FIX #4097 Public holiday calculation

The last day was ommitted and never parsed. If this day was a
saturday, sunday or public holiday day, it was not computed.
---
 htdocs/core/lib/date.lib.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/htdocs/core/lib/date.lib.php b/htdocs/core/lib/date.lib.php
index 924d3da2259..2604d6c9086 100644
--- a/htdocs/core/lib/date.lib.php
+++ b/htdocs/core/lib/date.lib.php
@@ -566,7 +566,7 @@ function num_public_holiday($timestampStart, $timestampEnd, $countrycode='FR')
 	if ((($timestampEnd - $timestampStart) % 86400) != 0) return 'ErrorDates must use same hours and must be GMT dates';
 
 	$i=0;
-	while ($timestampStart < $timestampEnd && ($i < 50000))		// Loop end when equals (Test on i is a security loop to avoid infinite loop)
+	while ($timestampStart <= $timestampEnd && ($i < 50000))		// Loop end when equals (Test on i is a security loop to avoid infinite loop)
 	{
 		$ferie=false;
 		$countryfound=0;
-- 
GitLab


From 3457a732f52a017e4dab55a43346f0952c9591e7 Mon Sep 17 00:00:00 2001
From: aspangaro <alexandre.spangaro@gmail.com>
Date: Wed, 25 Nov 2015 20:19:18 +0100
Subject: [PATCH 005/197] New: Better integration of skype

---
 htdocs/admin/skype.php                   | 166 +++++++++++++++++++++++
 htdocs/core/class/commonobject.class.php |   1 +
 htdocs/core/modules/modSkype.class.php   |   6 +-
 htdocs/langs/en_US/admin.lang            |   5 +
 4 files changed, 175 insertions(+), 3 deletions(-)
 create mode 100644 htdocs/admin/skype.php

diff --git a/htdocs/admin/skype.php b/htdocs/admin/skype.php
new file mode 100644
index 00000000000..a1778afd101
--- /dev/null
+++ b/htdocs/admin/skype.php
@@ -0,0 +1,166 @@
+<?php
+/* Copyright (C) 2015 		Alexandre Spangaro <aspangaro.dolibarr@gmail.com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ *     \file 	htdocs/admin/skype.php
+ *     \ingroup Skype
+ *     \brief 	Skype module setup page
+ */
+require('../main.inc.php');
+require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
+
+$langs->load("admin");
+
+if (! $user->admin)
+	accessforbidden();
+
+$action = GETPOST('action', 'alpha');
+
+/*
+ * Actions
+ */
+if (preg_match('/set_(.*)/',$action,$reg))
+{
+	$code=$reg[1];
+	$value=(GETPOST($code) ? GETPOST($code) : 1);
+	if (dolibarr_set_const($db, $code, $value, 'chaine', 0, '', $conf->entity) > 0)
+	{
+		Header("Location: ".$_SERVER["PHP_SELF"]);
+		exit;
+	}
+	else
+	{
+		dol_print_error($db);
+	}
+}
+
+else if (preg_match('/del_(.*)/',$action,$reg))
+{
+	$code=$reg[1];
+	if (dolibarr_del_const($db, $code, $conf->entity) > 0)
+	{
+		Header("Location: ".$_SERVER["PHP_SELF"]);
+		exit;
+	}
+	else
+	{
+		dol_print_error($db);
+	}
+}
+
+/*
+ * View
+ */
+llxHeader('', $langs->trans('Parameters'));
+
+$form = new Form($db);
+
+dol_htmloutput_mesg($mesg);
+
+// Subheader
+$linkback = '<a href="' . DOL_URL_ROOT . '/admin/modules.php">' . $langs->trans("BackToModuleList") . '</a>';
+print load_fiche_titre($langs->trans("SkypeSetup"), $linkback);
+
+// Configuration header
+$h = 0;
+$head = array ();
+
+$head[$h][0] = dol_buildpath('/admin/skype.php', 1);
+$head[$h][1] = $langs->trans("Configuration");
+$head[$h][2] = 'parameters';
+$h ++;
+
+dol_fiche_head($head, 'parameters', $langs->trans("Skype"), 0, "skype");
+
+if (! $conf->use_javascript_ajax) {
+	print '<form method="post" action="' . $_SERVER["PHP_SELF"] . '" enctype="multipart/form-data">';
+	print '<input type="hidden" name="token" value="' . $_SESSION['newtoken'] . '">';
+	print '<input type="hidden" name="action" value="setvar">';
+}
+
+print '<table class="noborder" width="100%">';
+print '<tr class="liste_titre">';
+print '<td colspan="3">' . $langs->trans('Parameters') . '</td>';
+print "</tr>\n";
+
+$var = ! $var;
+
+print '<tr ' . $bc[$var] . '><td>' . $langs->trans("SkypeDeactivateInUser") . '</td>';
+print '<td align="left">';
+if ($conf->use_javascript_ajax) {
+	print ajax_constantonoff('SKYPE_DEACTIVATE_IN_USER');
+}
+else
+{
+	if (empty($conf->global->SKYPE_DEACTIVATE_IN_USER))
+	{
+		print '<a href="'.$_SERVER['PHP_SELF'].'?action=set_SKYPE_DEACTIVATE_IN_USER">'.img_picto($langs->trans("Disabled"),'switch_off').'</a>';
+	}
+	else
+	{
+		print '<a href="'.$_SERVER['PHP_SELF'].'?action=del_SKYPE_DEACTIVATE_IN_USER">'.img_picto($langs->trans("Enabled"),'switch_on').'</a>';
+	}
+}
+print '</td>';
+print '</tr>';
+
+print '<tr ' . $bc[$var] . '><td>' . $langs->trans("SkypeDeactivateInContact") . '</td>';
+print '<td align="left">';
+if ($conf->use_javascript_ajax) {
+	print ajax_constantonoff('SKYPE_DEACTIVATE_IN_CONTACT');
+}
+else
+{
+	if (empty($conf->global->SKYPE_DEACTIVATE_IN_CONTACT))
+	{
+		print '<a href="'.$_SERVER['PHP_SELF'].'?action=set_SKYPE_DEACTIVATE_IN_CONTACT">'.img_picto($langs->trans("Disabled"),'switch_off').'</a>';
+	}
+	else
+	{
+		print '<a href="'.$_SERVER['PHP_SELF'].'?action=del_SKYPE_DEACTIVATE_IN_CONTACT">'.img_picto($langs->trans("Enabled"),'switch_on').'</a>';
+	}
+}
+print '</td>';
+print '</tr>';
+
+print '<tr ' . $bc[$var] . '><td>' . $langs->trans("SkypeDeactivateInMember") . '</td>';
+print '<td align="left">';
+if ($conf->use_javascript_ajax) {
+	print ajax_constantonoff('SKYPE_DEACTIVATE_IN_MEMBER');
+}
+else
+{
+	if (empty($conf->global->SKYPE_DEACTIVATE_IN_MEMBER))
+	{
+		print '<a href="'.$_SERVER['PHP_SELF'].'?action=set_SKYPE_DEACTIVATE_IN_MEMBER">'.img_picto($langs->trans("Disabled"),'switch_off').'</a>';
+	}
+	else
+	{
+		print '<a href="'.$_SERVER['PHP_SELF'].'?action=del_SKYPE_DEACTIVATE_IN_MEMBER">'.img_picto($langs->trans("Enabled"),'switch_on').'</a>';
+	}
+}
+print '</td>';
+print '</tr>';
+
+print "</table>\n";
+
+dol_fiche_end();
+
+print '</form>';
+
+llxFooter();
+$db->close();
diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php
index 388f51e7dc5..9cb9a3d45ab 100644
--- a/htdocs/core/class/commonobject.class.php
+++ b/htdocs/core/class/commonobject.class.php
@@ -9,6 +9,7 @@
  * Copyright (C) 2012-2015 Marcos García        <marcosgdf@gmail.com>
  * Copyright (C) 2012-2015 Raphaël Doursenaud   <rdoursenaud@gpcsolutions.fr>
  * Copyright (C) 2012      Cedric Salvador      <csalvador@gpcsolutions.fr>
+ * Copyright (C) 2015      Alexandre Spangaro   <aspangaro.dolibarr@gmail.com>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
diff --git a/htdocs/core/modules/modSkype.class.php b/htdocs/core/modules/modSkype.class.php
index 280b871e475..2c7686d9349 100644
--- a/htdocs/core/modules/modSkype.class.php
+++ b/htdocs/core/modules/modSkype.class.php
@@ -42,8 +42,8 @@ class modSkype extends DolibarrModules
         $this->db = $db;
         $this->numero = 3100;
 
-		    // Family can be 'crm','financial','hr','projects','products','ecm','technic','other'
-		    // It is used to group modules in module setup page
+		// Family can be 'crm','financial','hr','projects','products','ecm','technic','other'
+		// It is used to group modules in module setup page
         $this->family = "crm";
         // Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module)
         $this->name = preg_replace('/^mod/i','',get_class($this));
@@ -61,7 +61,7 @@ class modSkype extends DolibarrModules
 
         // Config pages
         //-------------
-        $this->config_page_url = array();
+        $this->config_page_url = array("skype.php");
 
         // Dependancies
         //-------------
diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang
index b497bb45fc7..fff2ea5c32f 100755
--- a/htdocs/langs/en_US/admin.lang
+++ b/htdocs/langs/en_US/admin.lang
@@ -1249,6 +1249,11 @@ AddSubscriptionIntoAccount=Suggest by default to create a bank transaction, in b
 AdherentLoginRequired= Manage a Login for each member
 AdherentMailRequired=EMail required to create a new member
 MemberSendInformationByMailByDefault=Checkbox to send mail confirmation to members (validation or new subscription) is on by default
+##### Skype setup #####
+SkypeSetup=Skype module setup
+SkypeDeactivateInUser=Deactivate Skype in user card
+SkypeDeactivateInContact=Deactivate Skype in contact card
+SkypeDeactivateInMember=Deactivate Skype in member card
 ##### LDAP setup #####
 LDAPSetup=LDAP Setup
 LDAPGlobalParameters=Global parameters
-- 
GitLab


From 4cf2941023b2fc550e84980dacb2d9d8e9fb06d4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= <frederic.france@free.fr>
Date: Wed, 25 Nov 2015 21:53:00 +0100
Subject: [PATCH 006/197] Test travis for php7

---
 .travis.yml | 17 +++++++++++------
 1 file changed, 11 insertions(+), 6 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index 7dea8765cb2..0ee41da64fc 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -29,7 +29,8 @@ matrix:
     - php: 7.0
 
 env:
- - DB=mysql
+# - DB=mysql PHPCS_VERSION=">=1.5.1,<2.0"
+ - DB=mysql PHPCS_VERSION=">=2.0"
 # - DB=postgres  
 
 before_script: 
@@ -44,11 +45,15 @@ before_script:
  - which phpunit
  - phpunit --version
  - echo Install phpcs then show installed rules
- - pyrus install pear/PHP_CodeSniffer
+ - composer self-update
+ - composer require squizlabs/php_codesniffer:${PHPCS_VERSION}
+ - composer install
  - phpenv rehash
- - which phpcs
- - phpcs --version
- - phpcs -i
+ - ln -s `pwd` htdocs/includes/squizlabs/php_codesniffer/CodeSniffer/Standards/PHPCompatibility
+ - htdocs/includes/squizlabs/php_codesniffer/scripts/phpcs --version
+# - which phpcs
+# - phpcs --version
+# - phpcs -i
  - echo Create dir $(pwd)/htdocs/documents
  - sudo mkdir -p $(pwd)/htdocs/documents/admin/temp;
  - sudo touch $(pwd)/htdocs/documents/dolibarr.log;
@@ -139,7 +144,7 @@ script:
  - phpunit -d memory_limit=-1 --configuration test/phpunit/phpunittest.xml test/phpunit/AllTests.php
  - date
 # - phpcs -p --warning-severity=0 -s --report-summary --standard=dev/codesniffer/ruleset.xml --tab-width=4 --ignore=/build/html/,/dev/vagrant/,/documents/,/includes/,/test/report/ htdocs/core/class/dolgraph.class.php 2>&1
- - phpcs -p --warning-severity=0 -s --report-checkstyle --report-summary --standard=dev/codesniffer/ruleset.xml --tab-width=4 --ignore=/htdocs/conf/conf.php,/build/html/,/dev/vagrant/,/documents/,/includes/,/test/report/ . 2>&1
+ - htdocs/includes/squizlabs/php_codesniffer/scripts/phpcs -p --warning-severity=0 -s --report-checkstyle --report-summary --standard=dev/codesniffer/ruleset.xml --tab-width=4 --ignore=/htdocs/conf/conf.php,/build/html/,/dev/vagrant/,/documents/,/includes/,/test/report/ . 2>&1
  - date
 
 after_script:
-- 
GitLab


From a6d8f943df769e3ae000ea16ac593884b2109459 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Thu, 26 Nov 2015 02:12:37 +0100
Subject: [PATCH 007/197] Fix several bugs into leave requets module

---
 htdocs/core/class/html.form.class.php   |  5 ++-
 htdocs/core/menus/init_menu_auguria.sql | 10 +++--
 htdocs/holiday/card.php                 | 58 ++++++++++++++-----------
 htdocs/holiday/list.php                 |  2 +-
 4 files changed, 43 insertions(+), 32 deletions(-)

diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php
index da22c014e50..549959bd561 100644
--- a/htdocs/core/class/html.form.class.php
+++ b/htdocs/core/class/html.form.class.php
@@ -1259,10 +1259,11 @@ class Form
      *  @param	string	$show_every		0=default list, 1=add also a value "Everybody" at beginning of list
      *  @param	string	$enableonlytext	If option $enableonly is set, we use this text to explain into label why record is disabled. Not used if enableonly is empty.
      *  @param	string	$morecss		More css
+     *  @param  int     $noactive       Show only active users (this will also happened whatever is this option if USER_HIDE_INACTIVE_IN_COMBOBOX is on). 
      * 	@return	string					HTML select string
      *  @see select_dolgroups
      */
-    function select_dolusers($selected='', $htmlname='userid', $show_empty=0, $exclude='', $disabled=0, $include='', $enableonly='', $force_entity=0, $maxlength=0, $showstatus=0, $morefilter='', $show_every=0, $enableonlytext='', $morecss='')
+    function select_dolusers($selected='', $htmlname='userid', $show_empty=0, $exclude='', $disabled=0, $include='', $enableonly='', $force_entity=0, $maxlength=0, $showstatus=0, $morefilter='', $show_every=0, $enableonlytext='', $morecss='', $noactive=0)
     {
         global $conf,$user,$langs;
 
@@ -1322,7 +1323,7 @@ class Form
         if (! empty($user->societe_id)) $sql.= " AND u.fk_soc = ".$user->societe_id;
         if (is_array($exclude) && $excludeUsers) $sql.= " AND u.rowid NOT IN ('".$excludeUsers."')";
         if (is_array($include) && $includeUsers) $sql.= " AND u.rowid IN ('".$includeUsers."')";
-        if (! empty($conf->global->USER_HIDE_INACTIVE_IN_COMBOBOX)) $sql.= " AND u.statut <> 0";
+        if (! empty($conf->global->USER_HIDE_INACTIVE_IN_COMBOBOX) || $noactive) $sql.= " AND u.statut <> 0";
         if (! empty($morefilter)) $sql.=" ".$morefilter;
         $sql.= " ORDER BY u.lastname ASC";
 
diff --git a/htdocs/core/menus/init_menu_auguria.sql b/htdocs/core/menus/init_menu_auguria.sql
index 8444a855650..71d393955e7 100644
--- a/htdocs/core/menus/init_menu_auguria.sql
+++ b/htdocs/core/menus/init_menu_auguria.sql
@@ -300,11 +300,13 @@ insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, left
 insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->adherent->enabled && $conf->categorie->enabled', __HANDLER__, 'left', 5200__+MAX_llx_menu__, 'members', 'cat', 13__+MAX_llx_menu__, '/categories/index.php?leftmenu=cat&amp;type=3', 'MembersCategoriesShort', 0, 'categories', '$user->rights->categorie->lire', '', 2, 3, __ENTITY__);
 insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->adherent->enabled && $conf->categorie->enabled', __HANDLER__, 'left', 5201__+MAX_llx_menu__, 'members', '', 5200__+MAX_llx_menu__, '/categories/card.php?action=create&amp;type=3', 'NewCategory', 1, 'categories', '$user->rights->categorie->creer', '', 2, 0, __ENTITY__);
 -- HRM - Holiday
-insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->holiday->enabled', __HANDLER__, 'left', 5000__+MAX_llx_menu__, 'hrm', 'hrm', 15__+MAX_llx_menu__, '/holiday/list.php?&leftmenu=hrm', 'CPTitreMenu', 0, 'holiday', '$user->rights->holiday->write', '', 0, 1, __ENTITY__);
+insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->holiday->enabled', __HANDLER__, 'left', 5000__+MAX_llx_menu__, 'hrm', 'hrm', 15__+MAX_llx_menu__, '/holiday/list.php?&leftmenu=hrm', 'CPTitreMenu', 0, 'holiday', '$user->rights->holiday->read', '', 0, 1, __ENTITY__);
 insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->holiday->enabled', __HANDLER__, 'left', 5001__+MAX_llx_menu__, 'hrm', '', 5000__+MAX_llx_menu__, '/holiday/card.php?&action=request', 'MenuAddCP', 1, 'holiday', '$user->rights->holiday->write', '', 0, 1, __ENTITY__);
-insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->holiday->enabled', __HANDLER__, 'left', 5002__+MAX_llx_menu__, 'hrm', '', 5000__+MAX_llx_menu__, '/holiday/define_holiday.php?&action=request', 'MenuConfCP', 1, 'holiday', '$user->rights->holiday->define_holiday', '', 0, 2, __ENTITY__);
-insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->holiday->enabled', __HANDLER__, 'left', 5003__+MAX_llx_menu__, 'hrm', '', 5000__+MAX_llx_menu__, '/holiday/view_log.php?&action=request', 'MenuLogCP', 1, 'holiday', '$user->rights->holiday->view_log', '', 0, 3, __ENTITY__);
-insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->holiday->enabled', __HANDLER__, 'left', 5004__+MAX_llx_menu__, 'hrm', '', 5000__+MAX_llx_menu__, '/holiday/month_report.php?&action=request', 'MenuReportMonth', 1, 'holiday', '$user->rights->holiday->month_report', '', 0, 4, __ENTITY__);
+insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->holiday->enabled', __HANDLER__, 'left', 5002__+MAX_llx_menu__, 'hrm', '', 5000__+MAX_llx_menu__, '/holiday/list.php?&leftmenu=hrm', 'List', 1, 'holiday', '$user->rights->holiday->read', '', 0, 1, __ENTITY__);
+insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->holiday->enabled', __HANDLER__, 'left', 5003__+MAX_llx_menu__, 'hrm', '', 5002__+MAX_llx_menu__, '/holiday/list.php?select_statut=2&leftmenu=hrm', 'ListToApprove', 2, 'trips', '$user->rights->holiday->read', '', 0, 1, __ENTITY__);
+insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->holiday->enabled', __HANDLER__, 'left', 5004__+MAX_llx_menu__, 'hrm', '', 5000__+MAX_llx_menu__, '/holiday/define_holiday.php?&action=request', 'MenuConfCP', 1, 'holiday', '$user->rights->holiday->define_holiday', '', 0, 2, __ENTITY__);
+insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->holiday->enabled', __HANDLER__, 'left', 5005__+MAX_llx_menu__, 'hrm', '', 5000__+MAX_llx_menu__, '/holiday/view_log.php?&action=request', 'MenuLogCP', 1, 'holiday', '$user->rights->holiday->define_holiday', '', 0, 3, __ENTITY__);
+insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->holiday->enabled', __HANDLER__, 'left', 5006__+MAX_llx_menu__, 'hrm', '', 5000__+MAX_llx_menu__, '/holiday/month_report.php?&action=request', 'MenuReportMonth', 1, 'holiday', '$user->rights->holiday->define_holiday', '', 0, 4, __ENTITY__);
 -- HRM - Expense reports
 insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->deplacement->enabled', __HANDLER__, 'left', 2100__+MAX_llx_menu__, 'accountancy', 'tripsandexpenses', 15__+MAX_llx_menu__, '/compta/deplacement/index.php?leftmenu=tripsandexpenses', 'TripsAndExpenses', 0, 'trips', '$user->rights->deplacement->lire', '', 0, 5, __ENTITY__);
 insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->deplacement->enabled', __HANDLER__, 'left', 2101__+MAX_llx_menu__, 'accountancy', '', 2100__+MAX_llx_menu__, '/compta/deplacement/card.php?action=create&amp;leftmenu=tripsandexpenses', 'New', 1, 'trips', '$user->rights->deplacement->creer', '', 0, 1, __ENTITY__);
diff --git a/htdocs/holiday/card.php b/htdocs/holiday/card.php
index ebda47dd196..ca0b1d04d7a 100644
--- a/htdocs/holiday/card.php
+++ b/htdocs/holiday/card.php
@@ -124,22 +124,31 @@ if ($action == 'create')
 	    // If no validator designated
 	    if ($valideur < 1)
 	    {
-	        header('Location: card.php?action=request&error=Valideur');
-	        exit;
+	        setEventMessage($langs->transnoentitiesnoconv('InvalidValidatorCP'), 'errors');
+	        $error++;
 	    }
 
-	    $cp->fk_user = $userid;
-	    $cp->description = $description;
-	    $cp->date_debut = $date_debut;
-	    $cp->date_fin = $date_fin;
-	    $cp->fk_validator = $valideur;
-		$cp->halfday = $halfday;
-		$cp->fk_type = $type;
-
-		$verif = $cp->create($user);
+	    if ($type < 1)
+	    {
+	        setEventMessage($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv("Type")), 'errors');
+	        $error++;
+	    }
 
+	    if (! $error)
+	    {
+    	    $cp->fk_user = $userid;
+    	    $cp->description = $description;
+    	    $cp->date_debut = $date_debut;
+    	    $cp->date_fin = $date_fin;
+    	    $cp->fk_validator = $valideur;
+    		$cp->halfday = $halfday;
+    		$cp->fk_type = $type;
+    
+    		$verif = $cp->create($user);
+	    }
+	    
 	    // If no SQL error we redirect to the request card
-	    if ($verif > 0)
+	    if (! $error && $verif > 0)
 	    {
 			$db->commit();
 
@@ -149,10 +158,6 @@ if ($action == 'create')
 	    else
 		{
 	    	$db->rollback();
-
-	        // Otherwise we display the request form with the SQL error message
-	        header('Location: card.php?action=request&error=SQL_Create&msg='.$cp->error);
-	        exit;
 	    }
     }
 }
@@ -802,6 +807,7 @@ if (empty($id) || $action == 'add' || $action == 'request' || $action == 'create
 			$arraytypeleaves[$val['rowid']]=$labeltoshow;
         }
         print $form->selectarray('type', $arraytypeleaves, (GETPOST('type')?GETPOST('type'):''), 1);
+        if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"),1);
         print '</td>';
         print '</tr>';
 
@@ -810,10 +816,10 @@ if (empty($id) || $action == 'add' || $action == 'request' || $action == 'create
         print '<td class="fieldrequired">'.$langs->trans("DateDebCP").' ('.$langs->trans("FirstDayOfHoliday").')</td>';
         print '<td>';
         // Si la demande ne vient pas de l'agenda
-        if(!isset($_GET['datep'])) {
+        if (! GETPOST('date_debut_')) {
             $form->select_date(-1,'date_debut_');
         } else {
-            $tmpdate = dol_mktime(0, 0, 0, GETPOST('datepmonth'), GETPOST('datepday'), GETPOST('datepyear'));
+            $tmpdate = dol_mktime(0, 0, 0, GETPOST('date_debut_month'), GETPOST('date_debut_day'), GETPOST('date_debut_year'));
             $form->select_date($tmpdate,'date_debut_');
         }
         print ' &nbsp; &nbsp; ';
@@ -826,10 +832,10 @@ if (empty($id) || $action == 'add' || $action == 'request' || $action == 'create
         print '<td class="fieldrequired">'.$langs->trans("DateFinCP").' ('.$langs->trans("LastDayOfHoliday").')</td>';
         print '<td>';
         // Si la demande ne vient pas de l'agenda
-        if(!isset($_GET['datep'])) {
+        if (! GETPOST('date_fin_')) {
             $form->select_date(-1,'date_fin_');
         } else {
-            $tmpdate = dol_mktime(0, 0, 0, GETPOST('datefmonth'), GETPOST('datefday'), GETPOST('datefyear'));
+            $tmpdate = dol_mktime(0, 0, 0, GETPOST('date_fin_month'), GETPOST('date_fin_day'), GETPOST('date_fin_year'));
             $form->select_date($tmpdate,'date_fin_');
         }
         print ' &nbsp; &nbsp; ';
@@ -846,7 +852,7 @@ if (empty($id) || $action == 'add' || $action == 'request' || $action == 'create
         $valideurarray = array();
         foreach($valideurobjects as $val) $valideurarray[$val->id]=$val->id;
         print '<td>';
-        print $form->select_dolusers($user->fk_user, "valideur", 1, "", 0, $valideurarray);	// By default, hierarchical parent
+        print $form->select_dolusers((GETPOST('valideur')>0?GETPOST('valideur'):$user->fk_user), "valideur", 1, "", 0, $valideurarray, 0, 0, 0, 0, '', 0, '', '', 1);	// By default, hierarchical parent
         print '</td>';
         print '</tr>';
 
@@ -973,7 +979,6 @@ else
 
                 $head=holiday_prepare_head($cp);
 
-                dol_fiche_head($head,'card',$langs->trans("CPTitreMenu"),0,'holiday');
 
                 if ($action == 'edit' && $cp->statut == 1)
                 {
@@ -983,6 +988,8 @@ else
                     print '<input type="hidden" name="holiday_id" value="'.$id.'" />'."\n";
                 }
 
+                dol_fiche_head($head,'card',$langs->trans("CPTitreMenu"),0,'holiday');
+                
                 print '<table class="border" width="100%">';
                 print '<tbody>';
 
@@ -1157,19 +1164,20 @@ else
                 print '</tbody>';
                 print '</table>';
 
+                dol_fiche_end();
+                
                 if ($action == 'edit' && $cp->statut == 1)
                 {
-                    print '<br><div align="center">';
+                    print '<div align="center">';
                     if ($canedit && $cp->statut == 1)
                     {
-                        print '<input type="submit" value="'.$langs->trans("UpdateButtonCP").'" class="button">';
+                        print '<input type="submit" value="'.$langs->trans("Save").'" class="button">';
                     }
                     print '</div>';
 
                     print '</form>';
                 }
 
-                dol_fiche_end();
 
                 if (! $edit)
                 {
diff --git a/htdocs/holiday/list.php b/htdocs/holiday/list.php
index 4e10fbf925c..b329cffda35 100644
--- a/htdocs/holiday/list.php
+++ b/htdocs/holiday/list.php
@@ -406,7 +406,7 @@ if (! empty($holiday->holiday))
 if($holiday_payes == '2')
 {
     print '<tr>';
-    print '<td colspan="9" '.$bc[false].'">'.$langs->trans('None').'</td>';
+    print '<td colspan="10" '.$bc[false].'">'.$langs->trans('None').'</td>';
     print '</tr>';
 }
 
-- 
GitLab


From 9a2259c6811e76cc0771a52c18980ddefeba0c1f Mon Sep 17 00:00:00 2001
From: aspangaro <alexandre.spangaro@gmail.com>
Date: Thu, 26 Nov 2015 06:19:24 +0100
Subject: [PATCH 008/197] Correct button 'Export' and 'Write bookkeeping' on
 finance journal

---
 htdocs/accountancy/journal/bankjournal.php | 52 +++++++++++-----------
 htdocs/core/lib/report.lib.php             |  9 ++--
 htdocs/langs/en_US/accountancy.lang        |  6 +--
 3 files changed, 34 insertions(+), 33 deletions(-)

diff --git a/htdocs/accountancy/journal/bankjournal.php b/htdocs/accountancy/journal/bankjournal.php
index bed5376064f..db3dc3a0aae 100644
--- a/htdocs/accountancy/journal/bankjournal.php
+++ b/htdocs/accountancy/journal/bankjournal.php
@@ -55,7 +55,7 @@ $langs->load("bank");
 $langs->load('bills');
 $langs->load("accountancy");
 
-$id_accountancy_journal = GETPOST('id_account');
+$id_accountancy_journal = GETPOST('id_account','int');
 
 $date_startmonth = GETPOST('date_startmonth');
 $date_startday = GETPOST('date_startday');
@@ -66,17 +66,12 @@ $date_endyear = GETPOST('date_endyear');
 $action = GETPOST('action');
 
 // Security check
-if ($user->societe_id > 0)
+if ($user->societe_id > 0 && empty($id_accountancy_journal))
 	accessforbidden();
 
 /*
  * View
  */
-if (empty($id_accountancy_journal))
-{
-	accessforbidden();
-}
-
 $year_current = strftime("%Y", dol_now());
 $pastmonth = strftime("%m", dol_now()) - 1;
 $pastmonthyear = $year_current;
@@ -431,7 +426,7 @@ if ($action == 'export_csv') {
         dol_print_error($this->db);
         return -1;
     }
-	//$journal = $conf->global->ACCOUNTING_BANK_JOURNAL;
+	$journal = $conf->global->ACCOUNTING_BANK_JOURNAL;
 
 	header('Content-Type: text/csv');
 	header('Content-Disposition: attachment;filename=journal_banque.csv');
@@ -559,14 +554,15 @@ if ($action == 'export_csv') {
 } else {
 	$form = new Form($db);
 
-	llxHeader('', $langs->trans("BankJournal"));
+	llxHeader('', $langs->trans("FinanceJournal"));
 
-	$namereport = $langs->trans("BankJournal");
-	$namereport.= "&nbsp;" . $journal;
-	$description = $langs->trans("DescBankJournal");
+	$nom = $langs->trans("FinanceJournal");
+	$builddate = time();
+	$description = $langs->trans("DescFinanceJournal") . '<br>';
 	$period = $form->select_date($date_start, 'date_start', 0, 0, 0, '', 1, 0, 1) . ' - ' . $form->select_date($date_end, 'date_end', 0, 0, 0, '', 1, 0, 1);
-
-	// Report
+	//report_header($nom, $nomlink, $period, $periodlink, $description, $builddate, $exportlink, array('action' => ''), '');
+	
+	// Report header
 	$h=0;
 	$head[$h][0] = $_SERVER["PHP_SELF"].'?id_account='.$id_accountancy_journal;
 	$head[$h][1] = $langs->trans("Report");
@@ -575,33 +571,37 @@ if ($action == 'export_csv') {
 	dol_fiche_head($head, 'report');
 
 	print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'?id_account='.$id_accountancy_journal.'">';
-	print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
-
 	print '<table width="100%" class="border">';
 
-	// Title
+	// Ligne de titre
 	print '<tr>';
 	print '<td valign="top" width="110">'.$langs->trans("ReportName").'</td>';
-	print '<td colspan="3">'.$namereport.'</td>';
+	print '<td>';
+	print $nom;
 	print '</td>';
 	print '</tr>';
 
-	// Period report
+	// Ligne de la periode d'analyse du rapport
 	print '<tr>';
 	print '<td>'.$langs->trans("ReportPeriod").'</td>';
-	if (! $periodlink) print '<td colspan="3">';
-	else print '<td>';
-	if ($period) print $period;
-	if ($periodlink) print '</td><td colspan="2">'.$periodlink;
+	print '<td>';
+	print $period;
 	print '</td>';
 	print '</tr>';
 
-	// Description
+	// Ligne de description
 	print '<tr>';
 	print '<td valign="top">'.$langs->trans("ReportDescription").'</td>';
 	print '<td colspan="3">'.$description.'</td>';
 	print '</tr>';
 
+	// Ligne d'export
+	print '<tr>';
+	print '<td>'.$langs->trans("GeneratedOn").'</td>';
+	print '<td>';
+	print dol_print_date($builddate);
+	print '</td></tr>';
+
 	print '<tr>';
 	print '<td colspan="4" align="center"><input type="submit" class="button" name="submit" value="'.$langs->trans("Refresh").'"></td>';
 	print '</tr>';
@@ -611,8 +611,8 @@ if ($action == 'export_csv') {
 	print '</form>';
 
 	print '</div>';
-	// End report
-	
+	//End Report header
+
 	print '<input type="button" class="button" style="float: right;" value="' . $langs->trans("Export") . '" onclick="launch_export();" />';
 
 	print '<input type="button" class="button" value="' . $langs->trans("WriteBookKeeping") . '" onclick="writebookkeeping();" />';
diff --git a/htdocs/core/lib/report.lib.php b/htdocs/core/lib/report.lib.php
index dc509384335..533ae7434d6 100644
--- a/htdocs/core/lib/report.lib.php
+++ b/htdocs/core/lib/report.lib.php
@@ -35,22 +35,25 @@
 *    @param 	string				$exportlink     Link for export or ''
 *    @param		array				$moreparam		Array with list of params to add into form
 *    @param		string				$calcmode		Calculation mode
+*    @param     string              $varlink        Add a variable into the address of the page
 *    @return	void
 */
-function report_header($nom,$variante,$period,$periodlink,$description,$builddate,$exportlink='',$moreparam=array(),$calcmode='')
+function report_header($nom,$variante,$period,$periodlink,$description,$builddate,$exportlink='',$moreparam=array(),$calcmode='', $varlink='')
 {
 	global $langs;
 
 	print "\n\n<!-- debut cartouche rapport -->\n";
+	
+	if(! empty($varlink)) $varlink = '?'.$varlink;
 
 	$h=0;
-	$head[$h][0] = $_SERVER["PHP_SELF"];
+	$head[$h][0] = $_SERVER["PHP_SELF"].$varlink;
 	$head[$h][1] = $langs->trans("Report");
 	$head[$h][2] = 'report';
 
 	dol_fiche_head($head, 'report');
 
-	print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'">';
+	print '<form method="POST" action="'.$_SERVER["PHP_SELF"].$varlink.'">';
 	foreach($moreparam as $key => $value)
 	{
 	     print '<input type="hidden" name="'.$key.'" value="'.$value.'">';
diff --git a/htdocs/langs/en_US/accountancy.lang b/htdocs/langs/en_US/accountancy.lang
index 57ce6b09201..e55f6d667f1 100644
--- a/htdocs/langs/en_US/accountancy.lang
+++ b/htdocs/langs/en_US/accountancy.lang
@@ -112,10 +112,8 @@ SellsJournal=Sells journal
 PurchasesJournal=Purchases journal
 DescSellsJournal=Sells journal
 DescPurchasesJournal=Purchases journal
-BankJournal=Bank journal
-DescBankJournal=Bank journal including all the types of payments other than cash	
-CashJournal=Cash journal
-DescCashJournal=Cash journal including the type of payment cash
+FinanceJournal=Finance journal
+DescFinanceJournal=Finance journal including all the types of payments by bank account
 
 CashPayment=Cash Payment
 
-- 
GitLab


From 37da315af64a8c41ef76d4db66da6a2515e373dc Mon Sep 17 00:00:00 2001
From: aspangaro <alexandre.spangaro@gmail.com>
Date: Thu, 26 Nov 2015 06:30:09 +0100
Subject: [PATCH 009/197] Remove old code

---
 htdocs/accountancy/journal/bankjournal.php | 83 ++--------------------
 1 file changed, 5 insertions(+), 78 deletions(-)

diff --git a/htdocs/accountancy/journal/bankjournal.php b/htdocs/accountancy/journal/bankjournal.php
index db3dc3a0aae..4653127a993 100644
--- a/htdocs/accountancy/journal/bankjournal.php
+++ b/htdocs/accountancy/journal/bankjournal.php
@@ -55,7 +55,7 @@ $langs->load("bank");
 $langs->load('bills');
 $langs->load("accountancy");
 
-$id_accountancy_journal = GETPOST('id_account','int');
+$id_bank_account = GETPOST('id_account','int');
 
 $date_startmonth = GETPOST('date_startmonth');
 $date_startday = GETPOST('date_startday');
@@ -66,7 +66,7 @@ $date_endyear = GETPOST('date_endyear');
 $action = GETPOST('action');
 
 // Security check
-if ($user->societe_id > 0 && empty($id_accountancy_journal))
+if ($user->societe_id > 0 && empty($id_bank_account))
 	accessforbidden();
 
 /*
@@ -98,7 +98,7 @@ $sql .= " FROM " . MAIN_DB_PREFIX . "bank as b";
 $sql .= " JOIN " . MAIN_DB_PREFIX . "bank_account as ba on b.fk_account=ba.rowid";
 $sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "bank_url as bu1 ON bu1.fk_bank = b.rowid AND bu1.type='company'";
 $sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "societe as soc on bu1.url_id=soc.rowid";
-$sql .= " WHERE ba.rowid=".$id_accountancy_journal;
+$sql .= " WHERE ba.rowid=".$id_bank_account;
 if (! empty($conf->multicompany->enabled)) {
 	$sql .= " AND ba.entity = " . $conf->entity;
 }
@@ -403,29 +403,6 @@ if ($action == 'writebookkeeping')
 // Export
 if ($action == 'export_csv') {
 	$sep = $conf->global->ACCOUNTING_EXPORT_SEPARATORCSV;
-	
-	// Journal
-	$bank = "SELECT rowid, label, accountancy_journal";
-	$bank.= " FROM ".MAIN_DB_PREFIX."bank_account";
-	$bank.= " WHERE entity = ".$conf->entity;
-	$bank.= " AND rowid = '".$id_accountancy_journal."'";
-
-	$resql = $db->query($bank);
-	if ($resql)
-	{
-        if ($db->num_rows($resql))
-        {
-            $obj = $db->fetch_object($resql);
-
-			$journal = $objp->accountancy_journal;
-        }
-        return 1;
-    }
-    else
-    {
-        dol_print_error($this->db);
-        return -1;
-    }
 	$journal = $conf->global->ACCOUNTING_BANK_JOURNAL;
 
 	header('Content-Type: text/csv');
@@ -560,59 +537,9 @@ if ($action == 'export_csv') {
 	$builddate = time();
 	$description = $langs->trans("DescFinanceJournal") . '<br>';
 	$period = $form->select_date($date_start, 'date_start', 0, 0, 0, '', 1, 0, 1) . ' - ' . $form->select_date($date_end, 'date_end', 0, 0, 0, '', 1, 0, 1);
-	//report_header($nom, $nomlink, $period, $periodlink, $description, $builddate, $exportlink, array('action' => ''), '');
+	$varlink = 'id_account='.$id_bank_account;
+	report_header($nom, $nomlink, $period, $periodlink, $description, $builddate, $exportlink, array('action' => ''), '', $varlink);
 	
-	// Report header
-	$h=0;
-	$head[$h][0] = $_SERVER["PHP_SELF"].'?id_account='.$id_accountancy_journal;
-	$head[$h][1] = $langs->trans("Report");
-	$head[$h][2] = 'report';
-
-	dol_fiche_head($head, 'report');
-
-	print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'?id_account='.$id_accountancy_journal.'">';
-	print '<table width="100%" class="border">';
-
-	// Ligne de titre
-	print '<tr>';
-	print '<td valign="top" width="110">'.$langs->trans("ReportName").'</td>';
-	print '<td>';
-	print $nom;
-	print '</td>';
-	print '</tr>';
-
-	// Ligne de la periode d'analyse du rapport
-	print '<tr>';
-	print '<td>'.$langs->trans("ReportPeriod").'</td>';
-	print '<td>';
-	print $period;
-	print '</td>';
-	print '</tr>';
-
-	// Ligne de description
-	print '<tr>';
-	print '<td valign="top">'.$langs->trans("ReportDescription").'</td>';
-	print '<td colspan="3">'.$description.'</td>';
-	print '</tr>';
-
-	// Ligne d'export
-	print '<tr>';
-	print '<td>'.$langs->trans("GeneratedOn").'</td>';
-	print '<td>';
-	print dol_print_date($builddate);
-	print '</td></tr>';
-
-	print '<tr>';
-	print '<td colspan="4" align="center"><input type="submit" class="button" name="submit" value="'.$langs->trans("Refresh").'"></td>';
-	print '</tr>';
-
-	print '</table>';
-
-	print '</form>';
-
-	print '</div>';
-	//End Report header
-
 	print '<input type="button" class="button" style="float: right;" value="' . $langs->trans("Export") . '" onclick="launch_export();" />';
 
 	print '<input type="button" class="button" value="' . $langs->trans("WriteBookKeeping") . '" onclick="writebookkeeping();" />';
-- 
GitLab


From cb6038e125fd21cb393d8053d14a6f674088fa54 Mon Sep 17 00:00:00 2001
From: aspangaro <alexandre.spangaro@gmail.com>
Date: Thu, 26 Nov 2015 07:10:13 +0100
Subject: [PATCH 010/197] Better code for admin skype

---
 htdocs/admin/skype.php | 38 +++++++++++++++++---------------------
 1 file changed, 17 insertions(+), 21 deletions(-)

diff --git a/htdocs/admin/skype.php b/htdocs/admin/skype.php
index a1778afd101..db942beb8ad 100644
--- a/htdocs/admin/skype.php
+++ b/htdocs/admin/skype.php
@@ -25,10 +25,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
 
 $langs->load("admin");
 
-if (! $user->admin)
-	accessforbidden();
-
-$action = GETPOST('action', 'alpha');
+if (! $user->admin) accessforbidden();
 
 /*
  * Actions
@@ -65,16 +62,15 @@ else if (preg_match('/del_(.*)/',$action,$reg))
 /*
  * View
  */
+$help_url='';
 llxHeader('', $langs->trans('Parameters'));
 
-$form = new Form($db);
-
-dol_htmloutput_mesg($mesg);
-
-// Subheader
 $linkback = '<a href="' . DOL_URL_ROOT . '/admin/modules.php">' . $langs->trans("BackToModuleList") . '</a>';
 print load_fiche_titre($langs->trans("SkypeSetup"), $linkback);
 
+$var=true;
+$form = new Form($db);
+
 // Configuration header
 $h = 0;
 $head = array ();
@@ -86,12 +82,6 @@ $h ++;
 
 dol_fiche_head($head, 'parameters', $langs->trans("Skype"), 0, "skype");
 
-if (! $conf->use_javascript_ajax) {
-	print '<form method="post" action="' . $_SERVER["PHP_SELF"] . '" enctype="multipart/form-data">';
-	print '<input type="hidden" name="token" value="' . $_SESSION['newtoken'] . '">';
-	print '<input type="hidden" name="action" value="setvar">';
-}
-
 print '<table class="noborder" width="100%">';
 print '<tr class="liste_titre">';
 print '<td colspan="3">' . $langs->trans('Parameters') . '</td>';
@@ -99,9 +89,11 @@ print "</tr>\n";
 
 $var = ! $var;
 
-print '<tr ' . $bc[$var] . '><td>' . $langs->trans("SkypeDeactivateInUser") . '</td>';
+print '<tr ' . $bc[$var] . '>';
+print '<td>' . $langs->trans("SkypeDeactivateInUser") . '</td>';
 print '<td align="left">';
-if ($conf->use_javascript_ajax) {
+if ($conf->use_javascript_ajax)
+{
 	print ajax_constantonoff('SKYPE_DEACTIVATE_IN_USER');
 }
 else
@@ -118,9 +110,11 @@ else
 print '</td>';
 print '</tr>';
 
-print '<tr ' . $bc[$var] . '><td>' . $langs->trans("SkypeDeactivateInContact") . '</td>';
+print '<tr ' . $bc[$var] . '>';
+print '<td>' . $langs->trans("SkypeDeactivateInContact") . '</td>';
 print '<td align="left">';
-if ($conf->use_javascript_ajax) {
+if ($conf->use_javascript_ajax)
+{
 	print ajax_constantonoff('SKYPE_DEACTIVATE_IN_CONTACT');
 }
 else
@@ -137,9 +131,11 @@ else
 print '</td>';
 print '</tr>';
 
-print '<tr ' . $bc[$var] . '><td>' . $langs->trans("SkypeDeactivateInMember") . '</td>';
+print '<tr ' . $bc[$var] . '>';
+print '<td>' . $langs->trans("SkypeDeactivateInMember") . '</td>';
 print '<td align="left">';
-if ($conf->use_javascript_ajax) {
+if ($conf->use_javascript_ajax)
+{
 	print ajax_constantonoff('SKYPE_DEACTIVATE_IN_MEMBER');
 }
 else
-- 
GitLab


From 208bf2545fd1519c639097db6241f793a78a9adf Mon Sep 17 00:00:00 2001
From: fmarcet <fmarcet@2byte.es>
Date: Thu, 26 Nov 2015 17:14:03 +0100
Subject: [PATCH 011/197] Fix: Bug when idprof is mandatory on thrid creation
 and we use multicompany

---
 htdocs/societe/class/societe.class.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/htdocs/societe/class/societe.class.php b/htdocs/societe/class/societe.class.php
index 8e5622cde77..351b813959b 100644
--- a/htdocs/societe/class/societe.class.php
+++ b/htdocs/societe/class/societe.class.php
@@ -2348,7 +2348,7 @@ class Societe extends CommonObject
         }
 
          //Verify duplicate entries
-        $sql  = "SELECT COUNT(*) as idprof FROM ".MAIN_DB_PREFIX."societe WHERE ".$field." = '".$value."'";
+        $sql  = "SELECT COUNT(*) as idprof FROM ".MAIN_DB_PREFIX."societe WHERE ".$field." = '".$value."' AND entity IN (".getEntity('societe',1).")";
         if($socid) $sql .= " AND rowid <> ".$socid;
         $resql = $this->db->query($sql);
         if ($resql)
-- 
GitLab


From 1b9039af36f318fec9d39ccba8884d3bcad71006 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= <frederic.france@free.fr>
Date: Thu, 26 Nov 2015 20:30:11 +0100
Subject: [PATCH 012/197] Update list.php

---
 htdocs/resource/list.php | 17 ++++++-----------
 1 file changed, 6 insertions(+), 11 deletions(-)

diff --git a/htdocs/resource/list.php b/htdocs/resource/list.php
index 29ae4a42803..9a19809d5d7 100644
--- a/htdocs/resource/list.php
+++ b/htdocs/resource/list.php
@@ -22,15 +22,10 @@
  */
 
 
-// Change this following line to use the correct relative path (../, ../../, etc)
-$res=0;
-$res=@include("../main.inc.php");				// For root directory
-if (! $res) $res=@include("../../main.inc.php");	// For "custom" directory
-if (! $res) die("Include of main fails");
+require '../main.inc.php';
+require_once DOL_DOCUMENT_ROOT.'/resource/class/resource.class.php';
 
-require 'class/resource.class.php';
-
-// Load traductions files requiredby by page
+// Load translations files requiredby by page
 $langs->load("resource");
 $langs->load("companies");
 $langs->load("other");
@@ -52,7 +47,7 @@ $object = new Resource($db);
 
 $hookmanager->initHooks(array('resource_list'));
 
-if (empty($sortorder)) $sortorder="DESC";
+if (empty($sortorder)) $sortorder="ASC";
 if (empty($sortfield)) $sortfield="t.rowid";
 if (empty($arch)) $arch = 0;
 
@@ -89,8 +84,6 @@ llxHeader('',$pagetitle,'');
 
 $form=new Form($db);
 
-print_fiche_titre($pagetitle,'','title_generic');
-
 // Confirmation suppression resource line
 if ($action == 'delete_resource')
 {
@@ -102,6 +95,8 @@ $ret = $object->fetch_all($sortorder, $sortfield, $limit, $offset);
 if($ret == -1) {
 	dol_print_error($db,$object->error);
 	exit;
+} else {
+    print_barre_liste($pagetitle, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $ret+1, $object->num_all,'title_generic.png');
 }
 if(!$ret) {
 	print '<div class="warning">'.$langs->trans('NoResourceInDatabase').'</div>';
-- 
GitLab


From e6033369a8501e5fbe2473c6f068792641743996 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= <frederic.france@free.fr>
Date: Thu, 26 Nov 2015 20:33:07 +0100
Subject: [PATCH 013/197] Update resource.class.php

---
 htdocs/resource/class/resource.class.php | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/htdocs/resource/class/resource.class.php b/htdocs/resource/class/resource.class.php
index 3c3f0ee6e49..e42b8983c7a 100644
--- a/htdocs/resource/class/resource.class.php
+++ b/htdocs/resource/class/resource.class.php
@@ -22,7 +22,6 @@
 
  */
 
-// Put here all includes required by your class file
 require_once DOL_DOCUMENT_ROOT."/core/class/commonobject.class.php";
 require_once DOL_DOCUMENT_ROOT."/core/lib/functions2.lib.php";
 
@@ -403,7 +402,13 @@ class Resource extends CommonObject
     	}
     	$sql.= " GROUP BY t.rowid";
     	$sql.= $this->db->order($sortfield,$sortorder);
-    	if ($limit) $sql.= $this->db->plimit($limit+1,$offset);
+        $this->num_all = 0;
+        if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST))
+        {
+            $result = $this->db->query($sql);
+            $this->num_all = $this->db->num_rows($result);
+        }
+    	if ($limit) $sql.= $this->db->plimit($limit, $offset);
     	dol_syslog(get_class($this)."::fetch_all", LOG_DEBUG);
 
     	$resql=$this->db->query($sql);
-- 
GitLab


From 4539d84609ee9209accd6bdb14e10e3019ad05ad Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= <frederic.france@free.fr>
Date: Fri, 27 Nov 2015 00:35:07 +0100
Subject: [PATCH 014/197] Update .travis.yml

---
 .travis.yml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/.travis.yml b/.travis.yml
index 0ee41da64fc..49aaecd5c32 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -53,6 +53,7 @@ before_script:
  - htdocs/includes/squizlabs/php_codesniffer/scripts/phpcs --version
 # - which phpcs
 # - phpcs --version
+ - htdocs/includes/squizlabs/php_codesniffer/scripts/phpcs -i
 # - phpcs -i
  - echo Create dir $(pwd)/htdocs/documents
  - sudo mkdir -p $(pwd)/htdocs/documents/admin/temp;
-- 
GitLab


From cbcb79b1eb513ed65dbcaf0fed2347252035f290 Mon Sep 17 00:00:00 2001
From: phf <phf@atm-consulting.fr>
Date: Fri, 27 Nov 2015 16:58:28 +0100
Subject: [PATCH 015/197] FIX jquery select of project generate js error on
 change event

---
 htdocs/core/class/html.formprojet.class.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/htdocs/core/class/html.formprojet.class.php b/htdocs/core/class/html.formprojet.class.php
index b44a30dcd05..2b7f76dedf9 100644
--- a/htdocs/core/class/html.formprojet.class.php
+++ b/htdocs/core/class/html.formprojet.class.php
@@ -148,7 +148,7 @@ class FormProjets
 			if (! empty($conf->use_javascript_ajax))
 			{
 				include_once DOL_DOCUMENT_ROOT . '/core/lib/ajax.lib.php';
-	           	$comboenhancement = ajax_combobox($htmlname, '', 0, $forcefocus);
+	           	$comboenhancement = ajax_combobox($htmlname, array(), 0, $forcefocus);
             	$out.=$comboenhancement;
             	$nodatarole=($comboenhancement?' data-role="none"':'');
             	$minmax='minwidth100 maxwidth300';
-- 
GitLab


From 88e76dcf64a895e0ceae27da0bac3990b1b4bbd3 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Sat, 28 Nov 2015 14:40:23 +0100
Subject: [PATCH 016/197] Fix utf8 encoded twice

---
 dev/skeletons/skeleton_list.php | 2 +-
 htdocs/commande/list.php        | 2 +-
 htdocs/compta/facture/list.php  | 2 +-
 htdocs/contact/list.php         | 2 +-
 htdocs/contrat/list.php         | 2 +-
 htdocs/don/list.php             | 2 +-
 htdocs/fourn/commande/list.php  | 2 +-
 htdocs/fourn/facture/list.php   | 2 +-
 htdocs/holiday/list.php         | 2 +-
 htdocs/user/index.php           | 2 +-
 10 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/dev/skeletons/skeleton_list.php b/dev/skeletons/skeleton_list.php
index 686549f19a8..dec170ae169 100644
--- a/dev/skeletons/skeleton_list.php
+++ b/dev/skeletons/skeleton_list.php
@@ -271,7 +271,7 @@ if ($resql)
     if ($sall)
     {
         foreach($fieldstosearchall as $key => $val) $fieldstosearchall[$key]=$langs->trans($val);
-        print $langs->trans("FilterOnInto", $sall, join(', ',$fieldstosearchall));
+        print $langs->trans("FilterOnInto", $all) . join(', ',$fieldstosearchall);
     }
     
 	if (! empty($moreforfilter))
diff --git a/htdocs/commande/list.php b/htdocs/commande/list.php
index fa695dbaa50..a257d808131 100644
--- a/htdocs/commande/list.php
+++ b/htdocs/commande/list.php
@@ -280,7 +280,7 @@ if ($resql)
     if ($sall)
     {
         foreach($fieldstosearchall as $key => $val) $fieldstosearchall[$key]=$langs->trans($val);
-        print $langs->trans("FilterOnInto", $sall, join(', ',$fieldstosearchall));
+        print $langs->trans("FilterOnInto", $sall) . join(', ',$fieldstosearchall);
     }
 	
 	$moreforfilter='';
diff --git a/htdocs/compta/facture/list.php b/htdocs/compta/facture/list.php
index e7d90118d12..9372f50f4aa 100644
--- a/htdocs/compta/facture/list.php
+++ b/htdocs/compta/facture/list.php
@@ -296,7 +296,7 @@ if ($resql)
     if ($sall)
     {
         foreach($fieldstosearchall as $key => $val) $fieldstosearchall[$key]=$langs->trans($val);
-        print $langs->trans("FilterOnInto", $sall, join(', ',$fieldstosearchall));
+        print $langs->trans("FilterOnInto", $sall) . join(', ',$fieldstosearchall);
     }
     
  	// If the user can view prospects other than his'
diff --git a/htdocs/contact/list.php b/htdocs/contact/list.php
index d10e34227d6..dc2734b28a1 100644
--- a/htdocs/contact/list.php
+++ b/htdocs/contact/list.php
@@ -393,7 +393,7 @@ if ($result)
     }
 	if ($search_firstlast_only)
 	{
-        print $langs->trans("FilterOnInto", $search_firstlast_only, $langs->trans("Lastname").", ".$langs->trans("Firstname"));
+        print $langs->trans("FilterOnInto", $search_firstlast_only) . $langs->trans("Lastname").", ".$langs->trans("Firstname");
 	}
     
     if (! empty($conf->categorie->enabled))
diff --git a/htdocs/contrat/list.php b/htdocs/contrat/list.php
index 6d16e051327..dbf5803a4c6 100644
--- a/htdocs/contrat/list.php
+++ b/htdocs/contrat/list.php
@@ -168,7 +168,7 @@ if ($resql)
     if ($sall)
     {
         foreach($fieldstosearchall as $key => $val) $fieldstosearchall[$key]=$langs->trans($val);
-        print $langs->trans("FilterOnInto", $sall, join(', ',$fieldstosearchall));
+        print $langs->trans("FilterOnInto", $all) . join(', ',$fieldstosearchall);
     }
     
     // If the user can view prospects other than his'
diff --git a/htdocs/don/list.php b/htdocs/don/list.php
index 14389887faa..36c74826952 100644
--- a/htdocs/don/list.php
+++ b/htdocs/don/list.php
@@ -149,7 +149,7 @@ if ($resql)
     if ($search_all)
     {
         foreach($fieldstosearchall as $key => $val) $fieldstosearchall[$key]=$langs->trans($val);
-        print $langs->trans("FilterOnInto", $search_all, join(', ',$fieldstosearchall));
+        print $langs->trans("FilterOnInto", $search_all) . join(', ',$fieldstosearchall);
     }
     
 	print "<table class=\"noborder\" width=\"100%\">";
diff --git a/htdocs/fourn/commande/list.php b/htdocs/fourn/commande/list.php
index dea0f72b628..e7e83242ec7 100644
--- a/htdocs/fourn/commande/list.php
+++ b/htdocs/fourn/commande/list.php
@@ -223,7 +223,7 @@ if ($resql)
     if ($sall)
     {
         foreach($fieldstosearchall as $key => $val) $fieldstosearchall[$key]=$langs->trans($val);
-        print $langs->trans("FilterOnInto", $sall, join(', ',$fieldstosearchall));
+        print $langs->trans("FilterOnInto", $sall) . join(', ',$fieldstosearchall);
     }
 	
 	print '<table class="noborder" width="100%">';
diff --git a/htdocs/fourn/facture/list.php b/htdocs/fourn/facture/list.php
index a46c5e6ca38..6b69adceb3e 100644
--- a/htdocs/fourn/facture/list.php
+++ b/htdocs/fourn/facture/list.php
@@ -273,7 +273,7 @@ if ($resql)
     if ($search_all)
     {
         foreach($fieldstosearchall as $key => $val) $fieldstosearchall[$key]=$langs->trans($val);
-        print $langs->transnoentities("FilterOnInto", $search_all, join(', ',$fieldstosearchall));
+        print $langs->trans("FilterOnInto", $search_all) . join(', ',$fieldstosearchall);
     }
     
 	print '<table class="liste" width="100%">';
diff --git a/htdocs/holiday/list.php b/htdocs/holiday/list.php
index 2f008e5ccd1..5c6829734af 100644
--- a/htdocs/holiday/list.php
+++ b/htdocs/holiday/list.php
@@ -275,7 +275,7 @@ print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
 if ($sall)
 {
     foreach($fieldstosearchall as $key => $val) $fieldstosearchall[$key]=$langs->trans($val);
-    print $langs->trans("FilterOnInto", $sall, join(', ',$fieldstosearchall));
+    print $langs->trans("FilterOnInto", $sall) . join(', ',$fieldstosearchall);
 }
     
 print '<table class="noborder" width="100%;">';
diff --git a/htdocs/user/index.php b/htdocs/user/index.php
index 5961d03246e..ce597483d76 100644
--- a/htdocs/user/index.php
+++ b/htdocs/user/index.php
@@ -263,7 +263,7 @@ if ($result)
     if ($sall)
     {
         foreach($fieldstosearchall as $key => $val) $fieldstosearchall[$key]=$langs->trans($val);
-        print $langs->trans("FilterOnInto", $sall, join(', ',$fieldstosearchall));
+        print $langs->trans("FilterOnInto", $sall) . join(', ',$fieldstosearchall);
     }
 	
 	$varpage=empty($contextpage)?$_SERVER["PHP_SELF"]:$contextpage;
-- 
GitLab


From d12e3ca91fee9a149b8904bc2369bfb6d2aaed5d Mon Sep 17 00:00:00 2001
From: aspangaro <alexandre.spangaro@gmail.com>
Date: Sat, 28 Nov 2015 14:43:16 +0100
Subject: [PATCH 017/197] Finish work on better integration of skype

---
 htdocs/admin/skype.php                   | 162 -----------------------
 htdocs/contact/card.php                  |   8 +-
 htdocs/core/class/commonobject.class.php |   4 +-
 htdocs/core/lib/functions.lib.php        |  12 +-
 htdocs/core/modules/modSkype.class.php   |   2 +-
 htdocs/langs/en_US/admin.lang            |   7 +-
 htdocs/theme/common/skype_callbutton.png | Bin 989 -> 1377 bytes
 htdocs/theme/common/skype_chatbutton.png | Bin 916 -> 1244 bytes
 htdocs/user/card.php                     |  12 +-
 9 files changed, 16 insertions(+), 191 deletions(-)
 delete mode 100644 htdocs/admin/skype.php

diff --git a/htdocs/admin/skype.php b/htdocs/admin/skype.php
deleted file mode 100644
index db942beb8ad..00000000000
--- a/htdocs/admin/skype.php
+++ /dev/null
@@ -1,162 +0,0 @@
-<?php
-/* Copyright (C) 2015 		Alexandre Spangaro <aspangaro.dolibarr@gmail.com>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-/**
- *     \file 	htdocs/admin/skype.php
- *     \ingroup Skype
- *     \brief 	Skype module setup page
- */
-require('../main.inc.php');
-require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
-
-$langs->load("admin");
-
-if (! $user->admin) accessforbidden();
-
-/*
- * Actions
- */
-if (preg_match('/set_(.*)/',$action,$reg))
-{
-	$code=$reg[1];
-	$value=(GETPOST($code) ? GETPOST($code) : 1);
-	if (dolibarr_set_const($db, $code, $value, 'chaine', 0, '', $conf->entity) > 0)
-	{
-		Header("Location: ".$_SERVER["PHP_SELF"]);
-		exit;
-	}
-	else
-	{
-		dol_print_error($db);
-	}
-}
-
-else if (preg_match('/del_(.*)/',$action,$reg))
-{
-	$code=$reg[1];
-	if (dolibarr_del_const($db, $code, $conf->entity) > 0)
-	{
-		Header("Location: ".$_SERVER["PHP_SELF"]);
-		exit;
-	}
-	else
-	{
-		dol_print_error($db);
-	}
-}
-
-/*
- * View
- */
-$help_url='';
-llxHeader('', $langs->trans('Parameters'));
-
-$linkback = '<a href="' . DOL_URL_ROOT . '/admin/modules.php">' . $langs->trans("BackToModuleList") . '</a>';
-print load_fiche_titre($langs->trans("SkypeSetup"), $linkback);
-
-$var=true;
-$form = new Form($db);
-
-// Configuration header
-$h = 0;
-$head = array ();
-
-$head[$h][0] = dol_buildpath('/admin/skype.php', 1);
-$head[$h][1] = $langs->trans("Configuration");
-$head[$h][2] = 'parameters';
-$h ++;
-
-dol_fiche_head($head, 'parameters', $langs->trans("Skype"), 0, "skype");
-
-print '<table class="noborder" width="100%">';
-print '<tr class="liste_titre">';
-print '<td colspan="3">' . $langs->trans('Parameters') . '</td>';
-print "</tr>\n";
-
-$var = ! $var;
-
-print '<tr ' . $bc[$var] . '>';
-print '<td>' . $langs->trans("SkypeDeactivateInUser") . '</td>';
-print '<td align="left">';
-if ($conf->use_javascript_ajax)
-{
-	print ajax_constantonoff('SKYPE_DEACTIVATE_IN_USER');
-}
-else
-{
-	if (empty($conf->global->SKYPE_DEACTIVATE_IN_USER))
-	{
-		print '<a href="'.$_SERVER['PHP_SELF'].'?action=set_SKYPE_DEACTIVATE_IN_USER">'.img_picto($langs->trans("Disabled"),'switch_off').'</a>';
-	}
-	else
-	{
-		print '<a href="'.$_SERVER['PHP_SELF'].'?action=del_SKYPE_DEACTIVATE_IN_USER">'.img_picto($langs->trans("Enabled"),'switch_on').'</a>';
-	}
-}
-print '</td>';
-print '</tr>';
-
-print '<tr ' . $bc[$var] . '>';
-print '<td>' . $langs->trans("SkypeDeactivateInContact") . '</td>';
-print '<td align="left">';
-if ($conf->use_javascript_ajax)
-{
-	print ajax_constantonoff('SKYPE_DEACTIVATE_IN_CONTACT');
-}
-else
-{
-	if (empty($conf->global->SKYPE_DEACTIVATE_IN_CONTACT))
-	{
-		print '<a href="'.$_SERVER['PHP_SELF'].'?action=set_SKYPE_DEACTIVATE_IN_CONTACT">'.img_picto($langs->trans("Disabled"),'switch_off').'</a>';
-	}
-	else
-	{
-		print '<a href="'.$_SERVER['PHP_SELF'].'?action=del_SKYPE_DEACTIVATE_IN_CONTACT">'.img_picto($langs->trans("Enabled"),'switch_on').'</a>';
-	}
-}
-print '</td>';
-print '</tr>';
-
-print '<tr ' . $bc[$var] . '>';
-print '<td>' . $langs->trans("SkypeDeactivateInMember") . '</td>';
-print '<td align="left">';
-if ($conf->use_javascript_ajax)
-{
-	print ajax_constantonoff('SKYPE_DEACTIVATE_IN_MEMBER');
-}
-else
-{
-	if (empty($conf->global->SKYPE_DEACTIVATE_IN_MEMBER))
-	{
-		print '<a href="'.$_SERVER['PHP_SELF'].'?action=set_SKYPE_DEACTIVATE_IN_MEMBER">'.img_picto($langs->trans("Disabled"),'switch_off').'</a>';
-	}
-	else
-	{
-		print '<a href="'.$_SERVER['PHP_SELF'].'?action=del_SKYPE_DEACTIVATE_IN_MEMBER">'.img_picto($langs->trans("Enabled"),'switch_on').'</a>';
-	}
-}
-print '</td>';
-print '</tr>';
-
-print "</table>\n";
-
-dol_fiche_end();
-
-print '</form>';
-
-llxFooter();
-$db->close();
diff --git a/htdocs/contact/card.php b/htdocs/contact/card.php
index e49b52b8a90..8022c17de67 100644
--- a/htdocs/contact/card.php
+++ b/htdocs/contact/card.php
@@ -5,7 +5,7 @@
  * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
  * Copyright (C) 2007      Franky Van Liedekerke <franky.van.liedekerke@telenet.be>
  * Copyright (C) 2013      Florian Henry		<florian.henry@open-concept.pro>
- * Copyright (C) 2013      Alexandre Spangaro 	<aspangaro.dolibarr@gmail.com>
+ * Copyright (C) 2013-2015 Alexandre Spangaro 	<aspangaro.dolibarr@gmail.com>
  * Copyright (C) 2014      Juanjo Menent	 	<jmenent@2byte.es>
  * Copyright (C) 2015      Jean-François Ferry	<jfefe@aternatik.fr>
  *
@@ -1156,12 +1156,6 @@ else
         	print '<tr><td>'.$langs->trans("No_Email").'</td><td>'.yn($object->no_email).'</td></tr>';
         }
 
-        // Skype
-        if (! empty($conf->skype->enabled))
-        {
-            print '<tr><td>'.$langs->trans("Skype").'</td><td>'.dol_print_skype($object->skype,0,$object->fk_soc,1).'</td></tr>';
-        }
-
         print '<tr><td>'.$langs->trans("ContactVisibility").'</td><td>';
         print $object->LibPubPriv($object->priv);
         print '</td></tr>';
diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php
index 9cb9a3d45ab..bba17f50d11 100644
--- a/htdocs/core/class/commonobject.class.php
+++ b/htdocs/core/class/commonobject.class.php
@@ -530,7 +530,9 @@ abstract class CommonObject
 		}
 		if (! empty($conf->skype->enabled))
 		{
-			if ($this->skype) $out.=($outdone?'<br>':'').dol_print_skype($this->skype,$this->id,$object->id,'AC_SKYPE');
+			$out.='<div style="clear: both;"></div>';
+			if ($this->skype) $out.=dol_print_skype($this->skype,$this->id,$object->id,'AC_SKYPE');
+			$outdone++;
 		}
 		
 		$out.='<!-- END Part to show address block -->';
diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php
index e9251da148e..82d5c52c575 100644
--- a/htdocs/core/lib/functions.lib.php
+++ b/htdocs/core/lib/functions.lib.php
@@ -1520,14 +1520,18 @@ function dol_print_skype($skype,$cid=0,$socid=0,$addlink=0,$max=64)
 
 	if (! empty($addlink))
 	{
-		$newskype='<a href="skype:';
+		$newskype =img_picto($langs->trans("Skype"), 'object_skype.png');
+		$newskype.= '&nbsp;';
+		$newskype.=dol_trunc($skype,$max);
+		$newskype.= '&nbsp;';
+		$newskype.='<a href="skype:';
 		$newskype.=dol_trunc($skype,$max);
 		$newskype.='?call" alt="'.$langs->trans("Call").'&nbsp;'.$skype.'" title="'.$langs->trans("Call").'&nbsp;'.$skype.'">';
-		$newskype.='<img src="../theme/common/skype_callbutton.png" border="0">';
-		$newskype.='</a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="skype:';
+		$newskype.='<img src="'.DOL_URL_ROOT.'/theme/common/skype_callbutton.png" border="0">';
+		$newskype.='</a>&nbsp;&nbsp;&nbsp;<a href="skype:';
 		$newskype.=dol_trunc($skype,$max);
 		$newskype.='?chat" alt="'.$langs->trans("Chat").'&nbsp;'.$skype.'" title="'.$langs->trans("Chat").'&nbsp;'.$skype.'">';
-		$newskype.='<img src="../theme/common/skype_chatbutton.png" border="0">';
+		$newskype.='<img src="'.DOL_URL_ROOT.'/theme/common/skype_chatbutton.png" border="0">';
 		$newskype.='</a>';
 
 		if (($cid || $socid) && ! empty($conf->agenda->enabled) && $user->rights->agenda->myactions->create)
diff --git a/htdocs/core/modules/modSkype.class.php b/htdocs/core/modules/modSkype.class.php
index 2c7686d9349..d6017b06c16 100644
--- a/htdocs/core/modules/modSkype.class.php
+++ b/htdocs/core/modules/modSkype.class.php
@@ -61,7 +61,7 @@ class modSkype extends DolibarrModules
 
         // Config pages
         //-------------
-        $this->config_page_url = array("skype.php");
+        $this->config_page_url = array();
 
         // Dependancies
         //-------------
diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang
index fff2ea5c32f..232eb3e573f 100755
--- a/htdocs/langs/en_US/admin.lang
+++ b/htdocs/langs/en_US/admin.lang
@@ -540,7 +540,7 @@ Module2800Desc=FTP Client
 Module2900Name=GeoIPMaxmind
 Module2900Desc=GeoIP Maxmind conversions capabilities
 Module3100Name=Skype
-Module3100Desc=Add a Skype button into card of adherents / third parties / contacts
+Module3100Desc=Add a Skype button into card of users / third parties / contacts / members
 Module4000Name=HRM
 Module4000Desc=Human resources management
 Module5000Name=Multi-company
@@ -1249,11 +1249,6 @@ AddSubscriptionIntoAccount=Suggest by default to create a bank transaction, in b
 AdherentLoginRequired= Manage a Login for each member
 AdherentMailRequired=EMail required to create a new member
 MemberSendInformationByMailByDefault=Checkbox to send mail confirmation to members (validation or new subscription) is on by default
-##### Skype setup #####
-SkypeSetup=Skype module setup
-SkypeDeactivateInUser=Deactivate Skype in user card
-SkypeDeactivateInContact=Deactivate Skype in contact card
-SkypeDeactivateInMember=Deactivate Skype in member card
 ##### LDAP setup #####
 LDAPSetup=LDAP Setup
 LDAPGlobalParameters=Global parameters
diff --git a/htdocs/theme/common/skype_callbutton.png b/htdocs/theme/common/skype_callbutton.png
index dd76442627a8c261aef378eb4df40442c8a9f1a2..ceccf2858d2cc06e1dbeeefeda95a6ed3f3b19af 100644
GIT binary patch
literal 1377
zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4rT@h1`S>QU<L*T$r9IylHmNblJdl&R0hYC
z{G?O`&)mfH)S%SFl*+=BsWuD@%u1Od5hW46K32*3xq68pHF_1f1q>iyV_#8_n4Fzj
zqL7rDo|$K>^nUk#C56lsTcvPQUjyF)=hTc$kE){7;3~h6<f`ms%M>MhI|Z8xtBTx$
z+|-gpg^Jvqyke^gTP3i$R(Zu%AYpwa1+bEmY+EIWqau6*6rA&mQWZ?~jCGR@3=I{`
z%=8RROwG&;brg&Y42|>+jPwo6bPY|cOwFu}%oU(O$xgwhC?(A*$i)q6S5Zoutx`rw
zNr9EVetCJhUb(Seeo?x<p{1oI$P6PR-J+B<-Qvo;lEez#ykcdT2`;I{$wiq3C7Jno
z3Lp~`lk!VTY?YLt##ZDOz>Uo-h6Yn|ey)B+Vu8M)o&m^95WnUY`1;~knwtw(U0f2B
zif}JhgNs8d3sUuiQj7CTi;`1=Qqz<{ZYr>HE=o--$uA1Y&(DE{Vn9ZINq%ugeu08>
zu$h8JcxGNoetEGbSiP^Wm1kaYNn&1ds;7&sQblfoUS?*BmARvniGhWqi>0ZhrJ<p#
zsilj#p^KT5v9p1jp{1d@Axy7JesXDUYF-IUZwf-MD^9(jqyP#IE0@%w%(B!Jx1#)9
z1+bT`GI6`b38#5by(zfe;*3+TzMX=NJ}6?5A{r(X<l+Wmg3}}@ecCA?5`Jo4img(S
zlD%EyEbnRt28P=KJ|V7}ecLp9w`uil*X-M_x%f)hu1D@`t{6<-V?F=4+3dp!yY6eu
zJf<`4pvjB_TGJ0D?s;Ug@sa8Bt4(KK1@C=fxA?UEk~6{E?<ekkWH@n$*@j0NGmmTb
zZ=ZYpo#uocQ?I=3KmV%k%<JGyH#GZqYEIs3Ib)yi(i1upcWU)+)9l}2I^$sDnOBLs
z?y1i|uQlUH?1ASg2cKu|x~(z$l-`uR8gtLsZM?5JVRz8>`_cQK8%#S8zUYA2^2=7!
z_lE3v;Iit9@1~oMOV8RaKBGBdr^bw9HXH71PS_Q+_eJ&TSFWqB{Qv(yn2Ylq0|SF+
zNswRge<}e69*+5;3=9l2JzX3_DsF|G3*|fPz{7IkX2Gd5xu?#Y;o0}Ub5>r+)vwdP
zrc|=IJXPPw_;TCc=Nq_~y3Q$ZDkc~OFmU{+OJMx@s5>^~NK(OL|G8&EPyaib_h)kM
z9Os;<P~jr^Y6ng8XMYr|4)}O0I3Ki?nz@}d%9b-_!L{p7t8S-<PjEPWK&Skt$eQUk
s3-XfJaxD;6t9k6^zPeIMXfLY-gHy55Hiy{@<Uxg=r>mdKI;Vst0El8HzyJUM

literal 989
zcmeAS@N?(olHy`uVBq!ia0y~yU{GgZU=ZM7V_;yIdM8bRfq{96r;B5V$MLgMqdi0d
zC5|886B^{HHgo36H@os?PWh>#bdi_mCELT<Q@!jw_+4iNwoG+3U-+Ue^XaOkJGY-O
z@o1`9!LiFD=~-@hnc7*Uu<KWKO!xmw{}!S6I!gc2f&3XWi}zXDpZh+yxFw@mr9t(<
zo?{B8S-nAfz4Vv5hupqqwCKyWg0-HX(*K&Q+jp65w{Dp9lI^E^jE+jE&I(UdogY2-
z$@0w;;#an&z0#@mes?SH=&U76>VFhkcrea(kohok(SNT38J15sY6==mr(}v6&TNsM
zyJXe2i~q#qUpN)Zi<;ch{2FLpd4Eel#?luZ#;2vP1b4q>FEik2V`yBXnY5{5zsH0#
z^JR5H7yF!(-aMtif0@|t@}%n$fA{(AeYuoj?o_2O+v3iwOPj>F$3gRdq2m1BhysC}
zr*9{pe9Mxo&~luY!PBAlE8Dba%@t>ya%&HFov}L;6Y;S6R?@V3&Skdm6c?_Tn{>9w
zkSTqKq(X0Z?pFmtmQN0X9wo}#IgT_REZph6IWT@<`5F~Vcae#YuGM+zh<on1;ibvH
zTl4?axs$SXX*}8HA+`94%Yw2)3w*XQUa1o3W)!=?@@0W^%I9q*+lxH1*G1(gxB9<+
zy=z7F1=SzCTfX&QXjNlZonfCaF(PB8r&@1znVG*th20BAb=woIjc;vA-^3ngu{pKz
zS45xV^d!X}&I)oX&p1b&eZ+9H-A(jjf4qAp`=wXan}Y>i&K%=p)@PW1@TMl${IAxB
zj>Z+MO?PfgKj(P%Xo8zgpWv#A?3xdvtT|hCS8U`nie?u%xT;K@^Qf%I(&;zesP6WB
zZJh8yVO!hst*mz#z8@^^FIutF<I0^Gt4_Jax7BGVh0l@|2~JxYdR55w@0ZY@VIOY!
z9s0@_R_v3ve)hrgkE|14F4JYW()i1M-^RUXUKKh%c-GD6U#*z>TCQZ`4SOHq^}in}
zu!eVt)VRy|XTMX4K3S?)!JE<`lfbqzX4&-Xv0U$;KiO#cXYSk(&p(wuKMk|a$<NMS
z8*s@ns=2ps&z8yS&U%L5x6CL%oIa~NlIO@t!S>pKw_Gu=6>HlMXd5v7I%vCZ7jvc7
z&0{g=QvE+jgsDxfNnBa+JN0S1)`mkmzZ--twyn{rU9(Tb%PKQ*sfUH^v7>y<@Aq3A
zx^YeL)idkc_n-ZFdsAzJGUrxx9rII7*Hqk-C%$R?Ah|{M=*;MrZR%O!XH)#YAN=pl
zr{uIHa8_$m|KaVqIj0*k*up+p+Q>7nULMN#_22zZ!j6mcQ`a1Iy1~G}z~JfX=d#Wz
Gp$P!|LedBT

diff --git a/htdocs/theme/common/skype_chatbutton.png b/htdocs/theme/common/skype_chatbutton.png
index 750b49fa2213b1ac6bf9cc8c0e9b6e51253ecf85..d8135bb85a50e5b8a1d459a81365a0b1039df613 100644
GIT binary patch
literal 1244
zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4rT@h1`S>QU<L*T$r9IylHmNblJdl&R0hYC
z{G?O`&)mfH)S%SFl*+=BsWuD@%xRe+5hW46K32*3xq68pHF_1f1q>iyV_#8_n4Fzj
zqL7rDo|$K>^nUk#C56lsTcvPQUjyF)=hTc$kE){7;3~h6<f`ms%M>MhI|Z8xtBTx$
z+|-gpg^Jvqyke^gTP3i$R(Zu%AYpwa1+bEmY+EIWqau6*6rA&mQWZ?~jCGR@3=I{`
z%=8RROwG&;brg&Y42|>+jPwo6bPY|cOwFu}%oU(O$xgwhC?(A*$i)q6S5Zoutx`rw
zNr9EVetCJhUb(Seeo?x<p{1oI$P6PR-J+B<-Qvo;lEez#ykcdT2`;I{$wiq3C7Jno
z3Lp~`lk!VTY?YLt##ZDO`1-;P&MSrnRC0c<ennz|zM-Cher_(vUtkXxmjtCEoPkw!
zaY$uBs(w&vaeir0a%xa&nlh4A_$>k{Eb#TU@-NCv&&*5Aami0E%}vcK@pQ3Os>m(S
zOUX>Ja<Mcuva~ccv2?UFbu~3Kv~+PXbhUJHG&Hj`F>rJ=fti6#uc4WfxwDIzqot{(
zo1vkrsiUQdxr>pptErQViG_=!0ZgxFUU5lcUUDkT-ptGtE2v&eyn3yii&7Iy@{2<9
z^K)P+ARr^ZB)>Q#zd*q`*i1nqJTosPzr0uz6g}Xuw{l4>$}CGwaVyHtRRD*tRVEhu
z3HuwOH-(%q)3;Nw(FY|Cq{IRf3UYA+F~R8?l*a885Sb@6FU3}=NXg!A>6WOY3=9lu
z0X`wFYHJ>S|MSm&>r=h;kAwEU$U62~d);G)ZBLKA{I0&{(aBdo{{H)a>h%xZ^^ey*
z_;UH(&)rYIZF=-obM2$}L$AL4{#SSIo&NgAYae`>cKu_^h4*$_pB{brJ@(+sz`ZZb
zHa+?E_n*n8C;$Kd=L_BbnSp^psU*lR_&*`Qz<c3vAp-+Lj;D)bNX4z3es{hD1{^Gm
z$5qe1-23bQe4o&i=$X>WEV~nI9{4YKHp%d$shyMHo(a2LlpZ*{Eay0&WZ|0GeeHh4
zI_ZVwhePiBT>fj;9=pjz_1<2~wt~4Ay;iwp8ChG2)xIg~yjv9gcAG7W1j8*Yp#{I}
RFL{H?8&6k1mvv4FO#q_z&Ncu5

literal 916
zcmeAS@N?(olHy`uVBq!ia0y~yV9;e?U=ZM7V_;xt`uFW60|Rrkr;B5V$MLJvB0WL^
zC64E7O%<CJ`Dn%CAid150)m{Zxgk^ZZ9M{5a`m0^9lu`ia%=4HocZNZ(6YXl9B$S|
zo{<aN_&F!OJ~Q`@+SxOEWA^=f{_XBd1*=(K7BJgeJg-SV_xEi1{^D~Qfk(?)Z?djy
z2tE)kHNW^pZ;8W2g+(X)7Pe-EFYwIeFk9KXy8F#ciTl>wN0|?}2`KfxW&il!`PUYK
zxad!<Ok6onW?uF=<}@|wY+2V4{tx@|Rp+yZ37((*aM5Xp-iY8wg2!JuoYqOTZCI{%
zSKlb7p}-=gd-m_ll$<$V{9S(w<ksI=)#*O_?a|9RGCH2e8Ur@4&Ux^|JHXQWC7Zxf
z?_idK(|L=6qW7!)I%DV1`IJv9U%KcNyXcCRNrFz*F*<j+?(Oc_&-(KKe@bJq@FTki
zHYXU_E6z;*KC|MRX+Z$bwARHu(-!gM)GE(<5Xhl@a=wS>Umw>KHOC)ltabj$@+ddq
z-)qg5N0o`?;+J+lP&Qy@Kd=9AhV=f{x(f$4PCmf>rLoXJK}cC`e&-RE{x@k}tKSx;
zm1UI7DSG`|W8s?Sn&P!jrl((iCHMKbg|cw#qyy(O;|k?Yw-nZ!f1m!j-_$Rne}`_;
z{ex<IZQiXrxGcIgM_cmimdBpjp=Ez`xj(Kf;mQ0em$K>Qr8du&b<Gbmm)vhC52{y9
zH}sS8X4G#GHSx-K^vJ)qRKLwOWb0zR-Rq_cX<K>jjP+Og-LAuz_2TE!&iEC-+`Q5j
zPx!|;%}1#u=G2*x2#1|l_@92|+0%L3LGyZEm&)6tm!eBwN-!HqG*w--|2=Q}#G=)G
zQ@&Jf+QO5SJbiU*$>e!2S9rFFZT?~_erdhM?J9ejFJ52Qd2LJ%656w4Uh>n^OHauz
zcMtO29(?Db^`o5C8PdMzE<10?<ytvcMqFBV()pZ?j_Zr|h?#hPR<7J<(R{urI;FO`
z<XCql_l{cUBU|+!&-v!=%U_**Sk}$cCX{`P@Zw*u4Pt*?@V%%ZyHPOt%(>Pcy-kwG
zi(+dgZfTw^<IP&WWGCCY`wZ`<fB1f?qCdr>xc|fE?795S7pkrl9(B6Y@h;N$mhTRZ
zT-Mye;A8(REm<;+_wfAr`St&6RiQ^p&$z>U#5@{m?EV!;Y_N>~wDZ<U^Po?2ejIL@
gG`IYW_sjdN@xhll{|hc;U|?YIboFyt=akR{08sI?@&Et;

diff --git a/htdocs/user/card.php b/htdocs/user/card.php
index 62c2e5c9498..9cd92248b87 100644
--- a/htdocs/user/card.php
+++ b/htdocs/user/card.php
@@ -193,7 +193,7 @@ if (empty($reshook)) {
 			$object->office_phone = GETPOST("office_phone", 'alpha');
 			$object->office_fax = GETPOST("office_fax", 'alpha');
 			$object->user_mobile = GETPOST("user_mobile");
-			$object->skype = GETPOST("skype");
+			$object->skype = GETPOST("skype", 'alpha');
 			$object->email = GETPOST("email", 'alpha');
 			$object->job = GETPOST("job", 'alpha');
 			$object->signature = GETPOST("signature");
@@ -330,7 +330,7 @@ if (empty($reshook)) {
 				$object->office_phone = GETPOST("office_phone", 'alpha');
                 $object->office_fax = GETPOST("office_fax", 'alpha');
                 $object->user_mobile = GETPOST("user_mobile");
-                $object->skype = GETPOST("skype");
+                $object->skype = GETPOST("skype", 'alpha');
                 $object->email = GETPOST("email", 'alpha');
                 $object->job = GETPOST("job", 'alpha');
                 $object->signature = GETPOST("signature");
@@ -1325,14 +1325,6 @@ else
             	print '</td></tr>'."\n";
             }
 
-            // Skype
-            if (! empty($conf->skype->enabled))
-            {
-				print '<tr><td>'.$langs->trans("Skype").'</td>';
-                print '<td>'.dol_print_skype($object->skype,0,0,1).'</td>';
-                print "</tr>\n";
-            }
-
             // Signature
             print '<tr><td class="tdtop">'.$langs->trans('Signature').'</td><td>';
             print dol_htmlentitiesbr($object->signature);
-- 
GitLab


From 0a3ab4617ccf36db218e64a4a94b2de8e3dc6de5 Mon Sep 17 00:00:00 2001
From: aspangaro <alexandre.spangaro@gmail.com>
Date: Sat, 28 Nov 2015 14:52:13 +0100
Subject: [PATCH 018/197] Fix adherent width colomn of create type form

---
 htdocs/adherents/type.php | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/htdocs/adherents/type.php b/htdocs/adherents/type.php
index af708ef2f20..e2fc32f3bcb 100644
--- a/htdocs/adherents/type.php
+++ b/htdocs/adherents/type.php
@@ -242,15 +242,14 @@ if ($action == 'create')
 
 	print '<form action="'.$_SERVER['PHP_SELF'].'" method="POST">';
 	print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
+	print '<input type="hidden" name="action" value="add">';
 
     dol_fiche_head('');
 
 	print '<table class="border" width="100%">';
 	print '<tbody>';
 
-	print '<input type="hidden" name="action" value="add">';
-
-	print '<tr><td class="fieldrequired">'.$langs->trans("Label").'</td><td><input type="text" name="libelle" size="40"></td></tr>';
+	print '<tr><td width="25%" class="fieldrequired">'.$langs->trans("Label").'</td><td><input type="text" name="libelle" size="40"></td></tr>';
 
 	print '<tr><td>'.$langs->trans("SubscriptionRequired").'</td><td>';
 	print $form->selectyesno("cotisation",1,1);
-- 
GitLab


From 8bf66d2f5856ca1bf53a79ef05607951c5d0d87e Mon Sep 17 00:00:00 2001
From: aspangaro <alexandre.spangaro@gmail.com>
Date: Sat, 28 Nov 2015 15:09:08 +0100
Subject: [PATCH 019/197] Remove skype also in member card - already present in
 dol_banner

---
 htdocs/adherents/card.php               | 7 -------
 htdocs/adherents/card_subscriptions.php | 6 ------
 2 files changed, 13 deletions(-)

diff --git a/htdocs/adherents/card.php b/htdocs/adherents/card.php
index f998c2f08a3..503eddfbbb7 100644
--- a/htdocs/adherents/card.php
+++ b/htdocs/adherents/card.php
@@ -1400,7 +1400,6 @@ else
 		$rowspan=17;
 		if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED)) $rowspan++;
 		if (! empty($conf->societe->enabled)) $rowspan++;
-		if (! empty($conf->skype->enabled)) $rowspan++;
 
 		$linkback = '<a href="'.DOL_URL_ROOT.'/adherents/list.php">'.$langs->trans("BackToList").'</a>';
 		
@@ -1445,12 +1444,6 @@ else
 			print '</td></tr>';
 		}
 
-    	// Skype
-		if (! empty($conf->skype->enabled))
-		{
-			print '<tr><td>'.$langs->trans("Skype").'</td><td class="valeur">'.dol_print_skype($object->skype,0,$object->fk_soc,1).'</td></tr>';
-		}
-
         print '</table>';
         
         print '</div>';
diff --git a/htdocs/adherents/card_subscriptions.php b/htdocs/adherents/card_subscriptions.php
index 9d86f618618..38c6f254bda 100644
--- a/htdocs/adherents/card_subscriptions.php
+++ b/htdocs/adherents/card_subscriptions.php
@@ -610,12 +610,6 @@ if ($rowid > 0)
 		print '</td></tr>';
 	}
 
-	// Skype
-	if (! empty($conf->skype->enabled))
-	{
-		print '<tr><td>'.$langs->trans("Skype").'</td><td class="valeur">'.dol_print_skype($object->skype,0,$object->fk_soc,1).'</td></tr>';
-	}
-
     print '</table>';
     
     print '</div>';
-- 
GitLab


From 826c4de26b0c18577c2420eff12bb780c7339ca7 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Sat, 28 Nov 2015 15:28:59 +0100
Subject: [PATCH 020/197] Uniformize and debug module expense report.

---
 htdocs/expensereport/card.php                 | 136 ++++++++++--------
 .../class/expensereport.class.php             |   7 +-
 htdocs/expensereport/list.php                 |   4 +-
 3 files changed, 85 insertions(+), 62 deletions(-)

diff --git a/htdocs/expensereport/card.php b/htdocs/expensereport/card.php
index f456bc0db8b..f5d38bc001c 100644
--- a/htdocs/expensereport/card.php
+++ b/htdocs/expensereport/card.php
@@ -51,6 +51,8 @@ $date = dol_mktime(0, 0, 0, GETPOST('datemonth'), GETPOST('dateday'), GETPOST('d
 $fk_projet=GETPOST('fk_projet');
 $vatrate=GETPOST('vatrate');
 $ref=GETPOST("ref",'alpha');
+$comments=GETPOST('comments');
+$fk_c_type_fees=GETPOST('fk_c_type_fees','int');
 
 // If socid provided by ajax company selector
 if (! empty($_REQUEST['socid_id']))
@@ -92,7 +94,19 @@ $hideref = (GETPOST('hideref', 'int') ? GETPOST('hideref', 'int') : (! empty($co
  * Actions
  */
 
-if ($cancel) $action='';
+if ($cancel) 
+{
+	$action='';
+	$fk_projet='';
+	$date_start='';
+	$date_end='';
+	$date='';
+	$comments='';
+	$vatrate='';
+	$value_unit='';
+	$qty=1;
+	$fk_c_type_fees=-1;
+}
 
 if ($action == 'confirm_delete' && GETPOST("confirm") == "yes" && $id > 0 && $user->rights->expensereport->supprimer)
 {
@@ -863,7 +877,7 @@ if ($action == "addline")
 	if($object_ligne->value_unit==0)
 	{
 		$error++;
-		setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("UP")), null, 'errors');
+		setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("PriceUTTC")), null, 'errors');
 	}
 
 	// S'il y'a eu au moins une erreur
@@ -1615,7 +1629,19 @@ else
 				$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'projet as pjt ON fde.fk_projet=pjt.rowid';
 				$sql.= ' WHERE fde.fk_expensereport = '.$object->id;
 
-				$resql = $db->query($sql);
+				print '<div style="clear: both;">';
+
+				$actiontouse='updateligne';
+				if (($object->fk_statut==0 || $object->fk_statut==99) && $action != 'editline') $actiontouse='addline';
+				
+				print '<form name="expensereport" action="'.$_SERVER["PHP_SELF"].'" method="post">';
+				print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
+				print '<input type="hidden" name="action" value="'.$actiontouse.'">';
+				print '<input type="hidden" name="id" value="'.$object->id.'">';
+				print '<input type="hidden" name="fk_expensereport" value="'.$object->id.'" />';
+				print '<table class="noborder" width="100%">';
+				
+		        $resql = $db->query($sql);
 				if ($resql)
 				{
 					$num_lignes = $db->num_rows($resql);
@@ -1623,34 +1649,21 @@ else
 
 					if ($num_lignes)
 					{
-						print '<div style="clear: both;">';
-
-						print '<form name="updateligne" action="'.$_SERVER["PHP_SELF"].'" method="post">';
-						print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
-						print '<input type="hidden" name="action" value="updateligne">';
-						print '<input type="hidden" name="id" value="'.$object->id.'">';
-
-						print '<table class="noborder" width="100%">';
-
 						print '<tr class="liste_titre">';
-						if ($action != 'editline') print '<td style="text-align:center;">'.$langs->trans('Piece').'</td>';
+						print '<td style="text-align:center;">'.$langs->trans('Piece').'</td>';
 						print '<td style="text-align:center;">'.$langs->trans('Date').'</td>';
-						print '<td style="text-align:center;">'.$langs->trans('Project').'</td>';
+						print '<td>'.$langs->trans('Project').'</td>';
 						print '<td style="text-align:center;">'.$langs->trans('Type').'</td>';
 						print '<td style="text-align:left;">'.$langs->trans('Description').'</td>';
 						print '<td style="text-align:right;">'.$langs->trans('VAT').'</td>';
-						print '<td style="text-align:right;">'.$langs->trans('UnitPriceTTC').'</td>';
+						print '<td style="text-align:right;">'.$langs->trans('PriceUTTC').'</td>';
 						print '<td style="text-align:right;">'.$langs->trans('Qty').'</td>';
 						if ($action != 'editline')
 						{
 							print '<td style="text-align:right;">'.$langs->trans('AmountHT').'</td>';
 							print '<td style="text-align:right;">'.$langs->trans('AmountTTC').'</td>';
 						}
-						// Ajout des boutons de modification/suppression
-						if ($object->fk_statut < 2 || $object->fk_statut==99)
-						{
-							print '<td style="text-align:right;"></td>';
-						}
+						print '<td style="text-align:right;"></td>';
 
 						print '</tr>';
 
@@ -1663,14 +1676,11 @@ else
 							if ($action != 'editline' || $objp->rowid != GETPOST('rowid'))
 							{
 								print '<tr '.$bc[$var].'>';
-								if ($action != 'editline')
-								{
-									print '<td style="text-align:center;">';
-									print img_picto($langs->trans("Document"), "object_generic");
-									print ' <span>'.$piece_comptable.'</span></td>';
-								}
-								print '<td style="text-align:center;">'.dol_print_date($db->jdate($objp->date), 'day').'</td>';
 								print '<td style="text-align:center;">';
+								print img_picto($langs->trans("Document"), "object_generic");
+								print ' <span>'.$piece_comptable.'</span></td>';
+								print '<td style="text-align:center;">'.dol_print_date($db->jdate($objp->date), 'day').'</td>';
+								print '<td>';
 								if ($objp->projet_id > 0)
 								{
 									$projecttmp->id=$objp->projet_id;
@@ -1683,6 +1693,7 @@ else
 								print '<td style="text-align:right;">'.vatrate($objp->vatrate,true).'</td>';
 								print '<td style="text-align:right;">'.price($objp->value_unit).'</td>';
 								print '<td style="text-align:right;">'.$objp->qty.'</td>';
+								
 								if ($action != 'editline')
 								{
 									print '<td style="text-align:right;">'.price($objp->total_ht).'</td>';
@@ -1690,17 +1701,18 @@ else
 								}
 
 								// Ajout des boutons de modification/suppression
+								print '<td style="text-align:right;" class="nowrap">';
 								if($object->fk_statut<2 OR $object->fk_statut==99)
 								{
-									print '<td style="text-align:right;" class="nowrap">';
 									print '<a href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&amp;action=editline&amp;rowid='.$objp->rowid.'#'.$objp->rowid.'">';
 									print img_edit();
 									print '</a> &nbsp; ';
 									print '<a href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&amp;action=delete_line&amp;rowid='.$objp->rowid.'">';
 									print img_delete();
 									print '</a>';
-									print '</td>';
 								}
+								print '</td>';
+								
 								print '</tr>';
 							}
 
@@ -1708,6 +1720,9 @@ else
 							{
 									//modif ligne!!!!!
 									print '<tr '.$bc[$var].'>';
+									
+									print '<td></td>';
+
 									// Select date
 									print '<td style="text-align:center;">';
 									$form->select_date($objp->date,'date');
@@ -1743,6 +1758,12 @@ else
 									print '<input type="text" size="4" name="qty" value="'.$objp->qty.'" />';
 									print '</td>';
 
+									if ($action != 'editline')
+									{
+									    print '<td style="text-align:right;">'.$langs->trans('AmountHT').'</td>';
+									    print '<td style="text-align:right;">'.$langs->trans('AmountTTC').'</td>';
+									}
+									
 									print '<td style="text-align:center;">';
 									print '<input type="hidden" name="rowid" value="'.$objp->rowid.'">';
 									print '<input type="submit" class="button" name="save" value="'.$langs->trans('Save').'">';
@@ -1754,12 +1775,6 @@ else
 						}
 
 						$db->free($resql);
-
-						print '</table>';
-
-						print '</form>';
-
-						print '</div>';
 					}
 					else
 					{
@@ -1772,27 +1787,23 @@ else
 					// Add a line
 					if (($object->fk_statut==0 || $object->fk_statut==99) && $action != 'editline')
 					{
-						print load_fiche_titre($langs->trans("AddLine"),'','');
-
-						print '<form method="post" action="'.$_SERVER['PHP_SELF'].'" name="addline">';
-						print '<input type="hidden" name="id" value="'.$object->id.'">';
-						print '<input type="hidden" name="fk_expensereport" value="'.$object->id.'" />';
-						print '<input type="hidden" name="action" value="addline" />';
-
-						print '<table class="noborder" width="100%">';
 						print '<tr class="liste_titre">';
-						print '<td style="text-align:center;">'.$langs->trans('Date').'</td>';
+						print '<td colspan="2"></td>';
+						//print '<td style="text-align:center;">'.$langs->trans('Date').'</td>';
 						print '<td>'.$langs->trans('Project').'</td>';
-						print '<td>'.$langs->trans('Type').'</td>';
+						print '<td align="center">'.$langs->trans('Type').'</td>';
 						print '<td>'.$langs->trans('Description').'</td>';
 						print '<td style="text-align:right;">'.$langs->trans('VAT').'</td>';
 						print '<td style="text-align:right;">'.$langs->trans('PriceUTTC').'</td>';
 						print '<td style="text-align:right;">'.$langs->trans('Qty').'</td>';
-						print '<td style="text-align:center;"></td>';
+						print '<td colspan="3"></td>';
 						print '</tr>';
 
+						
 						print '<tr '.$bc[true].'>';
 
+						print '<td></td>';
+						
 						// Select date
 						print '<td style="text-align:center;">';
 						$form->select_date($date?$date:-1,'date');
@@ -1800,17 +1811,17 @@ else
 
 						// Select project
 						print '<td>';
-						$formproject->select_projects(-1, GETPOST('fk_projet'), 'fk_projet', 0, 0, 1, 1);
+						$formproject->select_projects(-1, $fk_projet, 'fk_projet', 0, 0, 1, 1);
 						print '</td>';
 
 						// Select type
-						print '<td>';
-						select_type_fees_id(GETPOST('fk_c_type_fees'),'fk_c_type_fees',1);
+						print '<td align="center">';
+						select_type_fees_id($fk_c_type_fees,'fk_c_type_fees',1);
 						print '</td>';
 
 						// Add comments
-						print '<td style="text-align:left;">';
-						print '<textarea class="flat_ndf centpercent" name="comments">'.GETPOST('comments').'</textarea>';
+						print '<td>';
+						print '<textarea class="flat_ndf centpercent" name="comments">'.$comments.'</textarea>';
 						print '</td>';
 
 						// Select VAT
@@ -1819,28 +1830,37 @@ else
 						if (! empty($conf->global->EXPENSEREPORT_NO_DEFAULT_VAT)) $conf->global->MAIN_VAT_DEFAULT_IF_AUTODETECT_FAILS = 'none';
 						print '<select class="flat" name="vatrate">';
 						print '<option name="none" value="" selected>';
-						print $form->load_tva('vatrate', (isset($_POST["vatrate"])?$_POST["vatrate"]:$defaultvat), $mysoc, '', 0, 0, '', true);
+						print $form->load_tva('vatrate', ($vatrate!=''?$vatrate:$defaultvat), $mysoc, '', 0, 0, '', true);
 						print '</select>';
 						print '</td>';
 
 						// Unit price
 						print '<td style="text-align:right;">';
-						print '<input type="text" size="6" name="value_unit" value="'.GETPOST('value_unit').'">';
+						print '<input type="text" size="5" name="value_unit" value="'.$value_unit.'">';
 						print '</td>';
 
 						// Quantity
 						print '<td style="text-align:right;">';
-						print '<input type="text" size="4" name="qty"  value="'.GETPOST('qty').'">';
+						print '<input type="text" size="2" name="qty"  value="'.($qty?$qty:1).'">';
 						print '</td>';
 
+						if ($action != 'editline')
+						{
+						    print '<td style="text-align:right;"></td>';
+						    print '<td style="text-align:right;"></td>';
+						}
+
 						print '<td style="text-align:center;"><input type="submit" value="'.$langs->trans("Add").'" name="bouton" class="button"></td>';
+						
 						print '</tr>';
-
-						print '</table>';
-
-						print '</form>';
 					} // Fin si c'est payé/validé
 
+					print '</table>';
+					
+					print '</form>';
+					
+					print '</div>';
+						
 				}
 				else
 				{
diff --git a/htdocs/expensereport/class/expensereport.class.php b/htdocs/expensereport/class/expensereport.class.php
index 0dba68b5b5c..8b79d0b5d9f 100644
--- a/htdocs/expensereport/class/expensereport.class.php
+++ b/htdocs/expensereport/class/expensereport.class.php
@@ -1801,9 +1801,10 @@ class ExpenseReportLine
  *    @param    int     $selected       preselect status
  *    @param    string  $htmlname       Name of HTML select
  *    @param    int     $useempty       1=Add empty line
+ *    @param    int     $useshortlabel  Use short labels
  *    @return   string                  HTML select with status
  */
-function select_expensereport_statut($selected='',$htmlname='fk_statut',$useempty=1)
+function select_expensereport_statut($selected='',$htmlname='fk_statut',$useempty=1, $useshortlabel=0)
 {
     global $db, $langs;
 
@@ -1811,7 +1812,9 @@ function select_expensereport_statut($selected='',$htmlname='fk_statut',$useempt
 
     print '<select class="flat" name="'.$htmlname.'">';
     if ($useempty) print '<option value="-1">&nbsp;</option>';
-    foreach ($tmpep->statuts as $key => $val)
+    $arrayoflabels=$tmpep->statuts;
+    if ($useshortlabel) $arrayoflabels=$tmpep->statuts_short;
+    foreach ($arrayoflabels as $key => $val)
     {
         if ($selected != '' && $selected == $key)
         {
diff --git a/htdocs/expensereport/list.php b/htdocs/expensereport/list.php
index 4a12d25f8f2..c37d0d81dad 100644
--- a/htdocs/expensereport/list.php
+++ b/htdocs/expensereport/list.php
@@ -1,6 +1,6 @@
 <?php
 /* Copyright (C) 2003     	Rodolphe Quiedeville <rodolphe@quiedeville.org>
- * Copyright (C) 2004-2008	Laurent Destailleur  <eldy@users.sourceforge.net>
+ * Copyright (C) 2004-2015	Laurent Destailleur  <eldy@users.sourceforge.net>
  * Copyright (C) 2004     	Eric Seigne          <eric.seigne@ryxeo.com>
  * Copyright (C) 2005-2009	Regis Houssin        <regis@dolibarr.fr>
  * Copyright (C) 2015       Alexandre Spangaro   <aspangaro.dolibarr@gmail.com>
@@ -257,7 +257,7 @@ if ($resql)
 
 	// Status
 	print '<td class="liste_titre" align="right">';
-	select_expensereport_statut($search_status,'search_status');
+	select_expensereport_statut($search_status,'search_status',1,1);
 	print '</td>';
 
 	print '<td class="liste_titre" align="right">';
-- 
GitLab


From 3485e351a48f91c3d4a1d0fe6a4887fdbd143f85 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Sat, 28 Nov 2015 15:46:20 +0100
Subject: [PATCH 021/197] Fix do not jump to top of page when clicking on "Link
 to order"

---
 htdocs/core/class/html.form.class.php | 4 ++--
 htdocs/expensereport/document.php     | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php
index b683bcb0f6c..bada8627ee0 100644
--- a/htdocs/core/class/html.form.class.php
+++ b/htdocs/core/class/html.form.class.php
@@ -4954,7 +4954,7 @@ class Form
 		if (((! is_array($restrictlinksto)) || in_array('order',$restrictlinksto))
 			&& ! empty($conf->commande->enabled))
 		{
-			$linktoelem.=($linktoelem?' &nbsp; ':'').'<a href="#" id="linktoorder">' . $langs->trans('LinkedOrder') . '</a>';
+			$linktoelem.=($linktoelem?' &nbsp; ':'').'<a href="#linktoorder" id="linktoorder">' . $langs->trans('LinkedOrder') . '</a>';
 
 			print '
 				<script type="text/javascript" language="javascript">
@@ -5020,7 +5020,7 @@ class Form
 		if (((! is_array($restrictlinksto)) || in_array('supplier_order',$restrictlinksto))
 			&& ! empty($conf->fournisseur->enabled))
 		{
-			$linktoelem.=($linktoelem?' &nbsp; ':'').'<a href="#" id="linktoorder">' . $langs->trans('LinkedOrder') . '</a>';
+			$linktoelem.=($linktoelem?' &nbsp; ':'').'<a href="#linktoorder" id="linktoorder">' . $langs->trans('LinkedOrder') . '</a>';
 
 			print '
 			<script type="text/javascript" language="javascript">
diff --git a/htdocs/expensereport/document.php b/htdocs/expensereport/document.php
index 86ff064db7d..f16d6ca14e1 100644
--- a/htdocs/expensereport/document.php
+++ b/htdocs/expensereport/document.php
@@ -108,7 +108,7 @@ if ($object->id)
 
 	// Ref
 	print '<tr><td width="30%">'.$langs->trans("Ref").'</td><td>';
-	print $form->showrefnav($object, 'id', $linkback, 1, 'rowid', 'ref', '');
+	print $form->showrefnav($object, 'ref', $linkback, 1, 'ref', 'ref', '');
 	print '</td></tr>';
 
 	// Societe
-- 
GitLab


From 5b22eee938574192e9211edbfb55d0615f420a3f Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Sat, 28 Nov 2015 16:11:15 +0100
Subject: [PATCH 022/197] FIX #4099

---
 htdocs/core/lib/date.lib.php | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/htdocs/core/lib/date.lib.php b/htdocs/core/lib/date.lib.php
index 931f30ce998..ac44d6e5975 100644
--- a/htdocs/core/lib/date.lib.php
+++ b/htdocs/core/lib/date.lib.php
@@ -540,9 +540,10 @@ function dol_get_first_day_week($day,$month,$year,$gm=false)
  *	@param	    int			$timestampStart     Timestamp de debut
  *	@param	    int			$timestampEnd       Timestamp de fin
  *  @param      string		$countrycode        Country code
+ *	@param      int			$lastday            Last day is included, 0: no, 1:yes
  *	@return   	int								Nombre de jours feries
  */
-function num_public_holiday($timestampStart, $timestampEnd, $countrycode='FR')
+function num_public_holiday($timestampStart, $timestampEnd, $countrycode='FR', $lastday=0)
 {
 	$nbFerie = 0;
 
@@ -550,7 +551,8 @@ function num_public_holiday($timestampStart, $timestampEnd, $countrycode='FR')
 	if ((($timestampEnd - $timestampStart) % 86400) != 0) return 'ErrorDates must use same hours and must be GMT dates';
 
 	$i=0;
-	while ($timestampStart < $timestampEnd && ($i < 50000))		// Loop end when equals (Test on i is a security loop to avoid infinite loop)
+	while (( ($lastday == 0 && $timestampStart < $timestampEnd) || ($lastday && $timestampStart <= $timestampEnd) )
+	    && ($i < 50000))		// Loop end when equals (Test on i is a security loop to avoid infinite loop)
 	{
 		$ferie=false;
 		$countryfound=0;
@@ -718,7 +720,7 @@ function num_public_holiday($timestampStart, $timestampEnd, $countrycode='FR')
  *
  *	@param	   int			$timestampStart     Timestamp start UTC
  *	@param	   int			$timestampEnd       Timestamp end UTC
- *	@param     int			$lastday            Last day is included, 0: non, 1:oui
+ *	@param     int			$lastday            Last day is included, 0: no, 1:yes
  *	@return    int								Number of days
  */
 function num_between_day($timestampStart, $timestampEnd, $lastday=0)
@@ -766,7 +768,7 @@ function num_open_day($timestampStart, $timestampEnd, $inhour=0, $lastday=0, $ha
 	if ($timestampStart < $timestampEnd)
 	{
 		$numdays = num_between_day($timestampStart, $timestampEnd, $lastday);
-		$numholidays = num_public_holiday($timestampStart, $timestampEnd, $country_code);
+		$numholidays = num_public_holiday($timestampStart, $timestampEnd, $country_code, $lastday);
 		$nbOpenDay = $numdays - $numholidays;
 		$nbOpenDay.= " " . $langs->trans("Days");
 		if ($inhour == 1 && $nbOpenDay <= 3) $nbOpenDay = $nbOpenDay*24 . $langs->trans("HourShort");
-- 
GitLab


From 3e403720e6589c8c9f33932ff00d75abe38d3119 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Sat, 28 Nov 2015 17:35:52 +0100
Subject: [PATCH 023/197] FIX User is selected when choosing menu "My projects"
 Graph of opportunities is moved into an include file.

---
 htdocs/projet/graph_opportunities.inc.php | 85 ++++++++++++++++++++++
 htdocs/projet/index.php                   | 86 +----------------------
 htdocs/projet/list.php                    | 15 ++--
 3 files changed, 94 insertions(+), 92 deletions(-)
 create mode 100644 htdocs/projet/graph_opportunities.inc.php

diff --git a/htdocs/projet/graph_opportunities.inc.php b/htdocs/projet/graph_opportunities.inc.php
new file mode 100644
index 00000000000..6cae34bddfa
--- /dev/null
+++ b/htdocs/projet/graph_opportunities.inc.php
@@ -0,0 +1,85 @@
+<?php 
+if (! empty($conf->global->PROJECT_USE_OPPORTUNITIES))
+{
+	$sql = "SELECT COUNT(p.rowid) as nb, SUM(p.opp_amount) as opp_amount, p.fk_opp_status as opp_status";
+	$sql.= " FROM ".MAIN_DB_PREFIX."projet as p";
+	$sql.= " WHERE p.entity = ".$conf->entity;
+	$sql.= " AND p.fk_statut = 1";
+	if ($mine || empty($user->rights->projet->all->lire)) $sql.= " AND p.rowid IN (".$projectsListId.")";
+	if ($socid)	$sql.= "  AND (p.fk_soc IS NULL OR p.fk_soc = 0 OR p.fk_soc = ".$socid.")";
+	$sql.= " GROUP BY p.fk_opp_status";
+	$resql = $db->query($sql);
+	if ($resql)
+	{
+	    $num = $db->num_rows($resql);
+	    $i = 0;
+
+	    $totalnb=0;
+	    $totalamount=0;
+	    $ponderated_opp_amount=0;
+	    $valsnb=array();
+	    $valsamount=array();
+	    $dataseries=array();
+	    // -1=Canceled, 0=Draft, 1=Validated, (2=Accepted/On process not managed for customer orders), 3=Closed (Sent/Received, billed or not)
+	    while ($i < $num)
+	    {
+	        $obj = $db->fetch_object($resql);
+	        if ($obj)
+	        {
+	            //if ($row[1]!=-1 && ($row[1]!=3 || $row[2]!=1))
+	            {
+	                $valsnb[$obj->opp_status]=$obj->nb;
+	                $valsamount[$obj->opp_status]=$obj->opp_amount;
+	                $totalnb+=$obj->nb;
+	                $totalamount+=$obj->opp_amount;
+	                $ponderated_opp_amount = $ponderated_opp_amount + price2num($listofoppstatus[$obj->opp_status] * $obj->opp_amount / 100);
+	            }
+	            $total+=$row[0];
+	        }
+	        $i++;
+	    }
+	    $db->free($resql);
+
+	    print '<table class="noborder nohover" width="100%">';
+	    print '<tr class="liste_titre"><td colspan="2">'.$langs->trans("Statistics").' - '.$langs->trans("OpportunitiesStatusForOpenedProjects").'</td></tr>'."\n";
+	    $var=true;
+	    $listofstatus=array_keys($listofoppstatus);
+	    foreach ($listofstatus as $status)
+	    {
+	    	$labelstatus = '';
+
+			$code = dol_getIdFromCode($db, $status, 'c_lead_status', 'rowid', 'code');
+	        if ($code) $labelstatus = $langs->trans("OppStatus".$code);
+	        if (empty($labelstatus)) $labelstatus=$listofopplabel[$status];
+
+	        //$labelstatus .= ' ('.$langs->trans("Coeff").': '.price2num($listofoppstatus[$status]).')';
+	        $labelstatus .= ' - '.price2num($listofoppstatus[$status]).'%';
+
+	        $dataseries[]=array('label'=>$labelstatus,'data'=>(isset($valsamount[$status])?(float) $valsamount[$status]:0));
+	        if (! $conf->use_javascript_ajax)
+	        {
+	            $var=!$var;
+	            print "<tr ".$bc[$var].">";
+	            print '<td>'.$labelstatus.'</td>';
+	            print '<td align="right"><a href="list.php?statut='.$status.'">'.price((isset($valsamount[$status])?(float) $valsamount[$status]:0), 0, '', 1, -1, -1, $conf->currency).'</a></td>';
+	            print "</tr>\n";
+	        }
+	    }
+	    if ($conf->use_javascript_ajax)
+	    {
+	        print '<tr class="impair"><td align="center" colspan="2">';
+	        $data=array('series'=>$dataseries);
+	        dol_print_graph('stats',400,180,$data,1,'pie',0,'',0);
+	        print '</td></tr>';
+	    }
+	    //if ($totalinprocess != $total)
+	    //print '<tr class="liste_total"><td>'.$langs->trans("Total").' ('.$langs->trans("CustomersOrdersRunning").')</td><td align="right">'.$totalinprocess.'</td></tr>';
+	    print '<tr class="liste_total"><td>'.$langs->trans("OpportunityTotalAmount").'</td><td align="right">'.price($totalamount, 0, '', 1, -1, -1, $conf->currency).'</td></tr>';
+	    print '<tr class="liste_total"><td>'.$langs->trans("OpportunityPonderatedAmount").'</td><td align="right">'.price($ponderated_opp_amount, 0, '', 1, -1, -1, $conf->currency).'</td></tr>';
+	    print "</table><br>";
+	}
+	else
+	{
+	    dol_print_error($db);
+	}
+}
diff --git a/htdocs/projet/index.php b/htdocs/projet/index.php
index 11ae9e78906..b91b8763611 100644
--- a/htdocs/projet/index.php
+++ b/htdocs/projet/index.php
@@ -128,91 +128,7 @@ if (count($listofsearchfields))
 /*
  * Statistics
  */
-
-if (! empty($conf->global->PROJECT_USE_OPPORTUNITIES))
-{
-	$sql = "SELECT COUNT(p.rowid) as nb, SUM(p.opp_amount) as opp_amount, p.fk_opp_status as opp_status";
-	$sql.= " FROM ".MAIN_DB_PREFIX."projet as p";
-	$sql.= " WHERE p.entity = ".$conf->entity;
-	$sql.= " AND p.fk_statut = 1";
-	if ($mine || empty($user->rights->projet->all->lire)) $sql.= " AND p.rowid IN (".$projectsListId.")";
-	if ($socid)	$sql.= "  AND (p.fk_soc IS NULL OR p.fk_soc = 0 OR p.fk_soc = ".$socid.")";
-	$sql.= " GROUP BY p.fk_opp_status";
-	$resql = $db->query($sql);
-	if ($resql)
-	{
-	    $num = $db->num_rows($resql);
-	    $i = 0;
-
-	    $totalnb=0;
-	    $totalamount=0;
-	    $ponderated_opp_amount=0;
-	    $valsnb=array();
-	    $valsamount=array();
-	    $dataseries=array();
-	    // -1=Canceled, 0=Draft, 1=Validated, (2=Accepted/On process not managed for customer orders), 3=Closed (Sent/Received, billed or not)
-	    while ($i < $num)
-	    {
-	        $obj = $db->fetch_object($resql);
-	        if ($obj)
-	        {
-	            //if ($row[1]!=-1 && ($row[1]!=3 || $row[2]!=1))
-	            {
-	                $valsnb[$obj->opp_status]=$obj->nb;
-	                $valsamount[$obj->opp_status]=$obj->opp_amount;
-	                $totalnb+=$obj->nb;
-	                $totalamount+=$obj->opp_amount;
-	                $ponderated_opp_amount = $ponderated_opp_amount + price2num($listofoppstatus[$obj->opp_status] * $obj->opp_amount / 100);
-	            }
-	            $total+=$row[0];
-	        }
-	        $i++;
-	    }
-	    $db->free($resql);
-
-	    print '<table class="noborder nohover" width="100%">';
-	    print '<tr class="liste_titre"><td colspan="2">'.$langs->trans("Statistics").' - '.$langs->trans("OpportunitiesStatusForOpenedProjects").'</td></tr>'."\n";
-	    $var=true;
-	    $listofstatus=array_keys($listofoppstatus);
-	    foreach ($listofstatus as $status)
-	    {
-	    	$labelstatus = '';
-
-			$code = dol_getIdFromCode($db, $status, 'c_lead_status', 'rowid', 'code');
-	        if ($code) $labelstatus = $langs->trans("OppStatus".$code);
-	        if (empty($labelstatus)) $labelstatus=$listofopplabel[$status];
-
-	        //$labelstatus .= ' ('.$langs->trans("Coeff").': '.price2num($listofoppstatus[$status]).')';
-	        $labelstatus .= ' - '.price2num($listofoppstatus[$status]).'%';
-
-	        $dataseries[]=array('label'=>$labelstatus,'data'=>(isset($valsamount[$status])?(float) $valsamount[$status]:0));
-	        if (! $conf->use_javascript_ajax)
-	        {
-	            $var=!$var;
-	            print "<tr ".$bc[$var].">";
-	            print '<td>'.$labelstatus.'</td>';
-	            print '<td align="right"><a href="list.php?statut='.$status.'">'.price((isset($valsamount[$status])?(float) $valsamount[$status]:0), 0, '', 1, -1, -1, $conf->currency).'</a></td>';
-	            print "</tr>\n";
-	        }
-	    }
-	    if ($conf->use_javascript_ajax)
-	    {
-	        print '<tr class="impair"><td align="center" colspan="2">';
-	        $data=array('series'=>$dataseries);
-	        dol_print_graph('stats',400,180,$data,1,'pie',0,'');
-	        print '</td></tr>';
-	    }
-	    //if ($totalinprocess != $total)
-	    //print '<tr class="liste_total"><td>'.$langs->trans("Total").' ('.$langs->trans("CustomersOrdersRunning").')</td><td align="right">'.$totalinprocess.'</td></tr>';
-	    print '<tr class="liste_total"><td>'.$langs->trans("OpportunityTotalAmount").'</td><td align="right">'.price($totalamount, 0, '', 1, -1, -1, $conf->currency).'</td></tr>';
-	    print '<tr class="liste_total"><td>'.$langs->trans("OpportunityPonderatedAmount").'</td><td align="right">'.price($ponderated_opp_amount, 0, '', 1, -1, -1, $conf->currency).'</td></tr>';
-	    print "</table><br>";
-	}
-	else
-	{
-	    dol_print_error($db);
-	}
-}
+include DOL_DOCUMENT_ROOT.'/projet/graph_opportunities.inc.php';
 
 
 // List of draft projects
diff --git a/htdocs/projet/list.php b/htdocs/projet/list.php
index 7481a6bf05c..c4e8b8f5783 100644
--- a/htdocs/projet/list.php
+++ b/htdocs/projet/list.php
@@ -276,15 +276,16 @@ if ($resql)
 		$moreforfilter.=$formother->select_salesrepresentatives($search_sale, 'search_sale', $user, 0, 1, 'maxwidth300');
 		$moreforfilter.='</div>';
 	}
+
 	// If the user can view prospects other than his'
+    if ($mine) $search_user=$user->id;
+	$moreforfilter.='<div class="divsearchfield">';
+	$moreforfilter.=$langs->trans('ProjectsWithThisUserAsContact'). ': ';
+	$includeonly='';
+	if (empty($user->rights->user->user->lire)) $includeonly=array($user->id);
+	$moreforfilter.=$form->select_dolusers($search_user, 'search_user', 1, '', 0, $includeonly, '', 0, 0, 0, '', 0, '', 'maxwidth300');
+	$moreforfilter.='</div>';
 
-	if (($user->rights->societe->client->voir || $socid) && !$mine)
-	{
-		$moreforfilter.='<div class="divsearchfield">';
-		$moreforfilter.=$langs->trans('ProjectsWithThisUserAsContact'). ': ';
-		$moreforfilter.=$form->select_dolusers($search_user, 'search_user', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth300');
-		$moreforfilter.='</div>';
-	}
 	if (! empty($moreforfilter))
 	{
 		print '<div class="liste_titre liste_titre_bydiv centpercent">';
-- 
GitLab


From 212fce2ab7771464235b2fb9393329595f6210b7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= <frederic.france@free.fr>
Date: Sat, 28 Nov 2015 17:36:03 +0100
Subject: [PATCH 024/197] Create composer.json.phpcs

---
 composer.json.phpcs | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)
 create mode 100644 composer.json.phpcs

diff --git a/composer.json.phpcs b/composer.json.phpcs
new file mode 100644
index 00000000000..5f5ea2d1fdf
--- /dev/null
+++ b/composer.json.phpcs
@@ -0,0 +1,18 @@
+{
+    "name": "dolibarr/dolibarr",
+    "type": "project",
+    "description": "Dolibarr ERP & CRM is a modern and easy to use web software to manage your business",
+    "keywords": ["erp","crm","invoice","sme","proposal","order","stock"],
+    "homepage": "http://www.dolibarr.org",
+    "license": "GPL-3.0+",
+    "support": {
+        "issues": "https://github.com/Dolibarr/dolibarr/issues",
+        "forum": "http://www.dolibarr.org/forum",
+        "wiki": "http://wiki.dolibarr.org",
+        "irc": "irc://chat.freenode.net/dolibarr",
+        "source": "https://github.com/Dolibarr/dolibarr"
+    },
+    "config": {
+        "vendor-dir": "htdocs/includes"
+    }
+}
-- 
GitLab


From d178c1bf3786f4329811fc523d92f372d7b90016 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= <frederic.france@free.fr>
Date: Sat, 28 Nov 2015 17:38:48 +0100
Subject: [PATCH 025/197] Update .travis.yml

---
 .travis.yml | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/.travis.yml b/.travis.yml
index 49aaecd5c32..a31aff2eda7 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -45,6 +45,8 @@ before_script:
  - which phpunit
  - phpunit --version
  - echo Install phpcs then show installed rules
+ - cp composer.json composer.json.old
+ - cp composer.json.phpcs composer.json
  - composer self-update
  - composer require squizlabs/php_codesniffer:${PHPCS_VERSION}
  - composer install
-- 
GitLab


From e3443365d27661f645cfb1428e75142e3d1cd937 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= <frederic.france@free.fr>
Date: Sat, 28 Nov 2015 19:08:52 +0100
Subject: [PATCH 026/197] Navigation to loan list

---
 htdocs/loan/index.php | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/htdocs/loan/index.php b/htdocs/loan/index.php
index 25d0f015253..76524a87960 100644
--- a/htdocs/loan/index.php
+++ b/htdocs/loan/index.php
@@ -83,6 +83,12 @@ if ($filtre) {
 }
 $sql.= " GROUP BY l.rowid, l.label, l.capital, l.datestart, l.dateend";
 $sql.= $db->order($sortfield,$sortorder);
+$numall = 0;
+if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST))
+{
+    $result = $db->query($sql);
+    $numall = $db->num_rows($result);
+}
 $sql.= $db->plimit($limit+1, $offset);
 
 //print $sql;
@@ -93,13 +99,13 @@ if ($resql)
 	$i = 0;
 	$var=true;
 
-	print load_fiche_titre($langs->trans("Loans"));
-
     $param="";
     if ($optioncss != '') $param.='&optioncss='.$optioncss;
 
     print '<form method="GET" action="'.$_SERVER["PHP_SELF"].'">'."\n";
     if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
+    print_barre_liste($langs->trans("Loans"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $numall,'title_generic.png');
+
     print '<table class="noborder" width="100%">';
 	print '<tr class="liste_titre">';
 	print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"l.rowid","",$param,"",$sortfield,$sortorder);
-- 
GitLab


From 5d5cfd498a7d27288c0d4d9b15f18c2b11e5a33a Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Sat, 28 Nov 2015 19:54:16 +0100
Subject: [PATCH 027/197] Add holiday date functions into PHPUnit

---
 htdocs/core/lib/date.lib.php |  3 ++
 test/phpunit/DateLibTest.php | 77 +++++++++++++++++++++++++++++++++++-
 2 files changed, 79 insertions(+), 1 deletion(-)

diff --git a/htdocs/core/lib/date.lib.php b/htdocs/core/lib/date.lib.php
index ac44d6e5975..b06baaa9288 100644
--- a/htdocs/core/lib/date.lib.php
+++ b/htdocs/core/lib/date.lib.php
@@ -542,6 +542,7 @@ function dol_get_first_day_week($day,$month,$year,$gm=false)
  *  @param      string		$countrycode        Country code
  *	@param      int			$lastday            Last day is included, 0: no, 1:yes
  *	@return   	int								Nombre de jours feries
+ *  @see num_between_day, num_open_day
  */
 function num_public_holiday($timestampStart, $timestampEnd, $countrycode='FR', $lastday=0)
 {
@@ -722,6 +723,7 @@ function num_public_holiday($timestampStart, $timestampEnd, $countrycode='FR', $
  *	@param	   int			$timestampEnd       Timestamp end UTC
  *	@param     int			$lastday            Last day is included, 0: no, 1:yes
  *	@return    int								Number of days
+ *  @see also num_public_holiday, num_open_day
  */
 function num_between_day($timestampStart, $timestampEnd, $lastday=0)
 {
@@ -751,6 +753,7 @@ function num_between_day($timestampStart, $timestampEnd, $lastday=0)
  *  @param		int			$halfday			Tag to define half day when holiday start and end
  *  @param      string		$country_code       Country code (company country code if not defined)
  *	@return    	int								Number of days or hours
+ *  @see also num_between_day, num_public_holiday
  */
 function num_open_day($timestampStart, $timestampEnd, $inhour=0, $lastday=0, $halfday=0, $country_code='')
 {
diff --git a/test/phpunit/DateLibTest.php b/test/phpunit/DateLibTest.php
index 5f33a9f5095..02d85164d79 100644
--- a/test/phpunit/DateLibTest.php
+++ b/test/phpunit/DateLibTest.php
@@ -167,7 +167,82 @@ class DateLibTest extends PHPUnit_Framework_TestCase
 		return $result;
     }
 
-
+    /**
+     * testNumPublicHoliday
+     *
+     * @return	void
+     */
+    public function testNumPublicHoliday()
+    {
+        global $conf,$user,$langs,$db;
+        $conf=$this->savconf;
+        $user=$this->savuser;
+        $langs=$this->savlangs;
+        $db=$this->savdb;
+    
+        // With same hours - Tuesday/Wednesday jan 2013
+        $date1=dol_mktime(0, 0, 0, 1, 1, 2013);
+        $date2=dol_mktime(0, 0, 0, 1, 2, 2013);
+    
+        $result=num_public_holiday($date1,$date2,'FR',1);
+        print __METHOD__." result=".$result."\n";
+        $this->assertEquals(1,$result,'NumPublicHoliday for Tuesday/Wednesday jan 2013 for FR');   // 1 closed days
+    
+        $result=num_public_holiday($date1,$date2,'XX',1);
+        print __METHOD__." result=".$result."\n";
+        $this->assertEquals(0,$result,'NumPublicHoliday for Tuesday/Wednesday jan 2013 for XX');   // no closed days (country unknown)
+        
+        // With same hours - Friday/Sunday jan 2013
+        $date1=dol_mktime(0, 0, 0, 1, 4, 2013);
+        $date2=dol_mktime(0, 0, 0, 1, 6, 2013);
+        
+        $result=num_public_holiday($date1,$date2,'FR',1);
+        print __METHOD__." result=".$result."\n";
+        $this->assertEquals(2,$result,'NumPublicHoliday for FR');   // 1 opened day, 2 closed days 
+        
+        $result=num_public_holiday($date1,$date2,'XX',1);
+        print __METHOD__." result=".$result."\n";
+        $this->assertEquals(2,$result,'NumPublicHoliday for XX');   // 1 opened day, 2 closed days (even if country unknown)
+    }
+    
+    /**
+     * testNumOpenDay
+     *
+     * @return	void
+     */
+    public function testNumOpenDay()
+    {
+        global $conf,$user,$langs,$db;
+        $conf=$this->savconf;
+        $user=$this->savuser;
+        $langs=$this->savlangs;
+        $db=$this->savdb;
+        
+        // With same hours - Tuesday/Wednesday jan 2013
+        $date1=dol_mktime(0, 0, 0, 1, 1, 2013);
+        $date2=dol_mktime(0, 0, 0, 1, 2, 2013);
+        
+        $result=num_open_day($date1,$date2,0,1,0,'FR');
+        print __METHOD__." result=".$result."\n";
+        $this->assertEquals(1,$result,'NumOpenDay Tuesday/Wednesday jan 2013 for FR');   // 1 opened days
+        
+        $result=num_open_day($date1,$date2,0,1,0,'XX');
+        print __METHOD__." result=".$result."\n";
+        $this->assertEquals(2,$result,'NumOpenDay Tuesday/Wednesday jan 2013 for XX');   // 2 opened days (country unknown)
+        
+        // With same hours - Friday/Sunday jan 2013
+        $date1=dol_mktime(0, 0, 0, 1, 4, 2013);
+        $date2=dol_mktime(0, 0, 0, 1, 6, 2013);
+        
+        $result=num_open_day($date1,$date2,0,1,0,'FR');
+        print __METHOD__." result=".$result."\n";
+        $this->assertEquals(1,$result,'NumOpenDay for FR');   // 1 opened day, 2 closed
+        
+        $result=num_open_day($date1,$date2,'XX',1);
+        print __METHOD__." result=".$result."\n";
+        $this->assertEquals(1,$result,'NumOpenDay for XX');   // 1 opened day, 2 closes (even if country unknown)
+    }
+    
     /**
      * testConvertTime2Seconds
      *
-- 
GitLab


From 5df193ec9325a8ff47cc5a2a7444020365e68c42 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Sat, 28 Nov 2015 20:25:50 +0100
Subject: [PATCH 028/197] Uniformize code

---
 htdocs/comm/index.php                         |  7 +++-
 htdocs/core/search.php                        |  5 +++
 .../interface_90_all_Demo.class.php-NORUN     |  2 +-
 htdocs/fourn/commande/index.php               |  2 +-
 htdocs/langs/en_US/supplier_proposal.lang     | 38 ++++++++++---------
 htdocs/langs/fr_FR/supplier_proposal.lang     | 32 ++++++++--------
 htdocs/supplier_proposal/card.php             |  4 +-
 .../class/supplier_proposal.class.php         | 22 +++++------
 htdocs/supplier_proposal/index.php            |  2 +-
 htdocs/supplier_proposal/list.php             | 34 ++++++++++++++---
 10 files changed, 91 insertions(+), 57 deletions(-)

diff --git a/htdocs/comm/index.php b/htdocs/comm/index.php
index 86f48d10817..d55c05102d5 100644
--- a/htdocs/comm/index.php
+++ b/htdocs/comm/index.php
@@ -97,7 +97,12 @@ if (! empty($conf->ficheinter->enabled) && $user->rights->ficheinter->lire)
 // Search contract
 if (! empty($conf->contrat->enabled) && $user->rights->contrat->lire)
 {
-	$listofsearchfields['search_contract']=array('text'=>'Contrat');
+    $listofsearchfields['search_contract']=array('text'=>'Contrat');
+}
+// Search contract
+if (! empty($conf->supplier_proposal->enabled) && $user->rights->supplier_proposal->lire)
+{
+    $listofsearchfields['search_supplier_proposal']=array('text'=>'SupplierProposalShort');
 }
 
 if (count($listofsearchfields))
diff --git a/htdocs/core/search.php b/htdocs/core/search.php
index 0307a8c77d1..5f66c34721d 100644
--- a/htdocs/core/search.php
+++ b/htdocs/core/search.php
@@ -74,6 +74,11 @@ if (GETPOST('search_supplier_invoice') != '')
 	header("Location: ".DOL_URL_ROOT.'/fourn/facture/list.php?sall='.urlencode(GETPOST('search_supplier_invoice')));
 	exit;
 }
+if (GETPOST('search_supplier_proposal') != '')
+{
+	header("Location: ".DOL_URL_ROOT.'/supplier_proposal/list.php?sall='.urlencode(GETPOST('search_supplier_proposal')));
+	exit;
+}
 if (GETPOST('search_donation') != '')
 {
 	header("Location: ".DOL_URL_ROOT.'/don/list.php?sall='.urlencode(GETPOST('search_donation')));
diff --git a/htdocs/core/triggers/interface_90_all_Demo.class.php-NORUN b/htdocs/core/triggers/interface_90_all_Demo.class.php-NORUN
index bd1328e6eae..f25a99f3b59 100644
--- a/htdocs/core/triggers/interface_90_all_Demo.class.php-NORUN
+++ b/htdocs/core/triggers/interface_90_all_Demo.class.php-NORUN
@@ -150,7 +150,7 @@ class InterfaceDemo extends DolibarrTriggers
 		    case 'LINEPROPAL_UPDATE':
 		    case 'LINEPROPAL_DELETE':
 
-			// Askpricesupplier
+			// SupplierProposal
 		    case 'SUPPLIER_PROPOSAL_CREATE':
 		    case 'SUPPLIER_PROPOSAL_CLONE':
 		    case 'SUPPLIER_PROPOSAL_MODIFY':
diff --git a/htdocs/fourn/commande/index.php b/htdocs/fourn/commande/index.php
index c9de3c6a340..1bdec7b9a8d 100644
--- a/htdocs/fourn/commande/index.php
+++ b/htdocs/fourn/commande/index.php
@@ -131,7 +131,7 @@ if ($resql)
     {
         print '<tr class="impair"><td align="center" colspan="2">';
         $data=array('series'=>$dataseries);
-        dol_print_graph('stats',300,180,$data,1,'pie',1);
+        dol_print_graph('stats',300,180,$data,1,'pie',1,'',0);
         print '</td></tr>';
     }
     //if ($totalinprocess != $total)
diff --git a/htdocs/langs/en_US/supplier_proposal.lang b/htdocs/langs/en_US/supplier_proposal.lang
index b0e2887feb0..7bd743881c1 100644
--- a/htdocs/langs/en_US/supplier_proposal.lang
+++ b/htdocs/langs/en_US/supplier_proposal.lang
@@ -11,10 +11,12 @@ DraftRequests=Draft requests
 LastModifiedRequests=Last %s modified price requests
 RequestsOpened=Open price requests
 SupplierProposalArea=Supplier proposals area
-Askpricesupplier=Supplier proposals
+SupplierProposal=Supplier proposal
+SupplierProposalShort=Supplier proposal
+SupplierProposals=Supplier proposals
 NewAskPrice=New price request
 NewAsk=New request
-ShowAskpricesupplier=Show price request
+ShowSupplierProposal=Show price request
 AddSupplierProposal=Create a price request
 SupplierProposalRefFourn=Supplier ref
 SupplierProposalDate=Delivery date
@@ -25,22 +27,22 @@ DateAsk=Date of request
 DeleteAsk=Delete request
 ValidateAsk=Validate request
 AddAsk=Create a request
-AskpricesupplierDraft=Drafts
-AskpricesupplierOpened=Open
-AskpricesupplierStatusDraft=Draft (needs to be validated)
-AskpricesupplierStatusValidated=Validated (request is open)
-AskpricesupplierStatusOpened=Validated (request is open)
-AskpricesupplierStatusClosed=Closed
-AskpricesupplierStatusSigned=Accepted
-AskpricesupplierStatusNotSigned=Refused
-AskpricesupplierStatusBilled=Billed
-AskpricesupplierStatusDraftShort=Draft
-AskpricesupplierStatusValidatedShort=Validated
-AskpricesupplierStatusOpenedShort=Open
-AskpricesupplierStatusClosedShort=Closed
-AskpricesupplierStatusSignedShort=Accepted
-AskpricesupplierStatusNotSignedShort=Refused
-AskpricesupplierStatusBilledShort=Billed
+SupplierProposalDraft=Drafts
+SupplierProposalOpened=Open
+SupplierProposalStatusDraft=Draft (needs to be validated)
+SupplierProposalStatusValidated=Validated (request is open)
+SupplierProposalStatusOpened=Validated (request is open)
+SupplierProposalStatusClosed=Closed
+SupplierProposalStatusSigned=Accepted
+SupplierProposalStatusNotSigned=Refused
+SupplierProposalStatusBilled=Billed
+SupplierProposalStatusDraftShort=Draft
+SupplierProposalStatusValidatedShort=Validated
+SupplierProposalStatusOpenedShort=Open
+SupplierProposalStatusClosedShort=Closed
+SupplierProposalStatusSignedShort=Accepted
+SupplierProposalStatusNotSignedShort=Refused
+SupplierProposalStatusBilledShort=Billed
 CopyAskFrom=Create price request by copying existing a request
 CreateEmptyAsk=Create blank request
 CloneAsk=Clone price request
diff --git a/htdocs/langs/fr_FR/supplier_proposal.lang b/htdocs/langs/fr_FR/supplier_proposal.lang
index 2bbf73507ba..3d3037b58a8 100644
--- a/htdocs/langs/fr_FR/supplier_proposal.lang
+++ b/htdocs/langs/fr_FR/supplier_proposal.lang
@@ -11,10 +11,10 @@ DraftRequests=Demandes brouillons
 LastModifiedRequests=Les %s dernières demandes de prix modifiées
 RequestsOpened=Demandes de prix ouvertes
 SupplierProposalArea=Espace des demandes de prix fournisseurs
-Askpricesupplier=Demande de prix fournisseur
+SupplierProposal=Demande de prix fournisseur
 NewAskPrice=Nouvelle demande de prix
 NewAsk=Nouvelle demande
-ShowAskpricesupplier=Afficher la demande de prix
+ShowSupplierProposal=Afficher la demande de prix
 AddSupplierProposal=Créer une demande de prix
 SupplierProposalRefFourn=Réf. fournisseur
 SupplierProposalDate=Date de livraison
@@ -25,20 +25,20 @@ DateAsk=Date de demande
 DeleteAsk=Supprimer demande
 ValidateAsk=Valider demande
 AddAsk=Créer une demande
-AskpricesupplierDraft=Brouillons
-AskpricesupplierOpened=Ouvertes
-AskpricesupplierStatusDraft=Brouillon (à valider)
-AskpricesupplierStatusValidated=Validée (demande ouverte)
-AskpricesupplierStatusOpened=Validée (demande ouverte)
-AskpricesupplierStatusClosed=Fermée
-AskpricesupplierStatusSigned=Acceptée
-AskpricesupplierStatusNotSigned=Refusée
-AskpricesupplierStatusDraftShort=Brouillon
-AskpricesupplierStatusValidatedShort=Validée
-AskpricesupplierStatusOpenedShort=Ouverte
-AskpricesupplierStatusClosedShort=Fermée
-AskpricesupplierStatusSignedShort=Acceptée
-AskpricesupplierStatusNotSignedShort=Refusée
+SupplierProposalDraft=Brouillons
+SupplierProposalOpened=Ouvertes
+SupplierProposalStatusDraft=Brouillon (à valider)
+SupplierProposalStatusValidated=Validée (demande ouverte)
+SupplierProposalStatusOpened=Validée (demande ouverte)
+SupplierProposalStatusClosed=Fermée
+SupplierProposalStatusSigned=Acceptée
+SupplierProposalStatusNotSigned=Refusée
+SupplierProposalStatusDraftShort=Brouillon
+SupplierProposalStatusValidatedShort=Validée
+SupplierProposalStatusOpenedShort=Ouverte
+SupplierProposalStatusClosedShort=Fermée
+SupplierProposalStatusSignedShort=Acceptée
+SupplierProposalStatusNotSignedShort=Refusée
 CopyAskFrom=Créer demande/devis par recopie d'une demande existante
 CreateEmptyAsk=Créer demande/devis vierge
 CloneAsk=Cloner demande de prix
diff --git a/htdocs/supplier_proposal/card.php b/htdocs/supplier_proposal/card.php
index 878d1c0df01..2a64fa5d4c5 100644
--- a/htdocs/supplier_proposal/card.php
+++ b/htdocs/supplier_proposal/card.php
@@ -1607,8 +1607,8 @@ if ($action == 'create')
 		$form_close .= '<input type="hidden" name="action" value="setstatut">';
 		$form_close .= '<select id="statut" name="statut" class="flat">';
 		$form_close .= '<option value="0">&nbsp;</option>';
-		$form_close .= '<option value="2">' . $langs->trans('AskpricesupplierStatusSigned') . '</option>';
-		$form_close .= '<option value="3">' . $langs->trans('AskpricesupplierStatusNotSigned') . '</option>';
+		$form_close .= '<option value="2">' . $langs->trans('SupplierProposalStatusSigned') . '</option>';
+		$form_close .= '<option value="3">' . $langs->trans('SupplierProposalStatusNotSigned') . '</option>';
 		$form_close .= '</select>';
 		$form_close .= '</td></tr>';
 		$form_close .= '<tr><td width="150" align="left">' . $langs->trans('Note') . '</td><td align="left"><textarea cols="70" rows="' . ROWS_3 . '" wrap="soft" name="note">';
diff --git a/htdocs/supplier_proposal/class/supplier_proposal.class.php b/htdocs/supplier_proposal/class/supplier_proposal.class.php
index 57fc7e50838..799a94a4104 100644
--- a/htdocs/supplier_proposal/class/supplier_proposal.class.php
+++ b/htdocs/supplier_proposal/class/supplier_proposal.class.php
@@ -151,16 +151,16 @@ class SupplierProposal extends CommonObject
         $this->remise_absolue = 0;
 
         $langs->load("supplier_proposal");
-        $this->labelstatut[0]=(! empty($conf->global->SUPPLIER_PROPOSAL_STATUS_DRAFT_LABEL) ? $conf->global->SUPPLIER_PROPOSAL_STATUS_DRAFT_LABEL : $langs->trans("AskpricesupplierStatusDraft"));
-        $this->labelstatut[1]=(! empty($conf->global->SUPPLIER_PROPOSAL_STATUS_VALIDATED_LABEL) ? $conf->global->SUPPLIER_PROPOSAL_STATUS_VALIDATED_LABEL : $langs->trans("AskpricesupplierStatusValidated"));
-        $this->labelstatut[2]=(! empty($conf->global->SUPPLIER_PROPOSAL_STATUS_SIGNED_LABEL) ? $conf->global->SUPPLIER_PROPOSAL_STATUS_SIGNED_LABEL : $langs->trans("AskpricesupplierStatusSigned"));
-        $this->labelstatut[3]=(! empty($conf->global->SUPPLIER_PROPOSAL_STATUS_NOTSIGNED_LABEL) ? $conf->global->SUPPLIER_PROPOSAL_STATUS_NOTSIGNED_LABEL : $langs->trans("AskpricesupplierStatusNotSigned"));
-        $this->labelstatut[4]=(! empty($conf->global->SUPPLIER_PROPOSAL_STATUS_BILLED_LABEL) ? $conf->global->SUPPLIER_PROPOSAL_STATUS_BILLED_LABEL : $langs->trans("AskpricesupplierStatusBilled"));
-        $this->labelstatut_short[0]=(! empty($conf->global->SUPPLIER_PROPOSAL_STATUS_DRAFTSHORT_LABEL) ? $conf->global->SUPPLIER_PROPOSAL_STATUS_DRAFTSHORT_LABEL : $langs->trans("AskpricesupplierStatusDraftShort"));
+        $this->labelstatut[0]=(! empty($conf->global->SUPPLIER_PROPOSAL_STATUS_DRAFT_LABEL) ? $conf->global->SUPPLIER_PROPOSAL_STATUS_DRAFT_LABEL : $langs->trans("SupplierProposalStatusDraft"));
+        $this->labelstatut[1]=(! empty($conf->global->SUPPLIER_PROPOSAL_STATUS_VALIDATED_LABEL) ? $conf->global->SUPPLIER_PROPOSAL_STATUS_VALIDATED_LABEL : $langs->trans("SupplierProposalStatusValidated"));
+        $this->labelstatut[2]=(! empty($conf->global->SUPPLIER_PROPOSAL_STATUS_SIGNED_LABEL) ? $conf->global->SUPPLIER_PROPOSAL_STATUS_SIGNED_LABEL : $langs->trans("SupplierProposalStatusSigned"));
+        $this->labelstatut[3]=(! empty($conf->global->SUPPLIER_PROPOSAL_STATUS_NOTSIGNED_LABEL) ? $conf->global->SUPPLIER_PROPOSAL_STATUS_NOTSIGNED_LABEL : $langs->trans("SupplierProposalStatusNotSigned"));
+        $this->labelstatut[4]=(! empty($conf->global->SUPPLIER_PROPOSAL_STATUS_BILLED_LABEL) ? $conf->global->SUPPLIER_PROPOSAL_STATUS_BILLED_LABEL : $langs->trans("SupplierProposalStatusBilled"));
+        $this->labelstatut_short[0]=(! empty($conf->global->SUPPLIER_PROPOSAL_STATUS_DRAFTSHORT_LABEL) ? $conf->global->SUPPLIER_PROPOSAL_STATUS_DRAFTSHORT_LABEL : $langs->trans("SupplierProposalStatusDraftShort"));
         $this->labelstatut_short[1]=(! empty($conf->global->SUPPLIER_PROPOSAL_STATUS_VALIDATEDSHORT_LABEL) ? $conf->global->SUPPLIER_PROPOSAL_STATUS_VALIDATEDSHORT_LABEL : $langs->trans("Opened"));
-        $this->labelstatut_short[2]=(! empty($conf->global->SUPPLIER_PROPOSAL_STATUS_SIGNEDSHORT_LABEL) ? $conf->global->SUPPLIER_PROPOSAL_STATUS_SIGNEDSHORT_LABEL : $langs->trans("AskpricesupplierStatusSignedShort"));
-        $this->labelstatut_short[3]=(! empty($conf->global->SUPPLIER_PROPOSAL_STATUS_NOTSIGNEDSHORT_LABEL) ? $conf->global->SUPPLIER_PROPOSAL_STATUS_NOTSIGNEDSHORT_LABEL : $langs->trans("AskpricesupplierStatusNotSignedShort"));
-        $this->labelstatut_short[4]=(! empty($conf->global->SUPPLIER_PROPOSAL_STATUS_BILLEDSHORT_LABEL) ? $conf->global->SUPPLIER_PROPOSAL_STATUS_BILLEDSHORT_LABEL : $langs->trans("AskpricesupplierStatusBilledShort"));
+        $this->labelstatut_short[2]=(! empty($conf->global->SUPPLIER_PROPOSAL_STATUS_SIGNEDSHORT_LABEL) ? $conf->global->SUPPLIER_PROPOSAL_STATUS_SIGNEDSHORT_LABEL : $langs->trans("SupplierProposalStatusSignedShort"));
+        $this->labelstatut_short[3]=(! empty($conf->global->SUPPLIER_PROPOSAL_STATUS_NOTSIGNEDSHORT_LABEL) ? $conf->global->SUPPLIER_PROPOSAL_STATUS_NOTSIGNEDSHORT_LABEL : $langs->trans("SupplierProposalStatusNotSignedShort"));
+        $this->labelstatut_short[4]=(! empty($conf->global->SUPPLIER_PROPOSAL_STATUS_BILLEDSHORT_LABEL) ? $conf->global->SUPPLIER_PROPOSAL_STATUS_BILLEDSHORT_LABEL : $langs->trans("SupplierProposalStatusBilledShort"));
     }
 
 
@@ -627,7 +627,7 @@ class SupplierProposal extends CommonObject
         }
         else
         {
-            dol_syslog(get_class($this)."::updateline Erreur -2 Askpricesupplier en mode incompatible pour cette action");
+            dol_syslog(get_class($this)."::updateline Erreur -2 SupplierProposal en mode incompatible pour cette action");
             return -2;
         }
     }
@@ -2259,7 +2259,7 @@ class SupplierProposal extends CommonObject
         global $langs;
 
         $result='';
-        $label=$langs->trans("ShowAskpricesupplier").': '.$this->ref;
+        $label=$langs->trans("ShowSupplierProposal").': '.$this->ref;
         $linkclose = '" title="'.dol_escape_htmltag($label, 1).'" class="classfortooltip">';
         if ($option == '') {
             $link = '<a href="'.DOL_URL_ROOT.'/supplier_proposal/card.php?id='.$this->id. $get_params .$linkclose;
diff --git a/htdocs/supplier_proposal/index.php b/htdocs/supplier_proposal/index.php
index 4c363ba32ac..9339f801583 100644
--- a/htdocs/supplier_proposal/index.php
+++ b/htdocs/supplier_proposal/index.php
@@ -133,7 +133,7 @@ if ($resql)
     {
         print '<tr '.$bc[false].'><td align="center" colspan="2">';
         $data=array('series'=>$dataseries);
-        dol_print_graph('stats',300,180,$data,1,'pie',1);
+        dol_print_graph('stats',300,180,$data,1,'pie',1,'',0);
         print '</td></tr>';
     }
 
diff --git a/htdocs/supplier_proposal/list.php b/htdocs/supplier_proposal/list.php
index cfea07b1e48..a1f66e832f0 100644
--- a/htdocs/supplier_proposal/list.php
+++ b/htdocs/supplier_proposal/list.php
@@ -25,9 +25,9 @@
  */
 
 /**
- *	\file       	htdocs/comm/propal/list.php
- *	\ingroup    	propal
- *	\brief      	Page of commercial proposals card and list
+ *	\file       	htdocs/supplier_proposal/list.php
+ *	\ingroup    	supplier_proposal
+ *	\brief      	Page of supplier proposals card and list
  */
 
 require '../main.inc.php';
@@ -96,6 +96,16 @@ if (GETPOST("button_removefilter") || GETPOST("button_removefilter_x"))	// Both
 if($object_statut != '')
 $viewstatut=$object_statut;
 
+// List of fields to search into when doing a "search in all"
+$fieldstosearchall = array(
+    'p.ref'=>'Ref',
+    's.nom'=>'Supplier',
+    'pd.description'=>'Description',
+    'p.note_private'=>"NotePrivate",
+    'p.note_public'=>'NotePublic',
+);
+
+
 
 // Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array
 $hookmanager->initHooks(array('supplier_proposallist'));
@@ -175,7 +185,7 @@ if ($search_montant_ht)
 	$sql.= " AND p.total_ht='".$db->escape(price2num(trim($search_montant_ht)))."'";
 }
 if ($sall) {
-    $sql .= natural_search(array('s.nom', 'p.note_private', 'p.note_public', 'pd.description'), $sall);
+    $sql .= natural_search(array_keys($fieldstosearchall), $sall);
 }
 if ($socid) $sql.= ' AND s.rowid = '.$socid;
 if ($viewstatut <> '')
@@ -240,7 +250,19 @@ if ($result)
 
 	// Lignes des champs de filtre
 	print '<form method="GET" action="'.$_SERVER["PHP_SELF"].'">';
-
+	if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
+	print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
+	print '<input type="hidden" name="action" value="list">';
+	print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
+	print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
+	
+	if ($sall)
+	{
+	    foreach($fieldstosearchall as $key => $val) $fieldstosearchall[$key]=$langs->trans($val);
+	    //sort($fieldstosearchall);
+	    print $langs->trans("FilterOnInto", $sall) . join(', ',$fieldstosearchall);
+	}
+	
 	$i = 0;
 
 	$moreforfilter='';
@@ -276,7 +298,7 @@ if ($result)
     print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"").'">';
     print '<tr class="liste_titre">';
 	print_liste_field_titre($langs->trans('Ref'),$_SERVER["PHP_SELF"],'p.ref','',$param,'',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans('Company'),$_SERVER["PHP_SELF"],'s.nom','',$param,'',$sortfield,$sortorder);
+	print_liste_field_titre($langs->trans('Supplier'),$_SERVER["PHP_SELF"],'s.nom','',$param,'',$sortfield,$sortorder);
 	print_liste_field_titre($langs->trans('SupplierProposalDate'),$_SERVER["PHP_SELF"],'p.date_livraison','',$param, 'align="center"',$sortfield,$sortorder);
 	print_liste_field_titre($langs->trans('AmountHT'),$_SERVER["PHP_SELF"],'p.total_ht','',$param, 'align="right"',$sortfield,$sortorder);
 	print_liste_field_titre($langs->trans('Author'),$_SERVER["PHP_SELF"],'u.login','',$param,'align="center"',$sortfield,$sortorder);
-- 
GitLab


From 6d7e3604988f0c13594fa75e597ca595b12afdbf Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= <frederic.france@free.fr>
Date: Sat, 28 Nov 2015 20:33:18 +0100
Subject: [PATCH 029/197] Update list.php

---
 htdocs/expensereport/list.php | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/htdocs/expensereport/list.php b/htdocs/expensereport/list.php
index c37d0d81dad..10b19d66da3 100644
--- a/htdocs/expensereport/list.php
+++ b/htdocs/expensereport/list.php
@@ -177,6 +177,12 @@ if (empty($user->rights->expensereport->readall) && empty($user->rights->expense
 }
 
 $sql.= $db->order($sortfield,$sortorder);
+$nbtotalofrecords = 0;
+if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST))
+{
+    $result = $db->query($sql);
+    $nbtotalofrecords = $db->num_rows($result);
+}
 $sql.= $db->plimit($limit+1, $offset);
 
 //print $sql;
-- 
GitLab


From 79263d06e950b957871c3a4dbbe31b9eb4ced6ca Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= <frederic.france@free.fr>
Date: Sat, 28 Nov 2015 20:37:09 +0100
Subject: [PATCH 030/197] Update index.php

---
 htdocs/loan/index.php | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/htdocs/loan/index.php b/htdocs/loan/index.php
index 76524a87960..e99691d8ff9 100644
--- a/htdocs/loan/index.php
+++ b/htdocs/loan/index.php
@@ -100,7 +100,10 @@ if ($resql)
 	$var=true;
 
     $param="";
-    if ($optioncss != '') $param.='&optioncss='.$optioncss;
+    if ($search_ref) $param.="&amp;search_ref=".$search_ref;
+    if ($search_label) $param.="&amp;search_label=".$search_user;
+    if ($search_amount) $param.="&amp;search_amount=".$search_amount_ht;
+    if ($optioncss != '') $param.='&amp;optioncss='.$optioncss;
 
     print '<form method="GET" action="'.$_SERVER["PHP_SELF"].'">'."\n";
     if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
-- 
GitLab


From 7b6d8dd23e114d5b6de4ed39232c7775d4099525 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Sun, 29 Nov 2015 01:13:23 +0100
Subject: [PATCH 031/197] Fix for smartphone

---
 htdocs/core/class/html.formfile.class.php | 4 +++-
 htdocs/core/lib/ajax.lib.php              | 2 +-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/htdocs/core/class/html.formfile.class.php b/htdocs/core/class/html.formfile.class.php
index 689f5c1d8a5..2df95872454 100644
--- a/htdocs/core/class/html.formfile.class.php
+++ b/htdocs/core/class/html.formfile.class.php
@@ -526,7 +526,9 @@ class FormFile
                 include_once DOL_DOCUMENT_ROOT.'/core/class/html.formadmin.class.php';
                 $formadmin=new FormAdmin($this->db);
                 $defaultlang=$codelang?$codelang:$langs->getDefaultLang();
-                $out.= $formadmin->select_language($defaultlang);
+                $morecss='maxwidth150';
+                if (! empty($conf->browser->phone)) $morecss='maxwidth100';
+                $out.= $formadmin->select_language($defaultlang, 'lang_id', 0, 0, 0, 0, 0, $morecss);
             }
             else
             {
diff --git a/htdocs/core/lib/ajax.lib.php b/htdocs/core/lib/ajax.lib.php
index 97ca06be08a..44de58ed4a8 100644
--- a/htdocs/core/lib/ajax.lib.php
+++ b/htdocs/core/lib/ajax.lib.php
@@ -345,7 +345,7 @@ function ajax_combobox($htmlname, $events=array(), $minLengthToAutocomplete=0, $
 {
 	global $conf;
 
-	//if (! empty($conf->browser->phone)) return '';	// combobox disabled for smartphones (does not works)
+	if (! empty($conf->browser->phone)) return '';	// select2 disabled for smartphones with standard browser (does not works, popup appears outside screen)
 	if (! empty($conf->dol_use_jmobile)) return '';	// select2 works with jmobile but it breaks the autosize feature of jmobile.
 	if (! empty($conf->global->MAIN_DISABLE_AJAX_COMBOX)) return '';
 	if (empty($conf->use_javascript_ajax)) return '';
-- 
GitLab


From 263be5aa0abdce4fd49f745683f3299bcd572f84 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Sun, 29 Nov 2015 01:16:56 +0100
Subject: [PATCH 032/197] Avoid 2 lines on mall screen

---
 htdocs/core/class/html.formfile.class.php | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/htdocs/core/class/html.formfile.class.php b/htdocs/core/class/html.formfile.class.php
index 2df95872454..7664f5717f8 100644
--- a/htdocs/core/class/html.formfile.class.php
+++ b/htdocs/core/class/html.formfile.class.php
@@ -178,11 +178,11 @@ class FormFile
 
 	            $out .= '<div>';
 	            $out .= '<div class="float" style="padding-right: 10px;">';
-	            $out .= '<label for="link">'.$langs->trans("URLToLink") . '</label>: ';
+	            $out .= '<label for="link">'.$langs->trans("URLToLink") . ':</label> ';
 	            $out .= '<input type="text" name="link" size="'.$maxlength.'" id="link">';
 	            $out .= '</div>';
 	            $out .= '<div class="float" style="padding-right: 10px;">';
-	            $out .= '<label for="label">'.$langs->trans("Label") . '</label>: ';
+	            $out .= '<label for="label">'.$langs->trans("Label") . ':</label> ';
 	            $out .= '<input type="text" name="label" id="label">';
 	            $out .= '<input type="hidden" name="objecttype" value="' . $object->element . '">';
 	            $out .= '<input type="hidden" name="objectid" value="' . $object->id . '">';
-- 
GitLab


From ebe4867ab12a67271c9195b5a8a6211cc0c35312 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Sun, 29 Nov 2015 01:23:41 +0100
Subject: [PATCH 033/197] Remove useless information tomake screen lighter

---
 htdocs/core/class/html.formfile.class.php | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/htdocs/core/class/html.formfile.class.php b/htdocs/core/class/html.formfile.class.php
index 7664f5717f8..c539efa5a9b 100644
--- a/htdocs/core/class/html.formfile.class.php
+++ b/htdocs/core/class/html.formfile.class.php
@@ -178,12 +178,12 @@ class FormFile
 
 	            $out .= '<div>';
 	            $out .= '<div class="float" style="padding-right: 10px;">';
-	            $out .= '<label for="link">'.$langs->trans("URLToLink") . ':</label> ';
-	            $out .= '<input type="text" name="link" size="'.$maxlength.'" id="link">';
+	            if (! empty($conf->global->OPTIMIZEFORTEXTBROWSER)) $out .= '<label for="link">'.$langs->trans("URLToLink") . ':</label> ';
+	            $out .= '<input type="text" name="link" size="'.$maxlength.'" id="link" placeholder="'.dol_escape_htmltag($langs->trans("URLToLink")).'">';
 	            $out .= '</div>';
 	            $out .= '<div class="float" style="padding-right: 10px;">';
-	            $out .= '<label for="label">'.$langs->trans("Label") . ':</label> ';
-	            $out .= '<input type="text" name="label" id="label">';
+	            if (! empty($conf->global->OPTIMIZEFORTEXTBROWSER)) $out .= '<label for="label">'.$langs->trans("Label") . ':</label> ';
+	            $out .= '<input type="text" name="label" id="label" placeholder="'.dol_escape_htmltag($langs->trans("Label")).'">';
 	            $out .= '<input type="hidden" name="objecttype" value="' . $object->element . '">';
 	            $out .= '<input type="hidden" name="objectid" value="' . $object->id . '">';
 	            $out .= '</div>';
-- 
GitLab


From 480623a6d5ae6716b0973430ed1d608a403ce1e9 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Sun, 29 Nov 2015 13:03:46 +0100
Subject: [PATCH 034/197] Uniformize GUI. All lists must have a search on
 status at end and last column is dedicaded to future "mass action checkbox".

---
 htdocs/contrat/card.php                 | 23 +++++++------
 htdocs/contrat/services.php             | 44 ++++++++++++++++++++++---
 htdocs/core/menus/standard/eldy.lib.php |  4 +--
 htdocs/langs/en_US/contracts.lang       |  2 ++
 4 files changed, 56 insertions(+), 17 deletions(-)

diff --git a/htdocs/contrat/card.php b/htdocs/contrat/card.php
index 3514ab6acfc..5ddb0b343fa 100644
--- a/htdocs/contrat/card.php
+++ b/htdocs/contrat/card.php
@@ -1565,13 +1565,14 @@ else
 					    if ($objp->fk_product) print '<select id="fournprice" name="fournprice"></select>';
 						print '<input id="buying_price" type="text" size="5" name="buying_price" value="'.price($objp->pa_ht,0,'',0).'"></td>';
 					}
-                    print '<td align="center" rowspan="2" valign="middle"><input type="submit" class="button" name="save" value="'.$langs->trans("Modify").'">';
+                    print '<td align="center">';
+                    print '<input type="submit" class="button" name="save" value="'.$langs->trans("Modify").'">';
                     print '<br><input type="submit" class="button" name="cancel" value="'.$langs->trans("Cancel").'">';
                     print '</td>';
 
-                    $colspan=5;
+                    $colspan=6;
                     if (! empty($conf->margin->enabled) && ! empty($conf->global->MARGIN_SHOW_ON_CONTRACT)) $colspan++;
-	              if($conf->global->PRODUCT_USE_UNITS) $colspan++;
+	                if($conf->global->PRODUCT_USE_UNITS) $colspan++;
 
                     // Ligne dates prevues
                     print "<tr ".$bc[$var].">";
@@ -1746,22 +1747,23 @@ else
                     }
                 }
 
-                print '<tr '.$bc[$var].'><td>'.$langs->trans("DateServiceActivate").'</td><td>';
+                print '<tr '.$bc[$var].'>';
+                print '<td class="nohover">'.$langs->trans("DateServiceActivate").'</td><td>';
                 print $form->select_date($dateactstart,'',$usehm,$usehm,'',"active",1,0,1);
                 print '</td>';
 
-                print '<td>'.$langs->trans("DateEndPlanned").'</td><td>';
+                print '<td class="nohover">'.$langs->trans("DateEndPlanned").'</td><td>';
                 print $form->select_date($dateactend,"end",$usehm,$usehm,'',"active",1,0,1);
                 print '</td>';
 
-                print '<td align="center" rowspan="2" valign="middle">';
+                print '<td align="center nohover" rowspan="2" valign="middle">';
                 print '<input type="submit" class="button" name="activate" value="'.$langs->trans("Activate").'"><br>';
                 print '<input type="submit" class="button" name="cancel" value="'.$langs->trans("Cancel").'">';
                 print '</td>';
 
                 print '</tr>';
 
-                print '<tr '.$bc[$var].'><td>'.$langs->trans("Comment").'</td><td colspan="'.($conf->margin->enabled?4:3).'"><input size="80" type="text" name="comment" value="'.$_POST["comment"].'"></td></tr>';
+                print '<tr '.$bc[$var].'><td class="nohover">'.$langs->trans("Comment").'</td><td class="nohover" colspan="'.($conf->margin->enabled?4:3).'"><input size="80" type="text" name="comment" value="'.$_POST["comment"].'"></td></tr>';
 
                 print '</table>';
 
@@ -1798,7 +1800,7 @@ else
                 $now=dol_now();
                 if ($dateactend > $now) $dateactend=$now;
 
-                print '<tr '.$bc[$var].'><td colspan="2">';
+                print '<tr '.$bc[$var].'><td colspan="2" class="nohover">';
                 if ($objp->statut >= 4)
                 {
                     if ($objp->statut == 4)
@@ -1809,11 +1811,12 @@ else
                 }
                 print '</td>';
 
-                print '<td align="right" rowspan="2"><input type="submit" class="button" name="close" value="'.$langs->trans("Close").'"><br>';
+                print '<td align="right" rowspan="2" class="nohover">';
+                print '<input type="submit" class="button" name="close" value="'.$langs->trans("Close").'"><br>';
                 print '<input type="submit" class="button" name="cancel" value="'.$langs->trans("Cancel").'">';
                 print '</td></tr>';
 
-                print '<tr '.$bc[$var].'><td>'.$langs->trans("Comment").'</td><td><input size="70" type="text" class="flat" name="comment" value="'.GETPOST('comment').'"></td></tr>';
+                print '<tr '.$bc[$var].'><td class="nohover">'.$langs->trans("Comment").'</td><td class="nohover"><input size="70" type="text" class="flat" name="comment" value="'.GETPOST('comment').'"></td></tr>';
                 print '</table>';
 
                 print '</form>';
diff --git a/htdocs/contrat/services.php b/htdocs/contrat/services.php
index fdc130b010e..1ce7c91343e 100644
--- a/htdocs/contrat/services.php
+++ b/htdocs/contrat/services.php
@@ -1,6 +1,6 @@
 <?php
 /* Copyright (C) 2001-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
- * Copyright (C) 2004-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
+ * Copyright (C) 2004-2015 Laurent Destailleur  <eldy@users.sourceforge.net>
  * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
  * Copyright (C) 2015      Jean-François Ferry	<jfefe@aternatik.fr>
  *
@@ -48,6 +48,7 @@ $filter=GETPOST("filter");
 $search_name=GETPOST("search_name");
 $search_contract=GETPOST("search_contract");
 $search_service=GETPOST("search_service");
+$search_status=GETPOST("search_status","alpha");
 $statut=GETPOST('statut')?GETPOST('statut'):1;
 $socid=GETPOST('socid','int');
 
@@ -65,6 +66,23 @@ $contratid = GETPOST('id','int');
 if (! empty($user->societe_id)) $socid=$user->societe_id;
 $result = restrictedArea($user, 'contrat',$contratid);
 
+if ($search_status != '')
+{
+    $tmp=explode('&', $search_status);
+    $mode=$tmp[0];
+    if (empty($tmp[1])) $filter='';
+    else
+    {
+        if ($tmp[1] == 'filter=notexpired') $filter='notexpired';
+        if ($tmp[1] == 'filter=expired') $filter='expired';
+    }
+}
+else
+{
+    $search_status = $mode;
+    if ($filter == 'expired') $search_status.='&filter=expired';
+    if ($filter == 'notexpired') $search_status.='&filter=notexpired';
+}
 
 $staticcontrat=new Contrat($db);
 $staticcontratligne=new ContratLigne($db);
@@ -75,6 +93,7 @@ if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) // Both
 	$search_name="";
 	$search_contract="";
 	$search_service="";
+	$search_status=-1;
 	$op1month="";
 	$op1day="";
 	$op1year="";
@@ -83,6 +102,8 @@ if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) // Both
 	$op2day="";
 	$op2year="";
 	$filter_op2="";
+	$mode='';
+	$filter='';
 }
 
 /*
@@ -117,6 +138,7 @@ if ($mode == "0") $sql.= " AND cd.statut = 0";
 if ($mode == "4") $sql.= " AND cd.statut = 4";
 if ($mode == "5") $sql.= " AND cd.statut = 5";
 if ($filter == "expired") $sql.= " AND cd.date_fin_validite < '".$db->idate($now)."'";
+if ($filter == "notexpired") $sql.= " AND cd.date_fin_validite >= '".$db->idate($now)."'";
 if ($search_name)     $sql.= " AND s.nom LIKE '%".$db->escape($search_name)."%'";
 if ($search_contract) $sql.= " AND c.rowid = '".$db->escape($search_contract)."'";
 if ($search_service)  $sql.= " AND (p.ref LIKE '%".$db->escape($search_service)."%' OR p.description LIKE '%".$db->escape($search_service)."%' OR cd.description LIKE '%".$db->escape($search_service)."%')";
@@ -169,6 +191,7 @@ if ($resql)
 	if ($mode == "" || $mode < 5) print_liste_field_titre($langs->trans("DateEndPlannedShort"),$_SERVER["PHP_SELF"], "cd.date_fin_validite",$param,'',' align="center"',$sortfield,$sortorder);
 	else print_liste_field_titre($langs->trans("DateEndRealShort"),$_SERVER["PHP_SELF"], "cd.date_cloture",$param,'',' align="center"',$sortfield,$sortorder);
 	print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"], "cd.statut,c.statut",$param,"","align=\"right\"",$sortfield,$sortorder);
+	print_liste_field_titre('',$_SERVER["PHP_SELF"],"",'','','',$sortfield,$sortorder,'maxwidthsearch ');
 	print "</tr>\n";
 
 	print '<tr class="liste_titre">';
@@ -179,11 +202,11 @@ if ($resql)
 	print '</td>';
 	// Service label
 	print '<td class="liste_titre">';
-	print '<input type="text" class="flat" size="18" name="search_service" value="'.dol_escape_htmltag($search_service).'">';
+	print '<input type="text" class="flat" size="12" name="search_service" value="'.dol_escape_htmltag($search_service).'">';
 	print '</td>';
 	// Third party
 	print '<td class="liste_titre">';
-	print '<input type="text" class="flat" size="24" name="search_name" value="'.dol_escape_htmltag($search_name).'">';
+	print '<input type="text" class="flat" size="12" name="search_name" value="'.dol_escape_htmltag($search_name).'">';
 	print '</td>';
 	print '<td class="liste_titre" align="center">';
 	$arrayofoperators=array('<'=>'<','>'=>'>');
@@ -199,6 +222,16 @@ if ($resql)
 	$filter_date2=dol_mktime(0,0,0,$op2month,$op2day,$op2year);
 	print $form->select_date($filter_date2,'op2',0,0,1,'',1,0,1);
 	print '</td>';
+	print '<td align="right">';
+	$arrayofstatus=array(
+	    '0'=>$langs->trans("ServiceStatusInitial"),
+	    '4'=>$langs->trans("ServiceStatusRunning"),
+	    '4&filter=notexpired'=>$langs->trans("ServiceStatusNotLate"),
+	    '4&filter=expired'=>$langs->trans("ServiceStatusLate"),
+	    '5'=>$langs->trans("ServiceStatusClosed")
+	);
+	print $form->selectarray('search_status',$arrayofstatus,(strstr($search_status, ',')?-1:$search_status),1);
+	print '</td>';
     print '<td class="liste_titre" align="right"><input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
 	print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">';
     print "</td></tr>\n";
@@ -272,6 +305,7 @@ if ($resql)
 			print $staticcontratligne->LibStatut($obj->statut,5,($obj->date_fin_validite && $db->jdate($obj->date_fin_validite) < $now)?1:0);
 		}
 		print '</td>';
+		print '<td></td>';
 		print "</tr>\n";
 		$i++;
 	}
@@ -286,6 +320,6 @@ else
 }
 
 
-$db->close();
-
 llxFooter();
+
+$db->close();
diff --git a/htdocs/core/menus/standard/eldy.lib.php b/htdocs/core/menus/standard/eldy.lib.php
index 4a48898b74e..7cd22e29218 100644
--- a/htdocs/core/menus/standard/eldy.lib.php
+++ b/htdocs/core/menus/standard/eldy.lib.php
@@ -730,8 +730,8 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
 			if (! empty($conf->contrat->enabled))
 			{
 				$langs->load("contracts");
-				$newmenu->add("/contrat/index.php?leftmenu=contracts", $langs->trans("Contracts"), 0, $user->rights->contrat->lire, '', $mainmenu, 'contracts', 2000);
-				$newmenu->add("/contrat/card.php?action=create&amp;leftmenu=contracts", $langs->trans("NewContract"), 1, $user->rights->contrat->creer);
+				$newmenu->add("/contrat/index.php?leftmenu=contracts", $langs->trans("ContractsSubscriptions"), 0, $user->rights->contrat->lire, '', $mainmenu, 'contracts', 2000);
+				$newmenu->add("/contrat/card.php?action=create&amp;leftmenu=contracts", $langs->trans("NewContractSubscription"), 1, $user->rights->contrat->creer);
 				$newmenu->add("/contrat/list.php?leftmenu=contracts", $langs->trans("List"), 1, $user->rights->contrat->lire);
 				$newmenu->add("/contrat/services.php?leftmenu=contracts", $langs->trans("MenuServices"), 1, $user->rights->contrat->lire);
 				if (empty($leftmenu) || $leftmenu=="contracts") $newmenu->add("/contrat/services.php?leftmenu=contracts&amp;mode=0", $langs->trans("MenuInactiveServices"), 2, $user->rights->contrat->lire);
diff --git a/htdocs/langs/en_US/contracts.lang b/htdocs/langs/en_US/contracts.lang
index 23ce68fe65d..a78fc8d285d 100644
--- a/htdocs/langs/en_US/contracts.lang
+++ b/htdocs/langs/en_US/contracts.lang
@@ -19,6 +19,7 @@ ServiceStatusLateShort=Expired
 ServiceStatusClosed=Closed
 ServicesLegend=Services legend
 Contracts=Contracts
+ContractsSubscriptions=Contracts/Subscriptions
 ContractsAndLine=Contracts and line of contracts
 Contract=Contract
 ContractLine=Contract line
@@ -30,6 +31,7 @@ MenuRunningServices=Running services
 MenuExpiredServices=Expired services
 MenuClosedServices=Closed services
 NewContract=New contract
+NewContractSubscription=New contract/subscription
 AddContract=Create contract
 SearchAContract=Search a contract
 DeleteAContract=Delete a contract
-- 
GitLab


From b0e938fab4f88ae1a1190db36947ac4ad7ef7a14 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Sun, 29 Nov 2015 13:15:02 +0100
Subject: [PATCH 035/197] Fix missing td cell

---
 htdocs/fourn/facture/tpl/linkedobjectblock.tpl.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/htdocs/fourn/facture/tpl/linkedobjectblock.tpl.php b/htdocs/fourn/facture/tpl/linkedobjectblock.tpl.php
index 29357b49dc3..32f0e8b4f86 100644
--- a/htdocs/fourn/facture/tpl/linkedobjectblock.tpl.php
+++ b/htdocs/fourn/facture/tpl/linkedobjectblock.tpl.php
@@ -65,7 +65,7 @@ foreach($linkedObjectBlock as $key => $objectlink)
 }
 ?>
 <tr class="liste_total">
-	<td align="left" colspan="2"><?php echo $langs->trans("TotalHT"); ?></td>
+	<td align="left" colspan="3"><?php echo $langs->trans("TotalHT"); ?></td>
 	<td align="right"><?php
 		if ($user->rights->fournisseur->facture->lire) {
 			echo price($total);
-- 
GitLab


From bb627e32d35244c31a2feda09b00bbb3f6f76d48 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Sun, 29 Nov 2015 14:09:22 +0100
Subject: [PATCH 036/197] Fix: Form should use POST. GET has too much bad side
 effects.

---
 htdocs/commande/list.php | 19 +++++++++++--------
 1 file changed, 11 insertions(+), 8 deletions(-)

diff --git a/htdocs/commande/list.php b/htdocs/commande/list.php
index a257d808131..c895e58fa5c 100644
--- a/htdocs/commande/list.php
+++ b/htdocs/commande/list.php
@@ -251,7 +251,9 @@ if ($resql)
 	if ($viewstatut == -3)
 	$title.=' - '.$langs->trans('StatusOrderValidated').', '.(empty($conf->expedition->enabled)?'':$langs->trans("StatusOrderSent").', ').$langs->trans('StatusOrderToBill');
 
-	$param='&socid='.$socid.'&viewstatut='.$viewstatut;
+	$param='';
+	if ($socid > 0)             $param.='&socid='.$socid;
+	if ($viewstatut != '')      $param.='&viewstatut='.$viewstatut;
 	if ($ordermonth)      		$param.='&ordermonth='.$ordermonth;
 	if ($orderyear)       		$param.='&orderyear='.$orderyear;
 	if ($deliverymonth)   		$param.='&deliverymonth='.$deliverymonth;
@@ -262,14 +264,13 @@ if ($resql)
 	if ($search_user > 0) 		$param.='&search_user='.$search_user;
 	if ($search_sale > 0) 		$param.='&search_sale='.$search_sale;
 	if ($search_total_ht != '') $param.='&search_total_ht='.$search_total_ht;
-	if ($optioncss != '') $param.='&optioncss='.$optioncss;
+	if ($optioncss != '')       $param.='&optioncss='.$optioncss;
 
 	$num = $db->num_rows($resql);
 	print_barre_liste($title, $page,$_SERVER["PHP_SELF"],$param,$sortfield,$sortorder,'',$num,$nbtotalofrecords,'title_commercial.png');
-	$i = 0;
-
+	
 	// Lignes des champs de filtre
-	print '<form method="GET" action="'.$_SERVER["PHP_SELF"].'">';
+	print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'">';
     if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
 	print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
 	print '<input type="hidden" name="action" value="list">';
@@ -376,7 +377,8 @@ if ($resql)
 	$total=0;
 	$subtotal=0;
     $productstat_cache=array();
-
+    $i=0;
+    
     $generic_commande = new Commande($db);
     $generic_product = new Product($db);
     while ($i < min($num,$limit))
@@ -413,8 +415,8 @@ if ($resql)
                 $text_info='';
                 $nbprod=0;
                 
-                $num = count($generic_commande->lines); // Loop on each line of order
-                for ($lig=0; $lig < $num; $lig++) 
+                $numlines = count($generic_commande->lines); // Loop on each line of order
+                for ($lig=0; $lig < $numlines; $lig++) 
                 {
                     if ($generic_commande->lines[$lig]->product_type == 0 && $generic_commande->lines[$lig]->fk_product > 0)  // If line is a product and not a service
                     {
@@ -497,6 +499,7 @@ if ($resql)
                     $text_info = $langs->trans('NonShippable').'<br>'.$text_info;
                 }
             }
+            
             print '<td>';
             if ($nbprod)
             {
-- 
GitLab


From 4a0ea9777239108a32bf6aad2f4a1b513f3b612f Mon Sep 17 00:00:00 2001
From: fappels <francis.appels@yahoo.com>
Date: Sun, 29 Nov 2015 15:34:43 +0100
Subject: [PATCH 037/197] FIX #3953 rounding of buying price

fix javascript for rounding of buying price
---
 htdocs/core/tpl/objectline_create.tpl.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/htdocs/core/tpl/objectline_create.tpl.php b/htdocs/core/tpl/objectline_create.tpl.php
index 962ecd8acaa..fd5a81240ef 100644
--- a/htdocs/core/tpl/objectline_create.tpl.php
+++ b/htdocs/core/tpl/objectline_create.tpl.php
@@ -554,7 +554,7 @@ jQuery(document).ready(function() {
 
 	      		/* Define default price at loading */
 	      		var defaultprice = $("#fournprice_predef").find('option:selected').attr("price");
-	      		$("#buying_price").val(Math.round(defaultprice,<?php print ($conf->global->MAIN_MAX_DECIMALS_UNIT ? $conf->global->MAIN_MAX_DECIMALS_UNIT : 5); ?>));
+	      		$("#buying_price").val(parseFloat(defaultprice).toFixed(<?php print ($conf->global->MAIN_MAX_DECIMALS_UNIT ? $conf->global->MAIN_MAX_DECIMALS_UNIT : 5); ?>));
 
 	      		$("#fournprice_predef").change(function() {
 		      		console.log("change on fournprice_predef");
-- 
GitLab


From c55d11869b12a544f164370ddd8ff8896ccb25cc Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Sun, 29 Nov 2015 15:42:20 +0100
Subject: [PATCH 038/197] Billing of supplier or customer order is a process
 that can be done in parallel with shipment or reception, so we show the
 status on another field into lists.

---
 .../comm/propal/tpl/linkedobjectblock.tpl.php |  2 +-
 htdocs/commande/class/commande.class.php      | 20 +++++++-----
 htdocs/commande/list.php                      | 17 ++++++++--
 htdocs/commande/tpl/linkedobjectblock.tpl.php |  2 +-
 .../facture/tpl/linkedobjectblock.tpl.php     |  2 +-
 htdocs/contrat/tpl/linkedobjectblock.tpl.php  |  2 +-
 htdocs/core/class/html.form.class.php         |  2 +-
 htdocs/core/class/html.formorder.class.php    |  2 +-
 htdocs/core/menus/standard/eldy.lib.php       |  6 ++--
 .../expedition/tpl/linkedobjectblock.tpl.php  |  2 +-
 .../fichinter/tpl/linkedobjectblock.tpl.php   |  2 +-
 .../class/fournisseur.commande.class.php      | 31 +++++++++++--------
 htdocs/fourn/commande/card.php                | 24 +++++++++++---
 htdocs/fourn/commande/list.php                | 26 +++++++++++-----
 .../commande/tpl/linkedobjectblock.tpl.php    |  2 +-
 .../facture/tpl/linkedobjectblock.tpl.php     |  2 +-
 .../install/mysql/migration/3.8.0-3.9.0.sql   |  4 +++
 htdocs/langs/en_US/deliveries.lang            |  1 +
 htdocs/langs/en_US/orders.lang                |  1 +
 .../tpl/linkedobjectblock.tpl.php             |  2 +-
 20 files changed, 105 insertions(+), 47 deletions(-)

diff --git a/htdocs/comm/propal/tpl/linkedobjectblock.tpl.php b/htdocs/comm/propal/tpl/linkedobjectblock.tpl.php
index 6f53fd37a95..d38c9918af8 100644
--- a/htdocs/comm/propal/tpl/linkedobjectblock.tpl.php
+++ b/htdocs/comm/propal/tpl/linkedobjectblock.tpl.php
@@ -34,7 +34,7 @@ $langs = $GLOBALS['langs'];
 $linkedObjectBlock = $GLOBALS['linkedObjectBlock'];
 
 echo '<br>';
-print load_fiche_titre($langs->trans('RelatedCommercialProposals'));
+print load_fiche_titre($langs->trans('RelatedCommercialProposals'), '', '');
 ?>
 <table class="noborder allwidth">
 <tr class="liste_titre">
diff --git a/htdocs/commande/class/commande.class.php b/htdocs/commande/class/commande.class.php
index d1351ba273a..1ee2cad12ec 100644
--- a/htdocs/commande/class/commande.class.php
+++ b/htdocs/commande/class/commande.class.php
@@ -1062,7 +1062,7 @@ class Commande extends CommonOrder
         $this->demand_reason_id     = $object->demand_reason_id;
         $this->date_livraison       = $object->date_livraison;
         $this->shipping_method_id   = $object->shipping_method_id;
-	$this->warehouse_id         = $object->warehouse_id;
+        $this->warehouse_id         = $object->warehouse_id;
         $this->fk_delivery_address  = $object->fk_delivery_address;
         $this->contact_id           = $object->contactid;
         $this->ref_client           = $object->ref_client;
@@ -2887,7 +2887,8 @@ class Commande extends CommonOrder
             if ($statut==self::STATUS_VALIDATED) return $langs->trans('StatusOrderValidated');
             if ($statut==self::STATUS_ACCEPTED) return $langs->trans('StatusOrderSentShort');
             if ($statut==self::STATUS_CLOSED && (! $billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return $langs->trans('StatusOrderToBill');
-            if ($statut==self::STATUS_CLOSED && ($billed || ! empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return $langs->trans('StatusOrderProcessed');
+            if ($statut==self::STATUS_CLOSED && ($billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return $langs->trans('StatusOrderProcessed').' - '.$langs->trans("Billed");
+            if ($statut==self::STATUS_CLOSED && (! empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return $langs->trans('StatusOrderProcessed');
         }
         elseif ($mode == 1)
         {
@@ -2896,7 +2897,8 @@ class Commande extends CommonOrder
             if ($statut==self::STATUS_VALIDATED) return $langs->trans('StatusOrderValidatedShort');
             if ($statut==self::STATUS_ACCEPTED) return $langs->trans('StatusOrderSentShort');
             if ($statut==self::STATUS_CLOSED && (! $billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return $langs->trans('StatusOrderToBillShort');
-            if ($statut==self::STATUS_CLOSED && ($billed || ! empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return $langs->trans('StatusOrderProcessed');
+            if ($statut==self::STATUS_CLOSED && ($billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return $langs->trans('StatusOrderProcessed').' - '.$langs->trans("Billed");
+            if ($statut==self::STATUS_CLOSED && (! empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return $langs->trans('StatusOrderProcessed');
         }
         elseif ($mode == 2)
         {
@@ -2905,7 +2907,8 @@ class Commande extends CommonOrder
             if ($statut==self::STATUS_VALIDATED) return img_picto($langs->trans('StatusOrderValidated'),'statut1').' '.$langs->trans('StatusOrderValidatedShort');
             if ($statut==self::STATUS_ACCEPTED) return img_picto($langs->trans('StatusOrderSent'),'statut3').' '.$langs->trans('StatusOrderSentShort');
             if ($statut==self::STATUS_CLOSED && (! $billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return img_picto($langs->trans('StatusOrderToBill'),'statut7').' '.$langs->trans('StatusOrderToBillShort');
-            if ($statut==self::STATUS_CLOSED && ($billed || ! empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return img_picto($langs->trans('StatusOrderProcessed'),'statut6').' '.$langs->trans('StatusOrderProcessedShort');
+            if ($statut==self::STATUS_CLOSED && ($billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return img_picto($langs->trans('StatusOrderProcessed').' - '.$langs->trans("Billed"),'statut6').' '.$langs->trans('StatusOrderProcessed').' - '.$langs->trans("Billed");
+            if ($statut==self::STATUS_CLOSED && (! empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return img_picto($langs->trans('StatusOrderProcessed'),'statut6').' '.$langs->trans('StatusOrderProcessedShort');
         }
         elseif ($mode == 3)
         {
@@ -2914,7 +2917,8 @@ class Commande extends CommonOrder
             if ($statut==self::STATUS_VALIDATED) return img_picto($langs->trans('StatusOrderValidated'),'statut1');
             if ($statut==self::STATUS_ACCEPTED) return img_picto($langs->trans('StatusOrderSentShort'),'statut3');
             if ($statut==self::STATUS_CLOSED && (! $billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return img_picto($langs->trans('StatusOrderToBill'),'statut7');
-            if ($statut==self::STATUS_CLOSED && ($billed || ! empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return img_picto($langs->trans('StatusOrderProcessed'),'statut6');
+            if ($statut==self::STATUS_CLOSED && ($billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return img_picto($langs->trans('StatusOrderProcessed').' - '.$langs->trans("Billed"),'statut6');
+            if ($statut==self::STATUS_CLOSED && (! empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return img_picto($langs->trans('StatusOrderProcessed'),'statut6');
         }
         elseif ($mode == 4)
         {
@@ -2923,7 +2927,8 @@ class Commande extends CommonOrder
             if ($statut==self::STATUS_VALIDATED) return img_picto($langs->trans('StatusOrderValidated'),'statut1').' '.$langs->trans('StatusOrderValidated');
             if ($statut==self::STATUS_ACCEPTED) return img_picto($langs->trans('StatusOrderSentShort'),'statut3').' '.$langs->trans('StatusOrderSent');
             if ($statut==self::STATUS_CLOSED && (! $billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return img_picto($langs->trans('StatusOrderToBill'),'statut7').' '.$langs->trans('StatusOrderToBill');
-            if ($statut==self::STATUS_CLOSED && ($billed || ! empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return img_picto($langs->trans('StatusOrderProcessed'),'statut6').' '.$langs->trans('StatusOrderProcessed');
+            if ($statut==self::STATUS_CLOSED && ($billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return img_picto($langs->trans('StatusOrderToBill').' - '.$langs->trans("Billed"),'statut6').' '.$langs->trans('StatusOrderToBill').' - '.$langs->trans("Billed");
+            if ($statut==self::STATUS_CLOSED && (! empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return img_picto($langs->trans('StatusOrderProcessed'),'statut6').' '.$langs->trans('StatusOrderProcessed');
         }
         elseif ($mode == 5)
         {
@@ -2932,7 +2937,8 @@ class Commande extends CommonOrder
             if ($statut==self::STATUS_VALIDATED) return '<span class="hideonsmartphone">'.$langs->trans('StatusOrderValidatedShort').' </span>'.img_picto($langs->trans('StatusOrderValidated'),'statut1');
             if ($statut==self::STATUS_ACCEPTED) return '<span class="hideonsmartphone">'.$langs->trans('StatusOrderSentShort').' </span>'.img_picto($langs->trans('StatusOrderSent'),'statut3');
             if ($statut==self::STATUS_CLOSED && (! $billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return '<span class="hideonsmartphone">'.$langs->trans('StatusOrderToBillShort').' </span>'.img_picto($langs->trans('StatusOrderToBill'),'statut7');
-            if ($statut==self::STATUS_CLOSED && ($billed || ! empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return '<span class="hideonsmartphone">'.$langs->trans('StatusOrderProcessedShort').' </span>'.img_picto($langs->trans('StatusOrderProcessed'),'statut6');
+            if ($statut==self::STATUS_CLOSED && ($billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return '<span class="hideonsmartphone">'.$langs->trans('StatusOrderToBillShort').' - '.$langs->trans("Billed").' </span>'.img_picto($langs->trans('StatusOrderToBill').' - '.$langs->trans("Billed"),'statut6');
+            if ($statut==self::STATUS_CLOSED && (! empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return '<span class="hideonsmartphone">'.$langs->trans('StatusOrderProcessedShort').' </span>'.img_picto($langs->trans('StatusOrderProcessed'),'statut6');
         }
     }
 
diff --git a/htdocs/commande/list.php b/htdocs/commande/list.php
index c895e58fa5c..44c5a870ec4 100644
--- a/htdocs/commande/list.php
+++ b/htdocs/commande/list.php
@@ -41,6 +41,7 @@ require_once DOL_DOCUMENT_ROOT .'/product/class/product.class.php';
 $langs->load('orders');
 $langs->load('deliveries');
 $langs->load('companies');
+$langs->load('compta');
 
 $orderyear=GETPOST("orderyear","int");
 $ordermonth=GETPOST("ordermonth","int");
@@ -56,6 +57,7 @@ $search_user=GETPOST('search_user','int');
 $search_sale=GETPOST('search_sale','int');
 $search_total_ht=GETPOST('search_total_ht','alpha');
 $optioncss = GETPOST('optioncss','alpha');
+$billed = GETPOST('billed','int');
 
 // Security check
 $id = (GETPOST('orderid')?GETPOST('orderid'):GETPOST('id','int'));
@@ -90,6 +92,8 @@ if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter.x") || GETP
     $ordermonth='';
     $deliverymonth='';
     $deliveryyear='';
+    $viewstatut='';
+    $billed='';
 }
 
 // Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array
@@ -151,6 +155,7 @@ if ($socid > 0) $sql.= ' AND s.rowid = '.$socid;
 if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id;
 if ($search_ref) $sql .= natural_search('c.ref', $search_ref);
 if ($sall) $sql .= natural_search(array_keys($fieldstosearchall), $sall);
+if ($billed != '' && $billed >= 0) $sql.=' AND c.facture = '.$billed;
 if ($viewstatut <> '')
 {
 	if ($viewstatut < 4 && $viewstatut > -3)
@@ -336,7 +341,8 @@ if ($resql)
     $reshook=$hookmanager->executeHooks('printFieldListTitle',$parameters);    // Note that $action and $object may have been modified by hook
     print $hookmanager->resPrint;
 	print_liste_field_titre($langs->trans('Status'),$_SERVER["PHP_SELF"],'c.fk_statut','',$param,'align="right"',$sortfield,$sortorder);
-	print_liste_field_titre('',$_SERVER["PHP_SELF"],"",'','','',$sortfield,$sortorder,'maxwidthsearch ');
+	print_liste_field_titre($langs->trans('Billed'),$_SERVER["PHP_SELF"],'c.facture','',$param,'align="center"',$sortfield,$sortorder,'');
+	print_liste_field_titre('',$_SERVER["PHP_SELF"],"",'',$param,'',$sortfield,$sortorder,'maxwidthsearch ');
 	print '</tr>';
 
 	print '<tr class="liste_titre">';
@@ -366,9 +372,12 @@ if ($resql)
 	print '<input class="flat" type="text" size="6" name="search_total_ht" value="'.$search_total_ht.'">';
 	print '</td>';
 	print '<td align="right">';
-	$liststatus=array('0'=>$langs->trans("StatusOrderDraftShort"), '1'=>$langs->trans("StatusOrderValidated"), '2'=>$langs->trans("StatusOrderSentShort"), '3'=>$langs->trans("StatusOrderToBill"), '4'=>$langs->trans("StatusOrderProcessed"), '-1'=>$langs->trans("StatusOrderCanceledShort"));
+	$liststatus=array('0'=>$langs->trans("StatusOrderDraftShort"), '1'=>$langs->trans("StatusOrderValidated"), '2'=>$langs->trans("StatusOrderSentShort"), '3'=>$langs->trans("StatusOrderDelivered"), '-1'=>$langs->trans("StatusOrderCanceledShort"));
 	print $form->selectarray('viewstatut', $liststatus, $viewstatut, -4);
 	print '</td>';
+	print '<td align="center">';
+	print $form->selectyesno('billed', $billed, 1, 0, 1);
+	print '</td>';
 	print '<td class="liste_titre" align="right"><input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
 	print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">';
 	print "</td></tr>\n";
@@ -575,6 +584,9 @@ if ($resql)
 		// Statut
 		print '<td align="right" class="nowrap">'.$generic_commande->LibStatut($objp->fk_statut,$objp->facturee,5).'</td>';
 
+		// Billed
+		print '<td align="center">'.yn($objp->facturee).'</td>';
+		
 		print '<td></td>';
 
 		print '</tr>';
@@ -593,6 +605,7 @@ if ($resql)
 		print '<td align="right" class="nowrap">'.price($total).'</td>';
 		print '<td></td>';
 		print '<td></td>';
+		print '<td></td>';
 		print '</tr>';
 	}
 
diff --git a/htdocs/commande/tpl/linkedobjectblock.tpl.php b/htdocs/commande/tpl/linkedobjectblock.tpl.php
index bf399c250d9..231f6034b00 100644
--- a/htdocs/commande/tpl/linkedobjectblock.tpl.php
+++ b/htdocs/commande/tpl/linkedobjectblock.tpl.php
@@ -30,7 +30,7 @@ $linkedObjectBlock = $GLOBALS['linkedObjectBlock'];
 
 $langs->load("orders");
 echo '<br>';
-print load_fiche_titre($langs->trans('RelatedCustomerOrders'));
+print load_fiche_titre($langs->trans('RelatedCustomerOrders'), '', '');
 
 ?>
 <table class="noborder allwidth">
diff --git a/htdocs/compta/facture/tpl/linkedobjectblock.tpl.php b/htdocs/compta/facture/tpl/linkedobjectblock.tpl.php
index b0c28efe4c0..d89dbceb689 100644
--- a/htdocs/compta/facture/tpl/linkedobjectblock.tpl.php
+++ b/htdocs/compta/facture/tpl/linkedobjectblock.tpl.php
@@ -30,7 +30,7 @@ $linkedObjectBlock = $GLOBALS['linkedObjectBlock'];
 
 $langs->load("bills");
 echo '<br>';
-print load_fiche_titre($langs->trans("RelatedCustomerInvoices"));
+print load_fiche_titre($langs->trans("RelatedCustomerInvoices"), '', '');
 ?>
 <table class="noborder allwidth">
 <tr class="liste_titre">
diff --git a/htdocs/contrat/tpl/linkedobjectblock.tpl.php b/htdocs/contrat/tpl/linkedobjectblock.tpl.php
index 412d07cb726..c5e4dd92a05 100644
--- a/htdocs/contrat/tpl/linkedobjectblock.tpl.php
+++ b/htdocs/contrat/tpl/linkedobjectblock.tpl.php
@@ -26,7 +26,7 @@ $linkedObjectBlock = $GLOBALS['linkedObjectBlock'];
 
 $langs->load("contracts");
 echo '<br>';
-print load_fiche_titre($langs->trans('RelatedContracts'));
+print load_fiche_titre($langs->trans('RelatedContracts'), '', '');
 ?>
 <table class="noborder allwidth">
 <tr class="liste_titre">
diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php
index bada8627ee0..0ee1495c85f 100644
--- a/htdocs/core/class/html.form.class.php
+++ b/htdocs/core/class/html.form.class.php
@@ -5094,7 +5094,7 @@ class Form
      *	@param	string		$value			Pre-selected value
      *	@param	int			$option			0 return yes/no, 1 return 1/0
      *	@param	bool		$disabled		true or false
-     *  @param	useempty	$useempty		1=Add empty line
+     *  @param	int      	$useempty		1=Add empty line
      *	@return	mixed						See option
      */
     function selectyesno($htmlname,$value='',$option=0,$disabled=false,$useempty='')
diff --git a/htdocs/core/class/html.formorder.class.php b/htdocs/core/class/html.formorder.class.php
index c08568ad8b6..0bb318df8da 100644
--- a/htdocs/core/class/html.formorder.class.php
+++ b/htdocs/core/class/html.formorder.class.php
@@ -57,7 +57,7 @@ class FormOrder
     {
         print '<select class="flat" name="'.$hmlname.'">';
         print '<option value="-1">&nbsp;</option>';
-        $statustohow=array('0'=>'0','1'=>'1','2'=>'2','3'=>'3','4'=>'4','5'=>'5','6'=>'6,7','9'=>'9');	// 7 is same label than 6. 8 does not exist.
+        $statustohow=array('0'=>'0','1'=>'1','2'=>'2','3'=>'3','4'=>'4','5'=>'5','6'=>'6,7','9'=>'9');	// 7 is same label than 6. 8 does not exists (billed is another field)
 
         foreach($statustohow as $key => $value)
         {
diff --git a/htdocs/core/menus/standard/eldy.lib.php b/htdocs/core/menus/standard/eldy.lib.php
index 7cd22e29218..03b3dc785bb 100644
--- a/htdocs/core/menus/standard/eldy.lib.php
+++ b/htdocs/core/menus/standard/eldy.lib.php
@@ -698,8 +698,8 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
                 if (empty($leftmenu) || $leftmenu=="orders") $newmenu->add("/commande/list.php?leftmenu=orders&viewstatut=0", $langs->trans("StatusOrderDraftShort"), 2, $user->rights->commande->lire);
                 if (empty($leftmenu) || $leftmenu=="orders") $newmenu->add("/commande/list.php?leftmenu=orders&viewstatut=1", $langs->trans("StatusOrderValidated"), 2, $user->rights->commande->lire);
                 if (empty($leftmenu) || $leftmenu=="orders" && ! empty($conf->expedition->enabled)) $newmenu->add("/commande/list.php?leftmenu=orders&viewstatut=2", $langs->trans("StatusOrderSentShort"), 2, $user->rights->commande->lire);
-                if (empty($leftmenu) || $leftmenu=="orders") $newmenu->add("/commande/list.php?leftmenu=orders&viewstatut=3", $langs->trans("StatusOrderToBill"), 2, $user->rights->commande->lire);  // The translation key is StatusOrderToBill but it means StatusDelivered. TODO We should renamed this later
-                if (empty($leftmenu) || $leftmenu=="orders") $newmenu->add("/commande/list.php?leftmenu=orders&viewstatut=4", $langs->trans("StatusOrderProcessed"), 2, $user->rights->commande->lire);
+                if (empty($leftmenu) || $leftmenu=="orders") $newmenu->add("/commande/list.php?leftmenu=orders&viewstatut=3", $langs->trans("StatusOrderDelivered"), 2, $user->rights->commande->lire);
+                //if (empty($leftmenu) || $leftmenu=="orders") $newmenu->add("/commande/list.php?leftmenu=orders&viewstatut=4", $langs->trans("StatusOrderProcessed"), 2, $user->rights->commande->lire);
                 if (empty($leftmenu) || $leftmenu=="orders") $newmenu->add("/commande/list.php?leftmenu=orders&viewstatut=-1", $langs->trans("StatusOrderCanceledShort"), 2, $user->rights->commande->lire);
                 $newmenu->add("/commande/stats/index.php?leftmenu=orders", $langs->trans("Statistics"), 1, $user->rights->commande->lire);
             }
@@ -720,7 +720,7 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
                 if (empty($leftmenu) || $leftmenu=="orders_suppliers") $newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&statut=5", $langs->trans("StatusOrderReceivedAll"), 2, $user->rights->fournisseur->commande->lire);
                 if (empty($leftmenu) || $leftmenu=="orders_suppliers") $newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&statut=6,7", $langs->trans("StatusOrderCanceled"), 2, $user->rights->fournisseur->commande->lire);
                 if (empty($leftmenu) || $leftmenu=="orders_suppliers") $newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&statut=9", $langs->trans("StatusOrderRefused"), 2, $user->rights->fournisseur->commande->lire);
-                if (empty($leftmenu) || $leftmenu=="orders_suppliers") $newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&billed=1", $langs->trans("StatusOrderBilled"), 2, $user->rights->fournisseur->commande->lire);
+                // Billed is another field. We should add instead a dedicated filter on list. if (empty($leftmenu) || $leftmenu=="orders_suppliers") $newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&billed=1", $langs->trans("StatusOrderBilled"), 2, $user->rights->fournisseur->commande->lire);
  
 
 				$newmenu->add("/commande/stats/index.php?leftmenu=orders_suppliers&amp;mode=supplier", $langs->trans("Statistics"), 1, $user->rights->fournisseur->commande->lire);
diff --git a/htdocs/expedition/tpl/linkedobjectblock.tpl.php b/htdocs/expedition/tpl/linkedobjectblock.tpl.php
index 4f420957660..8b7066adc09 100644
--- a/htdocs/expedition/tpl/linkedobjectblock.tpl.php
+++ b/htdocs/expedition/tpl/linkedobjectblock.tpl.php
@@ -29,7 +29,7 @@ $linkedObjectBlock = $GLOBALS['linkedObjectBlock'];
 
 $langs->load("sendings");
 echo '<br>';
-print load_fiche_titre($langs->trans('RelatedShippings'));
+print load_fiche_titre($langs->trans('RelatedShippings'), '', '');
 
 ?>
 <table class="noborder allwidth">
diff --git a/htdocs/fichinter/tpl/linkedobjectblock.tpl.php b/htdocs/fichinter/tpl/linkedobjectblock.tpl.php
index 0dc4a66c083..0518d40cd91 100644
--- a/htdocs/fichinter/tpl/linkedobjectblock.tpl.php
+++ b/htdocs/fichinter/tpl/linkedobjectblock.tpl.php
@@ -26,7 +26,7 @@ $linkedObjectBlock = $GLOBALS['linkedObjectBlock'];
 
 $langs->load("interventions");
 echo '<br>';
-print load_fiche_titre($langs->trans('RelatedInterventions'));
+print load_fiche_titre($langs->trans('RelatedInterventions'), '', '');
 
 ?>
 <table class="noborder allwidth">
diff --git a/htdocs/fourn/class/fournisseur.commande.class.php b/htdocs/fourn/class/fournisseur.commande.class.php
index eb9e15b2313..1888cdc8adc 100644
--- a/htdocs/fourn/class/fournisseur.commande.class.php
+++ b/htdocs/fourn/class/fournisseur.commande.class.php
@@ -63,6 +63,9 @@ class CommandeFournisseur extends CommonOrder
     //                                                              -> 7=Canceled/Never received -> (reopen) 3=Process runing
     //									              -> 6=Canceled -> (reopen) 2=Approved
     //  		                                      -> 9=Refused  -> (reopen) 1=Validated
+    //  Note: billed or not is on another field "billed"
+    var $statuts;           // List of status
+    
     var $socid;
     var $fourn_id;
     var $date;
@@ -138,7 +141,7 @@ class CommandeFournisseur extends CommonOrder
         $this->statuts[5] = 'StatusOrderReceivedAll';
         $this->statuts[6] = 'StatusOrderCanceled';	// Approved->Canceled
         $this->statuts[7] = 'StatusOrderCanceled';	// Process running->canceled
-        $this->statuts[8] = 'StatusOrderBilled';	// Everything is finish, order received totally and bill received
+        //$this->statuts[8] = 'StatusOrderBilled';	// Everything is finish, order received totally and bill received
         $this->statuts[9] = 'StatusOrderRefused';
     }
 
@@ -510,8 +513,10 @@ class CommandeFournisseur extends CommonOrder
         global $langs;
         $langs->load('orders');
 
-		if($statut==5 && $this->billed == 1) $statut = 8;
-
+        $billedtext='';
+		//if ($statut==5 && $this->billed == 1) $statut = 8;
+        if ($this->billed == 1) $billedtext=$langs->trans("Billed");
+        
         // List of language codes for status
         $statutshort[0] = 'StatusOrderDraftShort';
         $statutshort[1] = 'StatusOrderValidatedShort';
@@ -521,7 +526,7 @@ class CommandeFournisseur extends CommonOrder
         $statutshort[5] = 'StatusOrderReceivedAllShort';
         $statutshort[6] = 'StatusOrderCanceledShort';
         $statutshort[7] = 'StatusOrderCanceledShort';
-        $statutshort[8] = 'StatusOrderBilledShort';
+        //$statutshort[8] = 'StatusOrderBilledShort';
         $statutshort[9] = 'StatusOrderRefusedShort';
 
         if ($mode == 0)
@@ -550,15 +555,15 @@ class CommandeFournisseur extends CommonOrder
         }
         if ($mode == 4)
         {
-            if ($statut==0) return img_picto($langs->trans($this->statuts[$statut]),'statut0').' '.$langs->trans($this->statuts[$statut]);
-            if ($statut==1) return img_picto($langs->trans($this->statuts[$statut]),'statut1').' '.$langs->trans($this->statuts[$statut]);
-            if ($statut==2) return img_picto($langs->trans($this->statuts[$statut]),'statut3').' '.$langs->trans($this->statuts[$statut]);
-            if ($statut==3) return img_picto($langs->trans($this->statuts[$statut]),'statut3').' '.$langs->trans($this->statuts[$statut]);
-            if ($statut==4) return img_picto($langs->trans($this->statuts[$statut]),'statut3').' '.$langs->trans($this->statuts[$statut]);
-            if ($statut==5) return img_picto($langs->trans($this->statuts[$statut]),'statut6').' '.$langs->trans($this->statuts[$statut]);
-            if ($statut==6 || $statut==7) return img_picto($langs->trans($this->statuts[$statut]),'statut5').' '.$langs->trans($this->statuts[$statut]);
-			if ($statut==8) return img_picto($langs->trans($this->statuts[$statut]),'statut6').' '.$langs->trans($this->statuts[$statut]);
-            if ($statut==9) return img_picto($langs->trans($this->statuts[$statut]),'statut5').' '.$langs->trans($this->statuts[$statut]);
+            if ($statut==0) return img_picto($langs->trans($this->statuts[$statut]),'statut0').' '.$langs->trans($this->statuts[$statut]).($billedtext?' - '.$billedtext:'');
+            if ($statut==1) return img_picto($langs->trans($this->statuts[$statut]),'statut1').' '.$langs->trans($this->statuts[$statut]).($billedtext?' - '.$billedtext:'');
+            if ($statut==2) return img_picto($langs->trans($this->statuts[$statut]),'statut3').' '.$langs->trans($this->statuts[$statut]).($billedtext?' - '.$billedtext:'');
+            if ($statut==3) return img_picto($langs->trans($this->statuts[$statut]),'statut3').' '.$langs->trans($this->statuts[$statut]).($billedtext?' - '.$billedtext:'');
+            if ($statut==4) return img_picto($langs->trans($this->statuts[$statut]),'statut3').' '.$langs->trans($this->statuts[$statut]).($billedtext?' - '.$billedtext:'');
+            if ($statut==5) return img_picto($langs->trans($this->statuts[$statut]),'statut6').' '.$langs->trans($this->statuts[$statut]).($billedtext?' - '.$billedtext:'');
+            if ($statut==6 || $statut==7) return img_picto($langs->trans($this->statuts[$statut]),'statut5').' '.$langs->trans($this->statuts[$statut]).($billedtext?' - '.$billedtext:'');
+			if ($statut==8) return img_picto($langs->trans($this->statuts[$statut]),'statut6').' '.$langs->trans($this->statuts[$statut]).($billedtext?' - '.$billedtext:'');
+            if ($statut==9) return img_picto($langs->trans($this->statuts[$statut]),'statut5').' '.$langs->trans($this->statuts[$statut]).($billedtext?' - '.$billedtext:'');
         }
         if ($mode == 5)
         {
diff --git a/htdocs/fourn/commande/card.php b/htdocs/fourn/commande/card.php
index 9a1a6ec67d4..baa11ed9c07 100644
--- a/htdocs/fourn/commande/card.php
+++ b/htdocs/fourn/commande/card.php
@@ -196,7 +196,7 @@ if (empty($reshook))
 
 	if ($action == 'reopen')	// no test on permission here, permission to use will depends on status
 	{
-	    if (in_array($object->statut, array(1, 2, 3, 5, 6, 7, 9)))
+	    if (in_array($object->statut, array(1, 2, 3, 5, 6, 7, 9)) || ($object->statut == 4 && $object->billed))
 	    {
 	        if ($object->statut == 1) $newstatus=0;	// Validated->Draft
 	        else if ($object->statut == 2) $newstatus=0;	// Approved->Draft
@@ -205,13 +205,20 @@ if (empty($reshook))
 	        else if ($object->statut == 6) $newstatus=2;	// Canceled->Approved
 	        else if ($object->statut == 7) $newstatus=3;	// Canceled->Process running
 	        else if ($object->statut == 9) $newstatus=1;	// Refused->Validated
-
+            else $newstatus = 2;
+            
 	        $db->begin();
 
 	        $result = $object->setStatus($user, $newstatus);
 	        if ($result > 0)
 	        {
-	        	if ($newstatus == 0)
+		        $sql = 'UPDATE '.MAIN_DB_PREFIX.'commande_fournisseur';
+	        	$sql.= ' SET billed = 0';
+	        	$sql.= ' WHERE rowid = '.$object->id;
+
+	        	$resql=$db->query($sql);
+	            
+	            if ($newstatus == 0)
 	        	{
 		        	$sql = 'UPDATE '.MAIN_DB_PREFIX.'commande_fournisseur';
 	        		$sql.= ' SET fk_user_approve = null, fk_user_approve2 = null, date_approve = null, date_approve2 = null';
@@ -719,6 +726,14 @@ if (empty($reshook))
 	    if ($result > 0)
 	    {
 	        if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) {
+	            $outputlangs = $langs;
+	            $newlang = '';
+	            if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id')) $newlang = GETPOST('lang_id','alpha');
+	            if ($conf->global->MAIN_MULTILANGS && empty($newlang))	$newlang = $object->thirdparty->default_lang;
+	            if (! empty($newlang)) {
+	                $outputlangs = new Translate("", $conf);
+	                $outputlangs->setDefaultLang($newlang);
+	            }
 		        $object->generateDocument($object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref);
 	        }
             $action = '';
@@ -780,6 +795,7 @@ if (empty($reshook))
 	        $result = $object->Livraison($user, $date_liv, GETPOST("type"), GETPOST("comment"));
 	        if ($result > 0)
 	        {
+	            $langs->load("deliveries");
                 setEventMessages($langs->trans("DeliveryStateSaved"), null);
                 $action = '';
             }
@@ -2725,7 +2741,7 @@ elseif (! empty($object->id))
 						print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&amp;action=reopen">'.$langs->trans("Disapprove").'</a>';
 					}
 				}
-				if (in_array($object->statut, array(3, 5, 6, 7, 9)))
+				if (in_array($object->statut, array(3, 5, 6, 7, 9)) || ($object->statut == 4 && $object->billed))
 				{
 					if ($user->rights->fournisseur->commande->commander)
 					{
diff --git a/htdocs/fourn/commande/list.php b/htdocs/fourn/commande/list.php
index e7e83242ec7..a3e0d8c9c33 100644
--- a/htdocs/fourn/commande/list.php
+++ b/htdocs/fourn/commande/list.php
@@ -53,6 +53,8 @@ $socid = GETPOST('socid','int');
 $sortorder = GETPOST('sortorder','alpha');
 $sortfield = GETPOST('sortfield','alpha');
 
+$status=GETPOST('statut','alpha');
+$billed=GETPOST('billed','int');
 $viewstatut=GETPOST('viewstatut');
 
 // Security check
@@ -70,6 +72,7 @@ if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) // Both
 	$search_ht='';
 	$search_ttc='';
 	$search_status='';
+	$billed='';
 }
 
 if ($search_status == '') $search_status=-1;
@@ -102,11 +105,13 @@ if ($socid > 0)
 	$fourn->fetch($socid);
 	$title .= ' - '.$fourn->name;
 }
-if (GETPOST('statut','alpha')) 
+if ($status) 
 {
-    if (GETPOST('statut','alpha') == '1,2,3') $title.=' - '.$langs->trans("StatusOrderToProcessShort");
-    else $title.=' - '.$langs->trans($commandestatic->statuts[GETPOST('statut','alpha')]);
+    if ($status == '1,2,3') $title.=' - '.$langs->trans("StatusOrderToProcessShort");
+    if ($status == '6,7') $title.=' - '.$langs->trans("StatusOrderCanceled");
+    else $title.=' - '.$langs->trans($commandestatic->statuts[$status]);
 }
+if ($billed) $title.=' - '.$langs->trans("Billed");
 
 
 llxHeader('',$title);
@@ -122,7 +127,7 @@ $offset = $conf->liste_limit * $page ;
  */
 
 $sql = "SELECT s.rowid as socid, s.nom as name, cf.date_commande as dc,";
-$sql.= " cf.rowid,cf.ref, cf.ref_supplier, cf.fk_statut, cf.total_ht, cf.tva as total_tva, cf.total_ttc, cf.fk_user_author,cf.date_livraison,";
+$sql.= " cf.rowid, cf.ref, cf.ref_supplier, cf.fk_statut, cf.billed, cf.total_ht, cf.tva as total_tva, cf.total_ttc, cf.fk_user_author, cf.date_livraison,";
 $sql.= " p.rowid as project_id, p.ref as project_ref,";
 $sql.= " u.firstname,";
 $sql.= " u.lastname,";
@@ -168,9 +173,9 @@ if (GETPOST('statut', 'alpha') !== '')
 	$sql .= " AND cf.fk_statut IN (".GETPOST('statut', 'alpha').")";
 }
 
-if (GETPOST('billed', 'int') !== '')
+if ($billed !== '')
 {
-	$sql .= " AND cf.billed IN (".GETPOST('billed', 'int').")";
+	$sql .= " AND cf.billed = ".$billed;
 }
 
 if ($search_refsupp)
@@ -209,6 +214,7 @@ if ($resql)
 	if ($search_refsupp) 		$param.="&search_refsupp=".$search_refsupp;
 	if ($socid)					$param.="&socid=".$socid;
 	if ($search_status >= 0)  	$param.="&search_status=".$search_status;
+	if ($billed != '')          $param.="billed=".$billed; 
 	if ($optioncss != '') $param.='&optioncss='.$optioncss;
 
 	print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $nbtotalofrecords);
@@ -238,6 +244,7 @@ if ($resql)
 	print_liste_field_titre($langs->trans("OrderDate"),$_SERVER["PHP_SELF"],"dc","",$param,'align="center"',$sortfield,$sortorder);
 	print_liste_field_titre($langs->trans('DateDeliveryPlanned'),$_SERVER["PHP_SELF"],'cf.date_livraison','',$param, 'align="right"',$sortfield,$sortorder);
 	print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"cf.fk_statut","",$param,'align="right"',$sortfield,$sortorder);
+	print_liste_field_titre($langs->trans('Billed'),$_SERVER["PHP_SELF"],'cf.billed','',$param,'align="center"',$sortfield,$sortorder,'');
 	print_liste_field_titre('',$_SERVER["PHP_SELF"],"",'','','',$sortfield,$sortorder,'maxwidthsearch ');
 	print "</tr>\n";
 
@@ -259,6 +266,9 @@ if ($resql)
 	print '<td class="liste_titre" align="right">';
 	$formorder->selectSupplierOrderStatus((strstr($search_status, ',')?-1:$search_status),1,'search_status');
 	print '</td>';
+	print '<td align="center">';
+	print $form->selectyesno('billed', $billed, 1, 0, 1);
+	print '</td>';
 	print '<td class="liste_titre" align="right"><input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
 	print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">';
 	print "</td></tr>\n";
@@ -344,10 +354,12 @@ if ($resql)
 		print dol_print_date($db->jdate($obj->date_livraison), 'day');
 		print '</td>';
 
-
 		// Statut
 		print '<td align="right">'.$commandestatic->LibStatut($obj->fk_statut, 5).'</td>';
 
+		// Billed
+		print '<td align="center">'.yn($obj->billed).'</td>';
+		
 		print '<td></td>';
 
 		print "</tr>\n";
diff --git a/htdocs/fourn/commande/tpl/linkedobjectblock.tpl.php b/htdocs/fourn/commande/tpl/linkedobjectblock.tpl.php
index c72386e3728..96b014e2cab 100644
--- a/htdocs/fourn/commande/tpl/linkedobjectblock.tpl.php
+++ b/htdocs/fourn/commande/tpl/linkedobjectblock.tpl.php
@@ -29,7 +29,7 @@ $linkedObjectBlock = $GLOBALS['linkedObjectBlock'];
 
 $langs->load("orders");
 echo '<br>';
-print load_fiche_titre($langs->trans('RelatedSupplierOrders'));
+print load_fiche_titre($langs->trans('RelatedSupplierOrders'), '', '');
 ?>
 <table class="noborder allwidth">
 <tr class="liste_titre">
diff --git a/htdocs/fourn/facture/tpl/linkedobjectblock.tpl.php b/htdocs/fourn/facture/tpl/linkedobjectblock.tpl.php
index 32f0e8b4f86..10a83ade2f9 100644
--- a/htdocs/fourn/facture/tpl/linkedobjectblock.tpl.php
+++ b/htdocs/fourn/facture/tpl/linkedobjectblock.tpl.php
@@ -30,7 +30,7 @@ $linkedObjectBlock = $GLOBALS['linkedObjectBlock'];
 
 $langs->load("bills");
 echo '<br>';
-print load_fiche_titre($langs->trans("RelatedSupplierInvoices"));
+print load_fiche_titre($langs->trans("RelatedSupplierInvoices"), '', '');
 ?>
 
 <table class="noborder allwidth">
diff --git a/htdocs/install/mysql/migration/3.8.0-3.9.0.sql b/htdocs/install/mysql/migration/3.8.0-3.9.0.sql
index 99a042c8c31..c15288d834b 100755
--- a/htdocs/install/mysql/migration/3.8.0-3.9.0.sql
+++ b/htdocs/install/mysql/migration/3.8.0-3.9.0.sql
@@ -26,6 +26,10 @@
 ALTER TABLE llx_don ADD COLUMN fk_country integer NOT NULL DEFAULT 0 after country;
 
 
+UPDATE llx_commande_fourn set billed=1 where statut = 8;
+UPDATE llx_commande_fourn set statut=5 where statut = 8 and billed=1;
+
+
 ALTER TABLE llx_askpricesupplier RENAME TO llx_supplier_proposal;
 ALTER TABLE llx_askpricesupplierdet RENAME TO llx_supplier_proposaldet;
 ALTER TABLE llx_askpricesupplier_extrafields RENAME TO llx_supplier_proposal_extrafields;
diff --git a/htdocs/langs/en_US/deliveries.lang b/htdocs/langs/en_US/deliveries.lang
index c96a506281d..4eb1c792b65 100644
--- a/htdocs/langs/en_US/deliveries.lang
+++ b/htdocs/langs/en_US/deliveries.lang
@@ -7,6 +7,7 @@ DeliveryOrders=Delivery orders
 DeliveryDate=Delivery date
 DeliveryDateShort=Deliv. date
 CreateDeliveryOrder=Generate delivery order
+DeliveryStateSaved=Delivery state saved
 QtyDelivered=Qty delivered
 SetDeliveryDate=Set shipping date
 ValidateDeliveryReceipt=Validate delivery receipt
diff --git a/htdocs/langs/en_US/orders.lang b/htdocs/langs/en_US/orders.lang
index 72985a9c0db..513fb091918 100644
--- a/htdocs/langs/en_US/orders.lang
+++ b/htdocs/langs/en_US/orders.lang
@@ -31,6 +31,7 @@ StatusOrderSentShort=In process
 StatusOrderSent=Shipment in process
 StatusOrderOnProcessShort=Ordered
 StatusOrderProcessedShort=Processed
+StatusOrderDelivered=Delivered
 StatusOrderToBillShort=Delivered
 StatusOrderToBill2Short=To bill
 StatusOrderApprovedShort=Approved
diff --git a/htdocs/supplier_proposal/tpl/linkedobjectblock.tpl.php b/htdocs/supplier_proposal/tpl/linkedobjectblock.tpl.php
index 76cf756128a..f0fa870d3de 100644
--- a/htdocs/supplier_proposal/tpl/linkedobjectblock.tpl.php
+++ b/htdocs/supplier_proposal/tpl/linkedobjectblock.tpl.php
@@ -29,7 +29,7 @@ $langs = $GLOBALS['langs'];
 $linkedObjectBlock = $GLOBALS['linkedObjectBlock'];
 
 echo '<br>';
-print load_fiche_titre($langs->trans('RelatedSupplierProposal'));
+print load_fiche_titre($langs->trans('RelatedSupplierProposal'), '', '');
 ?>
 <table class="noborder allwidth">
 <tr class="liste_titre">
-- 
GitLab


From 1b62cd4481fb01f8dde6890f4259f482f9127e59 Mon Sep 17 00:00:00 2001
From: Sof <virtualsof@yahoo.fr>
Date: Sun, 29 Nov 2015 16:05:14 +0100
Subject: [PATCH 039/197] FIX: Multiple syntax errors

---
 htdocs/theme/eldy/style.css.php | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/htdocs/theme/eldy/style.css.php b/htdocs/theme/eldy/style.css.php
index c7795841429..88d2ae2d5a9 100644
--- a/htdocs/theme/eldy/style.css.php
+++ b/htdocs/theme/eldy/style.css.php
@@ -323,7 +323,7 @@ legend { margin-bottom: 8px; }
 fieldset { border: 1px solid #AAAAAA !important; box-shadow: 2px 2px 3px #DDD; }
 
 
-.button, sbmtConnexion {
+.button, input[name="sbmtConnexion"] {
     font-family: <?php print $fontlist ?>;
 	border-color: #c5c5c5;
 	border-color: rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.25);
@@ -847,7 +847,7 @@ div.mainmenu {
 
 div.mainmenu.home{
 	background-image: url(<?php echo dol_buildpath($path.'/theme/'.$theme.'/img/menus/home.png',1) ?>);
-	background-position-x: middle;
+	background-position-x: center;
 }
 
 div.mainmenu.accountancy {
@@ -1017,7 +1017,7 @@ form#login {
 	border-radius: 5px;
 	border:solid 1px rgba(80,80,80,.4);
 
-	border-top:solid 1px f8f8f8;
+	border-top:solid 1px #f8f8f8;
 }
 .login_main_message {
 	text-align: center;
@@ -1472,7 +1472,7 @@ img.toolbarbutton {
 }
 
 /* hide the toggler-button when the pane is 'slid open' */
-.ui-layout-resizer-sliding  ui-layout-toggler {
+.ui-layout-resizer-sliding  .ui-layout-toggler {
     display: none;
 }
 
@@ -1645,7 +1645,7 @@ a.tab:link, a.tab:visited, a.tab:hover, a.tab#active {
 	-moz-box-shadow: 0 -1px 4px rgba(0,0,0,.1);
 	-webkit-box-shadow: 0 -1px 4px rgba(0,0,0,.1);
 	box-shadow: 0 -1px 4px rgba(0,0,0,.1);
-	margin-bottom: 0 0.2em 0 0.2em !important;
+	margin: 0 0.2em 0 0.2em !important;
 
 	border-right: 1px solid #AAA !important;
 	border-left: 1px solid #AAA !important;
@@ -1976,7 +1976,7 @@ tr.nocellnopadd td.nobordernopadding, tr.nocellnopadd td.nocellnopadd
 	padding-<?php print $left; ?>: 0px;
 	padding-<?php print $right; ?>: 16px;
 	padding-bottom: 4px;
-	margin-right: 0px 0px;
+	margin-right: 0px;
 }
 .notopnoleftnoright {
 	border-collapse: collapse;
@@ -3333,7 +3333,7 @@ ul.filedirelem li {
     border: solid 1px #DDDDDD;
 }
 
-ui-layout-north {
+.ui-layout-north {
 
 }
 
@@ -3430,7 +3430,7 @@ div.dolEventError h1, div.dolEventError h2 {
 /*  Maps                                                                          */
 /* ============================================================================== */
 
-.divmap, #google-visualization-geomap-embed-0, #google-visualization-geomap-embed-1, google-visualization-geomap-embed-2 {
+.divmap, #google-visualization-geomap-embed-0, #google-visualization-geomap-embed-1, #google-visualization-geomap-embed-2 {
     -moz-box-shadow: 0px 0px 10px #AAA;
     -webkit-box-shadow: 0px 0px 10px #AAA;
     box-shadow: 0px 0px 10px #AAA;
@@ -3755,7 +3755,7 @@ a.ui-link {
 {
 	white-space: normal;
 	overflow: hidden;
-	text-overflow: hidden;
+	text-overflow: clip; /* "hidden" : do not exists as a text-overflow value (https://developer.mozilla.org/fr/docs/Web/CSS/text-overflow) */
 }
 
 /* Warning: setting this may make screen not beeing refreshed after a combo selection */
-- 
GitLab


From d518b24d554e2ed4dae4f6e5804d2a150d1bf3c4 Mon Sep 17 00:00:00 2001
From: Ion Agorria <ion@agorria.com>
Date: Sun, 29 Nov 2015 16:19:30 +0100
Subject: [PATCH 040/197] Only print : when both $h and $m are set

---
 htdocs/core/class/html.form.class.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php
index 0ee1495c85f..6b1eaa69aa3 100644
--- a/htdocs/core/class/html.form.class.php
+++ b/htdocs/core/class/html.form.class.php
@@ -4231,7 +4231,7 @@ class Form
                 $retstring.='<option value="'.$hour.'"'.(($hour == $shour)?' selected':'').'>'.$hour.(empty($conf->dol_optimize_smallscreen)?'':'H').'</option>';
             }
             $retstring.='</select>';
-            if (empty($conf->dol_optimize_smallscreen)) $retstring.=":";
+            if ($m && empty($conf->dol_optimize_smallscreen)) $retstring.=":";
         }
 
         if ($m)
-- 
GitLab


From a12e959833445dab03d3b027506a5b1870245e1f Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Sun, 29 Nov 2015 16:33:50 +0100
Subject: [PATCH 041/197] Do not show billed status after order status

---
 htdocs/commande/card.php                 | 67 ++++++++++++------------
 htdocs/commande/class/commande.class.php | 54 ++++++++++---------
 htdocs/commande/list.php                 |  8 +--
 3 files changed, 68 insertions(+), 61 deletions(-)

diff --git a/htdocs/commande/card.php b/htdocs/commande/card.php
index fbaba482c50..7da702dea23 100644
--- a/htdocs/commande/card.php
+++ b/htdocs/commande/card.php
@@ -2281,7 +2281,15 @@ if ($action == 'create' && $user->rights->commande->creer)
 			$reshook = $hookmanager->executeHooks('addMoreActionsButtons', $parameters, $object, $action); // Note that $action and $object may have been
 			                                                                                          // modified by hook
 			if (empty($reshook)) {
-				// Valid
+				// Send
+				if ($object->statut > Commande::STATUS_DRAFT) {
+					if ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) || $user->rights->commande->order_advance->send)) {
+						print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&amp;action=presend&amp;mode=init">' . $langs->trans('SendByMail') . '</a></div>';
+					} else
+						print '<div class="inline-block divButAction"><a class="butActionRefused" href="#">' . $langs->trans('SendByMail') . '</a></div>';
+				}
+
+			    // Valid
 				if ($object->statut == Commande::STATUS_DRAFT && $object->total_ttc >= 0 && $numlines > 0 &&
 				    ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->commande->creer))
 			       	|| (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->commande->order_advance->validate)))
@@ -2300,14 +2308,29 @@ if ($action == 'create' && $user->rights->commande->creer)
 				{
 					print '<a class="butAction" href="' . DOL_URL_ROOT . '/comm/action/card.php?action=create&amp;origin=' . $object->element . '&amp;originid=' . $object->id . '&amp;socid=' . $object->socid . '">' . $langs->trans("AddAction") . '</a>';
 				}
-				// Send
-				if ($object->statut > Commande::STATUS_DRAFT) {
-					if ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) || $user->rights->commande->order_advance->send)) {
-						print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&amp;action=presend&amp;mode=init">' . $langs->trans('SendByMail') . '</a></div>';
-					} else
-						print '<div class="inline-block divButAction"><a class="butActionRefused" href="#">' . $langs->trans('SendByMail') . '</a></div>';
+				
+				// Create intervention
+				if ($conf->ficheinter->enabled) {
+					$langs->load("interventions");
+
+					if ($object->statut > Commande::STATUS_DRAFT && $object->statut < Commande::STATUS_CLOSED && $object->getNbOfServicesLines() > 0) {
+						if ($user->rights->ficheinter->creer) {
+							print '<div class="inline-block divButAction"><a class="butAction" href="' . DOL_URL_ROOT . '/fichinter/card.php?action=create&amp;origin=' . $object->element . '&amp;originid=' . $object->id . '&amp;socid=' . $object->socid . '">' . $langs->trans('AddIntervention') . '</a></div>';
+						} else {
+							print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="' . dol_escape_htmltag($langs->trans("NotAllowed")) . '">' . $langs->trans('AddIntervention') . '</a></div>';
+						}
+					}
 				}
 
+				// Create contract
+				if ($conf->contrat->enabled && ($object->statut == Commande::STATUS_VALIDATED || $object->statut == Commande::STATUS_ACCEPTED)) {
+				    $langs->load("contracts");
+				
+				    if ($user->rights->contrat->creer) {
+				        print '<div class="inline-block divButAction"><a class="butAction" href="' . DOL_URL_ROOT . '/contrat/card.php?action=create&amp;origin=' . $object->element . '&amp;originid=' . $object->id . '&amp;socid=' . $object->socid . '">' . $langs->trans('AddContract') . '</a></div>';
+				    }
+				}
+				
 				// Ship
 				$numshipping = 0;
 				if (! empty($conf->expedition->enabled)) {
@@ -2327,31 +2350,14 @@ if ($action == 'create' && $user->rights->commande->creer)
 					}
 				}
 
-				// Create intervention
-				if ($conf->ficheinter->enabled) {
-					$langs->load("interventions");
-
-					if ($object->statut > Commande::STATUS_DRAFT && $object->statut < Commande::STATUS_CLOSED && $object->getNbOfServicesLines() > 0) {
-						if ($user->rights->ficheinter->creer) {
-							print '<div class="inline-block divButAction"><a class="butAction" href="' . DOL_URL_ROOT . '/fichinter/card.php?action=create&amp;origin=' . $object->element . '&amp;originid=' . $object->id . '&amp;socid=' . $object->socid . '">' . $langs->trans('AddIntervention') . '</a></div>';
-						} else {
-							print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="' . dol_escape_htmltag($langs->trans("NotAllowed")) . '">' . $langs->trans('AddIntervention') . '</a></div>';
-						}
-					}
-				}
-
 				// Reopen a closed order
 				if (($object->statut == Commande::STATUS_CLOSED || $object->statut == Commande::STATUS_CANCELED) && $user->rights->commande->creer) {
 					print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER['PHP_SELF'] . '?id=' . $object->id . '&amp;action=reopen">' . $langs->trans('ReOpen') . '</a></div>';
 				}
 
-				// Create contract
-				if ($conf->contrat->enabled && ($object->statut == Commande::STATUS_VALIDATED || $object->statut == Commande::STATUS_ACCEPTED)) {
-					$langs->load("contracts");
-
-					if ($user->rights->contrat->creer) {
-						print '<div class="inline-block divButAction"><a class="butAction" href="' . DOL_URL_ROOT . '/contrat/card.php?action=create&amp;origin=' . $object->element . '&amp;originid=' . $object->id . '&amp;socid=' . $object->socid . '">' . $langs->trans('AddContract') . '</a></div>';
-					}
+				// Set to shipped
+				if (($object->statut == Commande::STATUS_VALIDATED || $object->statut == Commande::STATUS_ACCEPTED) && $user->rights->commande->cloturer) {
+					print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&amp;action=shipped">' . $langs->trans('ClassifyShipped') . '</a></div>';
 				}
 
 				// Create bill and Classify billed
@@ -2360,16 +2366,11 @@ if ($action == 'create' && $user->rights->commande->creer)
 					if (! empty($conf->facture->enabled) && $user->rights->facture->creer && empty($conf->global->WORKFLOW_DISABLE_CREATE_INVOICE_FROM_ORDER)) {
 						print '<div class="inline-block divButAction"><a class="butAction" href="' . DOL_URL_ROOT . '/compta/facture.php?action=create&amp;origin=' . $object->element . '&amp;originid=' . $object->id . '&amp;socid=' . $object->socid . '">' . $langs->trans("CreateBill") . '</a></div>';
 					}
-					if ($user->rights->commande->creer && $object->statut > Commande::STATUS_ACCEPTED && empty($conf->global->WORKFLOW_DISABLE_CLASSIFY_BILLED_FROM_ORDER) && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT)) {
+					if ($user->rights->commande->creer && $object->statut >= Commande::STATUS_VALIDATED && empty($conf->global->WORKFLOW_DISABLE_CLASSIFY_BILLED_FROM_ORDER) && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT)) {
 						print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&amp;action=classifybilled">' . $langs->trans("ClassifyBilled") . '</a></div>';
 					}
 				}
 
-				// Set to shipped
-				if (($object->statut == Commande::STATUS_VALIDATED || $object->statut == Commande::STATUS_ACCEPTED) && $user->rights->commande->cloturer) {
-					print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&amp;action=shipped">' . $langs->trans('ClassifyShipped') . '</a></div>';
-				}
-
 				// Clone
 				if ($user->rights->commande->creer) {
 					print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER['PHP_SELF'] . '?id=' . $object->id . '&amp;socid=' . $object->socid . '&amp;action=clone&amp;object=order">' . $langs->trans("ToClone") . '</a></div>';
diff --git a/htdocs/commande/class/commande.class.php b/htdocs/commande/class/commande.class.php
index 1ee2cad12ec..8176d1f3c63 100644
--- a/htdocs/commande/class/commande.class.php
+++ b/htdocs/commande/class/commande.class.php
@@ -2865,79 +2865,85 @@ class Commande extends CommonOrder
      */
     function getLibStatut($mode)
     {
-        return $this->LibStatut($this->statut,$this->facturee,$mode);
+        if ($this->facturee && empty($this->billed)) $this->billed=$this->facturee; // For backward compatibility
+        return $this->LibStatut($this->statut,$this->billed,$mode);
     }
 
     /**
      *	Return label of status
      *
-     *	@param		int		$statut      	Id statut
-     *  @param      int		$billed    		If invoiced
-     *	@param      int		$mode        	0=libelle long, 1=libelle court, 2=Picto + Libelle court, 3=Picto, 4=Picto + Libelle long, 5=Libelle court + Picto
-     *  @return     string					Label of status
+     *	@param		int		$statut      	  Id statut
+     *  @param      int		$billed    		  If invoiced
+     *	@param      int		$mode        	  0=libelle long, 1=libelle court, 2=Picto + Libelle court, 3=Picto, 4=Picto + Libelle long, 5=Libelle court + Picto
+     *  @param      int     $donotshowbilled  Do not show billed status after order status
+     *  @return     string					  Label of status
      */
-    function LibStatut($statut,$billed,$mode)
+    function LibStatut($statut,$billed,$mode,$donotshowbilled=0)
     {
         global $langs, $conf;
+        
+        $billedtext = '';
+        if (empty($donotshowbilled)) $billedtext .= ($billed?' - '.$langs->trans("Billed"):'');
+
         //print 'x'.$statut.'-'.$billed;
         if ($mode == 0)
         {
             if ($statut==self::STATUS_CANCELED) return $langs->trans('StatusOrderCanceled');
             if ($statut==self::STATUS_DRAFT) return $langs->trans('StatusOrderDraft');
-            if ($statut==self::STATUS_VALIDATED) return $langs->trans('StatusOrderValidated');
-            if ($statut==self::STATUS_ACCEPTED) return $langs->trans('StatusOrderSentShort');
+            if ($statut==self::STATUS_VALIDATED) return $langs->trans('StatusOrderValidated').$billedtext;
+            if ($statut==self::STATUS_ACCEPTED) return $langs->trans('StatusOrderSentShort').$billedtext;
             if ($statut==self::STATUS_CLOSED && (! $billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return $langs->trans('StatusOrderToBill');
-            if ($statut==self::STATUS_CLOSED && ($billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return $langs->trans('StatusOrderProcessed').' - '.$langs->trans("Billed");
+            if ($statut==self::STATUS_CLOSED && ($billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return $langs->trans('StatusOrderProcessed').$billedtext;
             if ($statut==self::STATUS_CLOSED && (! empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return $langs->trans('StatusOrderProcessed');
         }
         elseif ($mode == 1)
         {
             if ($statut==self::STATUS_CANCELED) return $langs->trans('StatusOrderCanceledShort');
             if ($statut==self::STATUS_DRAFT) return $langs->trans('StatusOrderDraftShort');
-            if ($statut==self::STATUS_VALIDATED) return $langs->trans('StatusOrderValidatedShort');
-            if ($statut==self::STATUS_ACCEPTED) return $langs->trans('StatusOrderSentShort');
+            if ($statut==self::STATUS_VALIDATED) return $langs->trans('StatusOrderValidatedShort').$billedtext;
+            if ($statut==self::STATUS_ACCEPTED) return $langs->trans('StatusOrderSentShort').$billedtext;
             if ($statut==self::STATUS_CLOSED && (! $billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return $langs->trans('StatusOrderToBillShort');
-            if ($statut==self::STATUS_CLOSED && ($billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return $langs->trans('StatusOrderProcessed').' - '.$langs->trans("Billed");
+            if ($statut==self::STATUS_CLOSED && ($billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return $langs->trans('StatusOrderProcessed').$billedtext;
             if ($statut==self::STATUS_CLOSED && (! empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return $langs->trans('StatusOrderProcessed');
         }
         elseif ($mode == 2)
         {
             if ($statut==self::STATUS_CANCELED) return img_picto($langs->trans('StatusOrderCanceled'),'statut5').' '.$langs->trans('StatusOrderCanceledShort');
             if ($statut==self::STATUS_DRAFT) return img_picto($langs->trans('StatusOrderDraft'),'statut0').' '.$langs->trans('StatusOrderDraftShort');
-            if ($statut==self::STATUS_VALIDATED) return img_picto($langs->trans('StatusOrderValidated'),'statut1').' '.$langs->trans('StatusOrderValidatedShort');
-            if ($statut==self::STATUS_ACCEPTED) return img_picto($langs->trans('StatusOrderSent'),'statut3').' '.$langs->trans('StatusOrderSentShort');
+            if ($statut==self::STATUS_VALIDATED) return img_picto($langs->trans('StatusOrderValidated'),'statut1').' '.$langs->trans('StatusOrderValidatedShort').$billedtext;
+            if ($statut==self::STATUS_ACCEPTED) return img_picto($langs->trans('StatusOrderSent'),'statut3').' '.$langs->trans('StatusOrderSentShort').$billedtext;
             if ($statut==self::STATUS_CLOSED && (! $billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return img_picto($langs->trans('StatusOrderToBill'),'statut7').' '.$langs->trans('StatusOrderToBillShort');
-            if ($statut==self::STATUS_CLOSED && ($billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return img_picto($langs->trans('StatusOrderProcessed').' - '.$langs->trans("Billed"),'statut6').' '.$langs->trans('StatusOrderProcessed').' - '.$langs->trans("Billed");
+            if ($statut==self::STATUS_CLOSED && ($billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return img_picto($langs->trans('StatusOrderProcessed').$billedtext,'statut6').' '.$langs->trans('StatusOrderProcessed').$billedtext;
             if ($statut==self::STATUS_CLOSED && (! empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return img_picto($langs->trans('StatusOrderProcessed'),'statut6').' '.$langs->trans('StatusOrderProcessedShort');
         }
         elseif ($mode == 3)
         {
             if ($statut==self::STATUS_CANCELED) return img_picto($langs->trans('StatusOrderCanceled'),'statut5');
             if ($statut==self::STATUS_DRAFT) return img_picto($langs->trans('StatusOrderDraft'),'statut0');
-            if ($statut==self::STATUS_VALIDATED) return img_picto($langs->trans('StatusOrderValidated'),'statut1');
-            if ($statut==self::STATUS_ACCEPTED) return img_picto($langs->trans('StatusOrderSentShort'),'statut3');
+            if ($statut==self::STATUS_VALIDATED) return img_picto($langs->trans('StatusOrderValidated').$billedtext,'statut1');
+            if ($statut==self::STATUS_ACCEPTED) return img_picto($langs->trans('StatusOrderSentShort').$billedtext,'statut3');
             if ($statut==self::STATUS_CLOSED && (! $billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return img_picto($langs->trans('StatusOrderToBill'),'statut7');
-            if ($statut==self::STATUS_CLOSED && ($billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return img_picto($langs->trans('StatusOrderProcessed').' - '.$langs->trans("Billed"),'statut6');
+            if ($statut==self::STATUS_CLOSED && ($billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return img_picto($langs->trans('StatusOrderProcessed').$billedtext,'statut6');
             if ($statut==self::STATUS_CLOSED && (! empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return img_picto($langs->trans('StatusOrderProcessed'),'statut6');
         }
         elseif ($mode == 4)
         {
             if ($statut==self::STATUS_CANCELED) return img_picto($langs->trans('StatusOrderCanceled'),'statut5').' '.$langs->trans('StatusOrderCanceled');
             if ($statut==self::STATUS_DRAFT) return img_picto($langs->trans('StatusOrderDraft'),'statut0').' '.$langs->trans('StatusOrderDraft');
-            if ($statut==self::STATUS_VALIDATED) return img_picto($langs->trans('StatusOrderValidated'),'statut1').' '.$langs->trans('StatusOrderValidated');
-            if ($statut==self::STATUS_ACCEPTED) return img_picto($langs->trans('StatusOrderSentShort'),'statut3').' '.$langs->trans('StatusOrderSent');
+            if ($statut==self::STATUS_VALIDATED) return img_picto($langs->trans('StatusOrderValidated').$billedtext,'statut1').' '.$langs->trans('StatusOrderValidated').$billedtext;
+            if ($statut==self::STATUS_ACCEPTED) return img_picto($langs->trans('StatusOrderSentShort').$billedtext,'statut3').' '.$langs->trans('StatusOrderSent').$billedtext;
             if ($statut==self::STATUS_CLOSED && (! $billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return img_picto($langs->trans('StatusOrderToBill'),'statut7').' '.$langs->trans('StatusOrderToBill');
-            if ($statut==self::STATUS_CLOSED && ($billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return img_picto($langs->trans('StatusOrderToBill').' - '.$langs->trans("Billed"),'statut6').' '.$langs->trans('StatusOrderToBill').' - '.$langs->trans("Billed");
+            if ($statut==self::STATUS_CLOSED && ($billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return img_picto($langs->trans('StatusOrderToBill').$billedtext,'statut6').' '.$langs->trans('StatusOrderToBill').$billedtext;
             if ($statut==self::STATUS_CLOSED && (! empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return img_picto($langs->trans('StatusOrderProcessed'),'statut6').' '.$langs->trans('StatusOrderProcessed');
         }
         elseif ($mode == 5)
         {
             if ($statut==self::STATUS_CANCELED) return '<span class="hideonsmartphone">'.$langs->trans('StatusOrderCanceledShort').' </span>'.img_picto($langs->trans('StatusOrderCanceled'),'statut5');
             if ($statut==self::STATUS_DRAFT) return '<span class="hideonsmartphone">'.$langs->trans('StatusOrderDraftShort').' </span>'.img_picto($langs->trans('StatusOrderDraft'),'statut0');
-            if ($statut==self::STATUS_VALIDATED) return '<span class="hideonsmartphone">'.$langs->trans('StatusOrderValidatedShort').' </span>'.img_picto($langs->trans('StatusOrderValidated'),'statut1');
-            if ($statut==self::STATUS_ACCEPTED) return '<span class="hideonsmartphone">'.$langs->trans('StatusOrderSentShort').' </span>'.img_picto($langs->trans('StatusOrderSent'),'statut3');
+            if ($statut==self::STATUS_VALIDATED) return '<span class="hideonsmartphone">'.$langs->trans('StatusOrderValidatedShort').$billedtext.' </span>'.img_picto($langs->trans('StatusOrderValidated').$billedtext,'statut1');
+            if ($statut==self::STATUS_ACCEPTED) return '<span class="hideonsmartphone">'.$langs->trans('StatusOrderSentShort').$billedtext.' </span>'.img_picto($langs->trans('StatusOrderSent').$billedtext,'statut3');
             if ($statut==self::STATUS_CLOSED && (! $billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return '<span class="hideonsmartphone">'.$langs->trans('StatusOrderToBillShort').' </span>'.img_picto($langs->trans('StatusOrderToBill'),'statut7');
-            if ($statut==self::STATUS_CLOSED && ($billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return '<span class="hideonsmartphone">'.$langs->trans('StatusOrderToBillShort').' - '.$langs->trans("Billed").' </span>'.img_picto($langs->trans('StatusOrderToBill').' - '.$langs->trans("Billed"),'statut6');
+            if ($statut==self::STATUS_CLOSED && ($billed && empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return '<span class="hideonsmartphone">'.$langs->trans('StatusOrderToBillShort').$billedtext.' </span>'.img_picto($langs->trans('StatusOrderToBill').$billedtext,'statut6');
             if ($statut==self::STATUS_CLOSED && (! empty($conf->global->WORKFLOW_BILL_ON_SHIPMENT))) return '<span class="hideonsmartphone">'.$langs->trans('StatusOrderProcessedShort').' </span>'.img_picto($langs->trans('StatusOrderProcessed'),'statut6');
         }
     }
diff --git a/htdocs/commande/list.php b/htdocs/commande/list.php
index 44c5a870ec4..b35aa1628f3 100644
--- a/htdocs/commande/list.php
+++ b/htdocs/commande/list.php
@@ -136,7 +136,7 @@ llxHeader('',$langs->trans("Orders"),$help_url);
 $sql = 'SELECT';
 if ($sall || $search_product_category > 0) $sql = 'SELECT DISTINCT';
 $sql.= ' s.nom as name, s.rowid as socid, s.client, s.code_client, c.rowid, c.ref, c.total_ht, c.tva as total_tva, c.total_ttc, c.ref_client,';
-$sql.= ' c.date_valid, c.date_commande, c.note_private, c.date_livraison as date_delivery, c.fk_statut, c.facture as facturee';
+$sql.= ' c.date_valid, c.date_commande, c.note_private, c.date_livraison as date_delivery, c.fk_statut, c.facture as billed';
 $sql.= ' FROM '.MAIN_DB_PREFIX.'societe as s';
 $sql.= ', '.MAIN_DB_PREFIX.'commande as c';
 if ($sall || $search_product_category > 0) $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'commandedet as pd ON c.rowid=pd.fk_commande';
@@ -559,7 +559,7 @@ if ($resql)
 		{
 			if ($user->rights->facture->creer)
 			{
-				if (($objp->fk_statut > 0 && $objp->fk_statut < 3) || ($objp->fk_statut == 3 && $objp->facturee == 0))
+				if (($objp->fk_statut > 0 && $objp->fk_statut < 3) || ($objp->fk_statut == 3 && $objp->billed == 0))
 				{
 					print '&nbsp;<a href="'.DOL_URL_ROOT.'/commande/orderstoinvoice.php?socid='.$companystatic->id.'">';
 					print img_picto($langs->trans("CreateInvoiceForThisCustomer").' : '.$companystatic->name, 'object_bill', 'hideonsmartphone').'</a>';
@@ -582,10 +582,10 @@ if ($resql)
 		print '<td align="right" class="nowrap">'.price($objp->total_ht).'</td>';
 
 		// Statut
-		print '<td align="right" class="nowrap">'.$generic_commande->LibStatut($objp->fk_statut,$objp->facturee,5).'</td>';
+		print '<td align="right" class="nowrap">'.$generic_commande->LibStatut($objp->fk_statut, $objp->billed, 5, 1).'</td>';
 
 		// Billed
-		print '<td align="center">'.yn($objp->facturee).'</td>';
+		print '<td align="center">'.yn($objp->billed).'</td>';
 		
 		print '<td></td>';
 
-- 
GitLab


From 136724c083520350d4da95295d93487b85c6c34f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= <frederic.france@free.fr>
Date: Mon, 30 Nov 2015 12:07:33 +0100
Subject: [PATCH 042/197] cleaning tarvis.yml

---
 .travis.yml | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index a31aff2eda7..a865cf2b4de 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -29,8 +29,7 @@ matrix:
     - php: 7.0
 
 env:
-# - DB=mysql PHPCS_VERSION=">=1.5.1,<2.0"
- - DB=mysql PHPCS_VERSION=">=2.0"
+ - DB=mysql
 # - DB=postgres  
 
 before_script: 
@@ -48,10 +47,9 @@ before_script:
  - cp composer.json composer.json.old
  - cp composer.json.phpcs composer.json
  - composer self-update
- - composer require squizlabs/php_codesniffer:${PHPCS_VERSION}
+ - composer require squizlabs/php_codesniffer:">=2.0"
  - composer install
  - phpenv rehash
- - ln -s `pwd` htdocs/includes/squizlabs/php_codesniffer/CodeSniffer/Standards/PHPCompatibility
  - htdocs/includes/squizlabs/php_codesniffer/scripts/phpcs --version
 # - which phpcs
 # - phpcs --version
-- 
GitLab


From 94101412e98eba899b5562028bfd109673b536b1 Mon Sep 17 00:00:00 2001
From: Romain DESCHAMPS <r.deschamps@patas-monkey.com>
Date: Mon, 30 Nov 2015 12:20:14 +0100
Subject: [PATCH 043/197] Progress column not wide enough for 100%

Progress column not wide enough for 100%
---
 htdocs/core/modules/project/doc/pdf_baleine.modules.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/htdocs/core/modules/project/doc/pdf_baleine.modules.php b/htdocs/core/modules/project/doc/pdf_baleine.modules.php
index f684f0f786d..4b49397716f 100644
--- a/htdocs/core/modules/project/doc/pdf_baleine.modules.php
+++ b/htdocs/core/modules/project/doc/pdf_baleine.modules.php
@@ -79,7 +79,7 @@ class pdf_baleine extends ModelePDFProjects
 		$this->posxref=$this->marge_gauche+1;
 		$this->posxlabel=$this->marge_gauche+25;
 		$this->posxworkload=$this->marge_gauche+100;
-		$this->posxprogress=$this->marge_gauche+140;
+		$this->posxprogress=$this->marge_gauche+130;
 		$this->posxdatestart=$this->marge_gauche+150;
 		$this->posxdateend=$this->marge_gauche+170;
 	}
-- 
GitLab


From 5dab92836b53cc11fee3eb9c1eb2e9f876b7c496 Mon Sep 17 00:00:00 2001
From: Sof <virtualsof@yahoo.fr>
Date: Mon, 30 Nov 2015 12:27:58 +0100
Subject: [PATCH 044/197] FIX: Warning: implode(): Invalid arguments passed

 Declare array type before implode to avoid warning
---
 htdocs/core/class/extrafields.class.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/htdocs/core/class/extrafields.class.php b/htdocs/core/class/extrafields.class.php
index 5cdc9f39a14..aed58a6556d 100644
--- a/htdocs/core/class/extrafields.class.php
+++ b/htdocs/core/class/extrafields.class.php
@@ -1551,7 +1551,7 @@ class ExtraFields
 				else if (in_array($key_type,array('checkbox')))
 				{
 					$value_arr=GETPOST($keysuffix."options_".$key.$keyprefix);
-					$value_key=implode(',', $value_arr);
+					$value_key=implode(',', (array)$value_arr);
 				}
 				else if (in_array($key_type,array('price','double')))
 				{
-- 
GitLab


From 9e988ee03eeb535087c2dbd6b77ded80664ebb13 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= <frederic.france@free.fr>
Date: Mon, 30 Nov 2015 12:35:19 +0100
Subject: [PATCH 045/197] Update .travis.yml

---
 .travis.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.travis.yml b/.travis.yml
index a865cf2b4de..1769f2f0504 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -47,7 +47,7 @@ before_script:
  - cp composer.json composer.json.old
  - cp composer.json.phpcs composer.json
  - composer self-update
- - composer require squizlabs/php_codesniffer:">=2.0"
+ - composer require squizlabs/php_codesniffer:"^2.0.0"
  - composer install
  - phpenv rehash
  - htdocs/includes/squizlabs/php_codesniffer/scripts/phpcs --version
-- 
GitLab


From 09b61fd185d656ea2e82f461ffdddd76daefe54f Mon Sep 17 00:00:00 2001
From: Sof <virtualsof@yahoo.fr>
Date: Mon, 30 Nov 2015 18:06:15 +0100
Subject: [PATCH 046/197] Update extrafields.class.php

---
 htdocs/core/class/extrafields.class.php | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/htdocs/core/class/extrafields.class.php b/htdocs/core/class/extrafields.class.php
index aed58a6556d..6a397c1245f 100644
--- a/htdocs/core/class/extrafields.class.php
+++ b/htdocs/core/class/extrafields.class.php
@@ -1551,7 +1551,9 @@ class ExtraFields
 				else if (in_array($key_type,array('checkbox')))
 				{
 					$value_arr=GETPOST($keysuffix."options_".$key.$keyprefix);
-					$value_key=implode(',', (array)$value_arr);
+					// Make sure we get an array even if there's only one checkbox
+					$value_arr=(array)$value_arr
+					$value_key=implode(',', $value_arr);
 				}
 				else if (in_array($key_type,array('price','double')))
 				{
-- 
GitLab


From 292d3ba9591f7f7b0f4b8d0f2cd6739a5254ae66 Mon Sep 17 00:00:00 2001
From: Sof <virtualsof@yahoo.fr>
Date: Mon, 30 Nov 2015 20:28:36 +0100
Subject: [PATCH 047/197] FIX: Cannot set property '_renderItem of undefined

http://stackoverflow.com/questions/9513251/cannot-set-property-renderitem-of-undefined-jquery-ui-autocomplete-with-html
---
 htdocs/core/lib/ajax.lib.php | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/htdocs/core/lib/ajax.lib.php b/htdocs/core/lib/ajax.lib.php
index 44de58ed4a8..fa150e6fbb7 100644
--- a/htdocs/core/lib/ajax.lib.php
+++ b/htdocs/core/lib/ajax.lib.php
@@ -170,8 +170,8 @@ function ajax_autocompleter($selected, $htmlname, $url, $urloption='', $minLengt
     					}
     					,delay: 500
 					}).data("ui-autocomplete")._renderItem = function( ul, item ) {
-						return $("<li></li>")
-						.data( "item.autocomplete", item )
+						return $("<li>")
+						.data( "ui-autocomplete-item", item ) // jQuery UI > 1.10.0
 						.append( \'<a><span class="tag">\' + item.label + "</span></a>" )
 						.appendTo(ul);
 					};
-- 
GitLab


From daa83997640f5df599d4ba7a52283bddc3752857 Mon Sep 17 00:00:00 2001
From: Sof <virtualsof@yahoo.fr>
Date: Mon, 30 Nov 2015 20:31:42 +0100
Subject: [PATCH 048/197] FIX: Cannot set property '_renderItem of undefined

http://stackoverflow.com/questions/9513251/cannot-set-property-renderitem-of-undefined-jquery-ui-autocomplete-with-html
---
 htdocs/core/js/lib_head.js | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/htdocs/core/js/lib_head.js b/htdocs/core/js/lib_head.js
index eab995d062b..ad799e72bd0 100644
--- a/htdocs/core/js/lib_head.js
+++ b/htdocs/core/js/lib_head.js
@@ -864,8 +864,8 @@ function confirmConstantAction(action, url, code, input, box, entity, yesButton,
                 .addClass( "ui-widget ui-widget-content ui-corner-left dolibarrcombobox" );
 
             input.data("ui-autocomplete")._renderItem = function( ul, item ) {
-                return $("<li></li>")
-                    .data( "item.autocomplete", item )
+                return $("<li>")
+                    .data( "ui-autocomplete-item", item ) // jQuery UI > 1.10.0
                     .append( "<a>" + item.label + "</a>" )
                     .appendTo( ul );
             };
-- 
GitLab


From b1122b55d464a170c0c846c20b91d1ad67e93be6 Mon Sep 17 00:00:00 2001
From: aspangaro <alexandre.spangaro@gmail.com>
Date: Mon, 30 Nov 2015 21:07:27 +0100
Subject: [PATCH 049/197] Fix : accountancy code on finance journal is not a
 constant

---
 htdocs/accountancy/journal/bankjournal.php | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/htdocs/accountancy/journal/bankjournal.php b/htdocs/accountancy/journal/bankjournal.php
index 4653127a993..d3ce707ac4c 100644
--- a/htdocs/accountancy/journal/bankjournal.php
+++ b/htdocs/accountancy/journal/bankjournal.php
@@ -114,6 +114,11 @@ $chargestatic = new ChargeSociales($db);
 $paymentvatstatic = new TVA($db);
 $paymentsalstatic = new PaymentSalary($db);
 
+// Get code of finance journal
+$bank_code_journal = new Account($db);
+$result=$bank_code_journal->fetch($id_bank_account);
+$journal=$bank_code_journal->accountancy_journal;
+
 dol_syslog("accountancy/journal/bankjournal.php:: sql=" . $sql, LOG_DEBUG);
 $result = $db->query($sql);
 if ($result) {
@@ -280,7 +285,7 @@ if ($action == 'writebookkeeping')
 			$bookkeeping->sens = ($mt >= 0) ? 'D' : 'C';
 			$bookkeeping->debit = ($mt >= 0 ? $mt : 0);
 			$bookkeeping->credit = ($mt < 0 ? - $mt : 0);
-			$bookkeeping->code_journal = $conf->global->ACCOUNTING_BANK_JOURNAL;
+			$bookkeeping->code_journal = $journal;
 			$bookkeeping->fk_user_author = $user->id;
 
 			if ($tabtype[$key] == 'payment') {
@@ -331,7 +336,7 @@ if ($action == 'writebookkeeping')
 			$bookkeeping->sens = ($mt < 0) ? 'D' : 'C';
 			$bookkeeping->debit = ($mt < 0 ? - $mt : 0);
 			$bookkeeping->credit = ($mt >= 0) ? $mt : 0;
-			$bookkeeping->code_journal = $conf->global->ACCOUNTING_BANK_JOURNAL;
+			$bookkeeping->code_journal = $journal;
 			$bookkeeping->fk_user_author = $user->id;
 
 			if ($tabtype[$key] == 'sc') {
@@ -403,7 +408,6 @@ if ($action == 'writebookkeeping')
 // Export
 if ($action == 'export_csv') {
 	$sep = $conf->global->ACCOUNTING_EXPORT_SEPARATORCSV;
-	$journal = $conf->global->ACCOUNTING_BANK_JOURNAL;
 
 	header('Content-Type: text/csv');
 	header('Content-Disposition: attachment;filename=journal_banque.csv');
@@ -533,7 +537,7 @@ if ($action == 'export_csv') {
 
 	llxHeader('', $langs->trans("FinanceJournal"));
 
-	$nom = $langs->trans("FinanceJournal");
+	$nom = $langs->trans("FinanceJournal" . ' - ' . $journal);
 	$builddate = time();
 	$description = $langs->trans("DescFinanceJournal") . '<br>';
 	$period = $form->select_date($date_start, 'date_start', 0, 0, 0, '', 1, 0, 1) . ' - ' . $form->select_date($date_end, 'date_end', 0, 0, 0, '', 1, 0, 1);
-- 
GitLab


From de730c976259c3cedf2cc684e1e520b93dc44ed2 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Mon, 30 Nov 2015 21:20:45 +0100
Subject: [PATCH 050/197] NEW Introduce cost price on product.

---
 htdocs/core/class/html.form.class.php         | 15 ++++---
 htdocs/core/lib/product.lib.php               | 10 +++--
 .../fourn/class/fournisseur.product.class.php | 16 ++++----
 .../install/mysql/migration/3.8.0-3.9.0.sql   |  2 +
 htdocs/install/mysql/tables/llx_product.sql   |  5 ++-
 .../tables/llx_product_fournisseur_price.sql  |  8 ++--
 htdocs/langs/en_US/products.lang              |  4 ++
 htdocs/product/class/product.class.php        |  3 +-
 htdocs/product/fournisseurs.php               | 40 +++++++++++++++++--
 htdocs/user/card.php                          | 10 ++++-
 10 files changed, 83 insertions(+), 30 deletions(-)

diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php
index bada8627ee0..593d4100c22 100644
--- a/htdocs/core/class/html.form.class.php
+++ b/htdocs/core/class/html.form.class.php
@@ -77,7 +77,7 @@ class Form
      * @param   string	$preselected	Name of Value to show/edit (not used in this function)
      * @param	object	$object			Object
      * @param	boolean	$perm			Permission to allow button to edit parameter. Set it to 0 to have a not edited field.
-     * @param	string	$typeofdata		Type of data ('string' by default, 'email', 'numeric:99', 'text' or 'textarea:rows:cols', 'day' or 'datepicker', 'ckeditor:dolibarr_zzz:width:height:savemethod:1:rows:cols', 'select;xxx[:class]'...)
+     * @param	string	$typeofdata		Type of data ('string' by default, 'email', 'amount:99', 'numeric:99', 'text' or 'textarea:rows:cols', 'day' or 'datepicker', 'ckeditor:dolibarr_zzz:width:height:savemethod:1:rows:cols', 'select;xxx[:class]'...)
      * @param	string	$moreparam		More param to add on a href URL
      * @return	string					HTML edit field
      */
@@ -122,7 +122,7 @@ class Form
      * @param	string	$value			Value to show/edit
      * @param	object	$object			Object
      * @param	boolean	$perm			Permission to allow button to edit parameter
-     * @param	string	$typeofdata		Type of data ('string' by default, 'amount', 'email', 'numeric:99', 'text' or 'textarea:rows:cols', 'day' or 'datepicker', 'ckeditor:dolibarr_zzz:width:height:savemethod:toolbarstartexpanded:rows:cols', 'select:xxx'...)
+     * @param	string	$typeofdata		Type of data ('string' by default, 'email', 'amount:99', 'numeric:99', 'text' or 'textarea:rows:cols', 'day' or 'datepicker', 'ckeditor:dolibarr_zzz:width:height:savemethod:toolbarstartexpanded:rows:cols', 'select:xxx'...)
      * @param	string	$editvalue		When in edit mode, use this value as $value instead of value (for example, you can provide here a formated price instead of value). Use '' to use same than $value
      * @param	object	$extObject		External object
      * @param	mixed	$custommsg		String or Array of custom messages : eg array('success' => 'MyMessage', 'error' => 'MyMessage')
@@ -154,11 +154,16 @@ class Form
                 $ret.='<input type="hidden" name="id" value="'.$object->id.'">';
                 $ret.='<table class="nobordernopadding" cellpadding="0" cellspacing="0">';
                 $ret.='<tr><td>';
-                if (preg_match('/^(string|email|numeric|amount)/',$typeofdata))
+                if (preg_match('/^(string|email)/',$typeofdata))
                 {
                     $tmp=explode(':',$typeofdata);
                     $ret.='<input type="text" id="'.$htmlname.'" name="'.$htmlname.'" value="'.($editvalue?$editvalue:$value).'"'.($tmp[1]?' size="'.$tmp[1].'"':'').'>';
                 }
+                else if (preg_match('/^(numeric|amount)/',$typeofdata))
+                {
+                    $tmp=explode(':',$typeofdata);
+                    $ret.='<input type="text" id="'.$htmlname.'" name="'.$htmlname.'" value="'.price(price2num($editvalue?$editvalue:$value)).'"'.($tmp[1]?' size="'.$tmp[1].'"':'').'>';
+                }
                 else if (preg_match('/^text/',$typeofdata) || preg_match('/^note/',$typeofdata))
                 {
                     $tmp=explode(':',$typeofdata);
@@ -203,8 +208,8 @@ class Form
             }
             else
 			{
-				if ($typeofdata == 'email')   $ret.=dol_print_email($value,0,0,0,0,1);
-                elseif ($typeofdata == 'amount')   $ret.=($value != '' ? price($value,'',$langs,0,-1,-1,$conf->currency) : '');
+				if (preg_match('/^(email)/',$typeofdata))              $ret.=dol_print_email($value,0,0,0,0,1);
+                elseif (preg_match('/^(amount|numeric)/',$typeofdata)) $ret.=($value != '' ? price($value,'',$langs,0,-1,-1,$conf->currency) : '');
                 elseif (preg_match('/^text/',$typeofdata) || preg_match('/^note/',$typeofdata))  $ret.=dol_htmlentitiesbr($value);
                 elseif ($typeofdata == 'day' || $typeofdata == 'datepicker') $ret.=dol_print_date($value,'day');
                 elseif ($typeofdata == 'dayhour' || $typeofdata == 'datehourpicker') $ret.=dol_print_date($value,'dayhour');
diff --git a/htdocs/core/lib/product.lib.php b/htdocs/core/lib/product.lib.php
index 5ca0389455f..73c74cfb97e 100644
--- a/htdocs/core/lib/product.lib.php
+++ b/htdocs/core/lib/product.lib.php
@@ -1,5 +1,5 @@
 <?php
-/* Copyright (C) 2006-2008  Laurent Destailleur     <eldy@users.sourceforge.net>
+/* Copyright (C) 2006-2015  Laurent Destailleur     <eldy@users.sourceforge.net>
  * Copyright (C) 2007       Rodolphe Quiedeville    <rodolphe@quiedeville.org>
  * Copyright (C) 2009-2010  Regis Houssin           <regis.houssin@capnetworks.com>
  * Copyright (C) 2015       Raphaël Doursenaud      <rdoursenaud@gpcsolutions.fr>
@@ -46,14 +46,16 @@ function product_prepare_head($object)
 	$h++;
 
 	$head[$h][0] = DOL_URL_ROOT."/product/price.php?id=".$object->id;
-	$head[$h][1] = $langs->trans("CustomerPrices");
+	$head[$h][1] = $langs->trans("SellingPrices");
 	$head[$h][2] = 'price';
 	$h++;
 
-	if (! empty($conf->fournisseur->enabled) && $user->rights->fournisseur->lire)
+	if ((! empty($conf->fournisseur->enabled) && $user->rights->fournisseur->lire)
+	|| (! empty($conf->margin->enabled) && $user->rights->margin->liretous)
+	)
 	{
 		$head[$h][0] = DOL_URL_ROOT."/product/fournisseurs.php?id=".$object->id;
-		$head[$h][1] = $langs->trans("SuppliersPrices");
+		$head[$h][1] = $langs->trans("BuyingPrices");
 		$head[$h][2] = 'suppliers';
 		$h++;
 	}
diff --git a/htdocs/fourn/class/fournisseur.product.class.php b/htdocs/fourn/class/fournisseur.product.class.php
index d7344787623..424f9ad65d4 100644
--- a/htdocs/fourn/class/fournisseur.product.class.php
+++ b/htdocs/fourn/class/fournisseur.product.class.php
@@ -353,7 +353,7 @@ class ProductFournisseur extends Product
     function fetch_product_fournisseur_price($rowid, $ignore_expression = 0)
     {
         $sql = "SELECT pfp.rowid, pfp.price, pfp.quantity, pfp.unitprice, pfp.remise_percent, pfp.remise, pfp.tva_tx, pfp.fk_availability,";
-        $sql.= " pfp.fk_soc, pfp.ref_fourn, pfp.fk_product, pfp.charges, pfp.unitcharges, pfp.fk_supplier_price_expression, pfp.delivery_time_days"; // , pfp.recuperableonly as fourn_tva_npr";  FIXME this field not exist in llx_product_fournisseur_price
+        $sql.= " pfp.fk_soc, pfp.ref_fourn, pfp.fk_product, pfp.charges, pfp.cost_price, pfp.unitcharges, pfp.fk_supplier_price_expression, pfp.delivery_time_days"; // , pfp.recuperableonly as fourn_tva_npr";  FIXME this field not exist in llx_product_fournisseur_price
         $sql.= " FROM ".MAIN_DB_PREFIX."product_fournisseur_price as pfp";
         $sql.= " WHERE pfp.rowid = ".$rowid;
 
@@ -368,12 +368,12 @@ class ProductFournisseur extends Product
             	$this->fourn_ref				= $obj->ref_fourn; // deprecated
 	            $this->ref_supplier             = $obj->ref_fourn;
             	$this->fourn_price				= $obj->price;
-            	$this->fourn_charges            = $obj->charges;
+            	$this->fourn_charges            = $obj->charges;	// deprecated
             	$this->fourn_qty                = $obj->quantity;
             	$this->fourn_remise_percent     = $obj->remise_percent;
             	$this->fourn_remise             = $obj->remise;
             	$this->fourn_unitprice          = $obj->unitprice;
-            	$this->fourn_unitcharges        = $obj->unitcharges;
+            	$this->fourn_unitcharges        = $obj->unitcharges;	// deprecated
             	$this->fourn_tva_tx					= $obj->tva_tx;
             	$this->product_id				= $obj->fk_product;	// deprecated
             	$this->fk_product				= $obj->fk_product;
@@ -456,9 +456,9 @@ class ProductFournisseur extends Product
                 $prodfourn->fourn_qty				= $record["quantity"];
 				$prodfourn->fourn_remise_percent	= $record["remise_percent"];
 				$prodfourn->fourn_remise			= $record["remise"];
-                $prodfourn->fourn_unitprice			= $record["unitprice"];
-				$prodfourn->fourn_charges           = $record["charges"];
-				$prodfourn->fourn_unitcharges       = $record["unitcharges"];
+				$prodfourn->fourn_unitprice			= $record["unitprice"];
+				$prodfourn->fourn_charges           = $record["charges"];		// deprecated
+				$prodfourn->fourn_unitcharges       = $record["unitcharges"];	// deprecated
                 $prodfourn->fourn_tva_tx			= $record["tva_tx"];
                 $prodfourn->fourn_id				= $record["fourn_id"];
                 $prodfourn->fourn_name				= $record["supplier_name"];
@@ -591,8 +591,8 @@ class ProductFournisseur extends Product
                         $this->fourn_remise_percent     = $record["remise_percent"];
                         $this->fourn_remise             = $record["remise"];
                         $this->fourn_unitprice          = $fourn_unitprice;
-                        $this->fourn_charges            = $record["charges"];
-                        $this->fourn_unitcharges        = $record["unitcharges"];
+                        $this->fourn_charges            = $record["charges"];		// deprecated
+                        $this->fourn_unitcharges        = $record["unitcharges"];	// deprecated
                         $this->fourn_tva_tx             = $record["tva_tx"];
                         $this->fourn_id                 = $record["fourn_id"];
                         $this->fourn_name               = $record["supplier_name"];
diff --git a/htdocs/install/mysql/migration/3.8.0-3.9.0.sql b/htdocs/install/mysql/migration/3.8.0-3.9.0.sql
index 99a042c8c31..1a0bb08d44c 100755
--- a/htdocs/install/mysql/migration/3.8.0-3.9.0.sql
+++ b/htdocs/install/mysql/migration/3.8.0-3.9.0.sql
@@ -97,6 +97,8 @@ ALTER TABLE llx_commande ADD COLUMN fk_warehouse integer DEFAULT NULL AFTER fk_s
 ALTER TABLE llx_commande_fournisseur ADD COLUMN billed smallint DEFAULT 0 AFTER fk_statut;
 ALTER TABLE llx_commande_fournisseur ADD INDEX billed (billed);
 
+ALTER TABLE llx_product ADD COLUMN cost_price	double(24,8) DEFAULT NULL;
+
 ALTER TABLE llx_ecm_directories MODIFY COLUMN fullpath varchar(750);
 ALTER TABLE llx_ecm_directories DROP INDEX idx_ecm_directories;
 ALTER TABLE llx_ecm_directories ADD UNIQUE INDEX uk_ecm_directories (label, fk_parent, entity);
diff --git a/htdocs/install/mysql/tables/llx_product.sql b/htdocs/install/mysql/tables/llx_product.sql
index e34ae887ffc..570bc651b2a 100755
--- a/htdocs/install/mysql/tables/llx_product.sql
+++ b/htdocs/install/mysql/tables/llx_product.sql
@@ -44,8 +44,9 @@ create table llx_product
   price_min					double(24,8) DEFAULT 0,
   price_min_ttc				double(24,8) DEFAULT 0,
   price_base_type			varchar(3)   DEFAULT 'HT',
-  tva_tx					double(6,3),					  -- Default VAT rate of product
-  recuperableonly           integer NOT NULL DEFAULT '0',  -- French NPR VAT
+  cost_price			    double(24,8) DEFAULT NULL,      -- Cost price without tax. Can be used for margin calculation.
+  tva_tx					double(6,3),					-- Default VAT rate of product
+  recuperableonly           integer NOT NULL DEFAULT '0',   -- French NPR VAT
   localtax1_tx				double(6,3)  DEFAULT 0,         -- Spanish local VAT 1
   localtax2_tx				double(6,3)  DEFAULT 0,         -- Spanish local VAT 2
   fk_user_author			integer DEFAULT NULL,			  -- user making creation
diff --git a/htdocs/install/mysql/tables/llx_product_fournisseur_price.sql b/htdocs/install/mysql/tables/llx_product_fournisseur_price.sql
index fb5184715d1..e7cf555d24e 100755
--- a/htdocs/install/mysql/tables/llx_product_fournisseur_price.sql
+++ b/htdocs/install/mysql/tables/llx_product_fournisseur_price.sql
@@ -34,12 +34,12 @@ create table llx_product_fournisseur_price
   remise_percent		double NOT NULL DEFAULT 0,
   remise				double NOT NULL DEFAULT 0,
   unitprice				double(24,8) DEFAULT 0,
-  charges				double(24,8) DEFAULT 0,
-  unitcharges			double(24,8) DEFAULT 0,
+  charges				double(24,8) DEFAULT 0,		-- to store transport cost. Constant PRODUCT_CHARGES must be set to see it.
+  unitcharges			double(24,8) DEFAULT 0,		-- deprecated
   tva_tx				double(6,3) NOT NULL,
   info_bits				integer NOT NULL DEFAULT 0,
   fk_user				integer,
-  fk_supplier_price_expression	integer,                     -- Link to the rule for dynamic price calculation
-  import_key			varchar(14),                  -- Import key
+  fk_supplier_price_expression	integer,            -- Link to the rule for dynamic price calculation
+  import_key			varchar(14),                -- Import key
   delivery_time_days    integer
 )ENGINE=innodb;
diff --git a/htdocs/langs/en_US/products.lang b/htdocs/langs/en_US/products.lang
index ddda0152245..b74db95d722 100644
--- a/htdocs/langs/en_US/products.lang
+++ b/htdocs/langs/en_US/products.lang
@@ -76,6 +76,8 @@ SellingPriceHT=Selling price (net of tax)
 SellingPriceTTC=Selling price (inc. tax)
 PublicPrice=Public price
 CurrentPrice=Current price
+CostPriceDescription=This price (net of tax) can be used to store the average amount this product cost to your company. It may be any price you calculate yourself, for example from the average buying price plus average transportation and acquiring cost.
+CostPriceUsage=In a future version, this value could be used for margin calculation.
 NewPrice=New price
 MinPrice=Min. selling price
 MinPriceHT=Min. selling price (net of tax)
@@ -190,6 +192,8 @@ ClonePricesProduct=Clone main informations and prices
 CloneCompositionProduct=Clone packaged product/service
 ProductIsUsed=This product is used
 NewRefForClone=Ref. of new product/service
+SellingPrices=Selling prices
+BuyingPrices=Buying prices
 CustomerPrices=Customer prices
 SuppliersPrices=Supplier prices
 SuppliersPricesOfProductsOrServices=Supplier prices (of products or services)
diff --git a/htdocs/product/class/product.class.php b/htdocs/product/class/product.class.php
index aaf5aaf1baa..dcd889a0a77 100644
--- a/htdocs/product/class/product.class.php
+++ b/htdocs/product/class/product.class.php
@@ -1563,7 +1563,7 @@ class Product extends CommonObject
 		}
 
 		$sql = "SELECT rowid, ref, ref_ext, label, description, url, note, customcode, fk_country, price, price_ttc,";
-		$sql.= " price_min, price_min_ttc, price_base_type, tva_tx, recuperableonly as tva_npr, localtax1_tx, localtax2_tx, tosell,";
+		$sql.= " price_min, price_min_ttc, price_base_type, cost_price, tva_tx, recuperableonly as tva_npr, localtax1_tx, localtax2_tx, tosell,";
 		$sql.= " tobuy, fk_product_type, duration, seuil_stock_alerte, canvas,";
 		$sql.= " weight, weight_units, length, length_units, surface, surface_units, volume, volume_units, barcode, fk_barcode_type, finished,";
 		$sql.= " accountancy_code_buy, accountancy_code_sell, stock, pmp,";
@@ -1606,6 +1606,7 @@ class Product extends CommonObject
 				$this->price_min				= $obj->price_min;
 				$this->price_min_ttc			= $obj->price_min_ttc;
 				$this->price_base_type			= $obj->price_base_type;
+				$this->cost_price    			= $obj->cost_price;
 				$this->tva_tx					= $obj->tva_tx;
 				//! French VAT NPR
 				$this->tva_npr					= $obj->tva_npr;
diff --git a/htdocs/product/fournisseurs.php b/htdocs/product/fournisseurs.php
index 96aa9aa6311..dab8d8dcf5d 100644
--- a/htdocs/product/fournisseurs.php
+++ b/htdocs/product/fournisseurs.php
@@ -46,6 +46,7 @@ $rowid=GETPOST('rowid','int');
 $action=GETPOST('action', 'alpha');
 $cancel=GETPOST('cancel', 'alpha');
 $socid=GETPOST('socid', 'int');
+$cost_price=GETPOST('cost_price', 'int');
 $backtopage=GETPOST('backtopage','alpha');
 $error=0;
 
@@ -91,17 +92,37 @@ if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'e
 
 if (empty($reshook))
 {
+	if ($action == 'setcost_price')
+	{
+		if ($id)
+		{
+			$result=$object->fetch($id);
+			$result=$object->setValueFrom('cost_price', price2num($cost_price));
+			if ($result > 0)
+			{
+				$object->cost_price = price2num($cost_price);
+				setEventMessage($langs->trans("RecordSaved"));
+			}
+			else
+			{
+				$error++;
+				setEventMessages($object->error, $object->errors, 'errors');
+			}
+		}
+		$action='';
+	}
+	
 	if ($action == 'remove_pf')
 	{
-		if ($rowid)
+		if ($rowid)	// id of product supplier price to remove
 		{
 			$action = '';
-			$result=$product->remove_product_fournisseur_price($rowid);
+			$result=$object->remove_product_fournisseur_price($rowid);
 			if($result > 0){
 				setEventMessage($langs->trans("PriceRemoved"));
 			}else{
 				$error++;
-				setEventMessages($product->error, $product->errors, 'errors');
+				setEventMessages($object->error, $object->errors, 'errors');
 			}
 		}
 	}
@@ -282,6 +303,17 @@ if ($id > 0 || $ref)
 			}
             print '</td></tr>';
 
+			// Cost price. Can be used for margin module for option "calculate margin on explicit cost price
+            // Accountancy sell code
+            print '<tr><td>';
+			$textdesc =$langs->trans("CostPriceDescription");
+			$textdesc.="<br>".$langs->trans("CostPriceUsage");
+			$text=$form->textwithpicto($langs->trans("CostPrice"), $textdesc, 1, 'help', '');
+            print $form->editfieldkey($text,'cost_price',$object->cost_price,$object,$user->rights->produit->creer||$user->rights->service->creer,'amount:6');
+            print '</td><td colspan="2">';
+            print $form->editfieldval($text,'cost_price',$object->cost_price,$object,$user->rights->produit->creer||$user->rights->service->creer,'amount:6');
+            print '</td></tr>';
+            
 			print '</table>';
 
             print '</div>';
@@ -463,7 +495,7 @@ if ($id > 0 || $ref)
 				print '<td><input class="flat" name="delivery_time_days" size="4" value="'.($rowid ? $object->delivery_time_days : '').'">&nbsp;'.$langs->trans('days').'</td>';
 				print '</tr>';
 
-				// Charges ????
+				// Option to define a transport cost on supplier price
 				if ($conf->global->PRODUCT_CHARGES)
 				{
 					if (! empty($conf->margin->enabled))
diff --git a/htdocs/user/card.php b/htdocs/user/card.php
index 9cd92248b87..c7d745a2c94 100644
--- a/htdocs/user/card.php
+++ b/htdocs/user/card.php
@@ -1016,14 +1016,20 @@ if (($action == 'create') || ($action == 'adduserldap'))
 		$langs->load("salaries");
 
 	    // THM
-	    print '<tr><td>'.$langs->trans("THM").'</td>';
+	    print '<tr><td>';
+		$text=$langs->trans("THM");
+		print $form->textwithpicto($text, $langs->trans("THMDescription"), 1, 'help', 'classthm');
+	    print '</td>';
 	    print '<td>';
 	    print '<input size="8" type="text" name="thm" value="'.GETPOST('thm').'">';
 	    print '</td>';
 	    print "</tr>\n";
 
 	    // TJM
-	    print '<tr><td>'.$langs->trans("TJM").'</td>';
+	    print '<tr><td>';
+		$text=$langs->trans("TJM");
+		print $form->textwithpicto($text, $langs->trans("TJMDescription"), 1, 'help', 'classtjm');
+	    print '</td>';
 	    print '<td>';
 	    print '<input size="8" type="text" name="tjm" value="'.GETPOST('tjm').'">';
 	    print '</td>';
-- 
GitLab


From 357bc7a00c18a753dec2f59b059f4ee5a47dd719 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Mon, 30 Nov 2015 21:40:14 +0100
Subject: [PATCH 051/197] Fix color link

---
 htdocs/langs/en_US/products.lang | 2 +-
 htdocs/theme/eldy/style.css.php  | 2 +-
 htdocs/theme/md/style.css.php    | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/htdocs/langs/en_US/products.lang b/htdocs/langs/en_US/products.lang
index b74db95d722..8471e3b0a14 100644
--- a/htdocs/langs/en_US/products.lang
+++ b/htdocs/langs/en_US/products.lang
@@ -76,7 +76,7 @@ SellingPriceHT=Selling price (net of tax)
 SellingPriceTTC=Selling price (inc. tax)
 PublicPrice=Public price
 CurrentPrice=Current price
-CostPriceDescription=This price (net of tax) can be used to store the average amount this product cost to your company. It may be any price you calculate yourself, for example from the average buying price plus average transportation and acquiring cost.
+CostPriceDescription=This price (net of tax) can be used to store the average amount this product cost to your company. It may be any price you calculate yourself, for example from the average buying price plus average production and distribution cost.
 CostPriceUsage=In a future version, this value could be used for margin calculation.
 NewPrice=New price
 MinPrice=Min. selling price
diff --git a/htdocs/theme/eldy/style.css.php b/htdocs/theme/eldy/style.css.php
index c7795841429..bb6a92c61dc 100644
--- a/htdocs/theme/eldy/style.css.php
+++ b/htdocs/theme/eldy/style.css.php
@@ -3044,7 +3044,7 @@ li.cal_event       { border: none; list-style-type: none; }
 /* CSS for treeview */
 .treeview ul { background-color: transparent !important; margin-top: 0; }
 .treeview li { background-color: transparent !important; padding: 0 0 0 16px !important; min-height: 20px; }
-.treeview .hover { color: black !important; }
+.treeview .hover { color: rgb(<?php print $colortextlink; ?>) !important; text-decoration: underline !important; }
 
 
 
diff --git a/htdocs/theme/md/style.css.php b/htdocs/theme/md/style.css.php
index e316f078b24..6dae9fd3e9c 100644
--- a/htdocs/theme/md/style.css.php
+++ b/htdocs/theme/md/style.css.php
@@ -2908,7 +2908,7 @@ li.cal_event       { border: none; list-style-type: none; }
 /* CSS for treeview */
 .treeview ul { background-color: transparent !important; margin-top: 0; }
 .treeview li { background-color: transparent !important; padding: 0 0 0 16px !important; min-height: 20px; }
-.treeview .hover { color: black !important; }
+.treeview .hover { color: rgb(<?php print $colortextlink; ?>) !important; text-decoration: underline !important; }
 
 
 
-- 
GitLab


From 6df4948a737c8f1a572980e75b0b84f13ca87176 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Tue, 1 Dec 2015 00:05:30 +0100
Subject: [PATCH 052/197] Fix text

---
 dev/skeletons/modMyModule.class.php | 4 ++--
 htdocs/langs/en_US/mails.lang       | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/dev/skeletons/modMyModule.class.php b/dev/skeletons/modMyModule.class.php
index 86d9636809a..a54aac470e5 100644
--- a/dev/skeletons/modMyModule.class.php
+++ b/dev/skeletons/modMyModule.class.php
@@ -1,6 +1,6 @@
 <?php
 /* Copyright (C) 2003      Rodolphe Quiedeville <rodolphe@quiedeville.org>
- * Copyright (C) 2004-2012 Laurent Destailleur  <eldy@users.sourceforge.net>
+ * Copyright (C) 2004-2015 Laurent Destailleur  <eldy@users.sourceforge.net>
  * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
  *
  * This program is free software; you can redistribute it and/or modify
@@ -46,7 +46,7 @@ class modMyModule extends DolibarrModules
 
 		// Id for module (must be unique).
 		// Use here a free id (See in Home -> System information -> Dolibarr for list of used modules id).
-		$this->numero = 100000;
+		$this->numero = 500000;		// TODO Go on page http://wiki.dolibarr.org/index.php/List_of_modules_id to reserve id number for your module
 		// Key text used to identify module (for permissions, menus, etc...)
 		$this->rights_class = 'mymodule';
 
diff --git a/htdocs/langs/en_US/mails.lang b/htdocs/langs/en_US/mails.lang
index db8b013240f..df5ad878657 100644
--- a/htdocs/langs/en_US/mails.lang
+++ b/htdocs/langs/en_US/mails.lang
@@ -84,7 +84,7 @@ EachInvoiceWillBeAttachedToEmail=A document using default invoice document templ
 MailTopicSendRemindUnpaidInvoices=Reminder of invoice %s (%s)
 SendRemind=Send reminder by EMails
 RemindSent=%s reminder(s) sent
-AllRecipientSelectedForRemind=All thirdparties selected and if an email is set (note that one mail per invoice will be sent)
+AllRecipientSelectedForRemind=All thirdparties selected and if an email is set.
 NoRemindSent=No EMail reminder sent
 ResultOfMassSending=Result of mass EMail reminders sending
 
-- 
GitLab


From 882b66c58657016131e0ef654eedabd420c6fe45 Mon Sep 17 00:00:00 2001
From: aspangaro <alexandre.spangaro@gmail.com>
Date: Tue, 1 Dec 2015 06:56:26 +0100
Subject: [PATCH 053/197] HRM - Add bank tab in user to pay salary or expense
 report

---
 htdocs/core/lib/usergroups.lib.php            |  10 +
 .../install/mysql/migration/3.8.0-3.9.0.sql   |  19 +-
 .../install/mysql/tables/llx_societe_rib.sql  |  14 +-
 htdocs/install/mysql/tables/llx_user_rib.sql  |  37 ++
 htdocs/user/bank.php                          | 390 ++++++++++++++++++
 htdocs/user/class/userbankaccount.class.php   | 284 +++++++++++++
 6 files changed, 744 insertions(+), 10 deletions(-)
 create mode 100644 htdocs/install/mysql/tables/llx_user_rib.sql
 create mode 100644 htdocs/user/bank.php
 create mode 100644 htdocs/user/class/userbankaccount.class.php

diff --git a/htdocs/core/lib/usergroups.lib.php b/htdocs/core/lib/usergroups.lib.php
index b653cfbf5c0..e8961645c62 100644
--- a/htdocs/core/lib/usergroups.lib.php
+++ b/htdocs/core/lib/usergroups.lib.php
@@ -1,6 +1,7 @@
 <?php
 /* Copyright (C) 2006-2012	Laurent Destailleur	<eldy@users.sourceforge.net>
  * Copyright (C) 2010-2012	Regis Houssin		<regis.houssin@capnetworks.com>
+ * Copyright (C) 2015	    Alexandre Spangaro	<aspangaro.dolibarr@gmail.com>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -93,6 +94,15 @@ function user_prepare_head($object)
     // $this->tabs = array('entity:-tabname);   												to remove a tab
     complete_head_from_modules($conf,$langs,$object,$head,$h,'user');
 
+	if (! empty($conf->hrm->enabled))
+    {
+		// Bank
+    	$head[$h][0] = DOL_URL_ROOT.'/user/bank.php?id='.$object->id;
+    	$head[$h][1] = $langs->trans("Bank");
+    	$head[$h][2] = 'bank';
+    	$h++;
+	}
+
     //Info on users is visible only by internal user
     if (empty($user->societe_id))
     {
diff --git a/htdocs/install/mysql/migration/3.8.0-3.9.0.sql b/htdocs/install/mysql/migration/3.8.0-3.9.0.sql
index c15288d834b..cf3aa3fdf98 100755
--- a/htdocs/install/mysql/migration/3.8.0-3.9.0.sql
+++ b/htdocs/install/mysql/migration/3.8.0-3.9.0.sql
@@ -205,7 +205,24 @@ CREATE TABLE IF NOT EXISTS llx_establishment (
   status            smallint DEFAULT 1
 ) ENGINE=InnoDB;
 
-
+CREATE TABLE IF NOT EXISTS llx_user_rib (
+  rowid          integer AUTO_INCREMENT PRIMARY KEY,
+  fk_user        integer      NOT NULL,
+  entity         integer DEFAULT 1 NOT NULL,	-- multi company id
+  datec          datetime,
+  tms            timestamp,
+  label          varchar(30),
+  bank           varchar(255),  -- bank name
+  code_banque    varchar(128),  -- bank code
+  code_guichet   varchar(6),    -- desk code
+  number         varchar(255),  -- account number
+  cle_rib        varchar(5),    -- key of bank account
+  bic            varchar(11),   -- 11 according to ISO 9362
+  iban_prefix    varchar(34),	-- full iban. 34 according to ISO 13616
+  domiciliation  varchar(255),
+  proprio        varchar(60),
+  owner_address  varchar(255)
+)ENGINE=innodb;
 
 ALTER TABLE llx_projet_task_time ADD COLUMN invoice_id integer DEFAULT NULL;
 ALTER TABLE llx_projet_task_time ADD COLUMN invoice_line_id integer DEFAULT NULL;
diff --git a/htdocs/install/mysql/tables/llx_societe_rib.sql b/htdocs/install/mysql/tables/llx_societe_rib.sql
index e8f995130d4..e003b6d706e 100644
--- a/htdocs/install/mysql/tables/llx_societe_rib.sql
+++ b/htdocs/install/mysql/tables/llx_societe_rib.sql
@@ -19,10 +19,11 @@
 --
 -- =============================================================================
 
-create table llx_societe_rib
+create table llx_user_rib
 (
   rowid          integer AUTO_INCREMENT PRIMARY KEY,
-  fk_soc         integer NOT NULL,
+  fk_user        integer      NOT NULL,
+  entity         integer DEFAULT 1 NOT NULL,	-- multi company id
   datec          datetime,
   tms            timestamp,
   label          varchar(30),
@@ -31,15 +32,10 @@ create table llx_societe_rib
   code_guichet   varchar(6),    -- desk code
   number         varchar(255),  -- account number
   cle_rib        varchar(5),    -- key of bank account
-  bic            varchar(20),  -- 11 according to ISO 9362 (we keep 20 for backward compatibility)
+  bic            varchar(11),   -- 11 according to ISO 9362
   iban_prefix    varchar(34),	-- full iban. 34 according to ISO 13616
   domiciliation  varchar(255),
   proprio        varchar(60),
   owner_address  varchar(255),
-  default_rib    smallint NOT NULL DEFAULT 0,
-  
-  rum            varchar(32),	 				-- RUM value to use for SEPA generation
-  frstrecur      varchar(16) default 'FRST',  -- 'FRST' or 'RECUR'
-
-  import_key     varchar(14)    -- import key
+  default_rib    smallint NOT NULL DEFAULT 0
 )ENGINE=innodb;
diff --git a/htdocs/install/mysql/tables/llx_user_rib.sql b/htdocs/install/mysql/tables/llx_user_rib.sql
new file mode 100644
index 00000000000..05738ce4582
--- /dev/null
+++ b/htdocs/install/mysql/tables/llx_user_rib.sql
@@ -0,0 +1,37 @@
+-- =============================================================================
+-- Copyright (C) 2015     Alexandre Spangaro  <aspangaro.dolibarr@gmail.com>
+--
+-- This program is free software; you can redistribute it and/or modify
+-- it under the terms of the GNU General Public License as published by
+-- the Free Software Foundation; either version 3 of the License, or
+-- (at your option) any later version.
+--
+-- This program is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-- GNU General Public License for more details.
+--
+-- You should have received a copy of the GNU General Public License
+-- along with this program. If not, see <http://www.gnu.org/licenses/>.
+--
+-- =============================================================================
+
+create table llx_user_rib
+(
+  rowid          integer AUTO_INCREMENT PRIMARY KEY,
+  fk_user        integer      NOT NULL,
+  entity         integer DEFAULT 1 NOT NULL,	-- multi company id
+  datec          datetime,
+  tms            timestamp,
+  label          varchar(30),
+  bank           varchar(255),  -- bank name
+  code_banque    varchar(128),  -- bank code
+  code_guichet   varchar(6),    -- desk code
+  number         varchar(255),  -- account number
+  cle_rib        varchar(5),    -- key of bank account
+  bic            varchar(11),   -- 11 according to ISO 9362
+  iban_prefix    varchar(34),	-- full iban. 34 according to ISO 13616
+  domiciliation  varchar(255),
+  proprio        varchar(60),
+  owner_address  varchar(255)
+)ENGINE=innodb;
diff --git a/htdocs/user/bank.php b/htdocs/user/bank.php
new file mode 100644
index 00000000000..0325fcd0a50
--- /dev/null
+++ b/htdocs/user/bank.php
@@ -0,0 +1,390 @@
+<?php
+/* Copyright (C) 2002-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
+ * Copyright (C) 2003      Jean-Louis Bergamo   <jlb@j1b.org>
+ * Copyright (C) 2004-2015 Laurent Destailleur  <eldy@users.sourceforge.net>
+ * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
+ * Copyright (C) 2013      Peter Fontaine       <contact@peterfontaine.fr>
+ * Copyright (C) 2015      Marcos García        <marcosgdf@gmail.com>
+ * Copyright (C) 2015	   Alexandre Spangaro	<aspangaro.dolibarr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ *	    \file       htdocs/user/bank.php
+ *      \ingroup    HRM
+ *		\brief      BAN tab for users
+ */
+
+require '../main.inc.php';
+require_once DOL_DOCUMENT_ROOT.'/core/lib/usergroups.lib.php';
+require_once DOL_DOCUMENT_ROOT.'/core/lib/bank.lib.php';
+require_once DOL_DOCUMENT_ROOT.'/user/class/userbankaccount.class.php';
+
+$langs->load("companies");
+$langs->load("commercial");
+$langs->load("banks");
+$langs->load("bills");
+
+$id = GETPOST('id','int');
+$action = GETPOST("action");
+
+// Security check
+$socid=0;
+if ($user->societe_id > 0) $socid = $user->societe_id;
+$feature2 = (($socid && $user->rights->user->self->creer)?'':'user');
+if ($user->id == $id) $feature2=''; // A user can always read its own card
+$result = restrictedArea($user, 'user', $id, 'user&user', $feature2);
+
+$object = new User($db);
+if ($id > 0 || ! empty($ref))
+{
+	$result = $object->fetch($id, $ref);
+}
+
+/*
+ *	Actions
+ */
+
+if ($action == 'update' && ! $_POST["cancel"])
+{
+	// Modification
+	$account = new UserBankAccount($db);
+
+    $account->fetch($id);
+
+    $account->userid          = $object->id;
+
+	$account->bank            = $_POST["bank"];
+	$account->label           = $_POST["label"];
+	$account->courant         = $_POST["courant"];
+	$account->clos            = $_POST["clos"];
+	$account->code_banque     = $_POST["code_banque"];
+	$account->code_guichet    = $_POST["code_guichet"];
+	$account->number          = $_POST["number"];
+	$account->cle_rib         = $_POST["cle_rib"];
+	$account->bic             = $_POST["bic"];
+	$account->iban            = $_POST["iban"];
+	$account->domiciliation   = $_POST["domiciliation"];
+	$account->proprio         = $_POST["proprio"];
+	$account->owner_address   = $_POST["owner_address"];
+
+	$result = $account->update($user);
+	if (! $result)
+	{
+		setEventMessage($account->error, 'errors');
+		$_GET["action"]='edit';     // Force chargement page edition
+	}
+	else
+	{
+		$url=DOL_URL_ROOT.'/user/bank.php?id='.$object->id;
+        header('Location: '.$url);
+        exit;
+	}
+}
+
+/*
+ *	View
+ */
+
+$form = new Form($db);
+
+llxHeader();
+
+$head = user_prepare_head($object);
+
+$account = new UserBankAccount($db);
+if (! $id)
+    $account->fetch(0,$object->id);
+else
+    $account->fetch($id);
+if (empty($account->userid)) $account->userid=$object->id;
+
+
+if ($id && $action == 'edit' && $user->rights->user->user->creer)
+{
+    print '<form action="'.$_SERVER['PHP_SELF'].'?id='.$object->id.'" method="post">';
+    print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
+    print '<input type="hidden" name="action" value="update">';
+    print '<input type="hidden" name="id" value="'.$_GET["id"].'">';
+}
+if ($id && $action == 'create' && $user->rights->user->user->creer)
+{
+    print '<form action="'.$_SERVER['PHP_SELF'].'?id='.$object->id.'" method="post">';
+    print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
+    print '<input type="hidden" name="action" value="add">';
+}
+
+
+// View
+if ($id && $action != 'edit')
+{
+	$title = $langs->trans("User");
+	dol_fiche_head($head, 'bank', $title, 0, 'user');
+
+	$linkback = '<a href="'.DOL_URL_ROOT.'/user/index.php">'.$langs->trans("BackToList").'</a>';
+	
+    dol_banner_tab($object,'id',$linkback,$user->rights->user->user->lire || $user->admin);
+        
+    print '<div class="fichecenter">';
+
+    print '<div class="underbanner clearboth"></div>';
+    print '<table class="border centpercent">';
+
+    print '<tr><td class="titlefield">'.$langs->trans("LabelRIB").'</td>';
+    print '<td colspan="4">'.$account->label.'</td></tr>';
+
+	print '<tr><td>'.$langs->trans("BankName").'</td>';
+	print '<td colspan="4">'.$account->bank.'</td></tr>';
+
+	// Show fields of bank account
+	$fieldlists='BankCode DeskCode AccountNumber BankAccountNumberKey';
+	if (! empty($conf->global->BANK_SHOW_ORDER_OPTION))
+	{
+		if (is_numeric($conf->global->BANK_SHOW_ORDER_OPTION))
+		{
+			if ($conf->global->BANK_SHOW_ORDER_OPTION == '1') $fieldlists='BankCode DeskCode BankAccountNumberKey AccountNumber';
+		}
+		else $fieldlists=$conf->global->BANK_SHOW_ORDER_OPTION;
+	}
+	$fieldlistsarray=explode(' ',$fieldlists);
+
+	foreach($fieldlistsarray as $val)
+	{
+		if ($val == 'BankCode')
+		{
+			if ($account->useDetailedBBAN() == 1)
+			{
+				print '<tr><td>'.$langs->trans("BankCode").'</td>';
+				print '<td colspan="3">'.$account->code_banque.'</td>';
+				print '</tr>';
+			}
+		}
+		if ($val == 'DeskCode')
+		{
+			if ($account->useDetailedBBAN() == 1)
+			{
+				print '<tr><td>'.$langs->trans("DeskCode").'</td>';
+				print '<td colspan="3">'.$account->code_guichet.'</td>';
+				print '</tr>';
+			}
+		}
+
+		if ($val == 'BankCode')
+		{
+			if ($account->useDetailedBBAN() == 2)
+	        {
+	            print '<tr><td>'.$langs->trans("BankCode").'</td>';
+	            print '<td colspan="3">'.$account->code_banque.'</td>';
+	            print '</tr>';
+	        }
+		}
+
+		if ($val == 'AccountNumber')
+		{
+			print '<tr><td>'.$langs->trans("BankAccountNumber").'</td>';
+			print '<td colspan="3">'.$account->number.'</td>';
+			print '</tr>';
+		}
+
+		if ($val == 'BankAccountNumberKey')
+		{
+			if ($account->useDetailedBBAN() == 1)
+			{
+				print '<tr><td>'.$langs->trans("BankAccountNumberKey").'</td>';
+				print '<td colspan="3">'.$account->cle_rib.'</td>';
+				print '</tr>';
+			}
+		}
+	}
+
+	print '<tr><td valign="top">'.$langs->trans("IBAN").'</td>';
+	print '<td colspan="4">'.$account->iban . '&nbsp;';
+    if (! empty($account->iban)) {
+        if (! checkIbanForAccount($account)) {
+            print img_picto($langs->trans("IbanNotValid"),'warning');
+        } else {
+            print img_picto($langs->trans("IbanValid"),'info');
+        }
+    }
+    print '</td></tr>';
+
+	print '<tr><td valign="top">'.$langs->trans("BIC").'</td>';
+	print '<td colspan="4">'.$account->bic.'&nbsp;';
+    if (! empty($account->bic)) {
+        if (! checkSwiftForAccount($account)) {
+            print img_picto($langs->trans("SwiftNotValid"),'warning');
+        } else {
+            print img_picto($langs->trans("SwiftValid"),'info');
+        }
+    }
+    print '</td></tr>';
+
+	print '<tr><td valign="top">'.$langs->trans("BankAccountDomiciliation").'</td><td colspan="4">';
+	print $account->domiciliation;
+	print "</td></tr>\n";
+
+	print '<tr><td valign="top">'.$langs->trans("BankAccountOwner").'</td><td colspan="4">';
+	print $account->proprio;
+	print "</td></tr>\n";
+
+	print '<tr><td valign="top">'.$langs->trans("BankAccountOwnerAddress").'</td><td colspan="4">';
+	print $account->owner_address;
+	print "</td></tr>\n";
+
+	print '</table>';
+
+	// Check BBAN
+	if ($account->label && ! checkBanForAccount($account))
+	{
+		print '<div class="warning">'.$langs->trans("RIBControlError").'</div>';
+	}
+
+    print "</div>";
+    
+    dol_fiche_end();
+
+	/*
+	 * Barre d'actions
+	 */
+	print '<div class="tabsAction">';
+
+	if ($user->rights->user->user->creer)
+	{
+		print '<a class="butAction" href="bank.php?id='.$object->id.'&amp;action=edit">'.$langs->trans("Edit").'</a>';
+	}
+
+	print '</div>';
+}
+
+// Edit
+if ($id && $action == 'edit' && $user->rights->user->user->creer)
+{
+	$title = $langs->trans("User");
+	dol_fiche_head($head, 'bank', $title, 0, 'user');
+
+	$linkback = '<a href="'.DOL_URL_ROOT.'/user/index.php">'.$langs->trans("BackToList").'</a>';
+	
+    dol_banner_tab($object,'id',$linkback,$user->rights->user->user->lire || $user->admin);
+        
+    print '<div class="fichecenter">';
+    
+    print '<div class="underbanner clearboth"></div>';
+	print '<table class="border centpercent">';
+
+    print '<tr><td valign="top" width="35%" class="fieldrequired">'.$langs->trans("LabelRIB").'</td>';
+    print '<td colspan="4"><input size="30" type="text" name="label" value="'.$account->label.'"></td></tr>';
+
+    print '<tr><td class="fieldrequired">'.$langs->trans("BankName").'</td>';
+    print '<td><input size="30" type="text" name="bank" value="'.$account->bank.'"></td></tr>';
+
+	// Show fields of bank account
+	$fieldlists='BankCode DeskCode AccountNumber BankAccountNumberKey';
+	if (! empty($conf->global->BANK_SHOW_ORDER_OPTION))
+	{
+		if (is_numeric($conf->global->BANK_SHOW_ORDER_OPTION))
+		{
+			if ($conf->global->BANK_SHOW_ORDER_OPTION == '1') $fieldlists='BankCode DeskCode BankAccountNumberKey AccountNumber';
+		}
+		else $fieldlists=$conf->global->BANK_SHOW_ORDER_OPTION;
+	}
+	$fieldlistsarray=explode(' ',$fieldlists);
+
+	foreach($fieldlistsarray as $val)
+	{
+		if ($val == 'BankCode')
+		{
+			if ($account->useDetailedBBAN()  == 1)
+			{
+				print '<tr><td>'.$langs->trans("BankCode").'</td>';
+				print '<td><input size="8" type="text" class="flat" name="code_banque" value="'.$account->code_banque.'"></td>';
+				print '</tr>';
+			}
+		}
+
+		if ($val == 'DeskCode')
+		{
+			if ($account->useDetailedBBAN()  == 1)
+			{
+				print '<tr><td>'.$langs->trans("DeskCode").'</td>';
+				print '<td><input size="8" type="text" class="flat" name="code_guichet" value="'.$account->code_guichet.'"></td>';
+				print '</tr>';
+			}
+		}
+
+		if ($val == 'BankCode')
+		{
+			if ($account->useDetailedBBAN()  == 2)
+	        {
+	            print '<tr><td>'.$langs->trans("BankCode").'</td>';
+	            print '<td><input size="8" type="text" class="flat" name="code_banque" value="'.$account->code_banque.'"></td>';
+	            print '</tr>';
+	        }
+		}
+
+		if ($val == 'AccountNumber')
+		{
+			print '<td class="fieldrequired">'.$langs->trans("BankAccountNumber").'</td>';
+			print '<td><input size="18" type="text" class="flat" name="number" value="'.$account->number.'"></td>';
+			print '</tr>';
+		}
+
+		if ($val == 'BankAccountNumberKey')
+		{
+			if ($account->useDetailedBBAN() == 1)
+			{
+				print '<td>'.$langs->trans("BankAccountNumberKey").'</td>';
+				print '<td><input size="3" type="text" class="flat" name="cle_rib" value="'.$account->cle_rib.'"></td>';
+				print '</tr>';
+			}
+		}
+	}
+
+    // IBAN
+    print '<tr><td valign="top" class="fieldrequired">'.$langs->trans("IBAN").'</td>';
+    print '<td colspan="4"><input size="30" type="text" name="iban" value="'.$account->iban.'"></td></tr>';
+
+    print '<tr><td valign="top" class="fieldrequired">'.$langs->trans("BIC").'</td>';
+    print '<td colspan="4"><input size="12" type="text" name="bic" value="'.$account->bic.'"></td></tr>';
+
+    print '<tr><td valign="top">'.$langs->trans("BankAccountDomiciliation").'</td><td colspan="4">';
+    print '<textarea name="domiciliation" rows="4" cols="40">';
+    print $account->domiciliation;
+    print "</textarea></td></tr>";
+
+    print '<tr><td valign="top">'.$langs->trans("BankAccountOwner").'</td>';
+    print '<td colspan="4"><input size="30" type="text" name="proprio" value="'.$account->proprio.'"></td></tr>';
+    print "</td></tr>\n";
+
+    print '<tr><td valign="top">'.$langs->trans("BankAccountOwnerAddress").'</td><td colspan="4">';
+    print "<textarea name=\"owner_address\" rows=\"4\" cols=\"40\">";
+    print $account->owner_address;
+    print "</textarea></td></tr>";
+
+    print '</table>';
+
+    print '</div>';
+    
+    dol_fiche_end();
+
+	print '<div align="center">';
+	print '<input class="button" value="'.$langs->trans("Modify").'" type="submit">';
+    print '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
+	print '<input class="button" name="cancel" value="'.$langs->trans("Cancel").'" type="submit">';
+    print '</div>';
+}
+
+llxFooter();
+
+$db->close();
diff --git a/htdocs/user/class/userbankaccount.class.php b/htdocs/user/class/userbankaccount.class.php
new file mode 100644
index 00000000000..1f48be28187
--- /dev/null
+++ b/htdocs/user/class/userbankaccount.class.php
@@ -0,0 +1,284 @@
+<?php
+/* Copyright (C) 2004		Rodolphe Quiedeville	<rodolphe@quiedeville.org>
+ * Copyright (C) 2010-2013	Laurent Destailleur		<eldy@users.sourceforge.net>
+ * Copyright (C) 2012		Regis Houssin			<regis.houssin@capnetworks.com>
+ * Copyright (C) 2013   	Peter Fontaine          <contact@peterfontaine.fr>
+ * Copyright (C) 2015	    Alexandre Spangaro	    <aspangaro.dolibarr@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * 		\file		htdocs/user/class/userbankaccount.class.php
+ *		\ingroup    user
+ *		\brief      File of class to manage bank accounts description of users
+ */
+
+require_once DOL_DOCUMENT_ROOT .'/compta/bank/class/account.class.php';
+
+
+/**
+ * 	Class to manage bank accounts description of third parties
+ */
+class UserBankAccount extends Account
+{
+    var $socid;
+
+    var $default_rib;
+
+    var $datec;
+    var $datem;
+
+
+    /**
+	 *  Constructor
+	 *
+	 *  @param      DoliDB		$db      Database handler
+     */
+    function __construct($db)
+    {
+        $this->db = $db;
+
+        $this->socid = 0;
+        $this->clos = 0;
+        $this->solde = 0;
+        $this->error_number = 0;
+        $this->default_rib = 0;
+        return 1;
+    }
+
+
+    /**
+     * Create bank information record
+     *
+     * @param   Object   $user		User
+     * @return	int					<0 if KO, >= 0 if OK
+     */
+    function create($user='')
+    {
+        $now=dol_now();
+
+        $sql = "INSERT INTO ".MAIN_DB_PREFIX."user_rib (fk_user, datec)";
+        $sql.= " VALUES (".$this->userid.", '".$this->db->idate($now)."')";
+        $resql=$this->db->query($sql);
+        if ($resql)
+        {
+            if ($this->db->affected_rows($resql))
+            {
+                $this->id = $this->db->last_insert_id(MAIN_DB_PREFIX."user_rib");
+                return 1;
+            }
+        }
+        else
+        {
+            print $this->db->error();
+            return 0;
+        }
+    }
+
+    /**
+     *	Update bank account
+     *
+     *	@param	User	$user	Object user
+     *	@return	int				<=0 if KO, >0 if OK
+     */
+    function update($user='')
+    {
+    	global $conf;
+
+        if (! $this->id)
+        {
+            $this->create();
+        }
+
+        $sql = "UPDATE ".MAIN_DB_PREFIX."user_rib SET";
+        $sql.= " bank = '" .$this->db->escape($this->bank)."'";
+        $sql.= ",code_banque='".$this->code_banque."'";
+        $sql.= ",code_guichet='".$this->code_guichet."'";
+        $sql.= ",number='".$this->number."'";
+        $sql.= ",cle_rib='".$this->cle_rib."'";
+        $sql.= ",bic='".$this->bic."'";
+        $sql.= ",iban_prefix = '".$this->iban."'";
+        $sql.= ",domiciliation='".$this->db->escape($this->domiciliation)."'";
+        $sql.= ",proprio = '".$this->db->escape($this->proprio)."'";
+        $sql.= ",owner_address = '".$this->db->escape($this->owner_address)."'";
+
+	    if (trim($this->label) != '')
+            $sql.= ",label = '".$this->db->escape($this->label)."'";
+        else
+            $sql.= ",label = NULL";
+        $sql.= " WHERE rowid = ".$this->id;
+
+        $result = $this->db->query($sql);
+        if ($result)
+        {
+            return 1;
+        }
+        else
+        {
+            dol_print_error($this->db);
+            return 0;
+        }
+    }
+
+    /**
+     * 	Load record from database
+     *
+     *	@param	int		$id			Id of record
+     * 	@param	int		$socid		Id of company. If this is filled, function will return the default RIB of company
+     * 	@return	int					<0 if KO, >0 if OK
+     */
+    function fetch($id, $socid=0)
+    {
+        if (empty($id) && empty($socid)) return -1;
+
+        $sql = "SELECT rowid, fk_user, entity, bank, number, code_banque, code_guichet, cle_rib, bic, iban_prefix as iban, domiciliation, proprio,";
+        $sql.= " owner_address, default_rib, label, datec, tms as datem";
+        $sql.= " FROM ".MAIN_DB_PREFIX."user_rib";
+        if ($id)    $sql.= " WHERE rowid = ".$id;
+        if ($socid) $sql.= " WHERE fk_user  = ".$userid;
+
+        $resql = $this->db->query($sql);
+        if ($resql)
+        {
+            if ($this->db->num_rows($resql))
+            {
+                $obj = $this->db->fetch_object($resql);
+
+                $this->id			   = $obj->rowid;
+                $this->socid           = $obj->fk_soc;
+                $this->bank            = $obj->bank;
+                $this->code_banque     = $obj->code_banque;
+                $this->code_guichet    = $obj->code_guichet;
+                $this->number          = $obj->number;
+                $this->cle_rib         = $obj->cle_rib;
+                $this->bic             = $obj->bic;
+                $this->iban		       = $obj->iban;
+                $this->domiciliation   = $obj->domiciliation;
+                $this->proprio         = $obj->proprio;
+                $this->owner_address   = $obj->owner_address;
+                $this->label           = $obj->label;
+                $this->datec           = $this->db->jdate($obj->datec);
+                $this->datem           = $this->db->jdate($obj->datem);
+            }
+            $this->db->free($resql);
+
+            return 1;
+        }
+        else
+        {
+            dol_print_error($this->db);
+            return -1;
+        }
+    }
+
+    /**
+     *  Delete a rib from database
+     *
+     *	@param	User	$user	User deleting
+     *  @return int         	<0 if KO, >0 if OK
+     */
+    function delete($user)
+    {
+        global $conf;
+
+        $sql = "DELETE FROM ".MAIN_DB_PREFIX."user_rib";
+        $sql.= " WHERE rowid  = ".$this->id;
+
+        dol_syslog(get_class($this)."::delete", LOG_DEBUG);
+        $result = $this->db->query($sql);
+        if ($result) {
+            return 1;
+        }
+        else {
+            dol_print_error($this->db);
+            return -1;
+        }
+    }
+
+    /**
+     * Return RIB
+     *
+     * @param   boolean     $displayriblabel     Prepend or Hide Label
+     * @return	string		RIB
+     */
+    function getRibLabel($displayriblabel = true)
+    {
+    	global $langs,$conf;
+
+    	if ($this->code_banque || $this->code_guichet || $this->number || $this->cle_rib)
+    	{
+            if ($this->label && $displayriblabel) $rib = $this->label." : ";
+
+    		// Show fields of bank account
+			$fieldlists='BankCode DeskCode AccountNumber BankAccountNumberKey';
+			if (! empty($conf->global->BANK_SHOW_ORDER_OPTION))
+			{
+				if (is_numeric($conf->global->BANK_SHOW_ORDER_OPTION))
+				{
+					if ($conf->global->BANK_SHOW_ORDER_OPTION == '1') $fieldlists='BankCode DeskCode BankAccountNumberKey AccountNumber';
+				}
+				else $fieldlists=$conf->global->BANK_SHOW_ORDER_OPTION;
+			}
+			$fieldlistsarray=explode(' ',$fieldlists);
+
+			foreach($fieldlistsarray as $val)
+			{
+				if ($val == 'BankCode')
+				{
+					if ($this->useDetailedBBAN()  == 1)
+					{
+						$rib.=$this->code_banque.'&nbsp;';
+					}
+				}
+
+				if ($val == 'DeskCode')
+				{
+					if ($this->useDetailedBBAN()  == 1)
+					{
+						$rib.=$this->code_guichet.'&nbsp;';
+					}
+				}
+
+				if ($val == 'BankCode')
+				{
+					if ($this->useDetailedBBAN()  == 2)
+			        {
+			            $rib.=$this->code_banque.'&nbsp;';
+			        }
+				}
+
+				if ($val == 'AccountNumber')
+				{
+					$rib.=$this->number.'&nbsp;';
+				}
+
+				if ($val == 'BankAccountNumberKey')
+				{
+					if ($this->useDetailedBBAN() == 1)
+					{
+						$rib.=$this->cle_rib.'&nbsp;';
+					}
+				}
+			}
+    	}
+    	else
+    	{
+    		$rib='';
+    	}
+
+    	return $rib;
+    }
+}
+
-- 
GitLab


From 46611908ae92be42086f9b73e1d422252ef6ed3a Mon Sep 17 00:00:00 2001
From: abb <bafbes@gmail.com>
Date: Tue, 1 Dec 2015 11:10:05 +0100
Subject: [PATCH 054/197] add constant FICHINTER_EMPTY_LINE_DESC to allow empty
 line descriptions in interventions

---
 htdocs/fichinter/card.php | 27 +++++++++++++++------------
 1 file changed, 15 insertions(+), 12 deletions(-)

diff --git a/htdocs/fichinter/card.php b/htdocs/fichinter/card.php
index 9dd3577b91d..0b343524f9c 100644
--- a/htdocs/fichinter/card.php
+++ b/htdocs/fichinter/card.php
@@ -6,6 +6,7 @@
  * Copyright (C) 2013       Florian Henry           <florian.henry@open-concept.pro>
  * Copyright (C) 2014-2015  Ferran Marcet           <fmarcet@2byte.es>
  * Copyright (C) 201		Charlie Benke           <charlies@patas-monkey.com>
+ * Copyright (C) 2015       Abbes Bahfir            <bafbes@gmail.com>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -466,8 +467,8 @@ if (empty($reshook))
 	// Add line
 	else if ($action == "addline" && $user->rights->ficheinter->creer)
 	{
-		if (!GETPOST('np_desc'))
-		{
+		if (!GETPOST('np_desc')&&($conf->global->FICHINTER_EMPTY_LINE_DESC!=1))
+ 		{
 			$mesg='<div class="error">'.$langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("Description")).'</div>';
 			$error++;
 		}
@@ -1566,16 +1567,18 @@ else if ($id > 0 || ! empty($ref))
 
 				$var=true;
 
-				print '<tr '.$bcnd[$var].">\n";
-				print '<td>';
-				// editeur wysiwyg
-				require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
-				$doleditor=new DolEditor('np_desc',GETPOST('np_desc','alpha'),'',100,'dolibarr_details','',false,true,$conf->global->FCKEDITOR_ENABLE_DETAILS,ROWS_2,70);
-				$doleditor->Create();
-				print '</td>';
-
-				// Date intervention
-				print '<td align="center" class="nowrap">';
+				print '<tr '.$bcnd[$var] . ">\n";
+                print '<td>';
+                // editeur wysiwyg
+                if ($conf->global->FICHINTER_EMPTY_LINE_DESC != 1) {
+                    require_once DOL_DOCUMENT_ROOT . '/core/class/doleditor.class.php';
+                    $doleditor = new DolEditor('np_desc', GETPOST('np_desc', 'alpha'), '', 100, 'dolibarr_details', '', false, true, $conf->global->FCKEDITOR_ENABLE_DETAILS, ROWS_2, 70);
+                    $doleditor->Create();
+                }
+                print '</td>';
+
+                // Date intervention
+                print '<td align="center" class="nowrap">';
 				$now=dol_now();
 				$timearray=dol_getdate($now);
 				if (! GETPOST('diday','int')) $timewithnohour=dol_mktime(0,0,0,$timearray['mon'],$timearray['mday'],$timearray['year']);
-- 
GitLab


From 09a6cc962545b23f8ff5bc743eaa115ede959421 Mon Sep 17 00:00:00 2001
From: aspangaro <alexandre.spangaro@gmail.com>
Date: Tue, 1 Dec 2015 20:17:14 +0100
Subject: [PATCH 055/197] wrong table

---
 htdocs/install/mysql/tables/llx_societe_rib.sql | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/htdocs/install/mysql/tables/llx_societe_rib.sql b/htdocs/install/mysql/tables/llx_societe_rib.sql
index e003b6d706e..e8f995130d4 100644
--- a/htdocs/install/mysql/tables/llx_societe_rib.sql
+++ b/htdocs/install/mysql/tables/llx_societe_rib.sql
@@ -19,11 +19,10 @@
 --
 -- =============================================================================
 
-create table llx_user_rib
+create table llx_societe_rib
 (
   rowid          integer AUTO_INCREMENT PRIMARY KEY,
-  fk_user        integer      NOT NULL,
-  entity         integer DEFAULT 1 NOT NULL,	-- multi company id
+  fk_soc         integer NOT NULL,
   datec          datetime,
   tms            timestamp,
   label          varchar(30),
@@ -32,10 +31,15 @@ create table llx_user_rib
   code_guichet   varchar(6),    -- desk code
   number         varchar(255),  -- account number
   cle_rib        varchar(5),    -- key of bank account
-  bic            varchar(11),   -- 11 according to ISO 9362
+  bic            varchar(20),  -- 11 according to ISO 9362 (we keep 20 for backward compatibility)
   iban_prefix    varchar(34),	-- full iban. 34 according to ISO 13616
   domiciliation  varchar(255),
   proprio        varchar(60),
   owner_address  varchar(255),
-  default_rib    smallint NOT NULL DEFAULT 0
+  default_rib    smallint NOT NULL DEFAULT 0,
+  
+  rum            varchar(32),	 				-- RUM value to use for SEPA generation
+  frstrecur      varchar(16) default 'FRST',  -- 'FRST' or 'RECUR'
+
+  import_key     varchar(14)    -- import key
 )ENGINE=innodb;
-- 
GitLab


From e1c8e6d8f63a68f3a68e45037743a0ac87b36df5 Mon Sep 17 00:00:00 2001
From: aspangaro <alexandre.spangaro@gmail.com>
Date: Tue, 1 Dec 2015 20:27:29 +0100
Subject: [PATCH 056/197] Remove useless code

---
 htdocs/user/class/userbankaccount.class.php | 27 ---------------------
 1 file changed, 27 deletions(-)

diff --git a/htdocs/user/class/userbankaccount.class.php b/htdocs/user/class/userbankaccount.class.php
index 1f48be28187..c89d7162c2a 100644
--- a/htdocs/user/class/userbankaccount.class.php
+++ b/htdocs/user/class/userbankaccount.class.php
@@ -35,8 +35,6 @@ class UserBankAccount extends Account
 {
     var $socid;
 
-    var $default_rib;
-
     var $datec;
     var $datem;
 
@@ -54,7 +52,6 @@ class UserBankAccount extends Account
         $this->clos = 0;
         $this->solde = 0;
         $this->error_number = 0;
-        $this->default_rib = 0;
         return 1;
     }
 
@@ -183,30 +180,6 @@ class UserBankAccount extends Account
         }
     }
 
-    /**
-     *  Delete a rib from database
-     *
-     *	@param	User	$user	User deleting
-     *  @return int         	<0 if KO, >0 if OK
-     */
-    function delete($user)
-    {
-        global $conf;
-
-        $sql = "DELETE FROM ".MAIN_DB_PREFIX."user_rib";
-        $sql.= " WHERE rowid  = ".$this->id;
-
-        dol_syslog(get_class($this)."::delete", LOG_DEBUG);
-        $result = $this->db->query($sql);
-        if ($result) {
-            return 1;
-        }
-        else {
-            dol_print_error($this->db);
-            return -1;
-        }
-    }
-
     /**
      * Return RIB
      *
-- 
GitLab


From 5360ea65bf2e04079c33133389387e1e9b433d95 Mon Sep 17 00:00:00 2001
From: Bahfir Abbes <bafbes@gmail.com>
Date: Tue, 1 Dec 2015 21:26:04 +0100
Subject: [PATCH 057/197] Update card.php

---
 htdocs/fichinter/card.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/htdocs/fichinter/card.php b/htdocs/fichinter/card.php
index 0b343524f9c..33c2e48b599 100644
--- a/htdocs/fichinter/card.php
+++ b/htdocs/fichinter/card.php
@@ -467,7 +467,7 @@ if (empty($reshook))
 	// Add line
 	else if ($action == "addline" && $user->rights->ficheinter->creer)
 	{
-		if (!GETPOST('np_desc')&&($conf->global->FICHINTER_EMPTY_LINE_DESC!=1))
+		if (!GETPOST('np_desc') && $conf->global->FICHINTER_EMPTY_LINE_DESC!=1 )
  		{
 			$mesg='<div class="error">'.$langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("Description")).'</div>';
 			$error++;
-- 
GitLab


From eb504ffacc7ac1c305d78c8f0d6a5e9cdb4617b9 Mon Sep 17 00:00:00 2001
From: ricardomm <GitRepositorio>
Date: Wed, 2 Dec 2015 11:53:23 +0100
Subject: [PATCH 058/197] minor fix accessing $db

---
 htdocs/product/class/product.class.php | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/htdocs/product/class/product.class.php b/htdocs/product/class/product.class.php
index 4253d2c0e48..429990f7010 100644
--- a/htdocs/product/class/product.class.php
+++ b/htdocs/product/class/product.class.php
@@ -3314,23 +3314,23 @@ class Product extends CommonObject
         if (! empty($conf->commande->enabled))
         {
             $result=$this->load_stats_commande(0,'1,2');
-            if ($result < 0) dol_print_error($db,$this->error);
+            if ($result < 0) dol_print_error($this->db,$this->error);
             $stock_commande_client=$this->stats_commande['qty'];
         }
         if (! empty($conf->expedition->enabled))
         {
             $result=$this->load_stats_sending(0,'1,2');
-            if ($result < 0) dol_print_error($db,$this->error);
+            if ($result < 0) dol_print_error($this->db,$this->error);
             $stock_sending_client=$this->stats_expedition['qty'];
         }
         if (! empty($conf->fournisseur->enabled))
         {
             $result=$this->load_stats_commande_fournisseur(0,'1,2,3,4');
-            if ($result < 0) dol_print_error($db,$this->error);
+            if ($result < 0) dol_print_error($this->db,$this->error);
             $stock_commande_fournisseur=$this->stats_commande_fournisseur['qty'];
 
             $result=$this->load_stats_reception(0,'4');
-            if ($result < 0) dol_print_error($db,$this->error);
+            if ($result < 0) dol_print_error($this->db,$this->error);
             $stock_reception_fournisseur=$this->stats_reception['qty'];
         }
 
-- 
GitLab


From bd632cf2b0205c4e7a5c08c631a088ae31986378 Mon Sep 17 00:00:00 2001
From: Florian HENRY <florian.henry@open-concept.pro>
Date: Wed, 2 Dec 2015 12:12:26 +0100
Subject: [PATCH 059/197] FIX : Use "WHERE true" instead of "WHERE 1" #4132

---
 htdocs/core/class/extrafields.class.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/htdocs/core/class/extrafields.class.php b/htdocs/core/class/extrafields.class.php
index a9aba7d48d5..627114f6acb 100644
--- a/htdocs/core/class/extrafields.class.php
+++ b/htdocs/core/class/extrafields.class.php
@@ -765,7 +765,7 @@ class ExtraFields
 				}
 				else 
 				{
-					$sqlwhere.= ' WHERE 1';
+					$sqlwhere.= ' WHERE 1=1';
 				}
 				if (in_array($InfoFieldList[0],array('tablewithentity'))) $sqlwhere.= ' AND entity = '.$conf->entity;	// Some tables may have field, some other not. For the moment we disable it.
 				$sql.=$sqlwhere;
-- 
GitLab


From e1d5b4483aee4c71245caafdc9b35c821200c688 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rapha=C3=ABl=20Doursenaud?= <rdoursenaud@gpcsolutions.fr>
Date: Wed, 2 Dec 2015 18:31:38 +0100
Subject: [PATCH 060/197] Fix #4137 Salaries parameter saving

Button was outside of the form.
---
 htdocs/admin/salaries.php | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/htdocs/admin/salaries.php b/htdocs/admin/salaries.php
index 58e85dbf8d3..2d32db71af7 100644
--- a/htdocs/admin/salaries.php
+++ b/htdocs/admin/salaries.php
@@ -113,11 +113,11 @@ print '</tr>';
 
 print "</table>\n";
 
-print '</form>';
-
 dol_fiche_end();
 
 print '<div style="text-align:center"><input type="submit" class="button" value="'.$langs->trans('Modify').'" name="button"></div>';
 
+print '</form>';
+
 llxFooter();
 $db->close();
-- 
GitLab


From 134adcf6373aa859f79dc125be805fb4579516fa Mon Sep 17 00:00:00 2001
From: Bahfir Abbes <bafbes@gmail.com>
Date: Wed, 2 Dec 2015 18:55:51 +0100
Subject: [PATCH 061/197] Update products.lang

---
 htdocs/langs/en_US/products.lang | 1 +
 1 file changed, 1 insertion(+)

diff --git a/htdocs/langs/en_US/products.lang b/htdocs/langs/en_US/products.lang
index ddda0152245..54d809dadda 100644
--- a/htdocs/langs/en_US/products.lang
+++ b/htdocs/langs/en_US/products.lang
@@ -309,3 +309,4 @@ PropalMergePdfProductChooseFile=Select PDF files
 IncludingProductWithTag=Including product/service with tag
 DefaultPriceRealPriceMayDependOnCustomer=Default price, real price may depend on customer
 WarningSelectOneDocument=Please select at least one document
+DefaultUnitToShow=Units
-- 
GitLab


From 7841c97387a0a1050cc6e82cb9e1c2ac970552b5 Mon Sep 17 00:00:00 2001
From: Bahfir Abbes <bafbes@gmail.com>
Date: Wed, 2 Dec 2015 19:34:02 +0100
Subject: [PATCH 062/197] Update products.lang

---
 htdocs/langs/fr_FR/products.lang | 1 +
 1 file changed, 1 insertion(+)

diff --git a/htdocs/langs/fr_FR/products.lang b/htdocs/langs/fr_FR/products.lang
index 455cb209986..b9f5a664fe5 100644
--- a/htdocs/langs/fr_FR/products.lang
+++ b/htdocs/langs/fr_FR/products.lang
@@ -297,3 +297,4 @@ PropalMergePdfProductChooseFile=Sélectionnez les fichiers PDF
 IncludingProductWithTag=Incluant un produit ayant le tag/catégorie
 DefaultPriceRealPriceMayDependOnCustomer=Prix ​​par défaut, le prix réel peut dépendre du client
 WarningSelectOneDocument=Sélectionnez au moins un document
+DefaultUnitToShow=Unités
-- 
GitLab


From 0c5c762c1c4833688f9b6c1c15462f13aca2a3e2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rapha=C3=ABl=20Doursenaud?= <rdoursenaud@gpcsolutions.fr>
Date: Wed, 2 Dec 2015 21:12:23 +0100
Subject: [PATCH 063/197] [Qual] More robust sorting

Only allow valid values and discard others.
Do not use user supplied data in SQL query.
---
 htdocs/core/db/DoliDB.class.php | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/htdocs/core/db/DoliDB.class.php b/htdocs/core/db/DoliDB.class.php
index f1909a91ea0..4103b095330 100644
--- a/htdocs/core/db/DoliDB.class.php
+++ b/htdocs/core/db/DoliDB.class.php
@@ -221,7 +221,7 @@ abstract class DoliDB implements Database
 	 * Define sort criteria of request
 	 *
 	 * @param	string	$sortfield  List of sort fields, separated by comma. Example: 't1.fielda, t2.fieldb'
-	 * @param	string	$sortorder  Sort order
+	 * @param	'ASC'|'DESC'	$sortorder  Sort order
 	 * @return	string      		String to provide syntax of a sort sql string
 	 */
 	function order($sortfield=null,$sortorder=null)
@@ -236,9 +236,11 @@ abstract class DoliDB implements Database
 				else $return.=',';
 
 				$return.=preg_replace('/[^0-9a-z_\.]/i','',$val);
-				if (! empty($sortorder))
-				{
-					$return.=' '.preg_replace('/[^0-9a-z]/i','',$sortorder);
+				// Only ASC and DESC values are valid SQL
+				if ($sortorder === 'ASC') {
+					$return .= ' ASC';
+				} elseif ($sortorder === 'DESC') {
+					$return .= ' DESC';
 				}
 			}
 			return $return;
-- 
GitLab


From 574b270da0c835d2ef974787b76540ca8c7bbb36 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Wed, 2 Dec 2015 01:38:15 +0100
Subject: [PATCH 064/197] Work on the "mass action" feature. Can run mass
 action on result of a select.

---
 htdocs/compta/facture.php                     |   6 +-
 htdocs/compta/facture/class/facture.class.php |   8 +-
 htdocs/compta/facture/list.php                | 433 +++++++++++++++++-
 htdocs/compta/facture/mergepdftool.php        |   4 +-
 htdocs/core/class/html.form.class.php         |  68 ++-
 htdocs/core/class/html.formmail.class.php     |   4 +-
 htdocs/fourn/facture/card.php                 |   4 +-
 htdocs/langs/en_US/bills.lang                 |   1 +
 htdocs/langs/en_US/mails.lang                 |   7 +-
 htdocs/langs/en_US/main.lang                  |   1 +
 htdocs/langs/en_US/other.lang                 |   6 +-
 11 files changed, 512 insertions(+), 30 deletions(-)

diff --git a/htdocs/compta/facture.php b/htdocs/compta/facture.php
index 86a49f9f232..d5e99af0df6 100644
--- a/htdocs/compta/facture.php
+++ b/htdocs/compta/facture.php
@@ -3886,9 +3886,9 @@ else if ($id > 0 || ! empty($ref))
 		$formmail->withtocc = $liste; // List suggested for CC
 		$formmail->withtoccc = $conf->global->MAIN_EMAIL_USECCC;
 		if (empty($object->ref_client)) {
-			$formmail->withtopic = $outputlangs->transnoentities($topicmail, '__FACREF__');
+			$formmail->withtopic = $outputlangs->transnoentities($topicmail, '__REF__');
 		} else if (! empty($object->ref_client)) {
-			$formmail->withtopic = $outputlangs->transnoentities($topicmail, '__FACREF__ (__REFCLIENT__)');
+			$formmail->withtopic = $outputlangs->transnoentities($topicmail, '__REF__ (__REFCLIENT__)');
 		}
 
 		$formmail->withfile = 2;
@@ -3896,7 +3896,7 @@ else if ($id > 0 || ! empty($ref))
 		$formmail->withdeliveryreceipt = 1;
 		$formmail->withcancel = 1;
 		// Tableau des substitutions
-		$formmail->substit['__FACREF__'] = $object->ref;
+		$formmail->substit['__REF__'] = $object->ref;
 		$formmail->substit['__SIGNATURE__'] = $user->signature;
 		$formmail->substit['__REFCLIENT__'] = $object->ref_client;
 		$formmail->substit['__THIRDPARTY_NAME__'] = $object->thirdparty->name;
diff --git a/htdocs/compta/facture/class/facture.class.php b/htdocs/compta/facture/class/facture.class.php
index b27bc9d2294..b58d2052b99 100644
--- a/htdocs/compta/facture/class/facture.class.php
+++ b/htdocs/compta/facture/class/facture.class.php
@@ -3687,11 +3687,9 @@ class Facture extends CommonInvoice
 
 		$now = dol_now();
 
-		//Paid invoices have status STATUS_CLOSED
-		if (!$this->statut != Facture::STATUS_VALIDATED) {
-			return false;
-		}
-
+		// Paid invoices have status STATUS_CLOSED
+		if ($this->statut != Facture::STATUS_VALIDATED) return false;
+		
 		return $this->date_lim_reglement < ($now - $conf->facture->client->warning_delay);
 	}
 }
diff --git a/htdocs/compta/facture/list.php b/htdocs/compta/facture/list.php
index 9372f50f4aa..cce908dc368 100644
--- a/htdocs/compta/facture/list.php
+++ b/htdocs/compta/facture/list.php
@@ -60,6 +60,7 @@ $id=(GETPOST('id','int')?GETPOST('id','int'):GETPOST('facid','int'));  // For ba
 $ref=GETPOST('ref','alpha');
 $socid=GETPOST('socid','int');
 $action=GETPOST('action','alpha');
+$massaction=GETPOST('massaction','alpha');
 $confirm=GETPOST('confirm','alpha');
 $lineid=GETPOST('lineid','int');
 $userid=GETPOST('userid','int');
@@ -70,6 +71,9 @@ $search_societe=GETPOST('search_societe','alpha');
 $search_montant_ht=GETPOST('search_montant_ht','alpha');
 $search_montant_ttc=GETPOST('search_montant_ttc','alpha');
 $search_status=GETPOST('search_status','int');
+$search_paymentmode=GETPOST('search_paymentmode','int');
+$option = GETPOST('option');
+if ($option == 'late') $filter = 'paye:0';
 
 $sortfield = GETPOST("sortfield",'alpha');
 $sortorder = GETPOST("sortorder",'alpha');
@@ -94,6 +98,7 @@ $day_lim	= GETPOST('day_lim','int');
 $month_lim	= GETPOST('month_lim','int');
 $year_lim	= GETPOST('year_lim','int');
 $filtre	= GETPOST('filtre');
+$toselect = GETPOST('toselect', 'array');
 
 // Security check
 $fieldid = (! empty($ref)?'facnumber':'rowid');
@@ -122,9 +127,290 @@ if (empty($user->socid)) $fieldstosearchall["f.note_private"]="NotePrivate";
  * Actions
  */
 
+if (GETPOST('cancel')) { $action='list'; $massaction=''; }
+
 $parameters=array('socid'=>$socid);
 $reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action);    // Note that $action and $object may have been modified by some hooks
 if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
+if (empty($reshook))
+{
+	// Mass actions
+	if (! empty($massaction) && count($toselect) < 1)
+	{
+		$error++;
+		setEventMessage("NoLineChecked","warnings");
+	}
+
+	if (! $error && $massaction == 'confirm_presend')
+	{
+		$resaction = '';
+		$nbsent = 0;
+		$nbignored = 0;
+		$langs->load("mails");
+		include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
+		
+		if (!isset($user->email))
+		{
+			$error++;
+			setEventMessages($langs->trans("NoSenderEmailDefined"), null, 'warnings');
+		}
+
+		if (! $error)
+		{
+			$thirdparty=new Societe($db);
+			$objecttmp=new Facture($db);
+			$listofobjectid=array();
+			$listofobjectthirdparties=array();
+			$listofobjectref=array();
+			foreach($toselect as $toselectid)
+			{
+				$objecttmp=new Facture($db);	// must create new instance because instance is saved into $listofobjectref array for future use
+				$result=$objecttmp->fetch($toselectid);
+				if ($result > 0) 
+				{
+					$listoinvoicesid[$toselectid]=$toselectid;
+					$thirdpartyid=$objecttmp->fk_soc?$objecttmp->fk_soc:$objecttmp->socid;
+					$listofobjectthirdparties[$thirdpartyid]=$thirdpartyid;
+					$listofobjectref[$thirdpartyid][$toselectid]=$objecttmp;
+				}
+			}
+			//var_dump($listofobjectthirdparties);exit;
+			
+			foreach ($listofobjectthirdparties as $thirdpartyid)
+			{
+				$result = $thirdparty->fetch($thirdpartyid);
+				if ($result < 0) 
+				{
+					dol_print_error($db);
+					exit;
+				}
+				
+				// Define recipient $sendto and $sendtocc
+				if (trim($_POST['sendto']))
+				{
+					// Recipient is provided into free text
+					$sendto = trim($_POST['sendto']);
+					$sendtoid = 0;
+				}
+				elseif ($_POST['receiver'] != '-1')
+				{
+					// Recipient was provided from combo list
+					if ($_POST['receiver'] == 'thirdparty') // Id of third party
+					{
+						$sendto = $thirdparty->email;
+						$sendtoid = 0;
+					}
+					else	// Id du contact
+					{
+						$sendto = $thirdparty->contact_get_property((int) $_POST['receiver'],'email');
+						$sendtoid = $_POST['receiver'];
+					}
+				}
+				if (trim($_POST['sendtocc']))
+				{
+					$sendtocc = trim($_POST['sendtocc']);
+				}
+				elseif ($_POST['receivercc'] != '-1')
+				{
+					// Recipient was provided from combo list
+					if ($_POST['receivercc'] == 'thirdparty')	// Id of third party
+					{
+						$sendtocc = $thirdparty->email;
+					}
+					else	// Id du contact
+					{
+						$sendtocc = $thirdparty->contact_get_property((int) $_POST['receivercc'],'email');
+					}
+				}
+				
+				//var_dump($listofobjectref[$thirdpartyid]);	// Array of invoice for this thirdparty
+				
+				$attachedfiles=array('paths'=>array(), 'names'=>array(), 'mimes'=>array());
+				$listofqualifiedinvoice=array();
+				$listofqualifiedref=array();
+				foreach($listofobjectref[$thirdpartyid] as $objectid => $object)
+				{
+					//var_dump($object);
+					//var_dump($thirdpartyid.' - '.$objectid.' - '.$object->statut);
+					
+					if ($object->statut != Facture::STATUS_VALIDATED)
+					{
+						$nbignored++;
+						continue; // Payment done or started or canceled
+					}
+	
+					// Read document
+					// TODO Use future field $object->fullpathdoc to know where is stored default file
+					// TODO If not defined, use $object->modelpdf (or defaut invoice config) to know what is template to use to regenerate doc.
+					$filename=dol_sanitizeFileName($object->ref).'.pdf';
+					$filedir=$conf->facture->dir_output . '/' . dol_sanitizeFileName($object->ref);
+					$file = $filedir . '/' . $filename;
+					$mime = dol_mimetype($file);
+
+					if (dol_is_file($file))
+					{
+						if (empty($sendto)) 	// For the case, no recipient were set (multi thirdparties send)
+						{
+							$object->fetch_thirdparty();
+							$sendto = $object->thirdparty->email;
+						}
+	
+						if (empty($sendto)) 
+						{
+							//print "No recipient for thirdparty ".$object->thirdparty->name;
+							$nbignored++;
+							continue;
+						}
+	
+						if (dol_strlen($sendto))
+						{
+							// Create form object
+							$attachedfiles=array(
+									'paths'=>array_merge($attachedfiles['paths'],array($file)), 
+									'names'=>array_merge($attachedfiles['names'],array($filename)), 
+									'mimes'=>array_merge($attachedfiles['mimes'],array($mime))
+							);
+						}
+	
+						$listofqualifiedinvoice[$objectid]=$object;
+						$listofqualifiedref[$objectid]=$object->ref;
+					}
+					else
+					{  
+						$nbignored++;
+						$langs->load("other");
+						$resaction.='<div class="error">'.$langs->trans('ErrorCantReadFile',$file).'</div>';
+						dol_syslog('Failed to read file: '.$file, LOG_WARNING);
+						continue;
+					}
+					
+					//var_dump($listofqualifiedref);
+				}
+	
+				if (count($listofqualifiedinvoice) > 0)
+				{
+					$langs->load("commercial");
+					$from = $user->getFullName($langs) . ' <' . $user->email .'>';
+					$replyto = $from;
+					$subject = GETPOST('subject');
+					$message = GETPOST('message');
+					$sendtocc = GETPOST('sentocc');
+					$sendtobcc = (empty($conf->global->MAIN_MAIL_AUTOCOPY_INVOICE_TO)?'':$conf->global->MAIN_MAIL_AUTOCOPY_INVOICE_TO);
+		
+					$substitutionarray=array(
+						'__ID__' => join(', ',array_keys($listofqualifiedinvoice)),
+						'__EMAIL__' => $thirdparty->email,
+						'__CHECK_READ__' => '<img src="'.DOL_MAIN_URL_ROOT.'/public/emailing/mailing-read.php?tag='.$thirdparty->tag.'&securitykey='.urlencode($conf->global->MAILING_EMAIL_UNSUBSCRIBE_KEY).'" width="1" height="1" style="width:1px;height:1px" border="0"/>',
+						//'__LASTNAME__' => $obj2->lastname,
+						//'__FIRSTNAME__' => $obj2->firstname,
+						'__FACREF__' => join(', ',$listofqualifiedref),            // For backward compatibility
+					    '__REF__' => join(', ',$listofqualifiedref),
+						'__REFCLIENT__' => $thirdparty->name
+					);
+	
+					$subject=make_substitutions($subject, $substitutionarray);
+					$message=make_substitutions($message, $substitutionarray);
+	
+					$filepath = $attachedfiles['paths'];
+					$filename = $attachedfiles['names'];
+					$mimetype = $attachedfiles['mimes'];
+					
+					//var_dump($filepath);
+					
+					// Send mail
+					require_once(DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php');
+					$mailfile = new CMailFile($subject,$sendto,$from,$message,$filepath,$mimetype,$filename,$sendtocc,$sendtobcc,$deliveryreceipt,-1);
+					if ($mailfile->error)
+					{
+						$resaction.='<div class="error">'.$mailfile->error.'</div>';
+					}
+					else
+					{
+						$result=$mailfile->sendfile();
+						if ($result)
+						{
+							$resaction.=$langs->trans('MailSuccessfulySent',$mailfile->getValidAddress($from,2),$mailfile->getValidAddress($sendto,2));		// Must not contain "
+	
+							$error=0;
+	
+							foreach($listofqualifiedinvoice as $invid => $object)
+							{
+								$actiontypecode='AC_FAC';
+								$actionmsg=$langs->transnoentities('MailSentBy').' '.$from.' '.$langs->transnoentities('To').' '.$sendto;
+								if ($message)
+								{
+									if ($sendtocc) $actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('Bcc') . ": " . $sendtocc);
+									$actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('MailTopic') . ": " . $subject);
+									$actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('TextUsedInTheMessageBody') . ":");
+									$actionmsg = dol_concatdesc($actionmsg, $message);
+								}
+								
+								// Initialisation donnees
+								$object->sendtoid		= 0;
+								$object->actiontypecode	= $actiontypecode;
+								$object->actionmsg		= $actionmsg;  // Long text
+								$object->actionmsg2		= $actionmsg2; // Short text
+								$object->fk_element		= $invid;
+								$object->elementtype	= $object->element;
+		
+								// Appel des triggers
+								include_once(DOL_DOCUMENT_ROOT . "/core/class/interfaces.class.php");
+								$interface=new Interfaces($db);
+								$result=$interface->run_triggers('BILL_SENTBYMAIL',$object,$user,$langs,$conf);
+								if ($result < 0) { $error++; $this->errors=$interface->errors; }
+								// Fin appel triggers
+		
+								if (! $error)
+								{
+									$resaction.=$langs->trans("MailSent").': '.$sendto."<br>\n";
+								}
+								else
+								{
+									dol_print_error($db);
+								}
+								$nbsent++;
+							}
+						}
+						else
+						{
+							$langs->load("other");
+							if ($mailfile->error)
+							{
+								$resaction.=$langs->trans('ErrorFailedToSendMail',$from,$sendto);
+								$resaction.='<br><div class="error">'.$mailfile->error.'</div>';
+							}
+							else
+							{
+								$resaction.='<div class="warning">No mail sent. Feature is disabled by option MAIN_DISABLE_ALL_MAILS</div>';
+							}
+						}
+					}
+				}
+			}
+
+			$resaction.=($resaction?'<br>':$resaction);
+			$resaction.='<strong>'.$langs->trans("ResultOfMailSending").':</strong><br>'."\n";
+			$resaction.=$langs->trans("NbSelected").': '.count($toselect)."\n<br>";
+			$resaction.=$langs->trans("NbIgnored").': '.($nbignored?$nbignored:0)."\n<br>";
+			$resaction.=$langs->trans("NbSent").': '.($nbsent?$nbsent:0)."\n<br>";
+			
+			if ($nbsent)
+			{
+				$action='';	// Do not show form post if there was at least one successfull sent
+				setEventMessages($langs->trans("EMailSentToNRecipients", $nbsent.'/'.count($toselect)), null, 'mesgs');
+				setEventMessages($resaction, null, 'mesgs');
+			}
+			else
+			{
+				//setEventMessages($langs->trans("EMailSentToNRecipients", 0), null, 'warnings');  // May be object has no generated PDF file
+				setEventMessages($resaction, null, 'warnings');
+			}
+		}
+		
+		$action='list';
+		$massaction='';
+	}
+}
 
 // Do we click on purge search criteria ?
 if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) // Both test are required to be compatible with all browsers
@@ -139,9 +425,13 @@ if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) // Both
     $search_montant_ht='';
     $search_montant_ttc='';
     $search_status='';
+    $search_paymentmode='';
     $day='';
     $year='';
     $month='';
+    $toselect='';
+    $option='';
+    $filter='';
 }
 
     
@@ -160,7 +450,7 @@ $facturestatic=new Facture($db);
 
 $sql = 'SELECT';
 if ($sall || $search_product_category > 0) $sql = 'SELECT DISTINCT';
-$sql.= ' f.rowid as facid, f.facnumber, f.ref_client, f.type, f.note_private, f.increment, f.total as total_ht, f.tva as total_tva, f.total_ttc,';
+$sql.= ' f.rowid as facid, f.facnumber, f.ref_client, f.type, f.note_private, f.increment, f.fk_mode_reglement, f.total as total_ht, f.tva as total_tva, f.total_ttc,';
 $sql.= ' f.datef as df, f.date_lim_reglement as datelimite,';
 $sql.= ' f.paye as paye, f.fk_statut,';
 $sql.= ' s.nom as name, s.rowid as socid, s.code_client, s.client ';
@@ -203,6 +493,7 @@ if ($search_societe) $sql .= natural_search('s.nom', $search_societe);
 if ($search_montant_ht != '') $sql.= natural_search('f.total', $search_montant_ht, 1);
 if ($search_montant_ttc != '') $sql.= natural_search('f.total_ttc', $search_montant_ttc, 1);
 if ($search_status != '' && $search_status >= 0) $sql.= " AND f.fk_statut = ".$db->escape($search_status);
+if ($search_paymentmode > 0) $sql .= " AND f.fk_mode_reglement = ".$search_paymentmode."";
 if ($month > 0)
 {
     if ($year > 0 && empty($day))
@@ -229,6 +520,8 @@ else if ($year_lim > 0)
 {
 	$sql.= " AND f.date_lim_reglement BETWEEN '".$db->idate(dol_get_first_day($year_lim,1,false))."' AND '".$db->idate(dol_get_last_day($year_lim,12,false))."'";
 }
+if ($option == 'late') $sql.=" AND f.date_lim_reglement < '".$db->idate(dol_now() - $conf->facture->client->warning_delay)."'";
+if ($filter == 'paye:0') $sql.= " AND f.fk_statut = 1";
 if ($search_sale > 0) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$search_sale;
 if ($search_user > 0)
 {
@@ -265,6 +558,8 @@ if ($resql)
 {
     $num = $db->num_rows($resql);
 
+	$arrayofselected=is_array($toselect)?$toselect:array();
+    
     if ($socid)
     {
         $soc = new Societe($db);
@@ -282,10 +577,113 @@ if ($resql)
     if ($search_montant_ht != '')  $param.='&search_montant_ht='.$search_montant_ht;
     if ($search_montant_ttc != '') $param.='&search_montant_ttc='.$search_montant_ttc;
 	if ($search_status != '') $param.='&search_status='.$search_status;
-    print_barre_liste($langs->trans('BillsCustomers').' '.($socid?' '.$soc->name:''),$page,$_SERVER["PHP_SELF"],$param,$sortfield,$sortorder,'',$num,$nbtotalofrecords,'title_accountancy.png');
-
+	if ($search_paymentmode > 0) $param.='search_paymentmode='.$search_paymentmode;
+	$param.=(! empty($option)?"&amp;option=".$option:"");
+	
+	$massactionbutton=$form->selectMassAction('', $massaction ? array() : array('presend'=>$langs->trans("SendByMail")));
+    
     $i = 0;
-    print '<form method="GET" action="'.$_SERVER["PHP_SELF"].'">'."\n";
+    print '<form method="POST" name="searchFormList" action="'.$_SERVER["PHP_SELF"].'">'."\n";
+    
+	print_barre_liste($langs->trans('BillsCustomers').' '.($socid?' '.$soc->name:''),$page,$_SERVER["PHP_SELF"],$param,$sortfield,$sortorder,$massactionbutton,$num,$nbtotalofrecords,'title_accountancy.png');
+
+	if ($massaction == 'presend')
+	{
+		$langs->load("mails");
+		
+		if (! GETPOST('cancel')) 
+		{
+			$objecttmp=new Facture($db);
+			$listofselectedid=array();
+			$listofselectedthirdparties=array();
+			$listofselectedref=array();
+			foreach($arrayofselected as $toselectid)
+			{
+				$result=$objecttmp->fetch($toselectid);
+				if ($result > 0) 
+				{
+					$listofselectedid[$toselectid]=$toselectid;
+					$thirdpartyid=$objecttmp->fk_soc?$objecttmp->fk_soc:$objecttmp->socid;
+					$listofselectedthirdparties[$thirdpartyid]=$thirdpartyid;
+					$listofselectedref[$thirdpartyid][$toselectid]=$objecttmp->ref;
+				}
+			}
+		}
+
+		print '<input type="hidden" name="massaction" value="confirm_presend">';
+		
+		include_once DOL_DOCUMENT_ROOT.'/core/class/html.formmail.class.php';
+		$formmail = new FormMail($db);		
+		
+		dol_fiche_head(null, '', $langs->trans("SendByMail"));
+
+		$topicmail="SendBillRef";
+		$modelmail="facture_send";
+
+		// Cree l'objet formulaire mail
+		include_once DOL_DOCUMENT_ROOT.'/core/class/html.formmail.class.php';
+		$formmail = new FormMail($db);
+		$formmail->withform=-1;
+		$formmail->fromtype = 'user';
+		$formmail->fromid   = $user->id;
+		$formmail->fromname = $user->getFullName($langs);
+		$formmail->frommail = $user->email;
+		if (! empty($conf->global->MAIN_EMAIL_ADD_TRACK_ID) && ($conf->global->MAIN_EMAIL_ADD_TRACK_ID & 1))	// If bit 1 is set
+		{
+			$formmail->trackid='inv'.$object->id;
+		}
+		if (! empty($conf->global->MAIN_EMAIL_ADD_TRACK_ID) && ($conf->global->MAIN_EMAIL_ADD_TRACK_ID & 2))	// If bit 2 is set
+		{
+			include DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
+			$formmail->frommail=dolAddEmailTrackId($formmail->frommail, 'inv'.$object->id);
+		}
+		$formmail->withfrom=1;
+		$liste=$langs->trans("AllRecipientSelected");
+		if (count($listofselectedthirdparties) == 1)
+		{
+			$liste=array();
+			$thirdpartyid=array_shift($listofselectedthirdparties);
+   			$soc=new Societe($db);
+    		$soc->fetch($thirdpartyid);
+        	foreach ($soc->thirdparty_and_contact_email_array(1) as $key=>$value)
+        	{
+        		$liste[$key]=$value;
+        	}
+			$formmail->withtoreadonly=0;
+		}
+		else
+		{
+			$formmail->withtoreadonly=1;
+		}
+		$formmail->withto=$liste;
+		$formmail->withtofree=0;
+		$formmail->withtocc=1;
+		$formmail->withtoccc=$conf->global->MAIN_EMAIL_USECCC;
+		$formmail->withtopic=$langs->transnoentities($topicmail, '__REF__', '__REFCLIENT__');
+		$formmail->withfile=$langs->trans("EachInvoiceWillBeAttachedToEmail");
+		$formmail->withbody=1;
+		$formmail->withdeliveryreceipt=1;
+		$formmail->withcancel=1;
+		// Tableau des substitutions
+		$formmail->substit['__REF__']='__REF__';	// We want to keep the tag
+		$formmail->substit['__SIGNATURE__']=$user->signature;
+		$formmail->substit['__REFCLIENT__']='__REFCLIENT__';	// We want to keep the tag
+		$formmail->substit['__PERSONALIZED__']='';
+		$formmail->substit['__CONTACTCIVNAME__']='';
+
+		// Tableau des parametres complementaires du post
+		$formmail->param['action']=$action;
+		$formmail->param['models']=$modelmail;
+		$formmail->param['models_id']=GETPOST('modelmailselected','int');
+		$formmail->param['facid']=join(',',$arrayofselected);
+		//$formmail->param['returnurl']=$_SERVER["PHP_SELF"].'?id='.$object->id;
+
+		print $formmail->get_form();
+        
+        dol_fiche_end();
+	}
+	
+	
     if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
 	print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
 	print '<input type="hidden" name="action" value="list">';
@@ -347,8 +745,9 @@ if ($resql)
     print_liste_field_titre($langs->trans('Date'),$_SERVER['PHP_SELF'],'f.datef','',$param,'align="center"',$sortfield,$sortorder);
     print_liste_field_titre($langs->trans("DateDue"),$_SERVER['PHP_SELF'],"f.date_lim_reglement",'',$param,'align="center"',$sortfield,$sortorder);
     print_liste_field_titre($langs->trans('ThirdParty'),$_SERVER['PHP_SELF'],'s.nom','',$param,'',$sortfield,$sortorder);
+	print_liste_field_titre($langs->trans("PaymentModeShort"),$_SERVER["PHP_SELF"],"f.fk_reglement_mode","",$param,"",$sortfield,$sortorder);
     print_liste_field_titre($langs->trans('AmountHT'),$_SERVER['PHP_SELF'],'f.total','',$param,'align="right"',$sortfield,$sortorder);
-    print_liste_field_titre($langs->trans('AmountVAT'),$_SERVER['PHP_SELF'],'f.tva','',$param,'align="right"',$sortfield,$sortorder);
+    print_liste_field_titre($langs->trans('Taxes'),$_SERVER['PHP_SELF'],'f.tva','',$param,'align="right"',$sortfield,$sortorder);
     print_liste_field_titre($langs->trans('AmountTTC'),$_SERVER['PHP_SELF'],'f.total_ttc','',$param,'align="right"',$sortfield,$sortorder);
     print_liste_field_titre($langs->trans('Received'),$_SERVER['PHP_SELF'],'am','',$param,'align="right"',$sortfield,$sortorder);
     print_liste_field_titre($langs->trans('Status'),$_SERVER['PHP_SELF'],'fk_statut,paye,am','',$param,'align="right"',$sortfield,$sortorder);
@@ -372,8 +771,12 @@ if ($resql)
     if (! empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) print '<input class="flat" type="text" size="1" maxlength="2" name="day_lim" value="'.$day_lim.'">';
     print '<input class="flat" type="text" size="1" maxlength="2" name="month_lim" value="'.$month_lim.'">';
     $formother->select_year($year_lim?$year_lim:-1,'year_lim',1, 20, 5);
+	print '<br><input type="checkbox" name="option" value="late"'.($option == 'late'?' checked':'').'> '.$langs->trans("Late");
     print '</td>';
     print '<td class="liste_titre" align="left"><input class="flat" type="text" size="8" name="search_societe" value="'.$search_societe.'"></td>';
+	print '<td class="liste_titre" align="left">';
+	$form->select_types_paiements($search_paymentmode, 'search_paymentmode', '', 0, 0, 1, 10);
+	print '</td>';
     print '<td class="liste_titre" align="right"><input class="flat" type="text" size="6" name="search_montant_ht" value="'.$search_montant_ht.'"></td>';
     print '<td class="liste_titre"></td>';
     print '<td class="liste_titre" align="right"><input class="flat" type="text" size="6" name="search_montant_ttc" value="'.$search_montant_ttc.'"></td>';
@@ -407,8 +810,8 @@ if ($resql)
             $facturestatic->id=$objp->facid;
             $facturestatic->ref=$objp->facnumber;
             $facturestatic->type=$objp->type;
-            $facturestatic->statut = $objp->fk_statut;
-            $facturestatic->date_lim_reglement = $db->jdate($objp->datelimite);
+            $facturestatic->statut=$objp->fk_statut;
+            $facturestatic->date_lim_reglement=$db->jdate($objp->datelimite);
             $notetoshow=dol_string_nohtmltag(($user->societe_id>0?$objp->note_public:$objp->note),1);
             $paiement = $facturestatic->getSommePaiement();
 
@@ -463,6 +866,11 @@ if ($resql)
             print $thirdparty->getNomUrl(1,'customer');
             print '</td>';
 
+            // Payment mode
+            print '<td>';
+            $form->form_modes_reglement($_SERVER['PHP_SELF'], $objp->fk_mode_reglement, 'none');
+            print '</td>';
+            
             print '<td align="right">'.price($objp->total_ht,0,$langs).'</td>';
 
             print '<td align="right">'.price($objp->total_tva,0,$langs).'</td>';
@@ -471,12 +879,17 @@ if ($resql)
 
             print '<td align="right">'.(! empty($paiement)?price($paiement,0,$langs):'&nbsp;').'</td>';
 
-            // Affiche statut de la facture
+            // Status
             print '<td align="right" class="nowrap">';
             print $facturestatic->LibStatut($objp->paye,$objp->fk_statut,5,$paiement,$objp->type);
             print "</td>";
 
-            print "<td></td>";
+			// Checkbox
+            print '<td class="nowrap" align="center">';
+            $selected=0;
+			if (in_array($objp->facid, $arrayofselected)) $selected=1;
+			print '<input id="cb'.$objp->facid.'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.$objp->facid.'"'.($selected?' checked="checked"':'').'>';
+			print '</td>' ;
 
             print "</tr>\n";
             $total_ht+=$objp->total_ht;
@@ -490,7 +903,7 @@ if ($resql)
         {
             // Print total
             print '<tr class="liste_total">';
-            print '<td class="liste_total" colspan="5" align="left">'.$langs->trans('Total').'</td>';
+            print '<td class="liste_total" colspan="6" align="left">'.$langs->trans('Total').'</td>';
             print '<td class="liste_total" align="right">'.price($total_ht,0,$langs).'</td>';
             print '<td class="liste_total" align="right">'.price($total_tva,0,$langs).'</td>';
             print '<td class="liste_total" align="right">'.price($total_ttc,0,$langs).'</td>';
diff --git a/htdocs/compta/facture/mergepdftool.php b/htdocs/compta/facture/mergepdftool.php
index 968ab8543c2..f79621a4d87 100644
--- a/htdocs/compta/facture/mergepdftool.php
+++ b/htdocs/compta/facture/mergepdftool.php
@@ -590,13 +590,13 @@ if ($resql)
 		$formmail->withtoreadonly=1;
 		$formmail->withtocc=1;
 		$formmail->withtoccc=$conf->global->MAIN_EMAIL_USECCC;
-		$formmail->withtopic=$langs->transnoentities($topicmail, '__FACREF__', '__REFCLIENT__');
+		$formmail->withtopic=$langs->transnoentities($topicmail, '__REF__', '__REFCLIENT__');
 		$formmail->withfile=$langs->trans("EachInvoiceWillBeAttachedToEmail");
 		$formmail->withbody=1;
 		$formmail->withdeliveryreceipt=1;
 		$formmail->withcancel=1;
 		// Tableau des substitutions
-		//$formmail->substit['__FACREF__']='';
+		//$formmail->substit['__REF__']='';
 		$formmail->substit['__SIGNATURE__']=$user->signature;
 		//$formmail->substit['__REFCLIENT__']='';
 		$formmail->substit['__PERSONALIZED__']='';
diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php
index 593d4100c22..3e58a43f43a 100644
--- a/htdocs/core/class/html.form.class.php
+++ b/htdocs/core/class/html.form.class.php
@@ -482,6 +482,72 @@ class Form
         return $this->textwithtooltip($text, $htmltext, 2, $direction, $img, $extracss, $notabs, '', $noencodehtmltext);
     }
 
+    /**
+     * Generate select HTML to choose massaction
+     * 
+     * @parama	string	$selected		Selected value
+     * @param	int		$arrayofaction	array('code'=>'label', ...)
+     * @param	string					Select list
+     */
+    function selectMassAction($selected, $arrayofaction)
+    {
+    	global $conf,$langs,$hookmanager;
+    	
+    	if (count($arrayofaction) == 0) return;
+    	
+    	$disabled=0;
+    	$ret='<div class="centpercent center"><select class="flat hideobject massaction massactionselect" name="massaction"'.($disabled?' disabled="disabled"':'').'>';
+    	$ret.='<option value="0"'.($disabled?' disabled="disabled"':'').'>-- '.$langs->trans("SelectAction").' --</option>';
+    	foreach($arrayofaction as $code => $label)
+    	{
+    		$ret.='<option value="'.$code.'"'.($disabled?' disabled="disabled"':'').'>'.$label.'</option>';
+    	}
+    	$ret.='</select>';
+    	$ret.='<input type="submit" name="confirmmassaction" disabled="disabled" class="button hideobject massaction massactionconfirmed" value="'.dol_escape_htmltag($langs->trans("Confirm")).'">';
+    	$ret.='</div>';
+    	
+    	$ret.='<!-- JS CODE TO ENABLE mass action select -->
+		<script type="text/javascript">
+    	jQuery(document).ready(function () {
+    		function initCheckForSelect()
+    		{
+    			atleastoneselected=0;
+	    		jQuery(".checkforselect").each(function( index ) {
+	  				/* console.log( index + ": " + $( this ).text() ); */
+	  				if ($(this).is(\':checked\')) atleastoneselected++;
+	  			});
+	  			console.log(atleastoneselected);
+	  			if (atleastoneselected)
+	  			{
+	  				jQuery(".massaction").show();
+	  			}
+	  			else
+	  			{
+	  				jQuery(".massaction").hide();
+	  			}
+    		}
+    		initCheckForSelect();
+    		jQuery(".checkforselect").click(function() {
+    			initCheckForSelect();
+	  		});
+	  		jQuery(".massactionselect").change(function() {
+	  			console.log( $( this ).val() );
+	  			if ($(this).val() != \'0\')
+	  			{
+	  				jQuery(".massactionconfirmed").prop(\'disabled\', false);
+	  			}
+	  			else
+	  			{
+	  				jQuery(".massactionconfirmed").prop(\'disabled\', true);
+	  			}
+	  		});
+    	});
+		</script>
+    	';
+    	
+    	return $ret;
+    }
+    
     /**
      *  Return combo list of activated countries, into language of user
      *
@@ -2648,7 +2714,7 @@ class Form
      *      @param  int		$maxlength      Max length of label
      * 		@return	void
      */
-    function select_types_paiements($selected='',$htmlname='paiementtype',$filtertype='',$format=0, $empty=0, $noadmininfo=0,$maxlength=0)
+    function select_types_paiements($selected='', $htmlname='paiementtype', $filtertype='', $format=0, $empty=0, $noadmininfo=0, $maxlength=0)
     {
         global $langs,$user;
 
diff --git a/htdocs/core/class/html.formmail.class.php b/htdocs/core/class/html.formmail.class.php
index 1f0cb5c6e28..c9e8ab7899d 100644
--- a/htdocs/core/class/html.formmail.class.php
+++ b/htdocs/core/class/html.formmail.class.php
@@ -648,7 +648,7 @@ class FormMail extends Form
         			}
         			if ($this->param["models"]=='facture_send')
         			{
-        				$url=getPaypalPaymentUrl(0,'invoice',$this->substit['__FACREF__']);
+        				$url=getPaypalPaymentUrl(0,'invoice',$this->substit['__REF__']);
         				$this->substit['__PERSONALIZED__']=str_replace('\n',"\n",$langs->transnoentitiesnoconv("PredefinedMailContentLink",$url));
         			}
         		}
@@ -692,7 +692,7 @@ class FormMail extends Form
 						else $this->withfckeditor=0;
         			}
 
-        			$doleditor=new DolEditor('message',$defaultmessage,'',280,$this->ckeditortoolbar,'In',true,true,$this->withfckeditor,8,72);
+        			$doleditor=new DolEditor('message',$defaultmessage,'',280,$this->ckeditortoolbar,'In',true,true,$this->withfckeditor,8,'95%');
         			$out.= $doleditor->Create(1);
         		}
         		$out.= "</td></tr>\n";
diff --git a/htdocs/fourn/facture/card.php b/htdocs/fourn/facture/card.php
index fe6582fd355..82cdbe03b64 100644
--- a/htdocs/fourn/facture/card.php
+++ b/htdocs/fourn/facture/card.php
@@ -2338,13 +2338,13 @@ else
 			$formmail->withto=GETPOST("sendto")?GETPOST("sendto"):$liste;
 			$formmail->withtocc=$liste;
             $formmail->withtoccc=$conf->global->MAIN_EMAIL_USECCC;
-            $formmail->withtopic=$outputlangs->trans('SendBillRef','__FACREF__');
+            $formmail->withtopic=$outputlangs->trans('SendBillRef','__REF__');
             $formmail->withfile=2;
             $formmail->withbody=1;
             $formmail->withdeliveryreceipt=1;
             $formmail->withcancel=1;
             // Tableau des substitutions
-            $formmail->substit['__FACREF__']=$object->ref;
+            $formmail->substit['__REF__']=$object->ref;
             $formmail->substit['__SIGNATURE__']=$user->signature;
             $formmail->substit['__PERSONALIZED__']='';
             $formmail->substit['__CONTACTCIVNAME__']='';
diff --git a/htdocs/langs/en_US/bills.lang b/htdocs/langs/en_US/bills.lang
index c347c7a0336..a567fd4f062 100644
--- a/htdocs/langs/en_US/bills.lang
+++ b/htdocs/langs/en_US/bills.lang
@@ -74,6 +74,7 @@ PaymentsAlreadyDone=Payments already done
 PaymentsBackAlreadyDone=Payments back already done
 PaymentRule=Payment rule
 PaymentMode=Payment type
+PaymentModeShort=Payment type
 PaymentTerm=Payment term
 PaymentConditions=Payment terms
 PaymentConditionsShort=Payment terms
diff --git a/htdocs/langs/en_US/mails.lang b/htdocs/langs/en_US/mails.lang
index df5ad878657..bda203ce05f 100644
--- a/htdocs/langs/en_US/mails.lang
+++ b/htdocs/langs/en_US/mails.lang
@@ -84,9 +84,12 @@ EachInvoiceWillBeAttachedToEmail=A document using default invoice document templ
 MailTopicSendRemindUnpaidInvoices=Reminder of invoice %s (%s)
 SendRemind=Send reminder by EMails
 RemindSent=%s reminder(s) sent
-AllRecipientSelectedForRemind=All thirdparties selected and if an email is set.
+AllRecipientSelected=All thirdparties selected and if an email is set.
 NoRemindSent=No EMail reminder sent
-ResultOfMassSending=Result of mass EMail reminders sending
+ResultOfMailSending=Result of mass EMail sending
+NbSelected=Nb selected
+NbIgnored=Nb ignored
+NbSent=Nb sent
 
 # Libelle des modules de liste de destinataires mailing
 MailingModuleDescContactCompanies=Contacts/addresses of all third parties (customer, prospect, supplier, ...)
diff --git a/htdocs/langs/en_US/main.lang b/htdocs/langs/en_US/main.lang
index 070bc5c3d56..db1cebac45d 100644
--- a/htdocs/langs/en_US/main.lang
+++ b/htdocs/langs/en_US/main.lang
@@ -698,6 +698,7 @@ Deductible=Deductible
 from=from
 toward=toward
 Access=Access
+SelectAction=Select action
 HelpCopyToClipboard=Use Ctrl+C to copy to clipboard
 SaveUploadedFileWithMask=Save file on server with name "<strong>%s</strong>" (otherwise "%s")
 OriginFileName=Original filename
diff --git a/htdocs/langs/en_US/other.lang b/htdocs/langs/en_US/other.lang
index 1ff53d36797..d2faa9baae5 100644
--- a/htdocs/langs/en_US/other.lang
+++ b/htdocs/langs/en_US/other.lang
@@ -58,13 +58,13 @@ Miscellaneous=Miscellaneous
 NbOfActiveNotifications=Number of notifications (nb of recipient emails)
 PredefinedMailTest=This is a test mail.\nThe two lines are separated by a carriage return.\n\n__SIGNATURE__
 PredefinedMailTestHtml=This is a <b>test</b> mail (the word test must be in bold).<br>The two lines are separated by a carriage return.<br><br>__SIGNATURE__
-PredefinedMailContentSendInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __FACREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__
-PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__\n\nWe would like to warn you that the invoice  __FACREF__ seems to not being payed. So this is the invoice in attachment again, as a reminder.\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__
+PredefinedMailContentSendInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__
+PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__\n\nWe would like to warn you that the invoice  __REF__ seems to not being payed. So this is the invoice in attachment again, as a reminder.\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__
 PredefinedMailContentSendProposal=__CONTACTCIVNAME__\n\nYou will find here the commercial proposal __PROPREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__
 PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __ASKREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__
 PredefinedMailContentSendOrder=__CONTACTCIVNAME__\n\nYou will find here the order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__
 PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__\n\nYou will find here our order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__
-PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __FACREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__
+PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__
 PredefinedMailContentSendShipping=__CONTACTCIVNAME__\n\nYou will find here the shipping __SHIPPINGREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__
 PredefinedMailContentSendFichInter=__CONTACTCIVNAME__\n\nYou will find here the intervention __FICHINTERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__
 PredefinedMailContentThirdparty=__CONTACTCIVNAME__\n\n__PERSONALIZED__\n\n__SIGNATURE__
-- 
GitLab


From 9aaab2c1dc4049c10041d7a669702fce3a4d8472 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Wed, 2 Dec 2015 23:20:19 +0100
Subject: [PATCH 065/197] Work on select fields on project list

---
 htdocs/projet/list.php  | 67 ++++++++++++++++++++++++++++++++---------
 htdocs/societe/list.php | 10 +++---
 2 files changed, 58 insertions(+), 19 deletions(-)

diff --git a/htdocs/projet/list.php b/htdocs/projet/list.php
index c4e8b8f5783..a50595db609 100644
--- a/htdocs/projet/list.php
+++ b/htdocs/projet/list.php
@@ -84,8 +84,58 @@ $syear	= GETPOST('syear','int');
 
 if ($search_status == '') $search_status=-1;	// -1 or 1
 
-// Purge criteria
-if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) // Both test are required to be compatible with all browsers
+// Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array
+$contextpage='projectlist';
+
+// Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array
+$hookmanager->initHooks(array($contextpage));
+$extrafields = new ExtraFields($db);
+
+// fetch optionals attributes and labels
+$extralabels = $extrafields->fetch_name_optionals_label('project');
+$search_array_options=$extrafields->getOptionalsFromPost($extralabels,'','search_');
+
+// List of fields to search into when doing a "search in all"
+$fieldstosearchall = array(
+	'p.ref'=>"Ref",
+	'p.title'=>"Label",
+	's.nom'=>"ThirdPartyName",
+    "p.note_public"=>"NotePublic"
+);
+if (empty($user->socid)) $fieldstosearchall["p.note_private"]="NotePrivate";
+
+$arrayfields=array(
+    'p.ref'=>array('label'=>$langs->trans("Ref"), 'checked'=>1),
+    'p.label'=>array('label'=>$langs->trans("Label"), 'checked'=>1),
+    's.nom'=>array('label'=>$langs->trans("ThirdParty"), 'checked'=>1),
+    'commerical'=>array('label'=>$langs->trans("SaleRepresentative"), 'checked'=>1),
+	'p.date_start'=>array('label'=>$langs->trans("DateStart"), 'checked'=>1, 'position'=>100),
+    'p.date_end'=>array('label'=>$langs->trans("DateEnd"), 'checked'=>1, 'position'=>101),
+    'p.visibility'=>array('label'=>$langs->trans("Visibility"), 'checked'=>1, 'position'=>102),
+    'p.opportunity_amount'=>array('label'=>$langs->trans("OpportunityAmount"), 'checked'=>1, 'enabled'=>$conf->global->PROJECT_USE_OPPORTUNITIES, 'position'=>103),
+	'p.opportunity_status'=>array('label'=>$langs->trans("OpportunityStatus"), 'checked'=>1, 'enabled'=>$conf->global->PROJECT_USE_OPPORTUNITIES, 'position'=>104),
+	'p.datec'=>array('label'=>$langs->trans("DateCreation"), 'checked'=>0, 'position'=>500),
+    'p.tms'=>array('label'=>$langs->trans("DateModificationShort"), 'checked'=>0, 'position'=>500),
+    'p.status'=>array('label'=>$langs->trans("Status"), 'checked'=>1, 'position'=>1000),
+);
+// Extra fields
+if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label))
+{
+   foreach($extrafields->attribute_label as $key => $val) 
+   {
+       $arrayfields["ef.".$key]=array('label'=>$extrafields->attribute_label[$key], 'checked'=>$extrafields->attribute_list[$key], 'position'=>$extrafields->attribute_pos[$key], 'enabled'=>$extrafields->attribute_perms[$key]);
+   }
+}
+
+
+/*
+ * Actions
+ */
+
+include DOL_DOCUMENT_ROOT.'/core/actions_changeselectedfields.inc.php';
+
+// Do we click on purge search criteria ?
+if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter.x") || GETPOST("button_removefilter")) // Both test are required to be compatible with all browsers
 {
 	$search_all='';
 	$search_ref="";
@@ -103,20 +153,9 @@ if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) // Both
 	$sday="";
 	$smonth="";
 	$syear="";
+	$search_array_options=array();
 }
 
-// Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array
-$hookmanager->initHooks(array('projectlist'));
-$extrafields = new ExtraFields($db);
-
-// List of fields to search into when doing a "search in all"
-$fieldstosearchall = array(
-	'p.ref'=>"Ref",
-	'p.title'=>"Label",
-	's.nom'=>"ThirdPartyName",
-    "p.note_public"=>"NotePublic"
-);
-if (empty($user->socid)) $fieldstosearchall["p.note_private"]="NotePrivate";
 
 
 /*
diff --git a/htdocs/societe/list.php b/htdocs/societe/list.php
index 8477eb97788..ef64761ab6f 100644
--- a/htdocs/societe/list.php
+++ b/htdocs/societe/list.php
@@ -634,14 +634,14 @@ if ($resql)
     if (! empty($arrayfields['s.town']['checked']))
     {
         print '<td class="liste_titre">';
-    	print '<input class="flat" size="8" type="text" name="search_town" value="'.dol_escape_htmltag($search_town).'">';
+    	print '<input class="flat" size="6" type="text" name="search_town" value="'.dol_escape_htmltag($search_town).'">';
     	print '</td>';
     }
 	// Zip
     if (! empty($arrayfields['s.zip']['checked']))
     {
         print '<td class="liste_titre">';
-    	print '<input class="flat" size="8" type="text" name="search_zip" value="'.dol_escape_htmltag($search_zip).'">';
+    	print '<input class="flat" size="4" type="text" name="search_zip" value="'.dol_escape_htmltag($search_zip).'">';
     	print '</td>';
     }
     // Country
@@ -966,21 +966,21 @@ if ($resql)
         // Date creation
         if (! empty($arrayfields['s.datec']['checked']))
         {
-            print '<td align="center">';
+            print '<td align="center" class="nowrap">';
             print dol_print_date($db->jdate($obj->date_creation), 'dayhour');
             print '</td>';
         }
         // Date modification
         if (! empty($arrayfields['s.tms']['checked']))
         {
-            print '<td align="center">';
+            print '<td align="center" class="nowrap">';
             print dol_print_date($db->jdate($obj->date_update), 'dayhour');
             print '</td>';
         }
 	    // Status
         if (! empty($arrayfields['s.status']['checked']))
         {
-            print '<td align="center">'.$companystatic->getLibStatut(3).'</td>';
+            print '<td align="center" class="nowrap">'.$companystatic->getLibStatut(3).'</td>';
         }
         // Action column
         print '<td></td>';
-- 
GitLab


From c664a492e631ace92ee325d1bf875ecf935c52bd Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Thu, 3 Dec 2015 10:01:40 +0100
Subject: [PATCH 066/197] Removed a not used field making mysql error (reserved
 word). Also this field is not required by dolibarr core.

---
 htdocs/install/mysql/tables/llx_product.sql | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/htdocs/install/mysql/tables/llx_product.sql b/htdocs/install/mysql/tables/llx_product.sql
index e34ae887ffc..3259fa360b9 100755
--- a/htdocs/install/mysql/tables/llx_product.sql
+++ b/htdocs/install/mysql/tables/llx_product.sql
@@ -31,7 +31,6 @@ create table llx_product
 
   datec						datetime,
   tms						timestamp,
-  virtual					tinyint	  DEFAULT 0 NOT NULL,	-- Not used. Used by external modules. Value 0 for physical product, 1 for virtual product
   fk_parent					integer	  DEFAULT 0,			-- Not used. Used by external modules. Virtual product id
 
   label						varchar(255) NOT NULL,
@@ -76,7 +75,7 @@ create table llx_product
   fifo						double(24,8),							-- To store valuation of stock calculated using fifo method, for this product
   lifo						double(24,8),							-- To store valuation of stock calculated using lifo method, for this product
   canvas					varchar(32)  DEFAULT NULL,
-  finished					tinyint      DEFAULT NULL,
+  finished					tinyint      DEFAULT NULL,		-- 1=manufactured product, 0=matiere premiere
   hidden					tinyint      DEFAULT 0,			-- Not used. Deprecated.
   import_key				varchar(14),					-- Import key
   fk_price_expression integer,                     -- Link to the rule for dynamic price calculation
-- 
GitLab


From cb8227f0861d7b7836fa233ed6acfb3fdb3e8b47 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Thu, 3 Dec 2015 10:04:13 +0100
Subject: [PATCH 067/197] Fix syntax error

---
 htdocs/core/class/extrafields.class.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/htdocs/core/class/extrafields.class.php b/htdocs/core/class/extrafields.class.php
index 6a397c1245f..399d148220c 100644
--- a/htdocs/core/class/extrafields.class.php
+++ b/htdocs/core/class/extrafields.class.php
@@ -1552,7 +1552,7 @@ class ExtraFields
 				{
 					$value_arr=GETPOST($keysuffix."options_".$key.$keyprefix);
 					// Make sure we get an array even if there's only one checkbox
-					$value_arr=(array)$value_arr
+					$value_arr=(array) $value_arr;
 					$value_key=implode(',', $value_arr);
 				}
 				else if (in_array($key_type,array('price','double')))
-- 
GitLab


From 281eaf2987df657006059d1d24acf73fda0a1607 Mon Sep 17 00:00:00 2001
From: Florian HENRY <florian.henry@open-concept.pro>
Date: Thu, 3 Dec 2015 10:27:23 +0100
Subject: [PATCH 068/197] FIX : Use "WHERE true" instead of "WHERE 1" #4132

---
 htdocs/core/class/extrafields.class.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/htdocs/core/class/extrafields.class.php b/htdocs/core/class/extrafields.class.php
index 5d04b9c9317..8df0e0fcbc2 100644
--- a/htdocs/core/class/extrafields.class.php
+++ b/htdocs/core/class/extrafields.class.php
@@ -818,7 +818,7 @@ class ExtraFields
 				}
 				else 
 				{
-					$sqlwhere.= ' WHERE 1';
+					$sqlwhere.= ' WHERE 1=1';
 				}
 				if (in_array($InfoFieldList[0],array('tablewithentity'))) $sqlwhere.= ' AND entity = '.$conf->entity;	// Some tables may have field, some other not. For the moment we disable it.
 				$sql.=$sqlwhere;
-- 
GitLab


From 33e73afda6aaf1fd225e803cd4fcd24ec46a8412 Mon Sep 17 00:00:00 2001
From: Florian HENRY <florian.henry@open-concept.pro>
Date: Thu, 3 Dec 2015 10:51:03 +0100
Subject: [PATCH 069/197] FIX : Cannot change the date of a contract #4088

---
 htdocs/contrat/card.php | 37 ++++++++++++++++++++++++++++++++++---
 1 file changed, 34 insertions(+), 3 deletions(-)

diff --git a/htdocs/contrat/card.php b/htdocs/contrat/card.php
index 5ddb0b343fa..e0d08dbc1fa 100644
--- a/htdocs/contrat/card.php
+++ b/htdocs/contrat/card.php
@@ -830,7 +830,7 @@ if (empty($reshook))
 	            setEventMessages($object->error, $object->errors, 'errors');
 	        }
 	
-	        $result = $object->setValueFrom('ref',GETPOST('ref','alpha'));;
+	        $result = $object->setValueFrom('ref',GETPOST('ref','alpha'));
 	        if ($result < 0) {
 	            setEventMessages($object->error, $object->errors, 'errors');
 	            $action = 'editref';
@@ -843,6 +843,30 @@ if (empty($reshook))
 	        header("Location: " . $_SERVER['PHP_SELF'] . "?id=" . $id);
 	        exit;
 	    }
+	} 
+	elseif ($action=='setdate_contrat') 
+	{
+	    $cancelbutton = GETPOST('cancel');
+	
+	    if (!$cancelbutton) {
+	        $result = $object->fetch($id);
+	        if ($result < 0) {
+	            setEventMessages($object->error, $object->errors, 'errors');
+	        }
+			$datacontrat=dol_mktime(GETPOST('date_contrathour'), GETPOST('date_contratmin'), 0, GETPOST('date_contratmonth'), GETPOST('date_contratday'), GETPOST('date_contratyear'));
+	        $result = $object->setValueFrom('date_contrat',$datacontrat,'',null,'date');
+	        if ($result < 0) {
+	            setEventMessages($object->error, $object->errors, 'errors');
+	            $action = 'editdate_contrat';
+	        } else {
+	            header("Location: " . $_SERVER['PHP_SELF'] . "?id=" . $object->id);
+	            exit;
+	        }
+	    }
+	    else {
+	        header("Location: " . $_SERVER['PHP_SELF'] . "?id=" . $id);
+	        exit;
+	    }
 	}
 	
 	// Generation doc (depuis lien ou depuis cartouche doc)
@@ -1278,8 +1302,15 @@ else
         print "</td></tr>";
 
         // Date
-        print '<tr><td>'.$langs->trans("Date").'</td>';
-        print '<td colspan="3">'.dol_print_date($object->date_contrat,"dayhour")."</td></tr>\n";
+        print '<tr>';
+		print '<td  width="20%">';
+		print $form->editfieldkey("Date",'date_contrat',$object->date_contrat,$object,$user->rights->contrat->creer);
+		print '</td><td>';
+		print $form->editfieldval("Date",'date_contrat',$object->date_contrat,$object,$user->rights->contrat->creer,'datehourpicker');
+		print '</td>';
+		print '</tr>';
+       /* print '<tr><td>'.$langs->trans("Date").'</td>';
+        print '<td colspan="3">'.dol_print_date($object->date_contrat,"dayhour")."</td></tr>\n";*/
 
         // Projet
         if (! empty($conf->projet->enabled))
-- 
GitLab


From b4160c7f81536d2f91afbfca528eac6f49017355 Mon Sep 17 00:00:00 2001
From: Florian HENRY <florian.henry@open-concept.pro>
Date: Thu, 3 Dec 2015 10:58:06 +0100
Subject: [PATCH 070/197]  Cannot change the date of a contract #4088

---
 htdocs/comm/card.php | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/htdocs/comm/card.php b/htdocs/comm/card.php
index a9164676716..7b2cee3b91d 100644
--- a/htdocs/comm/card.php
+++ b/htdocs/comm/card.php
@@ -762,7 +762,7 @@ if ($id > 0)
 	{
 		$contratstatic=new Contrat($db);
 
-		$sql = "SELECT s.nom, s.rowid, c.rowid as id, c.ref as ref, c.statut, c.datec as dc";
+		$sql = "SELECT s.nom, s.rowid, c.rowid as id, c.ref as ref, c.statut, c.datec as dc, c.date_contrat as dcon";
 		$sql.= " FROM ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."contrat as c";
 		$sql.= " WHERE c.fk_soc = s.rowid ";
 		$sql.= " AND s.rowid = ".$object->id;
@@ -779,7 +779,7 @@ if ($id > 0)
 		        print '<table class="noborder" width="100%">';
 
 			    print '<tr class="liste_titre">';
-				print '<td colspan="4"><table width="100%" class="nobordernopadding"><tr><td>'.$langs->trans("LastContracts",($num<=$MAXLIST?"":$MAXLIST)).'</td>';
+				print '<td colspan="5"><table width="100%" class="nobordernopadding"><tr><td>'.$langs->trans("LastContracts",($num<=$MAXLIST?"":$MAXLIST)).'</td>';
 				print '<td align="right"><a href="'.DOL_URL_ROOT.'/contrat/list.php?socid='.$object->id.'">'.$langs->trans("AllContracts").' <span class="badge">'.$num.'</span></a></td></tr></table></td>';
 				print '</tr>';
 			}
@@ -797,6 +797,7 @@ if ($id > 0)
 				print $contrat->getNomUrl(1,12);
 				print "</td>\n";
 				print '<td align="right" width="80">'.dol_print_date($db->jdate($objp->dc),'day')."</td>\n";
+				print '<td align="right" width="80">'.dol_print_date($db->jdate($objp->dcon),'day')."</td>\n";
 				print '<td width="20">&nbsp;</td>';
 				print '<td align="right" class="nowrap">';
 				$contrat->fetch_lines();
-- 
GitLab


From ee08c4afc4ee134683638fbc2e8c11b401850f03 Mon Sep 17 00:00:00 2001
From: Florian HENRY <florian.henry@open-concept.pro>
Date: Thu, 3 Dec 2015 11:03:40 +0100
Subject: [PATCH 071/197]  Display the ref_supplier inside the contract list of
 /comm/card.php #4090

---
 htdocs/comm/card.php | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/htdocs/comm/card.php b/htdocs/comm/card.php
index 7b2cee3b91d..e5615aa66ba 100644
--- a/htdocs/comm/card.php
+++ b/htdocs/comm/card.php
@@ -762,7 +762,7 @@ if ($id > 0)
 	{
 		$contratstatic=new Contrat($db);
 
-		$sql = "SELECT s.nom, s.rowid, c.rowid as id, c.ref as ref, c.statut, c.datec as dc, c.date_contrat as dcon";
+		$sql = "SELECT s.nom, s.rowid, c.rowid as id, c.ref as ref, c.statut, c.datec as dc, c.date_contrat as dcon, c.ref_supplier as refsup";
 		$sql.= " FROM ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."contrat as c";
 		$sql.= " WHERE c.fk_soc = s.rowid ";
 		$sql.= " AND s.rowid = ".$object->id;
@@ -779,7 +779,7 @@ if ($id > 0)
 		        print '<table class="noborder" width="100%">';
 
 			    print '<tr class="liste_titre">';
-				print '<td colspan="5"><table width="100%" class="nobordernopadding"><tr><td>'.$langs->trans("LastContracts",($num<=$MAXLIST?"":$MAXLIST)).'</td>';
+				print '<td colspan="6"><table width="100%" class="nobordernopadding"><tr><td>'.$langs->trans("LastContracts",($num<=$MAXLIST?"":$MAXLIST)).'</td>';
 				print '<td align="right"><a href="'.DOL_URL_ROOT.'/contrat/list.php?socid='.$object->id.'">'.$langs->trans("AllContracts").' <span class="badge">'.$num.'</span></a></td></tr></table></td>';
 				print '</tr>';
 			}
@@ -796,6 +796,7 @@ if ($id > 0)
 				$contrat->ref=$objp->ref?$objp->ref:$objp->id;
 				print $contrat->getNomUrl(1,12);
 				print "</td>\n";
+				print '<td class="nowrap">'.dol_trunc($objp->refsup,12)."</td>\n";
 				print '<td align="right" width="80">'.dol_print_date($db->jdate($objp->dc),'day')."</td>\n";
 				print '<td align="right" width="80">'.dol_print_date($db->jdate($objp->dcon),'day')."</td>\n";
 				print '<td width="20">&nbsp;</td>';
-- 
GitLab


From 10a925f7b4f0625b8c1353c44140588ee4794f47 Mon Sep 17 00:00:00 2001
From: Florian HENRY <florian.henry@open-concept.pro>
Date: Thu, 3 Dec 2015 11:52:41 +0100
Subject: [PATCH 072/197] FIX: WHERE 1=1

---
 htdocs/core/class/extrafields.class.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/htdocs/core/class/extrafields.class.php b/htdocs/core/class/extrafields.class.php
index 8df0e0fcbc2..5f3caf18369 100644
--- a/htdocs/core/class/extrafields.class.php
+++ b/htdocs/core/class/extrafields.class.php
@@ -986,7 +986,7 @@ class ExtraFields
 						$sqlwhere .= ' WHERE ' . $InfoFieldList[4];
 					}
 				} else {
-					$sqlwhere .= ' WHERE 1';
+					$sqlwhere .= ' WHERE 1=1';
 				}
 				if (in_array($InfoFieldList[0], array (
 						'tablewithentity'
-- 
GitLab


From a7d03af4afdbd2cfe8bd3990ce98e9f9d330b0b4 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Thu, 3 Dec 2015 12:47:21 +0100
Subject: [PATCH 073/197] Fix sending emails from mergepedtool was just doing
 wrong things.

---
 htdocs/compta/facture/mergepdftool.php | 359 +++++++++++++++++--------
 1 file changed, 251 insertions(+), 108 deletions(-)

diff --git a/htdocs/compta/facture/mergepdftool.php b/htdocs/compta/facture/mergepdftool.php
index ea0eedfa36a..b84dd1a62c6 100644
--- a/htdocs/compta/facture/mergepdftool.php
+++ b/htdocs/compta/facture/mergepdftool.php
@@ -70,6 +70,11 @@ $diroutputpdf=$conf->facture->dir_output . '/unpaid/temp';
 if (! $user->rights->societe->client->voir || $socid) $diroutputpdf.='/private/'.$user->id;	// If user has no permission to see all, output dir is specific to user
 
 $resultmasssend='';
+if (GETPOST('buttonsendremind')) 
+{
+	$action='presend';
+	$mode='sendmassremind';
+}
 
 if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter"))		// Both test must be present to be compatible with all browsers
 {
@@ -122,15 +127,90 @@ if ($action == 'presend' && GETPOST('sendmail'))
 		$nbsent = 0;
 		$nbignored = 0;
 
-		for ($i = 0; $i < $countToSend; $i++)
+		$arrayofinvoices=GETPOST('toSend','array');
+		
+		$thirdparty=new Societe($db);
+		$invoicetmp=new Facture($db);
+		$listofinvoicesid=array();
+		$listofinvoicesthirdparties=array();
+		$listofinvoicesref=array();
+		foreach($arrayofinvoices as $invoiceid)
 		{
-			$object = new Facture($db);
-			$result = $object->fetch($_POST['toSend'][$i]);
-
-			if ($result > 0)	// Invoice was found
+			$invoicetmp=new Facture($db);	// must create new instance because instance is saved into $listofinvoicesref array for future use
+			$result=$invoicetmp->fetch($invoiceid);
+			if ($result > 0) 
+			{
+				$listoinvoicesid[$invoiceid]=$invoiceid;
+				$thirdpartyid=$invoicetmp->fk_soc?$invoicetmp->fk_soc:$invoicetmp->socid;
+				$listofinvoicesthirdparties[$thirdpartyid]=$thirdpartyid;
+				$listofinvoicesref[$thirdpartyid][$invoiceid]=$invoicetmp;
+			}
+		}
+		//var_dump($listofinvoicesref);exit;
+		
+		foreach ($listofinvoicesthirdparties as $thirdpartyid)
+		{
+			$result = $thirdparty->fetch($thirdpartyid);
+			if ($result < 0) 
+			{
+				dol_print_error($db);
+				exit;
+			}
+			
+			// Define recipient $sendto and $sendtocc
+			if (trim($_POST['sendto']))
+			{
+				// Recipient is provided into free text
+				$sendto = trim($_POST['sendto']);
+				$sendtoid = 0;
+			}
+			elseif ($_POST['receiver'] != '-1')
 			{
+				// Recipient was provided from combo list
+				if ($_POST['receiver'] == 'thirdparty') // Id of third party
+				{
+					$sendto = $thirdparty->email;
+					$sendtoid = 0;
+				}
+				else	// Id du contact
+				{
+					$sendto = $thirdparty->contact_get_property((int) $_POST['receiver'],'email');
+					$sendtoid = $_POST['receiver'];
+				}
+			}
+			if (trim($_POST['sendtocc']))
+			{
+				$sendtocc = trim($_POST['sendtocc']);
+			}
+			elseif ($_POST['receivercc'] != '-1')
+			{
+				// Recipient was provided from combo list
+				if ($_POST['receivercc'] == 'thirdparty')	// Id of third party
+				{
+					$sendtocc = $thirdparty->email;
+				}
+				else	// Id du contact
+				{
+					$sendtocc = $thirdparty->contact_get_property((int) $_POST['receivercc'],'email');
+				}
+			}
+			
+			//var_dump($listofinvoicesref[$thirdpartyid]);
+			
+			$attachedfiles=array('paths'=>array(), 'names'=>array(), 'mimes'=>array());
+			$listofqualifiedinvoice=array();
+			$listofqualifiedref=array();
+			foreach($listofinvoicesref[$thirdpartyid] as $invoiceid => $invoice)
+			{
+				//var_dump($invoice);
+				$object = $invoice;
+				//$object = new Facture($db);
+				//$result = $object->fetch();
+				//var_dump($thirdpartyid.' - '.$invoiceid.' - '.$object->statut);
+				
 				if ($object->statut != Facture::STATUS_VALIDATED)
 				{
+					$nbignored++;
 					continue; // Payment done or started or canceled
 				}
 
@@ -144,115 +224,140 @@ if ($action == 'presend' && GETPOST('sendmail'))
 
 				if (dol_is_file($file))
 				{
-					$object->fetch_thirdparty();
-					$sendto = $object->thirdparty->email;
+					if (empty($sendto)) 	// For the case, no recipient were set (multi thirdparties send)
+					{
+						$object->fetch_thirdparty();
+						$sendto = $object->thirdparty->email;
+					}
 
-					if (empty($sendto)) $nbignored++;
+					if (empty($sendto)) 
+					{
+						$nbignored++;
+						continue;
+					}
 
 					if (dol_strlen($sendto))
 					{
-						$langs->load("commercial");
-						$from = $user->getFullName($langs) . ' <' . $user->email .'>';
-						$replyto = $from;
-						$subject = GETPOST('subject');
-						$message = GETPOST('message');
-						$sendtocc = GETPOST('sentocc');
-						$sendtobcc = (empty($conf->global->MAIN_MAIL_AUTOCOPY_INVOICE_TO)?'':$conf->global->MAIN_MAIL_AUTOCOPY_INVOICE_TO);
-
-						$substitutionarray=array(
-							'__ID__' => $object->id,
-							'__EMAIL__' => $object->thirdparty->email,
-							'__CHECK_READ__' => '<img src="'.DOL_MAIN_URL_ROOT.'/public/emailing/mailing-read.php?tag='.$obj2->tag.'&securitykey='.urlencode($conf->global->MAILING_EMAIL_UNSUBSCRIBE_KEY).'" width="1" height="1" style="width:1px;height:1px" border="0"/>',
-							//'__LASTNAME__' => $obj2->lastname,
-							//'__FIRSTNAME__' => $obj2->firstname,
-							'__FACREF__' => $object->ref,            // For backward compatibility
-						    '__REF__' => $object->ref,
-							'__REFCLIENT__' => $object->thirdparty->name
+						// Create form object
+						$attachedfiles=array(
+								'paths'=>array_merge($attachedfiles['paths'],array($file)), 
+								'names'=>array_merge($attachedfiles['names'],array($filename)), 
+								'mimes'=>array_merge($attachedfiles['mimes'],array($mime))
 						);
+					}
 
-						$subject=make_substitutions($subject, $substitutionarray);
-						$message=make_substitutions($message, $substitutionarray);
+					$listofqualifiedinvoice[$invoiceid]=$invoice;
+					$listofqualifiedref[$invoiceid]=$invoice->ref;
+				}
+				else
+				{  
+					$nbignored++;
+					$langs->load("other");
+					$resultmasssend.='<div class="error">'.$langs->trans('ErrorCantReadFile',$file).'</div>';
+					dol_syslog('Failed to read file: '.$file, LOG_WARNING);
+					continue;
+				}
+				
+				//var_dump($listofqualifiedref);
+			}
 
-						$actiontypecode='AC_FAC';
-						$actionmsg=$langs->transnoentities('MailSentBy').' '.$from.' '.$langs->transnoentities('To').' '.$sendto;
-						if ($message)
-						{
-							if ($sendtocc) $actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('Bcc') . ": " . $sendtocc);
-							$actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('MailTopic') . ": " . $subject);
-							$actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('TextUsedInTheMessageBody') . ":");
-							$actionmsg = dol_concatdesc($actionmsg, $message);
-						}
+			if (count($listofqualifiedinvoice) > 0)
+			{
+				$langs->load("commercial");
+				$from = $user->getFullName($langs) . ' <' . $user->email .'>';
+				$replyto = $from;
+				$subject = GETPOST('subject');
+				$message = GETPOST('message');
+				$sendtocc = GETPOST('sentocc');
+				$sendtobcc = (empty($conf->global->MAIN_MAIL_AUTOCOPY_INVOICE_TO)?'':$conf->global->MAIN_MAIL_AUTOCOPY_INVOICE_TO);
+	
+				$substitutionarray=array(
+					'__ID__' => join(', ',array_keys($listofqualifiedinvoice)),
+					'__EMAIL__' => $thirdparty->email,
+					'__CHECK_READ__' => '<img src="'.DOL_MAIN_URL_ROOT.'/public/emailing/mailing-read.php?tag='.$thirdparty->tag.'&securitykey='.urlencode($conf->global->MAILING_EMAIL_UNSUBSCRIBE_KEY).'" width="1" height="1" style="width:1px;height:1px" border="0"/>',
+					//'__LASTNAME__' => $obj2->lastname,
+					//'__FIRSTNAME__' => $obj2->firstname,
+					'__FACREF__' => join(', ',$listofqualifiedref),            // For backward compatibility
+				    '__REF__' => join(', ',$listofqualifiedref),
+					'__REFCLIENT__' => $thirdparty->name
+				);
+
+				$subject=make_substitutions($subject, $substitutionarray);
+				$message=make_substitutions($message, $substitutionarray);
+
+				$filepath = $attachedfiles['paths'];
+				$filename = $attachedfiles['names'];
+				$mimetype = $attachedfiles['mimes'];
+				
+				//var_dump($filepath);
+				
+				// Send mail
+				require_once(DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php');
+				$mailfile = new CMailFile($subject,$sendto,$from,$message,$filepath,$mimetype,$filename,$sendtocc,$sendtobcc,$deliveryreceipt,-1);
+				if ($mailfile->error)
+				{
+					$resultmasssend.='<div class="error">'.$mailfile->error.'</div>';
+				}
+				else
+				{
+					$result=$mailfile->sendfile();
+					if ($result)
+					{
+						$resultmasssend.=$langs->trans('MailSuccessfulySent',$mailfile->getValidAddress($from,2),$mailfile->getValidAddress($sendto,2));		// Must not contain "
 
-						// Create form object
-						$attachedfiles=array('paths'=>array($file), 'names'=>array($filename), 'mimes'=>array($mime));
-						$filepath = $attachedfiles['paths'];
-						$filename = $attachedfiles['names'];
-						$mimetype = $attachedfiles['mimes'];
-
-						// Send mail
-						require_once(DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php');
-						$mailfile = new CMailFile($subject,$sendto,$from,$message,$filepath,$mimetype,$filename,$sendtocc,$sendtobcc,$deliveryreceipt,-1);
-						if ($mailfile->error)
-						{
-							$resultmasssend.='<div class="error">'.$mailfile->error.'</div>';
-						}
-						else
+						$error=0;
+
+						foreach($listofqualifiedinvoice as $invid => $object)
 						{
-							$result=$mailfile->sendfile();
-							if ($result)
+							$actiontypecode='AC_FAC';
+							$actionmsg=$langs->transnoentities('MailSentBy').' '.$from.' '.$langs->transnoentities('To').' '.$sendto;
+							if ($message)
 							{
-								$resultmasssend.=$langs->trans('MailSuccessfulySent',$mailfile->getValidAddress($from,2),$mailfile->getValidAddress($sendto,2));		// Must not contain "
-
-								$error=0;
-
-								// Initialisation donnees
-								$object->sendtoid		= 0;
-								$object->actiontypecode	= $actiontypecode;
-								$object->actionmsg		= $actionmsg;  // Long text
-								$object->actionmsg2		= $actionmsg2; // Short text
-								$object->fk_element		= $object->id;
-								$object->elementtype	= $object->element;
-
-								// Appel des triggers
-								include_once(DOL_DOCUMENT_ROOT . "/core/class/interfaces.class.php");
-								$interface=new Interfaces($db);
-								$result=$interface->run_triggers('BILL_SENTBYMAIL',$object,$user,$langs,$conf);
-								if ($result < 0) { $error++; $this->errors=$interface->errors; }
-								// Fin appel triggers
-
-								if (! $error)
-								{
-									$resultmasssend.=$langs->trans("MailSent").': '.$sendto."<br>\n";
-								}
-								else
-								{
-									dol_print_error($db);
-								}
-								$nbsent++;
-
+								if ($sendtocc) $actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('Bcc') . ": " . $sendtocc);
+								$actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('MailTopic') . ": " . $subject);
+								$actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('TextUsedInTheMessageBody') . ":");
+								$actionmsg = dol_concatdesc($actionmsg, $message);
+							}
+							
+							// Initialisation donnees
+							$object->sendtoid		= 0;
+							$object->actiontypecode	= $actiontypecode;
+							$object->actionmsg		= $actionmsg;  // Long text
+							$object->actionmsg2		= $actionmsg2; // Short text
+							$object->fk_element		= $invid;
+							$object->elementtype	= $invoice->element;
+	
+							// Appel des triggers
+							include_once(DOL_DOCUMENT_ROOT . "/core/class/interfaces.class.php");
+							$interface=new Interfaces($db);
+							$result=$interface->run_triggers('BILL_SENTBYMAIL',$object,$user,$langs,$conf);
+							if ($result < 0) { $error++; $this->errors=$interface->errors; }
+							// Fin appel triggers
+	
+							if (! $error)
+							{
+								$resultmasssend.=$langs->trans("MailSent").': '.$sendto."<br>\n";
 							}
 							else
 							{
-								$langs->load("other");
-								if ($mailfile->error)
-								{
-									$resultmasssend.=$langs->trans('ErrorFailedToSendMail',$from,$sendto);
-									$resultmasssend.='<br><div class="error">'.$mailfile->error.'</div>';
-								}
-								else
-								{
-									$resultmasssend.='<div class="warning">No mail sent. Feature is disabled by option MAIN_DISABLE_ALL_MAILS</div>';
-								}
+								dol_print_error($db);
 							}
+							$nbsent++;
+						}
+					}
+					else
+					{
+						$langs->load("other");
+						if ($mailfile->error)
+						{
+							$resultmasssend.=$langs->trans('ErrorFailedToSendMail',$from,$sendto);
+							$resultmasssend.='<br><div class="error">'.$mailfile->error.'</div>';
+						}
+						else
+						{
+							$resultmasssend.='<div class="warning">No mail sent. Feature is disabled by option MAIN_DISABLE_ALL_MAILS</div>';
 						}
 					}
-				}
-				else
-				{  
-					$nbignored++;
-					$langs->load("other");
-					$resultmasssend.='<div class="error">'.$langs->trans('ErrorCantReadFile',$file).'</div>';
-					dol_syslog('Failed to read file: '.$file, LOG_WARNING);
 				}
 			}
 		}
@@ -417,7 +522,6 @@ $search_societe = GETPOST("search_societe");
 $search_paymentmode = GETPOST("search_paymentmode");
 $search_montant_ht = GETPOST("search_montant_ht");
 $search_montant_ttc = GETPOST("search_montant_ttc");
-$search_status = GETPOST("search_status");
 $late = GETPOST("late");
 
 // Do we click on purge search criteria ?
@@ -429,7 +533,6 @@ if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) // Both
     $search_paymentmode='';
     $search_montant_ht='';
     $search_montant_ttc='';
-    $search_status='';
 }
 
 $sortfield = GETPOST("sortfield",'alpha');
@@ -485,7 +588,6 @@ if ($search_paymentmode) $sql .= " AND f.fk_mode_reglement = ".$search_paymentmo
 if ($search_montant_ht)  $sql .= " AND f.total = '".$db->escape($search_montant_ht)."'";
 if ($search_montant_ttc) $sql .= " AND f.total_ttc = '".$db->escape($search_montant_ttc)."'";
 if (GETPOST('sf_ref'))   $sql .= " AND f.facnumber LIKE '%".$db->escape(GETPOST('sf_ref'))."%'";
-if ($search_status)      $sql .= " AND f.fk_statut = ".$search_status;
 if ($month > 0)
 {
 	if ($year > 0)
@@ -531,7 +633,6 @@ if ($resql)
 	if ($search_societe)     $param.='&amp;search_paymentmode='.urlencode($search_paymentmode);
 	if ($search_montant_ht)  $param.='&amp;search_montant_ht='.urlencode($search_montant_ht);
 	if ($search_montant_ttc) $param.='&amp;search_montant_ttc='.urlencode($search_montant_ttc);
-	if ($search_status)      $param.='&amp;search_status='.urlencode($search_status);
 	if ($late)               $param.='&amp;late='.urlencode($late);
 	if ($mode)               $param.='&amp;mode='.urlencode($mode);
 	$urlsource=$_SERVER['PHP_SELF'].'?sortfield='.$sortfield.'&sortorder='.$sortorder;
@@ -551,6 +652,31 @@ if ($resql)
 	print_fiche_titre($titre,$link);
 	//print_barre_liste($titre,$page,$_SERVER["PHP_SELF"],$param,$sortfield,$sortorder,'',0);	// We don't want pagination on this page
 
+	$arrayofinvoices=GETPOST('toSend','array');
+	if ($action == 'presend' && count($arrayofinvoices) == 0 && ! GETPOST('cancel')) 
+	{
+		setEventMessages($langs->trans("InvoiceNotChecked"), null, 'errors');
+		$action='list';
+		$mode='sendmassremind';
+	}
+	else 
+	{
+		$invoicetmp=new Facture($db);
+		$listofinvoicesid=array();
+		$listofinvoicesthirdparties=array();
+		$listofinvoicesref=array();
+		foreach($arrayofinvoices as $invoiceid)
+		{
+			$result=$invoicetmp->fetch($invoiceid);
+			if ($result > 0) 
+			{
+				$listofinvoicesid[$invoiceid]=$invoiceid;
+				$thirdpartyid=$invoicetmp->fk_soc?$invoicetmp->fk_soc:$invoicetmp->socid;
+				$listofinvoicesthirdparties[$thirdpartyid]=$thirdpartyid;
+				$listofinvoicesref[$thirdpartyid][$invoiceid]=$invoicetmp->ref;
+			}
+		}
+	}
 	print '<form id="form_unpaid" method="POST" action="'.$_SERVER["PHP_SELF"].'?sortfield='. $sortfield .'&sortorder='. $sortorder .'">';
 
 	if (GETPOST('modelselected')) {
@@ -575,10 +701,25 @@ if ($resql)
 		$formmail->fromname = $user->getFullName($langs);
 		$formmail->frommail = $user->email;
 		$formmail->withfrom=1;
-		$liste=array();
-		$formmail->withto=$langs->trans("AllRecipientSelectedForRemind");
+		$liste=$langs->trans("AllRecipientSelectedForRemind");
+		if (count($listofinvoicesthirdparties) == 1)
+		{
+			$liste=array();
+			$thirdpartyid=array_shift($listofinvoicesthirdparties);
+   			$soc=new Societe($db);
+    		$soc->fetch($thirdpartyid);
+        	foreach ($soc->thirdparty_and_contact_email_array(1) as $key=>$value)
+        	{
+        		$liste[$key]=$value;
+        	}
+			$formmail->withtoreadonly=0;
+		}
+		else
+		{
+			$formmail->withtoreadonly=1;
+		}
+		$formmail->withto=$liste;
 		$formmail->withtofree=0;
-		$formmail->withtoreadonly=1;
 		$formmail->withtocc=1;
 		$formmail->withtoccc=$conf->global->MAIN_EMAIL_USECCC;
 		$formmail->withtopic=$langs->transnoentities($topicmail, '__FACREF__', '__REFCLIENT__');
@@ -597,7 +738,7 @@ if ($resql)
 		$formmail->param['action']=$action;
 		$formmail->param['models']=$modelmail;
 		$formmail->param['models_id']=GETPOST('modelmailselected','int');
-		$formmail->param['facid']=$object->id;
+		$formmail->param['facid']=join(',',$arrayofinvoices);
 		$formmail->param['returnurl']=$_SERVER["PHP_SELF"].'?id='.$object->id;
 
 		print $formmail->get_form();
@@ -822,7 +963,9 @@ if ($resql)
 			{
 				// Checkbox to send remind
 				print '<td class="nowrap" align="center">';
-				if ($objp->email) print '<input class="flat checkforsend" type="checkbox" name="toSend[]" value="'.$objp->facid.'">';
+				$selected=0;
+				if (in_array($objp->facid, $arrayofinvoices)) $selected=1;
+				if ($objp->email) print '<input class="flat checkforsend" type="checkbox" name="toSend[]" value="'.$objp->facid.'"'.($selected?' checked="checked"':'').'>';
 				else print img_picto($langs->trans("NoEMail"), 'warning.png');
 				print '</td>' ;
 			}
@@ -869,7 +1012,7 @@ if ($resql)
 		if ($action != 'presend')
 		{
 			print '<div class="tabsAction">';
-			print '<a href="'.$_SERVER["PHP_SELF"].'?mode=sendremind&action=presend" class="butAction" name="buttonsendremind" value="'.dol_escape_htmltag($langs->trans("SendRemind")).'">'.$langs->trans("SendRemind").'</a>';
+			print '<input type="submit" class="butAction" name="buttonsendremind" value="'.dol_escape_htmltag($langs->trans("SendRemind")).'">';
 			print '</div>';
 			print '<br>';
 		}
-- 
GitLab


From eb98bd1e788ea181448244e42f7825abc50fdaa2 Mon Sep 17 00:00:00 2001
From: fmarcet <fmarcet@2byte.es>
Date: Thu, 3 Dec 2015 14:02:26 +0100
Subject: [PATCH 074/197] FIX: Not delete a product when have customer price

---
 htdocs/product/class/product.class.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/htdocs/product/class/product.class.php b/htdocs/product/class/product.class.php
index 41c73a227a4..22dde9accc7 100644
--- a/htdocs/product/class/product.class.php
+++ b/htdocs/product/class/product.class.php
@@ -806,7 +806,7 @@ class Product extends CommonObject
 			}
 
 			// Delete all child tables
-			$elements = array('product_fournisseur_price','product_price','product_lang','categorie_product','product_stock');
+			$elements = array('product_fournisseur_price','product_price','product_lang','categorie_product','product_stock','product_customer_price');
 			foreach($elements as $table)
 			{
 				if (! $error)
-- 
GitLab


From e4f0b9ba156046d55bd21c1bb51a901db99c3131 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Thu, 3 Dec 2015 14:46:34 +0100
Subject: [PATCH 075/197] Fix detection of last version on sourceforge

---
 htdocs/admin/tools/update.php | 41 +++++++++++++++--------------------
 1 file changed, 17 insertions(+), 24 deletions(-)

diff --git a/htdocs/admin/tools/update.php b/htdocs/admin/tools/update.php
index e1166e96c3d..f524508e708 100644
--- a/htdocs/admin/tools/update.php
+++ b/htdocs/admin/tools/update.php
@@ -23,6 +23,7 @@
  */
 
 require '../../main.inc.php';
+include_once DOL_DOCUMENT_ROOT . '/core/lib/admin.lib.php';
 include_once DOL_DOCUMENT_ROOT . '/core/lib/files.lib.php';
 include_once DOL_DOCUMENT_ROOT . '/core/lib/geturl.lib.php';
 
@@ -172,30 +173,22 @@ $result = getURLContent('http://sourceforge.net/projects/dolibarr/rss');
 $sfurl = simplexml_load_string($result['content']);
 if ($sfurl)
 {
-    $title=$sfurl->channel[0]->item[0]->title;
-
-	function word_limiter($text, $limit = 30, $chars = '0123456789.')
-	{
-	    if (strlen( $text ) > $limit)
-	    {
-	        $words = str_word_count($text, 2, $chars);
-	        $words = array_reverse($words, TRUE);
-	        foreach($words as $length => $word) {
-	            if ($length + strlen( $word ) >= $limit)
-	            {
-	                array_shift($words);
-	            } else {
-	                break;
-	            }
-	        }
-	        $words = array_reverse($words);
-	        $text = implode(" ", $words) . '';
-	    }
-	    return $text;
-	}
-
-	$str = $title;
-	print $langs->trans("LastStableVersion").' : <b>'. word_limiter( $str ).'</b><br>';
+    $i=0;
+    $version='0.0';
+    while (! empty($sfurl->channel[0]->item[$i]->title) && $i < 10000)
+    {
+        $title=$sfurl->channel[0]->item[$i]->title;
+        if (preg_match('/([0-9]+\.([0-9\.]+))/', $title, $reg))
+        {
+            $newversion=$reg[1];
+            $newversionarray=explode('.',$newversion);
+            $versionarray=explode('.',$version);
+            //var_dump($newversionarray);var_dump($versionarray);
+            if (versioncompare($newversionarray, $versionarray) > 0) $version=$newversion;
+        }
+        $i++;
+    }
+	print $langs->trans("LastStableVersion").' : <b>'. ($version?$version:$langs->trans("Unknown")) .'</b><br>';
 }
 else
 {
-- 
GitLab


From 6be9a04a5648d5bd1f7a4d221cae423660e963db Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Thu, 3 Dec 2015 14:52:13 +0100
Subject: [PATCH 076/197] Fix detection of last version on sourceforge

---
 htdocs/admin/system/about.php | 62 +++++++++++++++++------------------
 htdocs/admin/tools/update.php |  4 ++-
 2 files changed, 34 insertions(+), 32 deletions(-)

diff --git a/htdocs/admin/system/about.php b/htdocs/admin/system/about.php
index e9d3f96ad55..3b2492fad65 100644
--- a/htdocs/admin/system/about.php
+++ b/htdocs/admin/system/about.php
@@ -59,39 +59,39 @@ $result = getURLContent('http://sourceforge.net/projects/dolibarr/rss');
 $sfurl = simplexml_load_string($result['content']);
 if ($sfurl)
 {
-    $title=$sfurl->channel[0]->item[0]->title;
-
-	function word_limiter($text, $limit = 30, $chars = '0123456789.')
-	{
-	    if (strlen( $text ) > $limit)
-	    {
-	        $words = str_word_count($text, 2, $chars);
-	        $words = array_reverse($words, TRUE);
-	        foreach($words as $length => $word) {
-	            if ($length + strlen( $word ) >= $limit)
-	            {
-	                array_shift($words);
-	            } else {
-	                break;
-	            }
-	        }
-	        $words = array_reverse($words);
-	        $text = implode(" ", $words) . '';
-	    }
-	    return $text;
-	}
-
-	$str = word_limiter($title);
-	$str = preg_replace('/[^0-9\.]/', '', $str);
-	print ' ('.$langs->trans("LastStableVersion").': <b>'.$str.'</b>';
-	if (DOL_VERSION == $str)
-	{
-	    $youuselaststable=1;
-        print $langs->trans("YouUseLastStableVersion");  
-	}
-	print ')';
+    $i=0;
+    $version='0.0';
+    while (! empty($sfurl->channel[0]->item[$i]->title) && $i < 10000)
+    {
+        $title=$sfurl->channel[0]->item[$i]->title;
+        if (preg_match('/([0-9]+\.([0-9\.]+))/', $title, $reg))
+        {
+            $newversion=$reg[1];
+            $newversionarray=explode('.',$newversion);
+            $versionarray=explode('.',$version);
+            //var_dump($newversionarray);var_dump($versionarray);
+            if (versioncompare($newversionarray, $versionarray) > 0) $version=$newversion;
+        }
+        $i++;
+    }
+
+    // Show version
+    if ($version != '0.0') 
+    {
+        print ' ('.$langs->trans("LastStableVersion").': <b>'.$version.'</b>';
+    	if (DOL_VERSION == $version)
+    	{
+    	    $youuselaststable=1;
+            print $langs->trans("YouUseLastStableVersion");  
+    	}
+    	print ')';
+    }
 	print ' / <a href="http://www.gnu.org/copyleft/gpl.html">GNU-GPL v3+</a></li>';
 }
+else
+{
+    print $langs->trans("LastStableVersion").' : <b>' .$langs->trans("UpdateServerOffline").'</b><br>';
+}
 
 
 print '</ul>';
diff --git a/htdocs/admin/tools/update.php b/htdocs/admin/tools/update.php
index f524508e708..cb4890f77f1 100644
--- a/htdocs/admin/tools/update.php
+++ b/htdocs/admin/tools/update.php
@@ -188,7 +188,9 @@ if ($sfurl)
         }
         $i++;
     }
-	print $langs->trans("LastStableVersion").' : <b>'. ($version?$version:$langs->trans("Unknown")) .'</b><br>';
+    
+    // Show version
+	print $langs->trans("LastStableVersion").' : <b>'. (($version != '0.0')?$version:$langs->trans("Unknown")) .'</b><br>';
 }
 else
 {
-- 
GitLab


From 43ab23ca28161ad87ccd3e5bbc32ab05444c625a Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Thu, 3 Dec 2015 14:54:39 +0100
Subject: [PATCH 077/197] Fix doxygen

---
 htdocs/core/class/html.form.class.php | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php
index 541ea766076..18580c4b6cc 100644
--- a/htdocs/core/class/html.form.class.php
+++ b/htdocs/core/class/html.form.class.php
@@ -485,9 +485,9 @@ class Form
     /**
      * Generate select HTML to choose massaction
      * 
-     * @parama	string	$selected		Selected value
+     * @param	string	$selected		Selected value
      * @param	int		$arrayofaction	array('code'=>'label', ...)
-     * @param	string					Select list
+     * @return	string					Select list
      */
     function selectMassAction($selected, $arrayofaction)
     {
-- 
GitLab


From fb692f4cd50baae47edda578f1a50351d25d1ff1 Mon Sep 17 00:00:00 2001
From: Bahfir Abbes <bafbes@gmail.com>
Date: Thu, 3 Dec 2015 19:10:15 +0100
Subject: [PATCH 078/197] Update card.php

---
 htdocs/fichinter/card.php | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/htdocs/fichinter/card.php b/htdocs/fichinter/card.php
index 33c2e48b599..403f1411dc8 100644
--- a/htdocs/fichinter/card.php
+++ b/htdocs/fichinter/card.php
@@ -467,7 +467,7 @@ if (empty($reshook))
 	// Add line
 	else if ($action == "addline" && $user->rights->ficheinter->creer)
 	{
-		if (!GETPOST('np_desc') && $conf->global->FICHINTER_EMPTY_LINE_DESC!=1 )
+		if (!GETPOST('np_desc') && empty($conf->global->FICHINTER_EMPTY_LINE_DESC) )
  		{
 			$mesg='<div class="error">'.$langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("Description")).'</div>';
 			$error++;
@@ -1570,7 +1570,7 @@ else if ($id > 0 || ! empty($ref))
 				print '<tr '.$bcnd[$var] . ">\n";
                 print '<td>';
                 // editeur wysiwyg
-                if ($conf->global->FICHINTER_EMPTY_LINE_DESC != 1) {
+                if (empty($conf->global->FICHINTER_EMPTY_LINE_DESC)) {
                     require_once DOL_DOCUMENT_ROOT . '/core/class/doleditor.class.php';
                     $doleditor = new DolEditor('np_desc', GETPOST('np_desc', 'alpha'), '', 100, 'dolibarr_details', '', false, true, $conf->global->FCKEDITOR_ENABLE_DETAILS, ROWS_2, 70);
                     $doleditor->Create();
-- 
GitLab


From ebc1105b5c14e2de73b82eca6c713c7aa7a6b9b7 Mon Sep 17 00:00:00 2001
From: AlainRnet <alainrihs@sunrise.ch>
Date: Thu, 3 Dec 2015 21:09:09 +0100
Subject: [PATCH 079/197] Update fraise.modules.php

following discussion with eldy (https://github.com/Dolibarr/dolibarr/pull/4079#issuecomment-161601400) to mix a french forum membre to select mailing member by type, I try to update this selector to integrate selection by type.
Thanks in advance for feedback
---
 .../core/modules/mailings/fraise.modules.php  | 125 +++++++++++-------
 1 file changed, 78 insertions(+), 47 deletions(-)

diff --git a/htdocs/core/modules/mailings/fraise.modules.php b/htdocs/core/modules/mailings/fraise.modules.php
index 2716bdc1e4c..ca9f2b11f0d 100644
--- a/htdocs/core/modules/mailings/fraise.modules.php
+++ b/htdocs/core/modules/mailings/fraise.modules.php
@@ -28,16 +28,16 @@ include_once DOL_DOCUMENT_ROOT.'/core/class/html.form.class.php';
 
 
 /**
- *	Class to generate target according to rule Fraise
+ *    Class to generate target according to rule Fraise
  */
 class mailing_fraise extends MailingTargets
 {
-	// CHANGE THIS: Put here a name not already used
-	var $name='FundationMembers';                    // Identifiant du module mailing
-	// CHANGE THIS: Put here a description of your selector module.
-	// This label is used if no translation found for key MailingModuleDescXXX where XXX=name is found
+    // CHANGE THIS: Put here a name not already used
+    var $name='FundationMembers';                    // Identifiant du module mailing
+    // CHANGE THIS: Put here a description of your selector module.
+    // This label is used if no translation found for key MailingModuleDescXXX where XXX=name is found
     var $desc='Foundation members with emails (by status)';
-	// CHANGE THIS: Set to 1 if selector is available for admin users only
+    // CHANGE THIS: Set to 1 if selector is available for admin users only
     var $require_admin=0;
 
     var $require_module=array('adherent');
@@ -46,11 +46,11 @@ class mailing_fraise extends MailingTargets
     var $db;
 
 
-	/**
-	 *	Constructor
-	 *
-	 *  @param		DoliDB		$db      Database handler
-	 */
+    /**
+     *    Constructor
+     *
+     *  @param        DoliDB        $db      Database handler
+     */
     function __construct($db)
     {
         $this->db=$db;
@@ -58,37 +58,37 @@ class mailing_fraise extends MailingTargets
 
 
     /**
-	 *	On the main mailing area, there is a box with statistics.
-	 *	If you want to add a line in this report you must provide an
-	 *	array of SQL request that returns two field:
-	 *	One called "label", One called "nb".
-	 *
-	 *	@return		string[]		Array with SQL requests
-	 */
+     *    On the main mailing area, there is a box with statistics.
+     *    If you want to add a line in this report you must provide an
+     *    array of SQL request that returns two field:
+     *    One called "label", One called "nb".
+     *
+     *    @return        array        Array with SQL requests
+     */
     function getSqlArrayForStats()
-	{
+    {
         global $langs;
 
         $langs->load("members");
 
-		// Array for requests for statistics board
-	    $statssql=array();
+        // Array for requests for statistics board
+        $statssql=array();
 
         $statssql[0] ="SELECT '".$this->db->escape($langs->trans("FundationMembers"))."' as label, count(*) as nb";
-		$statssql[0].=" FROM ".MAIN_DB_PREFIX."adherent where statut = 1";
+        $statssql[0].=" FROM ".MAIN_DB_PREFIX."adherent where statut = 1";
 
-		return $statssql;
-	}
+        return $statssql;
+    }
 
 
     /**
-	 *	Return here number of distinct emails returned by your selector.
-	 *	For example if this selector is used to extract 500 different
-	 *	emails from a text file, this function must return 500.
-	 *
-	 *  @param		string		$sql		Requete sql de comptage
-	 *	@return		int						Nb of recipients
-	 */
+     *    Return here number of distinct emails returned by your selector.
+     *    For example if this selector is used to extract 500 different
+     *    emails from a text file, this function must return 500.
+     *
+     *  @param    string    $sql        Requete sql de comptage
+     *    @return        int            Nb of recipients
+     */
     function getNbOfRecipients($sql='')
     {
         $sql  = "SELECT count(distinct(a.email)) as nb";
@@ -108,7 +108,7 @@ class mailing_fraise extends MailingTargets
      */
     function formFilter()
     {
-        global $langs;
+        global $conf, $langs;
         $langs->load("members");
 
         $form=new Form($this->db);
@@ -121,6 +121,36 @@ class mailing_fraise extends MailingTargets
         $s.='<option value="1a">'.$langs->trans("MemberStatusActiveShort").' ('.$langs->trans("MemberStatusPaidShort").')</option>';
         $s.='<option value="1b">'.$langs->trans("MemberStatusActiveShort").' ('.$langs->trans("MemberStatusActiveLateShort").')</option>';
         $s.='<option value="0">'.$langs->trans("MemberStatusResiliatedShort").'</option>';
+        $s.='</select> ';
+        $s.=$langs->trans("Type").': ';
+        $s.='<select name="filter" class="flat">';
+        $sql = "SELECT rowid, libelle, statut";
+        $sql.= " FROM ".MAIN_DB_PREFIX."adherent_type";
+        $sql.= " WHERE entity = ".$conf->entity;
+        $sql.= " ORDER BY rowid";
+        $resql = $this->db->query($sql);
+        if ($resql)
+        {
+            $num = $this->db->num_rows($resql);
+
+            $s.='<option value="0">&nbsp;</option>';
+            if (! $num) $s.='<option value="0" disabled="disabled">'.$langs->trans("NoCategoriesDefined").'</option>';
+
+            $i = 0;
+            while ($i < $num)
+            {
+                $obj = $this->db->fetch_object($resql);
+
+                $s.='<option value="'.$obj->rowid.'">'.dol_trunc($obj->libelle,38,'middle');
+                $s.='</option>';
+                $i++;
+            }
+        }
+        else
+        {
+            dol_print_error($this->db);
+        }
+
         $s.='</select>';
         $s.='<br>';
         $s.=$langs->trans("DateEndSubscription").': &nbsp;';
@@ -135,7 +165,7 @@ class mailing_fraise extends MailingTargets
     /**
      *  Renvoie url lien vers fiche de la source du destinataire du mailing
      *
-     *  @param	int		$id		ID
+     *  @param    int        $id        ID
      *  @return     string      Url lien
      */
     function url($id)
@@ -147,9 +177,9 @@ class mailing_fraise extends MailingTargets
     /**
      *  Ajoute destinataires dans table des cibles
      *
-     *  @param	int		$mailing_id    	Id of emailing
-     *  @param  array	$filtersarray   Param to filter sql request. Deprecated. Should use $_POST instead.
-     *  @return int           			< 0 si erreur, nb ajout si ok
+     *  @param    int        $mailing_id        Id of emailing
+     *  @param  array    $filtersarray   Param to filter sql request. Deprecated. Should use $_POST instead.
+     *  @return int                       < 0 si erreur, nb ajout si ok
      */
     function add_to_target($mailing_id,$filtersarray=array())
     {
@@ -162,7 +192,7 @@ class mailing_fraise extends MailingTargets
 		$langs->load("members");
         $langs->load("companies");
 
-    	$cibles = array();
+        $cibles = array();
         $now=dol_now();
 
         $dateendsubscriptionafter=dol_mktime($_POST['subscriptionafterhour'],$_POST['subscriptionaftermin'],$_POST['subscriptionaftersec'],$_POST['subscriptionaftermonth'],$_POST['subscriptionafterday'],$_POST['subscriptionafteryear']);
@@ -171,8 +201,8 @@ class mailing_fraise extends MailingTargets
         // La requete doit retourner: id, email, fk_contact, name, firstname
         $sql = "SELECT a.rowid as id, a.email as email, null as fk_contact, ";
         $sql.= " a.lastname, a.firstname,";
-        $sql.= " a.datefin, a.civility as civility_id, a.login, a.societe";	// Other fields
-        $sql.= " FROM ".MAIN_DB_PREFIX."adherent as a";
+        $sql.= " a.datefin, a.civility as civility_id, a.login, a.societe";    // Other fields
+        $sql.= " FROM ".MAIN_DB_PREFIX."adherent as a, ".MAIN_DB_PREFIX."adherent_type as ta";
         $sql.= " WHERE a.email <> ''";     // Note that null != '' is false
         $sql.= " AND a.email NOT IN (SELECT email FROM ".MAIN_DB_PREFIX."mailing_cibles WHERE fk_mailing=".$mailing_id.")";
         if (isset($_POST["filter"]) && $_POST["filter"] == '-1') $sql.= " AND a.statut=-1";
@@ -181,6 +211,8 @@ class mailing_fraise extends MailingTargets
         if (isset($_POST["filter"]) && $_POST["filter"] == '0')  $sql.= " AND a.statut=0";
         if ($dateendsubscriptionafter > 0)  $sql.=" AND datefin > '".$this->db->idate($dateendsubscriptionafter)."'";
         if ($dateendsubscriptionbefore > 0) $sql.=" AND datefin < '".$this->db->idate($dateendsubscriptionbefore)."'";
+        $sql.= " AND a.fk_adherent_type = ta.rowid";
+        if ($_POST['filter']) $sql.= " AND ta.rowid='".$_POST['filter']."'";
         $sql.= " ORDER BY a.email";
         //print $sql;
 
@@ -202,11 +234,11 @@ class mailing_fraise extends MailingTargets
                 if ($old <> $obj->email)
                 {
                     $cibles[$j] = array(
-                    			'email' => $obj->email,
-                    			'fk_contact' => $obj->fk_contact,
-                    			'lastname' => $obj->lastname,
-                    			'firstname' => $obj->firstname,
-                    			'other' =>
+                                'email' => $obj->email,
+                                'fk_contact' => $obj->fk_contact,
+                                'lastname' => $obj->lastname,
+                                'firstname' => $obj->firstname,
+                                'other' =>
                                 ($langs->transnoentities("Login").'='.$obj->login).';'.
                                 ($langs->transnoentities("UserTitle").'='.($obj->civility_id?$langs->transnoentities("Civility".$obj->civility_id):'')).';'.
                                 ($langs->transnoentities("DateEnd").'='.dol_print_date($this->db->jdate($obj->datefin),'day')).';'.
@@ -214,7 +246,7 @@ class mailing_fraise extends MailingTargets
                                 'source_url' => $this->url($obj->id),
                                 'source_id' => $obj->id,
                                 'source_type' => 'member'
-                    			);
+                                );
                     $old = $obj->email;
                     $j++;
                 }
@@ -230,7 +262,6 @@ class mailing_fraise extends MailingTargets
         }
 
         return parent::add_to_target($mailing_id, $cibles);
-	}
+    }
 
 }
-
-- 
GitLab


From b45d4a2a513459af9552c491400d87b97c7c444f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rapha=C3=ABl=20Doursenaud?= <rdoursenaud@gpcsolutions.fr>
Date: Thu, 3 Dec 2015 22:29:44 +0100
Subject: [PATCH 080/197] [Qual] OOP detection of PHP MySQL driver

---
 htdocs/core/db/mysqli.class.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/htdocs/core/db/mysqli.class.php b/htdocs/core/db/mysqli.class.php
index 068cd410326..8b68fa921ac 100644
--- a/htdocs/core/db/mysqli.class.php
+++ b/htdocs/core/db/mysqli.class.php
@@ -69,7 +69,7 @@ class DoliDBMysqli extends DoliDB
 
         //print "Name DB: $host,$user,$pass,$name<br>";
 
-        if (! function_exists("mysqli_connect"))
+        if (! class_exists('mysqli'))
         {
             $this->connected = false;
             $this->ok = false;
-- 
GitLab


From d2b221cfd1ebb60a0d53b8b74b27b9cc9a730550 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Fri, 4 Dec 2015 10:22:27 +0100
Subject: [PATCH 081/197] Upgrade PHPCS rules

---
 dev/codesniffer/ruleset.xml | 148 ++++++++++++++++--------------------
 1 file changed, 66 insertions(+), 82 deletions(-)

diff --git a/dev/codesniffer/ruleset.xml b/dev/codesniffer/ruleset.xml
index 9f20324da3f..321560ff6f9 100755
--- a/dev/codesniffer/ruleset.xml
+++ b/dev/codesniffer/ruleset.xml
@@ -12,10 +12,16 @@
 
 		<!-- List of all tests -->
 
+	
+	<!-- Rules from Internal Standard -->
+	
 	<rule ref="Internal.NoCodeFound">
 		<severity>0</severity>
 	</rule>
 
+	
+	<!-- Rules from Generic Standard -->
+		
 	<rule ref="Generic.CodeAnalysis.EmptyStatement" />
 
 	<rule ref="Generic.CodeAnalysis.EmptyStatement.DetectedCATCH">
@@ -41,9 +47,6 @@
 		<severity>0</severity>
 	</rule>
 
-    <!-- The closing ?> tag MUST be omitted from files containing only PHP. -->
-    <!-- <rule ref="Zend.Files.ClosingTag"/> -->
-
     <!-- <rule ref="Generic.CodeAnalysis.ForLoopShouldBeWhileLoop" /> -->
 
     <rule ref="Generic.CodeAnalysis.ForLoopWithTestFunctionCall" />
@@ -161,8 +164,6 @@
         <severity>0</severity>
 	</rule>
     
-    <rule ref="Generic.VersionControl.SubversionProperties" />
-
 	<!-- Disallow usage of tab -->
 	<!--  <rule ref="Generic.WhiteSpace.DisallowTabIndent" /> -->
 
@@ -170,123 +171,92 @@
 	<!-- Disabled as this does not support tab -->
 	<!-- <rule ref="Generic.WhiteSpace.ScopeIndent" /> -->
 
-	<rule ref="PEAR.Classes.ClassDeclaration" />
+
+
+    <!-- Rules from PEAR Standard -->
+
+    <rule ref="PEAR.Classes.ClassDeclaration" />
 
     <!-- Check for duplicate class names -->
     <!-- <rule ref="Generic.Classes.DuplicateClassName" /> -->
 
     <rule ref="PEAR.Commenting.ClassComment" />
-    <rule ref="PEAR.Commenting.ClassComment.MissingTag">
-        <severity>0</severity>
-    </rule>
-    <rule ref="PEAR.Commenting.ClassComment.Missing@authorTag">
-        <severity>0</severity>
-    </rule>
-    <rule ref="PEAR.Commenting.ClassComment.Missing@categoryTag">
-        <severity>0</severity>
-    </rule>
-    <rule ref="PEAR.Commenting.ClassComment.Missing@licenseTag">
-        <severity>0</severity>
-    </rule>
-    <rule ref="PEAR.Commenting.ClassComment.Missing@linkTag">
-        <severity>0</severity>
-    </rule>
-    <rule ref="PEAR.Commenting.ClassComment.Missing@packageTag">
-        <severity>0</severity>
-    </rule>
-    <rule ref="PEAR.Commenting.FunctionComment.SpacingAfterParamType">
-        <severity>0</severity>
-    </rule>
-    <rule ref="PEAR.Commenting.FunctionComment.SpacingAfterParamName">
-        <severity>0</severity>
-    </rule>
+
     <!-- TODO Remove this and fix reported errors -->
     <rule ref="PEAR.Commenting.ClassComment.Missing">
         <severity>0</severity>
     </rule>
-    <rule ref="PEAR.Commenting.FunctionComment.MissingReturn">
-        <severity>0</severity>
-    </rule>
-    <rule ref="PEAR.Commenting.FunctionComment.ReturnNotRequired">
-        <severity>0</severity>
-    </rule>
-    <rule ref="PEAR.Commenting.FunctionComment.Missing">
-        <severity>0</severity>
-    </rule>
-    
-    <rule ref="PEAR.Commenting.ClassComment.Missing@authorTag">
-        <severity>0</severity>
-    </rule>
-    <rule ref="PEAR.Commenting.ClassComment.Missing@categoryTag">
-        <severity>0</severity>
-    </rule>
-    <rule ref="PEAR.Commenting.ClassComment.Missing@licenseTag">
-        <severity>0</severity>
-    </rule>
-    <rule ref="PEAR.Commenting.ClassComment.Missing@linkTag">
-        <severity>0</severity>
-    </rule>
-    <rule ref="PEAR.Commenting.ClassComment.Missing@packageTag">
-        <severity>0</severity>
-    </rule>
     
+    <rule ref="PEAR.Commenting.ClassComment.MissingTag" />
+
     <rule ref="PEAR.Commenting.ClassComment.MissingAuthorTag">
         <severity>0</severity>
     </rule>
+
     <rule ref="PEAR.Commenting.ClassComment.MissingCategoryTag">
         <severity>0</severity>
     </rule>
+
     <rule ref="PEAR.Commenting.ClassComment.MissingLicenseTag">
         <severity>0</severity>
     </rule>
+
     <rule ref="PEAR.Commenting.ClassComment.MissingLinkTag">
         <severity>0</severity>
     </rule>
+        
     <rule ref="PEAR.Commenting.ClassComment.MissingPackageTag">
         <severity>0</severity>
     </rule>
-    
-    <rule ref="PEAR.Commenting.FunctionComment.SpacingAfterParamType">
+        
+
+   
+    <!-- 
+    <rule ref="PEAR.Commenting.FileComment" />
+    <rule ref="PEAR.Commenting.FileComment.WrongStyle">
         <severity>0</severity>
     </rule>
-    <rule ref="PEAR.Commenting.FunctionComment.SpacingAfterParamName">
+    <rule ref="PEAR.Commenting.FileComment.MissingVersion">
         <severity>0</severity>
     </rule>
-    <!-- TODO Remove this and fix reported errors -->
-    <rule ref="PEAR.Commenting.ClassComment.Missing">
+    <rule ref="PEAR.Commenting.FileComment.MissingTag">
         <severity>0</severity>
     </rule>
-    <rule ref="PEAR.Commenting.FunctionComment.MissingReturn">
-        <severity>0</severity>
+    -->
+    
+    <rule ref="PEAR.Commenting.FunctionComment" />
+
+    <rule ref="PEAR.Commenting.FunctionComment.Empty">
+        <severity>5</severity>
     </rule>
-    <rule ref="PEAR.Commenting.FunctionComment.ReturnNotRequired">
+    
+	<rule ref="PEAR.Commenting.FunctionComment.MissingReturn">
         <severity>0</severity>
     </rule>
     <rule ref="PEAR.Commenting.FunctionComment.Missing">
         <severity>0</severity>
     </rule>
-        
-    <!-- 
-    <rule ref="PEAR.Commenting.FileComment" />
-    <rule ref="PEAR.Commenting.FileComment.WrongStyle">
+    
+    <rule ref="PEAR.Commenting.FunctionComment.SpacingAfterParamType" />
+
+    <rule ref="PEAR.Commenting.FunctionComment.SpacingAfterParamName">
         <severity>0</severity>
     </rule>
-    <rule ref="PEAR.Commenting.FileComment.MissingVersion">
+
+    <rule ref="PEAR.Commenting.FunctionComment.SpacingAfterParamType">
         <severity>0</severity>
     </rule>
-    <rule ref="PEAR.Commenting.FileComment.MissingTag">
+
+    <rule ref="PEAR.Commenting.FunctionComment.SpacingAfterParamName" />
+
+    <rule ref="PEAR.Commenting.FunctionComment.ReturnNotRequired">
         <severity>0</severity>
     </rule>
-    -->
+    
     <rule ref="PEAR.Commenting.FunctionComment.WrongStyle">
         <severity>0</severity>
     </rule>
     
-    <rule ref="PEAR.Commenting.FunctionComment.Empty">
-        <severity>5</severity>
-    </rule>
-    
-    <rule ref="PEAR.Commenting.FunctionComment" />
     <rule ref="PEAR.Commenting.FunctionComment.SpacingBeforeParamType">
         <severity>0</severity>
     </rule>
@@ -319,6 +289,15 @@
 
 	<rule ref="PEAR.Functions.FunctionCallSignature" />
 
+    <rule ref="PEAR.Functions.FunctionCallSignature.CloseBracketLine">
+        <severity>0</severity>
+    </rule>
+    <rule ref="PEAR.Functions.FunctionCallSignature.ContentAfterOpenBracket">
+        <severity>0</severity>
+    </rule>
+	<rule ref="PEAR.Functions.FunctionCallSignature.EmptyLine">
+	    <severity>0</severity>
+	</rule>
 	<rule ref="PEAR.Functions.FunctionCallSignature.Indent">
 	    <severity>0</severity>
 	</rule>
@@ -334,12 +313,6 @@
     <rule ref="PEAR.Functions.FunctionCallSignature.SpaceAfterCloseBracket">
         <severity>0</severity>
     </rule>
-    <rule ref="PEAR.Functions.FunctionCallSignature.CloseBracketLine">
-        <severity>0</severity>
-    </rule>
-    <rule ref="PEAR.Functions.FunctionCallSignature.ContentAfterOpenBracket">
-        <severity>0</severity>
-    </rule>
 	
 	<rule ref="PEAR.Functions.ValidDefaultValue" />
 
@@ -371,15 +344,20 @@
 	<rule ref="PEAR.NamingConventions.ValidFunctionName.FunctionNoCaptial">
         <severity>0</severity>
 	</rule>
+
 	<rule ref="PEAR.NamingConventions.ValidFunctionName.NotCamelCaps">
         <severity>0</severity>
 	</rule>
 	<rule ref="PEAR.NamingConventions.ValidFunctionName.PrivateNoUnderscore">
         <severity>0</severity>
 	</rule>
-
 	<rule ref="PEAR.NamingConventions.ValidVariableName" />
 
+	<!-- This is not in PSR2 -->
+	<rule ref="PEAR.NamingConventions.ValidVariableName.PrivateNoUnderscore">
+        <severity>0</severity>
+    </rule>
+	
 	<rule ref="PEAR.WhiteSpace.ObjectOperatorIndent" />
 
 	<!-- Need to be commented to be disabled
@@ -395,4 +373,10 @@
     <!-- Already found as a Generic rule -->
 	<!-- <rule ref="PEAR.WhiteSpace.ScopeIndent" /> -->
 
+
+	<!-- Rules from Zend Standard-->
+
+    <!-- The closing ?> tag MUST be omitted from files containing only PHP. -->
+    <rule ref="Zend.Files.ClosingTag"/>
+
 </ruleset>
-- 
GitLab


From 4dd1cb3e77fdc27e30d20847f596f46d944d91ee Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Fri, 4 Dec 2015 12:12:12 +0100
Subject: [PATCH 082/197] Theme MD looks ready for 3.9 now.

---
 htdocs/core/lib/project.lib.php | 18 ++++++++------
 htdocs/main.inc.php             |  4 +--
 htdocs/projet/index.php         |  2 +-
 htdocs/theme/eldy/style.css.php | 13 +++++-----
 htdocs/theme/md/graph-color.php |  2 +-
 htdocs/theme/md/style.css.php   | 44 +++++++++++++++++++++++----------
 6 files changed, 51 insertions(+), 32 deletions(-)

diff --git a/htdocs/core/lib/project.lib.php b/htdocs/core/lib/project.lib.php
index 0569e90d903..5eeb13ca937 100644
--- a/htdocs/core/lib/project.lib.php
+++ b/htdocs/core/lib/project.lib.php
@@ -874,11 +874,11 @@ function searchTaskInChild(&$inc, $parent, &$lines, &$taskrole)
  * @param	DoliDB	$db					Database handler
  * @param	Form	$form				Object form
  * @param   int		$socid				Id thirdparty
- * @param   int		$projectsListId     Id of project i have permission on
- * @param   int		$mytasks            Limited to task i am contact to
+ * @param   int		$projectsListId     Id of project I have permission on
+ * @param   int		$mytasks            Limited to task I am contact to
  * @param	int		$statut				-1=No filter on statut, 0 or 1 = Filter on status
  * @param	array	$listofoppstatus	List of opportunity status
- * @param   array   $hiddenfields       List of fields to not show
+ * @param   array   $hiddenfields       List of info to not show ('projectlabel', 'declaredprogress', '...', )
  * @return	void
  */
 function print_projecttasks_array($db, $form, $socid, $projectsListId, $mytasks=0, $statut=-1, $listofoppstatus=array(),$hiddenfields=array())
@@ -993,7 +993,7 @@ function print_projecttasks_array($db, $form, $socid, $projectsListId, $mytasks=
     	if (empty($conf->global->PROJECT_HIDE_TASKS)) 
     	{
             print_liste_field_titre($langs->trans("Tasks"),"","","","",'align="right"',$sortfield,$sortorder);
-            print_liste_field_titre($langs->trans("PlannedWorkload"),"","","","",'align="right"',$sortfield,$sortorder);
+            if (! in_array('plannedworkload', $hiddenfields))  print_liste_field_titre($langs->trans("PlannedWorkload"),"","","","",'align="right"',$sortfield,$sortorder);
             if (! in_array('declaredprogress', $hiddenfields)) print_liste_field_titre($langs->trans("ProgressDeclared"),"","","","",'align="right"',$sortfield,$sortorder);
     	}
     	print_liste_field_titre($langs->trans("Status"),"","","","",'align="right"',$sortfield,$sortorder);
@@ -1016,7 +1016,7 @@ function print_projecttasks_array($db, $form, $socid, $projectsListId, $mytasks=
 				print '<td>';
 				$projectstatic->ref=$objp->ref;
 				print $projectstatic->getNomUrl(1);
-				print ' - '.dol_trunc($objp->title,24);
+				if (! in_array('projectlabel', $hiddenfields)) print ' - '.dol_trunc($objp->title,24);
 				print '</td>';
 				print '<td>';
 				if ($objp->fk_soc > 0)
@@ -1044,8 +1044,10 @@ function print_projecttasks_array($db, $form, $socid, $projectsListId, $mytasks=
     	       
     				$plannedworkload=$objp->planned_workload;
     				$total_plannedworkload+=$plannedworkload;
-    				print '<td align="right">'.($plannedworkload?convertSecondToTime($plannedworkload):'').'</td>';
-    
+    				if (! in_array('plannedworkload', $hiddenfields))
+    				{
+    				    print '<td align="right">'.($plannedworkload?convertSecondToTime($plannedworkload):'').'</td>';
+    				}
     				if (! in_array('declaredprogress', $hiddenfields)) 
     				{
     				    $declaredprogressworkload=$objp->declared_progess_workload;
@@ -1078,7 +1080,7 @@ function print_projecttasks_array($db, $form, $socid, $projectsListId, $mytasks=
 		if (empty($conf->global->PROJECT_HIDE_TASKS)) 
 		{
             print '<td class="liste_total" align="right">'.$total_task.'</td>';
-            print '<td class="liste_total" align="right">'.($total_plannedworkload?convertSecondToTime($total_plannedworkload):'').'</td>';
+            if (! in_array('plannedworkload', $hiddenfields))  print '<td class="liste_total" align="right">'.($total_plannedworkload?convertSecondToTime($total_plannedworkload):'').'</td>';
             if (! in_array('declaredprogress', $hiddenfields)) print '<td class="liste_total" align="right">'.($total_plannedworkload?round(100*$total_declaredprogressworkload/$total_plannedworkload,0).'%':'').'</td>';
 		}
 		print '<td class="liste_total"></td>';
diff --git a/htdocs/main.inc.php b/htdocs/main.inc.php
index d173282fdb9..d27df85f4ac 100644
--- a/htdocs/main.inc.php
+++ b/htdocs/main.inc.php
@@ -1749,9 +1749,9 @@ function left_menu($menu_array_before, $helppagename='', $notused='', $menu_arra
 			$bugbaseurl.= urlencode("- **URL**: " . $_SERVER["REQUEST_URI"] . "\n");
 			$bugbaseurl.= urlencode("\n");
 			$bugbaseurl.= urlencode("# Report\n");
-			print '<p id="blockvmenuhelpbugreport" class="blockvmenuhelp">';
+			print '<div id="blockvmenuhelpbugreport" class="blockvmenuhelp">';
 			print '<a class="help" target="_blank" href="'.$bugbaseurl.'">'.$langs->trans("FindBug").'</a>';
-			print '</p>';
+			print '</div>';
 		}
 
         print "</div>\n";
diff --git a/htdocs/projet/index.php b/htdocs/projet/index.php
index b91b8763611..8b3d2b76c25 100644
--- a/htdocs/projet/index.php
+++ b/htdocs/projet/index.php
@@ -132,7 +132,7 @@ include DOL_DOCUMENT_ROOT.'/projet/graph_opportunities.inc.php';
 
 
 // List of draft projects
-print_projecttasks_array($db,$form,$socid,$projectsListId,0,0,$listofoppstatus,array('declaredprogress'));
+print_projecttasks_array($db, $form, $socid, $projectsListId, 0, 0, $listofoppstatus, array('projectlabel', 'plannedworkload', 'declaredprogress'));
 
 
 print '</div><div class="fichetwothirdright"><div class="ficheaddleft">';
diff --git a/htdocs/theme/eldy/style.css.php b/htdocs/theme/eldy/style.css.php
index 360cd3631e8..f0f031114e5 100644
--- a/htdocs/theme/eldy/style.css.php
+++ b/htdocs/theme/eldy/style.css.php
@@ -190,6 +190,10 @@ $colortexttitle=join(',',colorStringToArray($colortexttitle));
 $colortext=join(',',colorStringToArray($colortext));
 $colortextlink=join(',',colorStringToArray($colortextlink));
 
+if (! empty($conf->dol_optimize_smallscreen)) $fontsize=11;
+
+$nbtopmenuentries=$menumanager->showmenu('topnb');
+
 print '/*'."\n";
 print 'colorbackbody='.$colorbackbody."\n";
 print 'colorbackvmenu1='.$colorbackvmenu1."\n";
@@ -211,14 +215,9 @@ print 'dol_use_jmobile='.$dol_use_jmobile."\n";
 print 'dol_screenwidth='.$_SESSION['dol_screenwidth']."\n";
 print 'dol_screenheight='.$_SESSION['dol_screenheight']."\n";
 print 'fontsize='.$fontsize."\n";
+print 'nbtopmenuentries='.$nbtopmenuentries."\n";
 print '*/'."\n";
 
-if (! empty($conf->dol_optimize_smallscreen)) $fontsize=11;
-
-
-$nbtopmenuentries=$menumanager->showmenu('topnb');
-//print $nb;
-
 ?>
 
 /* ============================================================================== */
@@ -2455,7 +2454,7 @@ input.liste_titre {
 }
 
 .noborder tr.liste_total, .noborder tr.liste_total td, tr.liste_total, form.liste_total {
-	background: #F0F0F0;
+	/* background: #F0F0F0; */
 }
 .noborder tr.liste_total td, tr.liste_total td, form.liste_total div {
     color: #552266;
diff --git a/htdocs/theme/md/graph-color.php b/htdocs/theme/md/graph-color.php
index 0c091a1ede3..4346d007158 100644
--- a/htdocs/theme/md/graph-color.php
+++ b/htdocs/theme/md/graph-color.php
@@ -28,7 +28,7 @@
 
 global $theme_bordercolor, $theme_datacolor, $theme_bgcolor, $theme_bgcoloronglet;
 $theme_bordercolor = array(235,235,224);
-$theme_datacolor = array(array(190,190,220), array(200,160,180), array(125,135,150), array(170,140,190), array(190,190,170), array(190,170,190), array(170,190,190), array(150,135,125), array(85,135,150), array(150,135,80), array(150,80,150));
+$theme_datacolor = array(array(140,140,220), array(190,120,120), array(0,160,140), array(190,190,100), array(115,125,150), array(100,170,20), array(250,190,30), array(150,135,125), array(85,135,150), array(150,135,80), array(150,80,150));
 $theme_bgcolor = array(hexdec('F4'),hexdec('F4'),hexdec('F4'));
 $theme_bgcoloronglet = array(hexdec('DE'),hexdec('E7'),hexdec('EC'));
 
diff --git a/htdocs/theme/md/style.css.php b/htdocs/theme/md/style.css.php
index 6dae9fd3e9c..cac83da19b9 100644
--- a/htdocs/theme/md/style.css.php
+++ b/htdocs/theme/md/style.css.php
@@ -185,6 +185,10 @@ $colortexttitle=join(',',colorStringToArray($colortexttitle));
 $colortext=join(',',colorStringToArray($colortext));
 $colortextlink=join(',',colorStringToArray($colortextlink));
 
+if (! empty($conf->dol_optimize_smallscreen)) $fontsize=11;
+
+$nbtopmenuentries=$menumanager->showmenu('topnb');
+
 print '/*'."\n";
 print 'colorbackbody='.$colorbackbody."\n";
 print 'colorbackvmenu1='.$colorbackvmenu1."\n";
@@ -205,12 +209,9 @@ print 'dol_no_mouse_hover='.$dol_no_mouse_hover."\n";
 print 'dol_use_jmobile='.$dol_use_jmobile."\n";
 print 'dol_screenwidth='.$_SESSION['dol_screenwidth']."\n";
 print 'dol_screenheight='.$_SESSION['dol_screenheight']."\n";
+print 'nbtopmenuentries='.$nbtopmenuentries."\n";
 print '*/'."\n";
 
-if (! empty($conf->dol_optimize_smallscreen)) $fontsize=11;
-
-$nbtopmenuentries=$menumanager->showmenu('topnb');
-
 ?>
 
 /* ============================================================================== */
@@ -1933,11 +1934,11 @@ table.liste, table.noborder, table.formdoc, div.noborder {
 	border-style: solid;
 
 	margin: 0px 0px 2px 0px;
-
+    /*
 	-moz-box-shadow: 2px 2px 4px #CCC;
 	-webkit-box-shadow: 2px 2px 4px #CCC;
 	box-shadow: 2px 2px 4px #CCC;
-
+    */
 	-moz-border-radius: 0.1em;
 	-webkit-border-radius: 0.1em;
 	border-radius: 0.1em;
@@ -1953,14 +1954,14 @@ table.noborder tr, div.noborder form {
 	border-left-width: 1px;
 	border-left-color: #BBBBBB;
 	border-left-style: solid;
-	height: 26px;
+	min-height: 26px;
 }
 
 table.liste th, table.noborder th {
 	padding: 5px 2px 5px 3px;			/* t r b l */
 }
 table.noborder th, table.noborder td, div.noborder form, div.noborder form div {
-	padding: 1px 2px 1px 3px;			/* t r b l */
+	padding: 4px 2px 4px 3px;			/* t r b l */
 }
 
 table.nobordernopadding {
@@ -2211,7 +2212,7 @@ table.dataTable td {
 }
 tr.even td, tr.pair td, tr.odd td, tr.impair td, form.odd div.tagtd, form.impair div.tagtd, form.pair div.tagtd, div.impair div.tagtd, div.pair div.tagtd, div.liste_titre div.tagtd {
     padding: 5px 2px 5px 3px;
-    border-bottom: 1px solid #f4f4f4;
+    border-bottom: 1px solid #eee;
 }
 tr.even td .nobordernopadding tr td, tr.pair td .nobordernopadding tr td, tr.impair td .nobordernopadding tr td, tr.odd td .nobordernopadding tr td {
     border-bottom: 0px !important;
@@ -2309,14 +2310,15 @@ input.liste_titre {
 }
 
 .noborder tr.liste_total, .noborder tr.liste_total td, tr.liste_total, form.liste_total {
-	background: #F0F0F0;
+	/* background: #F0F0F0; */
 }
 .noborder tr.liste_total td, tr.liste_total td, form.liste_total div {
-    border-top: 1px solid #f4f4f4;
+    /* border-top: 1px solid #f4f4f4; */
     color: #332266;
     font-weight: normal;
     white-space: nowrap;
     padding: 4px;
+    height: 20px;
 }
 
 
@@ -3734,7 +3736,23 @@ border-top-right-radius: 6px;
 
 
 
-/* CSS style used for small screen */
+::-webkit-scrollbar {
+    width: 10px;
+}
+::-webkit-scrollbar-button {
+    background: #aaa
+}
+::-webkit-scrollbar-track-piece {
+    background: #fff
+}
+::-webkit-scrollbar-thumb {
+    background: #ddd
+}​
+
+
+
+
+/***** CSS style used for small screen *****/
 
 .imgopensurveywizard
 {
@@ -3750,7 +3768,7 @@ border-top-right-radius: 6px;
 	}
 }
 
-@media only screen and (max-width:  <?php echo ($nbtopmenuentries * 85) + 200; ?>px)
+@media only screen and (max-width:  <?php echo round($nbtopmenuentries * $fontsize * 7, 0) + 200; ?>px)
 {
 	.mainmenuaspan {
     	display: none;
-- 
GitLab


From e6ebc9c2937f59aa9f5c77db0b82bb7520efc635 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Fri, 4 Dec 2015 12:24:36 +0100
Subject: [PATCH 083/197] More complete tooltip help

---
 htdocs/core/lib/project.lib.php  | 2 +-
 htdocs/langs/fr_FR/projects.lang | 1 +
 htdocs/theme/md/style.css.php    | 3 +++
 3 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/htdocs/core/lib/project.lib.php b/htdocs/core/lib/project.lib.php
index 5eeb13ca937..97bea63e436 100644
--- a/htdocs/core/lib/project.lib.php
+++ b/htdocs/core/lib/project.lib.php
@@ -1075,7 +1075,7 @@ function print_projecttasks_array($db, $form, $socid, $projectsListId, $mytasks=
 		if (! empty($conf->global->PROJECT_USE_OPPORTUNITIES))
 		{
 			print '<td class="liste_total" align="right">'.price($total_opp_amount, 0, '', 1, -1, -1, $conf->currency).'</td>';
-			print '<td class="liste_total" align="right">'.$form->textwithpicto(price($ponderated_opp_amount, 0, '', 1, -1, -1, $conf->currency), $langs->trans("OpportunityPonderatedAmount"), 1).'</td>';
+			print '<td class="liste_total" align="right">'.$form->textwithpicto(price($ponderated_opp_amount, 0, '', 1, -1, -1, $conf->currency), $langs->trans("OpportunityPonderatedAmountDesc"), 1).'</td>';
 		}
 		if (empty($conf->global->PROJECT_HIDE_TASKS)) 
 		{
diff --git a/htdocs/langs/fr_FR/projects.lang b/htdocs/langs/fr_FR/projects.lang
index 97f36381257..256e1bc4129 100644
--- a/htdocs/langs/fr_FR/projects.lang
+++ b/htdocs/langs/fr_FR/projects.lang
@@ -178,6 +178,7 @@ TaskAssignedToEnterTime=Tâche assignée. La saisie de temps sur cette tâche de
 OpenedProjectsByThirdparties=Projets ouverts par tiers
 OpportunityTotalAmount=Montant total des opportunités
 OpportunityPonderatedAmount=Montant pondéré des opportunités
+OpportunityPonderatedAmountDesc=Montant pondéré par la probabilité (dépendante du statut) des opportunités
 OppStatusPROSP=Prospection
 OppStatusQUAL=Qualification
 OppStatusPROPO=Proposition
diff --git a/htdocs/theme/md/style.css.php b/htdocs/theme/md/style.css.php
index cac83da19b9..261a288ddc3 100644
--- a/htdocs/theme/md/style.css.php
+++ b/htdocs/theme/md/style.css.php
@@ -2214,6 +2214,9 @@ tr.even td, tr.pair td, tr.odd td, tr.impair td, form.odd div.tagtd, form.impair
     padding: 5px 2px 5px 3px;
     border-bottom: 1px solid #eee;
 }
+tr.even:last-child td, tr.pair:last-child td, tr.odd:last-child td, tr.impair:last-child td {
+    border-bottom: 0px !important;
+}
 tr.even td .nobordernopadding tr td, tr.pair td .nobordernopadding tr td, tr.impair td .nobordernopadding tr td, tr.odd td .nobordernopadding tr td {
     border-bottom: 0px !important;
 }
-- 
GitLab


From 6598ac67457f182cddb9914b5ab279240cd17a94 Mon Sep 17 00:00:00 2001
From: aspangaro <alexandre.spangaro@gmail.com>
Date: Fri, 4 Dec 2015 12:48:36 +0100
Subject: [PATCH 084/197] Add rights to see tab (hrm->employee->read)

---
 htdocs/core/lib/usergroups.lib.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/htdocs/core/lib/usergroups.lib.php b/htdocs/core/lib/usergroups.lib.php
index e8961645c62..5083ec3b495 100644
--- a/htdocs/core/lib/usergroups.lib.php
+++ b/htdocs/core/lib/usergroups.lib.php
@@ -94,7 +94,7 @@ function user_prepare_head($object)
     // $this->tabs = array('entity:-tabname);   												to remove a tab
     complete_head_from_modules($conf,$langs,$object,$head,$h,'user');
 
-	if (! empty($conf->hrm->enabled))
+	if (! empty($conf->hrm->enabled) && $user->rights->hrm->employee->read)
     {
 		// Bank
     	$head[$h][0] = DOL_URL_ROOT.'/user/bank.php?id='.$object->id;
-- 
GitLab


From bcadc33e315661695ea9b8e34f20cf557a18b607 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Fri, 4 Dec 2015 15:37:28 +0100
Subject: [PATCH 085/197] Debug visibility on task/projects

---
 htdocs/core/boxes/box_task.php              |  2 +-
 htdocs/core/lib/project.lib.php             |  6 +--
 htdocs/core/menus/init_menu_auguria.sql     |  4 +-
 htdocs/core/menus/standard/eldy.lib.php     |  4 +-
 htdocs/core/search.php                      |  2 +-
 htdocs/projet/activity/perday.php           | 14 +++---
 htdocs/projet/activity/perweek.php          | 39 ++++++++-------
 htdocs/projet/card.php                      |  2 +-
 htdocs/projet/class/task.class.php          | 27 ++++++-----
 htdocs/projet/contact.php                   |  2 +-
 htdocs/projet/document.php                  |  2 +-
 htdocs/projet/element.php                   |  2 +-
 htdocs/projet/ganttview.php                 |  2 +-
 htdocs/projet/list.php                      |  7 +--
 htdocs/projet/note.php                      |  2 +-
 htdocs/projet/tasks.php                     |  6 +--
 htdocs/projet/tasks/contact.php             |  2 +
 htdocs/projet/tasks/document.php            |  4 +-
 htdocs/projet/tasks/{index.php => list.php} | 53 +++++++++++++--------
 htdocs/projet/tasks/note.php                |  4 +-
 htdocs/projet/tasks/task.php                |  4 +-
 htdocs/projet/tasks/time.php                |  4 +-
 htdocs/theme/eldy/style.css.php             |  4 ++
 htdocs/theme/md/style.css.php               |  4 ++
 24 files changed, 115 insertions(+), 87 deletions(-)
 rename htdocs/projet/tasks/{index.php => list.php} (84%)

diff --git a/htdocs/core/boxes/box_task.php b/htdocs/core/boxes/box_task.php
index 97767dd15d1..384e30f8b12 100644
--- a/htdocs/core/boxes/box_task.php
+++ b/htdocs/core/boxes/box_task.php
@@ -104,7 +104,7 @@ class box_task extends ModeleBoxes
                     $this->info_box_contents[$i][] = array(
                         'td' => 'align="right"',
                         'text' => $objp->nb."&nbsp;".$langs->trans("Tasks"),
-                        'url' => DOL_URL_ROOT."/projet/tasks/index.php?leftmenu=projects&viewstatut=".$objp->fk_statut,
+                        'url' => DOL_URL_ROOT."/projet/tasks/list.php?leftmenu=projects&viewstatut=".$objp->fk_statut,
                     );
 					$totalnb += $objp->nb;
 					$this->info_box_contents[$i][] = array('td' => 'align="right"', 'text' => ConvertSecondToTime($objp->plannedtot,'all',25200,5));
diff --git a/htdocs/core/lib/project.lib.php b/htdocs/core/lib/project.lib.php
index 97bea63e436..733a83a500f 100644
--- a/htdocs/core/lib/project.lib.php
+++ b/htdocs/core/lib/project.lib.php
@@ -794,14 +794,14 @@ function projectLinesPerWeek(&$inc, $firstdaytoshow, $fuser, $parent, $lines, &$
 		        	$dayWorkLoad = $projectstatic->weekWorkLoadPerTask[$tmpday][$lines[$i]->id];
 		        	$alreadyspent='';
 		        	if ($dayWorkLoad > 0) $alreadyspent=convertSecondToTime($dayWorkLoad,'allhourmin');
-                    $tableCell ='<td align="center">';
-                    $tableCell.='<span class="timesheetalreadyrecorded"><input type="text" class="center" size="2" disabled id="timespent['.$inc.']['.$idw.']" name="task['.$lines[$i]->id.']['.$idw.']" value="'.$alreadyspent.'"></span>';
+                    $tableCell ='<td align="center" class="hide'.$idw.'">';
+                    $tableCell.='<span class="timesheetalreadyrecorded"><input type="text" class="center smallpadd" size="2" disabled id="timespent['.$inc.']['.$idw.']" name="task['.$lines[$i]->id.']['.$idw.']" value="'.$alreadyspent.'"></span>';
                     //$placeholder=' placeholder="00:00"';
                     $placeholder='';
                     //if (! $disabledtask)
                     //{
                     	$tableCell.='+';
-                    	$tableCell.='<input type="text" alt="'.$langs->trans("AddHereTimeSpentForDay",$tmparray['day'],$tmparray['mon']).'" title="'.$langs->trans("AddHereTimeSpentForDay",$tmparray['day'],$tmparray['mon']).'" '.($disabledtask?'disabled':$placeholder).' class="center" size="2" id="timeadded['.$inc.']['.$idw.']" name="task['.$lines[$i]->id.']['.$idw.']" value="" cols="2"  maxlength="5"';
+                    	$tableCell.='<input type="text" alt="'.$langs->trans("AddHereTimeSpentForDay",$tmparray['day'],$tmparray['mon']).'" title="'.$langs->trans("AddHereTimeSpentForDay",$tmparray['day'],$tmparray['mon']).'" '.($disabledtask?'disabled':$placeholder).' class="center smallpadd" size="2" id="timeadded['.$inc.']['.$idw.']" name="task['.$lines[$i]->id.']['.$idw.']" value="" cols="2"  maxlength="5"';
 		        		$tableCell.=' onkeypress="return regexEvent(this,event,\'timeChar\')"';
                     	$tableCell.= 'onblur="regexEvent(this,event,\''.$modeinput.'\'); updateTotal('.$idw.',\''.$modeinput.'\')" />';
                     //}
diff --git a/htdocs/core/menus/init_menu_auguria.sql b/htdocs/core/menus/init_menu_auguria.sql
index 6e21ae19c0f..9f583ed4c04 100644
--- a/htdocs/core/menus/init_menu_auguria.sql
+++ b/htdocs/core/menus/init_menu_auguria.sql
@@ -259,12 +259,12 @@ insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, left
 
 insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled', __HANDLER__, 'left', 3700__+MAX_llx_menu__, 'project', '', 7__+MAX_llx_menu__, '/projet/activity/index.php?leftmenu=projects', 'Activities', 0, 'projects', '$user->rights->projet->lire', '', 2, 0, __ENTITY__);
 insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled', __HANDLER__, 'left', 3701__+MAX_llx_menu__, 'project', '', 3700__+MAX_llx_menu__, '/projet/tasks.php?leftmenu=projects&amp;action=create', 'NewTask', 1, 'projects', '$user->rights->projet->creer', '', 2, 1, __ENTITY__);
-insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled', __HANDLER__, 'left', 3702__+MAX_llx_menu__, 'project', '', 3700__+MAX_llx_menu__, '/projet/tasks/index.php?leftmenu=projects', 'List', 1, 'projects', '$user->rights->projet->lire', '', 2, 2, __ENTITY__);
+insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled', __HANDLER__, 'left', 3702__+MAX_llx_menu__, 'project', '', 3700__+MAX_llx_menu__, '/projet/tasks/list.php?leftmenu=projects', 'List', 1, 'projects', '$user->rights->projet->lire', '', 2, 2, __ENTITY__);
 insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled', __HANDLER__, 'left', 3703__+MAX_llx_menu__, 'project', '', 3700__+MAX_llx_menu__, '/projet/activity/perweek.php?leftmenu=projects', 'NewTimeSpent', 1, 'projects', '$user->rights->projet->lire', '', 2, 3, __ENTITY__);
 
 insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled', __HANDLER__, 'left', 3800__+MAX_llx_menu__, 'project', '', 7__+MAX_llx_menu__, '/projet/activity/index.php?leftmenu=projects&amp;mode=mine', 'MyActivities', 0, 'projects', '$user->rights->projet->lire', '', 2, 0, __ENTITY__);
 insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled', __HANDLER__, 'left', 3801__+MAX_llx_menu__, 'project', '', 3800__+MAX_llx_menu__, '/projet/tasks.php?leftmenu=projects&amp;action=create&amp;mode=mine', 'NewTask', 1, 'projects', '$user->rights->projet->creer', '', 2, 1, __ENTITY__);
-insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled', __HANDLER__, 'left', 3802__+MAX_llx_menu__, 'project', '', 3800__+MAX_llx_menu__, '/projet/tasks/index.php?leftmenu=projects&amp;mode=mine', 'List', 1, 'projects', '$user->rights->projet->lire', '', 2, 2, __ENTITY__);
+insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled', __HANDLER__, 'left', 3802__+MAX_llx_menu__, 'project', '', 3800__+MAX_llx_menu__, '/projet/tasks/list.php?leftmenu=projects&amp;mode=mine', 'List', 1, 'projects', '$user->rights->projet->lire', '', 2, 2, __ENTITY__);
 insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->projet->enabled', __HANDLER__, 'left', 3803__+MAX_llx_menu__, 'project', '', 3800__+MAX_llx_menu__, '/projet/activity/perweek.php?leftmenu=projects&amp;mode=mine', 'NewTimeSpent', 1, 'projects', '$user->rights->projet->lire', '', 2, 3, __ENTITY__);
 -- Tools
 insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->mailing->enabled', __HANDLER__, 'left', 3900__+MAX_llx_menu__, 'tools', 'mailing', 8__+MAX_llx_menu__, '/comm/mailing/index.php?leftmenu=mailing', 'EMailings', 0, 'mails', '$user->rights->mailing->lire', '', 0, 0, __ENTITY__);
diff --git a/htdocs/core/menus/standard/eldy.lib.php b/htdocs/core/menus/standard/eldy.lib.php
index 03b3dc785bb..a04448b60d6 100644
--- a/htdocs/core/menus/standard/eldy.lib.php
+++ b/htdocs/core/menus/standard/eldy.lib.php
@@ -1213,13 +1213,13 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
 					// Project affected to user
 					$newmenu->add("/projet/activity/index.php?mode=mine", $langs->trans("MyActivities"), 0, $user->rights->projet->lire);
 					$newmenu->add("/projet/tasks.php?action=create&mode=mine", $langs->trans("NewTask"), 1, $user->rights->projet->creer);
-					$newmenu->add("/projet/tasks/index.php?mode=mine", $langs->trans("List"), 1, $user->rights->projet->lire);
+					$newmenu->add("/projet/tasks/list.php?mode=mine", $langs->trans("List"), 1, $user->rights->projet->lire);
 					$newmenu->add("/projet/activity/perweek.php?mode=mine", $langs->trans("NewTimeSpent"), 1, $user->rights->projet->creer);
 
 					// All project i have permission on
 					$newmenu->add("/projet/activity/index.php", $langs->trans("Activities"), 0, $user->rights->projet->lire && $user->rights->projet->lire);
 					$newmenu->add("/projet/tasks.php?action=create", $langs->trans("NewTask"), 1, $user->rights->projet->creer && $user->rights->projet->creer);
-					$newmenu->add("/projet/tasks/index.php", $langs->trans("List"), 1, $user->rights->projet->lire && $user->rights->projet->lire);
+					$newmenu->add("/projet/tasks/list.php", $langs->trans("List"), 1, $user->rights->projet->lire && $user->rights->projet->lire);
 					$newmenu->add("/projet/activity/perweek.php", $langs->trans("NewTimeSpent"), 1, $user->rights->projet->creer && $user->rights->projet->creer);
 				}
 			}
diff --git a/htdocs/core/search.php b/htdocs/core/search.php
index 5f66c34721d..ccb8838e42f 100644
--- a/htdocs/core/search.php
+++ b/htdocs/core/search.php
@@ -126,7 +126,7 @@ if (GETPOST('search_project') != '')
 }
 if (GETPOST('search_task') != '')
 {
-	header("Location: ".DOL_URL_ROOT.'/projet/tasks/index.php?mode=search&search_all='.urlencode(GETPOST('search_task')));
+	header("Location: ".DOL_URL_ROOT.'/projet/tasks/list.php?mode=search&search_all='.urlencode(GETPOST('search_task')));
 	exit;
 }
 
diff --git a/htdocs/projet/activity/perday.php b/htdocs/projet/activity/perday.php
index 93305dbc63c..5af9e9d57c3 100644
--- a/htdocs/projet/activity/perday.php
+++ b/htdocs/projet/activity/perday.php
@@ -245,10 +245,10 @@ if ($id)
     $project->fetch_thirdparty();
 }
 
-$onlyopened=1;	// or -1
-$tasksarray=$taskstatic->getTasksArray(0,0,($project->id?$project->id:$projectsListId),$socid,0,'',$onlyopened);    // We want to see all task of opened project i am allowed to see, not only mine. Later only mine will be editable later.
-$projectsrole=$taskstatic->getUserRolesForProjectsOrTasks($usertoprocess,0,($project->id?$project->id:$projectsListId),0);
-$tasksrole=$taskstatic->getUserRolesForProjectsOrTasks(0,$usertoprocess,($project->id?$project->id:$projectsListId),0);
+$onlyopenedproject=1;	// or -1
+$tasksarray=$taskstatic->getTasksArray(0, 0, ($project->id?$project->id:0), $socid, 0, '', $onlyopenedproject);    // We want to see all task of opened project i am allowed to see, not only mine. Later only mine will be editable later.
+$projectsrole=$taskstatic->getUserRolesForProjectsOrTasks($usertoprocess, 0, ($project->id?$project->id:0), 0, $onlyopenedproject);
+$tasksrole=$taskstatic->getUserRolesForProjectsOrTasks(0, $usertoprocess, ($project->id?$project->id:0), 0, $onlyopenedproject);
 //var_dump($tasksarray);
 //var_dump($projectsrole);
 //var_dump($taskrole);
@@ -284,11 +284,11 @@ $head=project_timesheet_prepare_head($mode);
 dol_fiche_head($head, 'inputperday', '', 0, 'task');
 
 // Show description of content
-if ($mine) print $langs->trans("MyTasksDesc").($onlyopened?' '.$langs->trans("OnlyOpenedProject"):'').'<br>';
+if ($mine) print $langs->trans("MyTasksDesc").($onlyopenedproject?' '.$langs->trans("OnlyOpenedProject"):'').'<br>';
 else
 {
-	if ($user->rights->projet->all->lire && ! $socid) print $langs->trans("ProjectsDesc").($onlyopened?' '.$langs->trans("OnlyOpenedProject"):'').'<br>';
-	else print $langs->trans("ProjectsPublicTaskDesc").($onlyopened?' '.$langs->trans("AlsoOnlyOpenedProject"):'').'<br>';
+	if ($user->rights->projet->all->lire && ! $socid) print $langs->trans("ProjectsDesc").($onlyopenedproject?' '.$langs->trans("OnlyOpenedProject"):'').'<br>';
+	else print $langs->trans("ProjectsPublicTaskDesc").($onlyopenedproject?' '.$langs->trans("AlsoOnlyOpenedProject"):'').'<br>';
 }
 if ($mine)
 {
diff --git a/htdocs/projet/activity/perweek.php b/htdocs/projet/activity/perweek.php
index a8f531cc790..8a65dfe4162 100644
--- a/htdocs/projet/activity/perweek.php
+++ b/htdocs/projet/activity/perweek.php
@@ -215,19 +215,18 @@ $taskstatic = new Task($db);
 $title=$langs->trans("TimeSpent");
 if ($mine) $title=$langs->trans("MyTimeSpent");
 
-//$projectsListId = $projectstatic->getProjectsAuthorizedForUser($user,$mine,1);
-$projectsListId = $projectstatic->getProjectsAuthorizedForUser($usertoprocess,0,1);  // Return all project i have permission on. I want my tasks and some of my task may be on a public projet that is not my project
-
+$projectsListId = $projectstatic->getProjectsAuthorizedForUser($usertoprocess,0,1);  // Return all project i have permission on (assigned to me+public). I want my tasks and some of my task may be on a public projet that is not my project
+//var_dump($projectsListId);
 if ($id)
 {
     $project->fetch($id);
     $project->fetch_thirdparty();
 }
 
-$onlyopened=1;	// or -1
-$tasksarray=$taskstatic->getTasksArray(0,0,($project->id?$project->id:$projectsListId),$socid,0,'',$onlyopened);    // We want to see all task of opened project i am allowed to see, not only mine. Later only mine will be editable later.
-$projectsrole=$taskstatic->getUserRolesForProjectsOrTasks($usertoprocess,0,($project->id?$project->id:$projectsListId),0);
-$tasksrole=$taskstatic->getUserRolesForProjectsOrTasks(0,$usertoprocess,($project->id?$project->id:$projectsListId),0);
+$onlyopenedproject=1;	// or -1
+$tasksarray=$taskstatic->getTasksArray(0, 0, ($project->id?$project->id:0), $socid, 0, '', $onlyopenedproject);    // We want to see all task of opened project i am allowed to see, not only mine. Later only mine will be editable later.
+$projectsrole=$taskstatic->getUserRolesForProjectsOrTasks($usertoprocess, 0, ($project->id?$project->id:0), 0, $onlyopenedproject);
+$tasksrole=$taskstatic->getUserRolesForProjectsOrTasks(0, $usertoprocess, ($project->id?$project->id:0), 0, $onlyopenedproject);
 //var_dump($tasksarray);
 //var_dump($projectsrole);
 //var_dump($taskrole);
@@ -261,11 +260,11 @@ $head=project_timesheet_prepare_head($mode);
 dol_fiche_head($head, 'inputperweek', '', 0, 'task');
 
 // Show description of content
-if ($mine) print $langs->trans("MyTasksDesc").($onlyopened?' '.$langs->trans("OnlyOpenedProject"):'').'<br>';
+if ($mine) print $langs->trans("MyTasksDesc").($onlyopenedproject?' '.$langs->trans("OnlyOpenedProject"):'').'<br>';
 else
 {
-	if ($user->rights->projet->all->lire && ! $socid) print $langs->trans("ProjectsDesc").($onlyopened?' '.$langs->trans("OnlyOpenedProject"):'').'<br>';
-	else print $langs->trans("ProjectsPublicTaskDesc").($onlyopened?' '.$langs->trans("AlsoOnlyOpenedProject"):'').'<br>';
+	if ($user->rights->projet->all->lire && ! $socid) print $langs->trans("ProjectsDesc").($onlyopenedproject?' '.$langs->trans("OnlyOpenedProject"):'').'<br>';
+	else print $langs->trans("ProjectsPublicTaskDesc").($onlyopenedproject?' '.$langs->trans("AlsoOnlyOpenedProject"):'').'<br>';
 }
 if ($mine)
 {
@@ -317,7 +316,7 @@ $startday=dol_mktime(12, 0, 0, $startdayarray['first_month'], $startdayarray['fi
 
 for($i=0;$i<7;$i++)
 {
-	print '<td width="7%" align="center">'.dol_print_date($startday + ($i * 3600 * 24), '%a').'<br>'.dol_print_date($startday + ($i * 3600 * 24), 'day').'</td>';
+	print '<td width="7%" align="center" class="hide'.$i.'">'.dol_print_date($startday + ($i * 3600 * 24), '%a').'<br>'.dol_print_date($startday + ($i * 3600 * 24), 'day').'</td>';
 }
 print '<td class="liste_total"></td>';
 
@@ -328,18 +327,22 @@ $restrictviewformytask=(empty($conf->global->PROJECT_TIME_SHOW_TASK_NOT_ASSIGNED
 
 if (count($tasksarray) > 0)
 {
+    //var_dump($tasksarray);
+    //var_dump($tasksrole);
+    
 	$j=0;
+	$level=0;
 	projectLinesPerWeek($j, $firstdaytoshow, $usertoprocess, 0, $tasksarray, $level, $projectsrole, $tasksrole, $mine, $restrictviewformytask);
 
 	print '<tr class="liste_total">
                 <td class="liste_total" colspan="7" align="right">'.$langs->trans("Total").'</td>
-                <td class="liste_total" width="7%" align="center"><div id="totalDay[0]">&nbsp;</div></td>
-                <td class="liste_total" width="7%" align="center"><div id="totalDay[1]">&nbsp;</div></td>
-                <td class="liste_total" width="7%" align="center"><div id="totalDay[2]">&nbsp;</div></td>
-                <td class="liste_total" width="7%" align="center"><div id="totalDay[3]">&nbsp;</div></td>
-                <td class="liste_total" width="7%" align="center"><div id="totalDay[4]">&nbsp;</div></td>
-                <td class="liste_total" width="7%" align="center"><div id="totalDay[5]">&nbsp;</div></td>
-                <td class="liste_total" width="7%" align="center"><div id="totalDay[6]">&nbsp;</div></td>
+                <td class="liste_total hide0" width="7%" align="center"><div id="totalDay[0]">&nbsp;</div></td>
+                <td class="liste_total hide1" width="7%" align="center"><div id="totalDay[1]">&nbsp;</div></td>
+                <td class="liste_total hide2" width="7%" align="center"><div id="totalDay[2]">&nbsp;</div></td>
+                <td class="liste_total hide3" width="7%" align="center"><div id="totalDay[3]">&nbsp;</div></td>
+                <td class="liste_total hide4" width="7%" align="center"><div id="totalDay[4]">&nbsp;</div></td>
+                <td class="liste_total hide5" width="7%" align="center"><div id="totalDay[5]">&nbsp;</div></td>
+                <td class="liste_total hide6" width="7%" align="center"><div id="totalDay[6]">&nbsp;</div></td>
                 <td class="liste_total"></td>
     </tr>';
 }
diff --git a/htdocs/projet/card.php b/htdocs/projet/card.php
index c05cb6948a5..51939d8e9fc 100644
--- a/htdocs/projet/card.php
+++ b/htdocs/projet/card.php
@@ -708,7 +708,7 @@ else
         // Define a complementary filter for search of next/prev ref.
         if (! $user->rights->projet->all->lire)
         {
-            $objectsListId = $object->getProjectsAuthorizedForUser($user,$mine,0);
+            $objectsListId = $object->getProjectsAuthorizedForUser($user,0,0);
             $object->next_prev_filter=" rowid in (".(count($objectsListId)?join(',',array_keys($objectsListId)):'0').")";
         }
         print $form->showrefnav($object, 'ref', $linkback, 1, 'ref', 'ref');
diff --git a/htdocs/projet/class/task.class.php b/htdocs/projet/class/task.class.php
index c6c5f65f63d..0b490aff863 100644
--- a/htdocs/projet/class/task.class.php
+++ b/htdocs/projet/class/task.class.php
@@ -557,10 +557,10 @@ class Task extends CommonObject
      * @param	string	$filteronprojstatus	Filter on project status
      * @param	string	$morewherefilter	Add more filter into where SQL request
      * @param	string	$filteronprojuser	Filter on user that is a contact of project
-     * @param	string	$filterontaskuse	Filter on user assigned to task
+     * @param	string	$filterontaskuser	Filter on user assigned to task
      * @return 	array						Array of tasks
      */
-    function getTasksArray($usert=0, $userp=0, $projectid=0, $socid=0, $mode=0, $filteronprojref='', $filteronprojstatus=-1, $morewherefilter='',$filteronprojuser=0,$filterontaskuse=0)
+    function getTasksArray($usert=0, $userp=0, $projectid=0, $socid=0, $mode=0, $filteronprojref='', $filteronprojstatus=-1, $morewherefilter='',$filteronprojuser=0,$filterontaskuser=0)
     {
         global $conf;
 
@@ -587,11 +587,11 @@ class Task extends CommonObject
         }
         else return 'BadValueForParameterMode';
 
-        if ($filteronprojuser)
+        if ($filteronprojuser > 0)
         {
 			// TODO
         }
-        if ($filterontaskuser)
+        if ($filterontaskuser > 0)
         {
 			// TODO
         }
@@ -665,15 +665,16 @@ class Task extends CommonObject
     }
 
     /**
-     * Return list of roles for a user for each projects or each tasks (or a particular project or task).
+     * Return list of roles for a user for each projects or each tasks (or a particular project or a particular task).
      *
-     * @param	User	$userp			Return roles on project for this internal user (task id can't be defined)
-     * @param	User	$usert			Return roles on task for this internal user
-     * @param 	int		$projectid		Project id list separated with , to filter on project
-     * @param 	int		$taskid			Task id to filter on a task
-     * @return 	array					Array (projectid => 'list of roles for project' or taskid => 'list of roles for task')
+     * @param	User	$userp			      Return roles on project for this internal user. If set, usert and taskid must not be defined.
+     * @param	User	$usert			      Return roles on task for this internal user. If set userp must not be defined.
+     * @param 	int		$projectid		      Project id list separated with , to filter on project
+     * @param 	int		$taskid			      Task id to filter on a task
+     * @param	string	$filteronprojstatus	  Filter on project status if userp is set. Not used if userp not defined.
+     * @return 	array					      Array (projectid => 'list of roles for project' or taskid => 'list of roles for task')
      */
-    function getUserRolesForProjectsOrTasks($userp,$usert,$projectid='',$taskid=0)
+    function getUserRolesForProjectsOrTasks($userp, $usert, $projectid='', $taskid=0, $filteronprojstatus=-1)
     {
         $arrayroles = array();
 
@@ -694,10 +695,12 @@ class Task extends CommonObject
         /* Liste des taches et role sur les projets ou taches */
         $sql = "SELECT pt.rowid as pid, ec.element_id, ctc.code, ctc.source";
         if ($userp) $sql.= " FROM ".MAIN_DB_PREFIX."projet as pt";
-        if ($usert) $sql.= " FROM ".MAIN_DB_PREFIX."projet_task as pt";
+        if ($usert) $sql.= " FROM ".MAIN_DB_PREFIX."projet as p, ".MAIN_DB_PREFIX."projet_task as pt";
         $sql.= ", ".MAIN_DB_PREFIX."element_contact as ec";
         $sql.= ", ".MAIN_DB_PREFIX."c_type_contact as ctc";
         $sql.= " WHERE pt.rowid = ec.element_id";
+        if ($userp && $filteronprojstatus > -1) $sql.= " AND pt.fk_statut = ".$filteronprojstatus;
+        if ($usert && $filteronprojstatus > -1) $sql.= " AND pt.fk_projet = p.rowid AND p.fk_statut = ".$filteronprojstatus;
         if ($userp) $sql.= " AND ctc.element = 'project'";
         if ($usert) $sql.= " AND ctc.element = 'project_task'";
         $sql.= " AND ctc.rowid = ec.fk_c_type_contact";
diff --git a/htdocs/projet/contact.php b/htdocs/projet/contact.php
index d20ad16c9fa..f2d44e74dca 100644
--- a/htdocs/projet/contact.php
+++ b/htdocs/projet/contact.php
@@ -161,7 +161,7 @@ if ($id > 0 || ! empty($ref))
 	// Define a complementary filter for search of next/prev ref.
 	if (! $user->rights->projet->all->lire)
 	{
-		$objectsListId = $object->getProjectsAuthorizedForUser($user,$mine,0);
+		$objectsListId = $object->getProjectsAuthorizedForUser($user,0,0);
 		$object->next_prev_filter=" rowid in (".(count($objectsListId)?join(',',array_keys($objectsListId)):'0').")";
 	}
 	print $form->showrefnav($object, 'ref', $linkback, 1, 'ref', 'ref', '');
diff --git a/htdocs/projet/document.php b/htdocs/projet/document.php
index 44332ff558c..ce033f0e193 100644
--- a/htdocs/projet/document.php
+++ b/htdocs/projet/document.php
@@ -115,7 +115,7 @@ if ($object->id > 0)
 	// Define a complementary filter for search of next/prev ref.
     if (! $user->rights->projet->all->lire)
     {
-        $projectsListId = $object->getProjectsAuthorizedForUser($user,$mine,0);
+        $projectsListId = $object->getProjectsAuthorizedForUser($user,0,0);
         $object->next_prev_filter=" rowid in (".(count($projectsListId)?join(',',array_keys($projectsListId)):'0').")";
     }
 	print $form->showrefnav($object, 'ref', $linkback, 1, 'ref', 'ref');
diff --git a/htdocs/projet/element.php b/htdocs/projet/element.php
index 6ef8edcc459..ff3e3c32218 100644
--- a/htdocs/projet/element.php
+++ b/htdocs/projet/element.php
@@ -125,7 +125,7 @@ print '<tr><td width="30%">'.$langs->trans("Ref").'</td><td>';
 // Define a complementary filter for search of next/prev ref.
 if (! $user->rights->projet->all->lire)
 {
-    $projectsListId = $object->getProjectsAuthorizedForUser($user,$mine,0);
+    $projectsListId = $object->getProjectsAuthorizedForUser($user,0,0);
     $object->next_prev_filter=" rowid in (".(count($projectsListId)?join(',',array_keys($projectsListId)):'0').")";
 }
 print $form->showrefnav($object, 'ref', $linkback, 1, 'ref', 'ref');
diff --git a/htdocs/projet/ganttview.php b/htdocs/projet/ganttview.php
index 4bafee55e82..091059d76e3 100644
--- a/htdocs/projet/ganttview.php
+++ b/htdocs/projet/ganttview.php
@@ -109,7 +109,7 @@ if ($id > 0 || ! empty($ref))
     // Define a complementary filter for search of next/prev ref.
     if (! $user->rights->projet->all->lire)
     {
-        $projectsListId = $object->getProjectsAuthorizedForUser($user,$mine,0);
+        $projectsListId = $object->getProjectsAuthorizedForUser($user,0,0);
         $object->next_prev_filter=" rowid in (".(count($projectsListId)?join(',',array_keys($projectsListId)):'0').")";
     }
     print $form->showrefnav($object, 'ref', $linkback, 1, 'ref', 'ref', '', $param);
diff --git a/htdocs/projet/list.php b/htdocs/projet/list.php
index a50595db609..3f9aea52444 100644
--- a/htdocs/projet/list.php
+++ b/htdocs/projet/list.php
@@ -60,8 +60,6 @@ $offset = $conf->liste_limit * $page ;
 $pageprev = $page - 1;
 $pagenext = $page + 1;
 
-$mine = $_REQUEST['mode']=='mine' ? 1 : 0;
-
 $search_all=GETPOST("search_all");
 $search_ref=GETPOST("search_ref");
 $search_label=GETPOST("search_label");
@@ -75,6 +73,9 @@ $search_user=GETPOST('search_user','int');
 $search_sale=GETPOST('search_sale','int');
 $optioncss = GETPOST('optioncss','alpha');
 
+$mine = $_REQUEST['mode']=='mine' ? 1 : 0;
+if ($mine) $search_user = $user->id;
+
 $day	= GETPOST('day','int');
 $month	= GETPOST('month','int');
 $year	= GETPOST('year','int');
@@ -306,7 +307,7 @@ if ($resql)
 	if (empty($conf->global->PROJECT_LIST_HIDE_STARTDATE)) $colspan++;
 
 	
-	// If the user can view prospects other than his'
+	// If the user can view thirdparties other than his'
 	if ($user->rights->societe->client->voir || $socid)
 	{
 		$langs->load("commercial");
diff --git a/htdocs/projet/note.php b/htdocs/projet/note.php
index fe6137223d5..45c4cffd65b 100644
--- a/htdocs/projet/note.php
+++ b/htdocs/projet/note.php
@@ -88,7 +88,7 @@ if ($id > 0 || ! empty($ref))
 	// Define a complementary filter for search of next/prev ref.
 	if (! $user->rights->projet->all->lire)
 	{
-		$projectsListId = $object->getProjectsAuthorizedForUser($user,$mine,0);
+		$projectsListId = $object->getProjectsAuthorizedForUser($user,0,0);
 		$object->next_prev_filter=" rowid in (".(count($projectsListId)?join(',',array_keys($projectsListId)):'0').")";
 	}
 	print $form->showrefnav($object, 'ref', $linkback, 1, 'ref', 'ref');
diff --git a/htdocs/projet/tasks.php b/htdocs/projet/tasks.php
index b73f3456324..63c2bd72f28 100644
--- a/htdocs/projet/tasks.php
+++ b/htdocs/projet/tasks.php
@@ -146,7 +146,7 @@ if ($action == 'createtask' && $user->rights->projet->creer)
 			}
 			else if (empty($projectid))
 			{
-				header("Location: ".DOL_URL_ROOT.'/projet/tasks/index.php'.(empty($mode)?'':'?mode='.$mode));
+				header("Location: ".DOL_URL_ROOT.'/projet/tasks/list.php'.(empty($mode)?'':'?mode='.$mode));
 				exit;
 			}
 			$id = $projectid;
@@ -162,7 +162,7 @@ if ($action == 'createtask' && $user->rights->projet->creer)
 		else if (empty($id))
 		{
 			// We go back on task list
-			header("Location: ".DOL_URL_ROOT.'/projet/tasks/index.php'.(empty($mode)?'':'?mode='.$mode));
+			header("Location: ".DOL_URL_ROOT.'/projet/tasks/list.php'.(empty($mode)?'':'?mode='.$mode));
 			exit;
 		}
 	}
@@ -215,7 +215,7 @@ if ($id > 0 || ! empty($ref))
 	// Define a complementary filter for search of next/prev ref.
 	if (! $user->rights->projet->all->lire)
 	{
-		$projectsListId = $object->getProjectsAuthorizedForUser($user,$mine,0);
+		$projectsListId = $object->getProjectsAuthorizedForUser($user,0,0);
 		$object->next_prev_filter=" rowid in (".(count($projectsListId)?join(',',array_keys($projectsListId)):'0').")";
 	}
 	print $form->showrefnav($object, 'ref', $linkback, 1, 'ref', 'ref', '', $param);
diff --git a/htdocs/projet/tasks/contact.php b/htdocs/projet/tasks/contact.php
index 59dab34b33e..787bc8e120a 100644
--- a/htdocs/projet/tasks/contact.php
+++ b/htdocs/projet/tasks/contact.php
@@ -173,6 +173,8 @@ if ($id > 0 || ! empty($ref))
 {
 	if ($object->fetch($id, $ref) > 0)
 	{
+	    $id = $object->id;     // So when doing a search from ref, id is also set correctly.
+	    
 		$result=$projectstatic->fetch($object->fk_project);
 		if (! empty($projectstatic->socid)) $projectstatic->fetch_thirdparty();
 
diff --git a/htdocs/projet/tasks/document.php b/htdocs/projet/tasks/document.php
index 1afc949cfa0..97a09ad1f87 100644
--- a/htdocs/projet/tasks/document.php
+++ b/htdocs/projet/tasks/document.php
@@ -143,7 +143,7 @@ if ($object->id > 0)
 		// Define a complementary filter for search of next/prev ref.
 		if (! $user->rights->projet->all->lire)
 		{
-			$projectsListId = $projectstatic->getProjectsAuthorizedForUser($user,$mine,0);
+			$projectsListId = $projectstatic->getProjectsAuthorizedForUser($user,0,0);
 			$projectstatic->next_prev_filter=" rowid in (".(count($projectsListId)?join(',',array_keys($projectsListId)):'0').")";
 		}
 		print $form->showrefnav($projectstatic,'project_ref','',1,'ref','ref','',$param.'&withproject=1');
@@ -203,7 +203,7 @@ if ($object->id > 0)
 	print '</td><td colspan="3">';
 	if (empty($withproject) || empty($projectstatic->id))
 	{
-		$projectsListId = $projectstatic->getProjectsAuthorizedForUser($user,$mine,1);
+		$projectsListId = $projectstatic->getProjectsAuthorizedForUser($user,0,1);
 		$object->next_prev_filter=" fk_projet in (".$projectsListId.")";
 	}
 	else $object->next_prev_filter=" fk_projet = ".$projectstatic->id;
diff --git a/htdocs/projet/tasks/index.php b/htdocs/projet/tasks/list.php
similarity index 84%
rename from htdocs/projet/tasks/index.php
rename to htdocs/projet/tasks/list.php
index cd8e3af37bd..e3540afc1aa 100644
--- a/htdocs/projet/tasks/index.php
+++ b/htdocs/projet/tasks/list.php
@@ -1,6 +1,6 @@
 <?php
 /* Copyright (C) 2005      Rodolphe Quiedeville <rodolphe@quiedeville.org>
- * Copyright (C) 2006-2014 Laurent Destailleur  <eldy@users.sourceforge.net>
+ * Copyright (C) 2006-2015 Laurent Destailleur  <eldy@users.sourceforge.net>
  * Copyright (C) 2006-2010 Regis Houssin        <regis.houssin@capnetworks.com>
  *
  * This program is free software; you can redistribute it and/or modify
@@ -18,7 +18,7 @@
  */
 
 /**
- *	\file       htdocs/projet/tasks/index.php
+ *	\file       htdocs/projet/tasks/list.php
  *	\ingroup    project
  *	\brief      List all task of a project
  */
@@ -43,6 +43,9 @@ $search_task_label=GETPOST('search_task_label');
 $search_project_user=GETPOST('search_project_user');
 $search_task_user=GETPOST('search_task_user');
 
+$mine = $_REQUEST['mode']=='mine' ? 1 : 0;
+if ($mine) $search_task_user = $user->id;
+
 // Security check
 $socid=0;
 if ($user->societe_id > 0) $socid = $user->societe_id;
@@ -54,8 +57,6 @@ $page = GETPOST("page");
 $page = is_numeric($page) ? $page : 0;
 $page = $page == -1 ? 0 : $page;
 
-$mine = $_REQUEST['mode']=='mine' ? 1 : 0;
-
 // Purge criteria
 if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter.x") || GETPOST("button_removefilter")) // Both test are required to be compatible with all browsers
 {
@@ -64,6 +65,8 @@ if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter.x") || GETP
 	$search_status="";
 	$search_task_ref="";
 	$search_task_label="";
+	$search_task_user=-1;
+	$search_project_user=-1;
 }
 if (empty($search_status) && $search_status == '') $search_status=1;
 
@@ -88,6 +91,10 @@ $fieldstosearchall = array(
 $form=new Form($db);
 $projectstatic = new Project($db);
 $taskstatic = new Task($db);
+$puser=new User($db);
+$tuser=new User($db);
+if ($search_project_user > 0) $puser->fetch($search_project_user);
+if ($search_task_user > 0) $tuser->fetch($search_task_user);
 
 $title=$langs->trans("Activities");
 if ($mine) $title=$langs->trans("MyActivities");
@@ -112,6 +119,7 @@ else
 
 // Get list of project id allowed to user (in a string list separated by coma)
 $projectsListId = $projectstatic->getProjectsAuthorizedForUser($user,$mine,1,$socid);
+//var_dump($projectsListId);
 
 // Get list of tasks in tasksarray and taskarrayfiltered
 // We need all tasks (even not limited to a user because a task assigned to a user can have a parent that is not assigned to him and we need such parents).
@@ -119,9 +127,9 @@ $morewherefilter='';
 if ($search_all)        $morewherefilter.=natural_search(array_keys($fieldstosearchall), $search_all);
 if ($search_task_ref)   $morewherefilter.=natural_search('t.ref', $search_task_ref);
 if ($search_task_label) $morewherefilter.=natural_search('t.label', $search_task_label);
+
 $tasksarray=$taskstatic->getTasksArray(0, 0, $projectstatic->id, $socid, 0, $search_project, $search_status, $morewherefilter, $search_project_user, $search_task_user);
-// We load also tasks limited to a particular user
-$tasksrole=($mine ? $taskstatic->getUserRolesForProjectsOrTasks(0,$user,$projectstatic->id,0) : '');
+$tasksrole=$taskstatic->getUserRolesForProjectsOrTasks(0, ($tuser->id?$tuser:null), $projectstatic->id, 0, $search_status); // We load also tasks limited to a particular user
 
 print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'">';
 if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
@@ -130,7 +138,6 @@ print '<input type="hidden" name="action" value="list">';
 print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
 print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
 print '<input type="hidden" name="type" value="'.$type.'">';
-print '<input type="hidden" name="mode" value="'.GETPOST('mode').'">';
 
 if ($search_all)
 {
@@ -140,20 +147,23 @@ if ($search_all)
 
 
 // If the user can view users
-if ($user->rights->user->user->lire)
-{
-	$moreforfilter.='<div class="divsearchfield">';
-    $moreforfilter.=$langs->trans('ProjectsWithThisUserAsContact'). ' ';
-    $moreforfilter.=$form->select_dolusers($search_project_user, 'search_project_user', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth300');
-	$moreforfilter.='</div>';
-}
-if ($user->rights->user->user->lire)
-{
-	$moreforfilter.='<div class="divsearchfield">';
-    $moreforfilter.=$langs->trans('TasksWithThisUserAsContact'). ' ';
-    $moreforfilter.=$form->select_dolusers($search_task_user, 'search_task_user', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth300');
-	$moreforfilter.='</div>';
-}
+//if ($mine) $search_project_user=$user->id;    // We want by default all project. "mine" is a filter for task contact on this page
+$moreforfilter.='<div class="divsearchfield">';
+$moreforfilter.=$langs->trans('ProjectsWithThisUserAsContact'). ' ';
+$includeonly='';
+if (empty($user->rights->user->user->lire)) $includeonly=array($user->id);
+$moreforfilter.=$form->select_dolusers($search_project_user, 'search_project_user', 1, '', 0, $includeonly, '', 0, 0, 0, '', 0, '', 'maxwidth300');
+$moreforfilter.='</div>';
+
+// If the user can view users
+if ($mine) $search_task_user=$user->id;
+$moreforfilter.='<div class="divsearchfield">';
+$moreforfilter.=$langs->trans('TasksWithThisUserAsContact'). ': ';
+$includeonly='';
+if (empty($user->rights->user->user->lire)) $includeonly=array($user->id);
+$moreforfilter.=$form->select_dolusers($search_task_user, 'search_task_user', 1, '', 0, $includeonly, '', 0, 0, 0, '', 0, '', 'maxwidth300');
+$moreforfilter.='</div>';
+
 if (! empty($moreforfilter))
 {
 	print '<div class="liste_titre liste_titre_bydiv centpercent">';
@@ -217,6 +227,7 @@ else
 {
 	// Show all lines in taskarray (recursive function to go down on tree)
 	$j=0; $level=0;
+	//var_dump($tasksarray);
 	$nboftaskshown=projectLinesa($j, 0, $tasksarray, $level, true, 1, $tasksrole, $projectsListId, 0);
 }
 
diff --git a/htdocs/projet/tasks/note.php b/htdocs/projet/tasks/note.php
index ba575be30ad..e62e58df58b 100644
--- a/htdocs/projet/tasks/note.php
+++ b/htdocs/projet/tasks/note.php
@@ -123,7 +123,7 @@ if ($object->id > 0)
 		// Define a complementary filter for search of next/prev ref.
 		if (! $user->rights->projet->all->lire)
 		{
-		    $projectsListId = $projectstatic->getProjectsAuthorizedForUser($user,$mine,0);
+		    $projectsListId = $projectstatic->getProjectsAuthorizedForUser($user,0,0);
 		    $projectstatic->next_prev_filter=" rowid in (".(count($projectsListId)?join(',',array_keys($projectsListId)):'0').")";
 		}
 		print $form->showrefnav($projectstatic,'project_ref','',1,'ref','ref','',$param.'&withproject=1');
@@ -175,7 +175,7 @@ if ($object->id > 0)
 	print '<tr><td width="30%">'.$langs->trans("Ref").'</td><td>';
 	if (empty($withproject) || empty($projectstatic->id))
 	{
-	    $projectsListId = $projectstatic->getProjectsAuthorizedForUser($user,$mine,1);
+	    $projectsListId = $projectstatic->getProjectsAuthorizedForUser($user,0,1);
 	    $object->next_prev_filter=" fk_projet in (".$projectsListId.")";
 	}
 	else $object->next_prev_filter=" fk_projet = ".$projectstatic->id;
diff --git a/htdocs/projet/tasks/task.php b/htdocs/projet/tasks/task.php
index 9cbe8c1289f..32ede58a534 100644
--- a/htdocs/projet/tasks/task.php
+++ b/htdocs/projet/tasks/task.php
@@ -227,7 +227,7 @@ if ($id > 0 || ! empty($ref))
 			// Define a complementary filter for search of next/prev ref.
 			if (! $user->rights->projet->all->lire)
 			{
-				$projectsListId = $projectstatic->getProjectsAuthorizedForUser($user,$mine,0);
+				$projectsListId = $projectstatic->getProjectsAuthorizedForUser($user,0,0);
 				$projectstatic->next_prev_filter=" rowid in (".(count($projectsListId)?join(',',array_keys($projectsListId)):'0').")";
 			}
 			print $form->showrefnav($projectstatic,'project_ref','',1,'ref','ref','',$param.'&withproject=1');
@@ -402,7 +402,7 @@ if ($id > 0 || ! empty($ref))
 			print '</td><td colspan="3">';
 			if (! GETPOST('withproject') || empty($projectstatic->id))
 			{
-				$projectsListId = $projectstatic->getProjectsAuthorizedForUser($user,$mine,1);
+				$projectsListId = $projectstatic->getProjectsAuthorizedForUser($user,0,1);
 				$object->next_prev_filter=" fk_projet in (".$projectsListId.")";
 			}
 			else $object->next_prev_filter=" fk_projet = ".$projectstatic->id;
diff --git a/htdocs/projet/tasks/time.php b/htdocs/projet/tasks/time.php
index 6c250d0fe57..51dafba2a6d 100644
--- a/htdocs/projet/tasks/time.php
+++ b/htdocs/projet/tasks/time.php
@@ -237,7 +237,7 @@ if ($id > 0 || ! empty($ref))
 			// Define a complementary filter for search of next/prev ref.
 			if (! $user->rights->projet->all->lire)
 			{
-				$projectsListId = $projectstatic->getProjectsAuthorizedForUser($user,$mine,0);
+				$projectsListId = $projectstatic->getProjectsAuthorizedForUser($user,0,0);
 				$projectstatic->next_prev_filter=" rowid in (".(count($projectsListId)?join(',',array_keys($projectsListId)):'0').")";
 			}
 			print $form->showrefnav($projectstatic,'project_ref','',1,'ref','ref','',$param.'&withproject=1');
@@ -296,7 +296,7 @@ if ($id > 0 || ! empty($ref))
 		print '</td><td colspan="3">';
 		if (! GETPOST('withproject') || empty($projectstatic->id))
 		{
-			$projectsListId = $projectstatic->getProjectsAuthorizedForUser($user,$mine,1);
+			$projectsListId = $projectstatic->getProjectsAuthorizedForUser($user,0,1);
 			$object->next_prev_filter=" fk_projet in (".$projectsListId.")";
 		}
 		else $object->next_prev_filter=" fk_projet = ".$projectstatic->id;
diff --git a/htdocs/theme/eldy/style.css.php b/htdocs/theme/eldy/style.css.php
index f0f031114e5..5587efa2431 100644
--- a/htdocs/theme/eldy/style.css.php
+++ b/htdocs/theme/eldy/style.css.php
@@ -282,6 +282,10 @@ input.removedassigned  {
 	vertical-align: text-bottom;
 	margin-bottom: -3px;
 }
+input.smallpadd {
+	padding-left: 0px !important;
+	padding-right: 0px !important;
+}
 <?php } ?>
 
 select.flat, form.flat select {
diff --git a/htdocs/theme/md/style.css.php b/htdocs/theme/md/style.css.php
index 261a288ddc3..56df547b9b1 100644
--- a/htdocs/theme/md/style.css.php
+++ b/htdocs/theme/md/style.css.php
@@ -276,6 +276,10 @@ input.removedassigned  {
 	vertical-align: text-bottom;
 	margin-bottom: -3px;
 }
+input.smallpadd {
+	padding-left: 1px !important;
+	padding-right: 1px !important;
+}
 <?php } ?>
 
 select.flat, form.flat select {
-- 
GitLab


From 955fad910d14b6df467bde90379fe9ff67562ef9 Mon Sep 17 00:00:00 2001
From: Florian HENRY <florian.henry@open-concept.pro>
Date: Fri, 4 Dec 2015 17:32:17 +0100
Subject: [PATCH 086/197] FIX : Bug: $this is not accessible in static context
 in Mailing::libStatutDest #4050

---
 htdocs/comm/mailing/class/mailing.class.php | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/htdocs/comm/mailing/class/mailing.class.php b/htdocs/comm/mailing/class/mailing.class.php
index a69909a1ef3..be12b3b3f30 100644
--- a/htdocs/comm/mailing/class/mailing.class.php
+++ b/htdocs/comm/mailing/class/mailing.class.php
@@ -556,11 +556,11 @@ class Mailing extends CommonObject
 
 		if ($mode == 0)
 		{
-			return $langs->trans($this->statut_dest[$statut]);
+			return $langs->trans('MailingStatusError');
 		}
 		if ($mode == 1)
 		{
-			return $langs->trans($this->statut_dest[$statut]);
+			return $langs->trans('MailingStatusSent');
 		}
 		if ($mode == 2)
 		{
-- 
GitLab


From 1dfd3f396e0924ca9b92a624cacc6f537fc75663 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rapha=C3=ABl=20Doursenaud?= <rdoursenaud@gpcsolutions.fr>
Date: Fri, 4 Dec 2015 14:06:53 +0100
Subject: [PATCH 087/197] Fixed md theme name

---
 htdocs/theme/md/graph-color.php | 4 ++--
 htdocs/theme/md/style.css.php   | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/htdocs/theme/md/graph-color.php b/htdocs/theme/md/graph-color.php
index 4346d007158..3450180e153 100644
--- a/htdocs/theme/md/graph-color.php
+++ b/htdocs/theme/md/graph-color.php
@@ -17,8 +17,8 @@
  */
 
 /**
- *	\file       htdocs/theme/eldy/graph-color.php
- *	\brief      File to declare colors to use to build graphics with theme Eldy
+ *	\file       htdocs/theme/md/graph-color.php
+ *	\brief      File to declare colors to use to build graphics with theme Material Design
  *  \ingroup    core
  *
  *  To include file, do this:
diff --git a/htdocs/theme/md/style.css.php b/htdocs/theme/md/style.css.php
index 56df547b9b1..a7a191f45bb 100644
--- a/htdocs/theme/md/style.css.php
+++ b/htdocs/theme/md/style.css.php
@@ -61,7 +61,7 @@ $right=($langs->trans("DIRECTION")=='rtl'?'left':'right');
 $left=($langs->trans("DIRECTION")=='rtl'?'right':'left');
 
 $path='';    	// This value may be used in future for external module to overwrite theme
-$theme='eldy';	// Value of theme
+$theme='md';	// Value of theme
 if (! empty($conf->global->MAIN_OVERWRITE_THEME_RES)) { $path='/'.$conf->global->MAIN_OVERWRITE_THEME_RES; $theme=$conf->global->MAIN_OVERWRITE_THEME_RES; }
 
 // Define image path files and other constants
-- 
GitLab


From a8f67808de3707f66f5f65803f933512ba16fb9b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rapha=C3=ABl=20Doursenaud?= <rdoursenaud@gpcsolutions.fr>
Date: Fri, 4 Dec 2015 17:58:37 +0100
Subject: [PATCH 088/197] NEW Used matching icons for Material Design theme

Icons from https://www.google.com/design/icons/
Licenced under CC BY 4.0
---
 htdocs/theme/md/img/calendar.png               | Bin 250 -> 106 bytes
 htdocs/theme/md/img/close.png                  | Bin 301 -> 148 bytes
 htdocs/theme/md/img/close_title.png            | Bin 240 -> 148 bytes
 htdocs/theme/md/img/delete.png                 | Bin 202 -> 130 bytes
 htdocs/theme/md/img/disable.png                | Bin 245 -> 248 bytes
 htdocs/theme/md/img/edit.png                   | Bin 818 -> 148 bytes
 htdocs/theme/md/img/edit_add.png               | Bin 220 -> 97 bytes
 htdocs/theme/md/img/edit_remove.png            | Bin 122 -> 81 bytes
 htdocs/theme/md/img/editdelete.png             | Bin 245 -> 202 bytes
 htdocs/theme/md/img/error.png                  | Bin 489 -> 201 bytes
 htdocs/theme/md/img/file.png                   | Bin 505 -> 109 bytes
 htdocs/theme/md/img/filenew.png                | Bin 397 -> 166 bytes
 htdocs/theme/md/img/filter.png                 | Bin 237 -> 106 bytes
 htdocs/theme/md/img/folder-open.png            | Bin 801 -> 104 bytes
 htdocs/theme/md/img/folder.png                 | Bin 935 -> 99 bytes
 htdocs/theme/md/img/grip.png                   | Bin 90 -> 83 bytes
 htdocs/theme/md/img/grip_title.png             | Bin 90 -> 83 bytes
 htdocs/theme/md/img/helpdoc.png                | Bin 307 -> 267 bytes
 htdocs/theme/md/img/high.png                   | Bin 611 -> 197 bytes
 htdocs/theme/md/img/history.png                | Bin 1362 -> 270 bytes
 htdocs/theme/md/img/info.png                   | Bin 657 -> 254 bytes
 htdocs/theme/md/img/info_black.png             | Bin 312 -> 207 bytes
 htdocs/theme/md/img/lock.png                   | Bin 646 -> 206 bytes
 htdocs/theme/md/img/menus/README.md            |  12 ------------
 htdocs/theme/md/img/menus/agenda.png           | Bin 700 -> 131 bytes
 htdocs/theme/md/img/menus/agenda_over.png      | Bin 541 -> 0 bytes
 htdocs/theme/md/img/menus/bank.png             | Bin 827 -> 158 bytes
 htdocs/theme/md/img/menus/bank_over.png        | Bin 620 -> 0 bytes
 htdocs/theme/md/img/menus/chart.png            | Bin 1321 -> 127 bytes
 htdocs/theme/md/img/menus/commercial.png       | Bin 845 -> 133 bytes
 htdocs/theme/md/img/menus/commercial_over.png  | Bin 638 -> 0 bytes
 htdocs/theme/md/img/menus/company.png          | Bin 572 -> 105 bytes
 htdocs/theme/md/img/menus/company_over.png     | Bin 406 -> 0 bytes
 htdocs/theme/md/img/menus/ecm.png              | Bin 912 -> 178 bytes
 htdocs/theme/md/img/menus/ecm_over.png         | Bin 647 -> 0 bytes
 htdocs/theme/md/img/menus/externalsite.png     | Bin 531 -> 124 bytes
 .../theme/md/img/menus/externalsite_over.png   | Bin 404 -> 0 bytes
 htdocs/theme/md/img/menus/ftp.png              | Bin 788 -> 92 bytes
 htdocs/theme/md/img/menus/ftp_over.png         | Bin 563 -> 0 bytes
 htdocs/theme/md/img/menus/generic1.png         | Bin 570 -> 133 bytes
 htdocs/theme/md/img/menus/generic1_over.png    | Bin 486 -> 0 bytes
 htdocs/theme/md/img/menus/generic2.png         | Bin 570 -> 133 bytes
 htdocs/theme/md/img/menus/generic2_over.png    | Bin 548 -> 0 bytes
 htdocs/theme/md/img/menus/generic3.png         | Bin 570 -> 133 bytes
 htdocs/theme/md/img/menus/generic3_over.png    | Bin 486 -> 0 bytes
 htdocs/theme/md/img/menus/generic4.png         | Bin 570 -> 133 bytes
 htdocs/theme/md/img/menus/generic4_over.png    | Bin 486 -> 0 bytes
 htdocs/theme/md/img/menus/globe.png            | Bin 1175 -> 390 bytes
 htdocs/theme/md/img/menus/globe_over.png       | Bin 844 -> 0 bytes
 htdocs/theme/md/img/menus/holiday.png          | Bin 1086 -> 308 bytes
 htdocs/theme/md/img/menus/home.png             | Bin 679 -> 94 bytes
 htdocs/theme/md/img/menus/home_over.png        | Bin 484 -> 0 bytes
 htdocs/theme/md/img/menus/mail.png             | Bin 718 -> 211 bytes
 htdocs/theme/md/img/menus/mail_over.png        | Bin 534 -> 0 bytes
 htdocs/theme/md/img/menus/members.png          | Bin 1044 -> 145 bytes
 htdocs/theme/md/img/menus/members_over.png     | Bin 720 -> 0 bytes
 htdocs/theme/md/img/menus/money.png            | Bin 1259 -> 179 bytes
 htdocs/theme/md/img/menus/money_over.png       | Bin 940 -> 0 bytes
 htdocs/theme/md/img/menus/pointofsale.png      | Bin 542 -> 131 bytes
 htdocs/theme/md/img/menus/pointofsale_over.png | Bin 424 -> 0 bytes
 htdocs/theme/md/img/menus/products.png         | Bin 510 -> 84 bytes
 htdocs/theme/md/img/menus/products_over.png    | Bin 358 -> 0 bytes
 htdocs/theme/md/img/menus/project.png          | Bin 449 -> 156 bytes
 htdocs/theme/md/img/menus/project_over.png     | Bin 360 -> 0 bytes
 htdocs/theme/md/img/menus/shop.png             | Bin 679 -> 259 bytes
 htdocs/theme/md/img/menus/shop_over.png        | Bin 502 -> 0 bytes
 htdocs/theme/md/img/menus/tools.png            | Bin 1052 -> 239 bytes
 htdocs/theme/md/img/menus/tools_over.png       | Bin 706 -> 0 bytes
 htdocs/theme/md/img/next.png                   | Bin 622 -> 118 bytes
 htdocs/theme/md/img/object_account.png         | Bin 453 -> 182 bytes
 htdocs/theme/md/img/object_accounting.png      | Bin 170 -> 161 bytes
 htdocs/theme/md/img/object_action.png          | Bin 528 -> 113 bytes
 htdocs/theme/md/img/object_action_rdv.png      | Bin 675 -> 118 bytes
 htdocs/theme/md/img/object_address.png         | Bin 358 -> 227 bytes
 htdocs/theme/md/img/object_bill.png            | Bin 394 -> 146 bytes
 htdocs/theme/md/img/object_billa.png           | Bin 395 -> 146 bytes
 htdocs/theme/md/img/object_billd.png           | Bin 341 -> 146 bytes
 htdocs/theme/md/img/object_billr.png           | Bin 399 -> 146 bytes
 htdocs/theme/md/img/object_bookmark.png        | Bin 201 -> 131 bytes
 htdocs/theme/md/img/object_building.png        | Bin 563 -> 122 bytes
 htdocs/theme/md/img/object_calendar.png        | Bin 199 -> 106 bytes
 htdocs/theme/md/img/object_calendarday.png     | Bin 223 -> 165 bytes
 htdocs/theme/md/img/object_calendarperuser.png | Bin 198 -> 106 bytes
 htdocs/theme/md/img/object_calendarweek.png    | Bin 188 -> 156 bytes
 .../theme/md/img/object_category-expanded.png  | Bin 295 -> 104 bytes
 htdocs/theme/md/img/object_category.png        | Bin 281 -> 99 bytes
 htdocs/theme/md/img/object_commercial.png      | Bin 304 -> 147 bytes
 htdocs/theme/md/img/object_company.png         | Bin 492 -> 122 bytes
 htdocs/theme/md/img/object_contact.png         | Bin 666 -> 280 bytes
 htdocs/theme/md/img/object_contact_all.png     | Bin 810 -> 170 bytes
 htdocs/theme/md/img/object_contract.png        | Bin 359 -> 134 bytes
 htdocs/theme/md/img/object_cron.png            | Bin 433 -> 284 bytes
 htdocs/theme/md/img/object_dir.png             | Bin 301 -> 99 bytes
 htdocs/theme/md/img/object_email.png           | Bin 368 -> 189 bytes
 htdocs/theme/md/img/object_energie.png         | Bin 376 -> 158 bytes
 htdocs/theme/md/img/object_generic.png         | Bin 361 -> 109 bytes
 htdocs/theme/md/img/object_globe.png           | Bin 366 -> 305 bytes
 htdocs/theme/md/img/object_group.png           | Bin 655 -> 170 bytes
 htdocs/theme/md/img/object_holiday.png         | Bin 771 -> 251 bytes
 htdocs/theme/md/img/object_intervention.png    | Bin 340 -> 270 bytes
 htdocs/theme/md/img/object_invoice.png         | Bin 394 -> 146 bytes
 htdocs/theme/md/img/object_label.png           | Bin 769 -> 158 bytes
 htdocs/theme/md/img/object_list.png            | Bin 179 -> 83 bytes
 htdocs/theme/md/img/object_margin.png          | Bin 571 -> 92 bytes
 htdocs/theme/md/img/object_opensurvey.png      | Bin 743 -> 103 bytes
 htdocs/theme/md/img/object_order.png           | Bin 357 -> 146 bytes
 htdocs/theme/md/img/object_payment.png         | Bin 339 -> 221 bytes
 htdocs/theme/md/img/object_phoning.png         | Bin 577 -> 200 bytes
 htdocs/theme/md/img/object_printer.png         | Bin 296 -> 167 bytes
 htdocs/theme/md/img/object_product.png         | Bin 559 -> 150 bytes
 htdocs/theme/md/img/object_project.png         | Bin 926 -> 158 bytes
 htdocs/theme/md/img/object_projectpub.png      | Bin 929 -> 158 bytes
 htdocs/theme/md/img/object_projecttask.png     | Bin 941 -> 216 bytes
 htdocs/theme/md/img/object_propal.png          | Bin 284 -> 146 bytes
 htdocs/theme/md/img/object_reduc.png           | Bin 361 -> 221 bytes
 htdocs/theme/md/img/object_resource.png        | Bin 199 -> 227 bytes
 htdocs/theme/md/img/object_sending.png         | Bin 273 -> 173 bytes
 htdocs/theme/md/img/object_service.png         | Bin 365 -> 161 bytes
 htdocs/theme/md/img/object_stock.png           | Bin 554 -> 91 bytes
 .../theme/md/img/object_supplier_proposal.png  | Bin 284 -> 146 bytes
 htdocs/theme/md/img/object_task.png            | Bin 176 -> 216 bytes
 htdocs/theme/md/img/object_task_time.png       | Bin 199 -> 116 bytes
 htdocs/theme/md/img/object_technic.png         | Bin 433 -> 256 bytes
 htdocs/theme/md/img/object_trip.png            | Bin 337 -> 221 bytes
 htdocs/theme/md/img/object_user.png            | Bin 581 -> 164 bytes
 htdocs/theme/md/img/off.png                    | Bin 568 -> 248 bytes
 htdocs/theme/md/img/on.png                     | Bin 603 -> 230 bytes
 htdocs/theme/md/img/play.png                   | Bin 653 -> 131 bytes
 htdocs/theme/md/img/previous.png               | Bin 620 -> 114 bytes
 htdocs/theme/md/img/printer.png                | Bin 329 -> 167 bytes
 htdocs/theme/md/img/puce.png                   | Bin 504 -> 193 bytes
 htdocs/theme/md/img/recent.png                 | Bin 447 -> 165 bytes
 htdocs/theme/md/img/refresh.png                | Bin 722 -> 205 bytes
 htdocs/theme/md/img/reload.png                 | Bin 704 -> 205 bytes
 htdocs/theme/md/img/rightarrow.png             | Bin 156 -> 142 bytes
 htdocs/theme/md/img/searchclear.png            | Bin 356 -> 143 bytes
 htdocs/theme/md/img/setup.png                  | Bin 702 -> 256 bytes
 htdocs/theme/md/img/split.png                  | Bin 195 -> 153 bytes
 htdocs/theme/md/img/star.png                   | Bin 381 -> 175 bytes
 htdocs/theme/md/img/switch_off.png             | Bin 1252 -> 292 bytes
 htdocs/theme/md/img/switch_on.png              | Bin 1228 -> 257 bytes
 htdocs/theme/md/img/tick.png                   | Bin 227 -> 140 bytes
 htdocs/theme/md/img/title_accountancy.png      | Bin 1019 -> 218 bytes
 htdocs/theme/md/img/title_bank.png             | Bin 796 -> 216 bytes
 htdocs/theme/md/img/title_commercial.png       | Bin 828 -> 176 bytes
 htdocs/theme/md/img/title_companies.png        | Bin 562 -> 146 bytes
 htdocs/theme/md/img/title_generic.png          | Bin 789 -> 197 bytes
 htdocs/theme/md/img/title_home.png             | Bin 721 -> 126 bytes
 htdocs/theme/md/img/title_hrm.png              | Bin 1028 -> 447 bytes
 htdocs/theme/md/img/title_products.png         | Bin 678 -> 107 bytes
 htdocs/theme/md/img/title_project.png          | Bin 604 -> 237 bytes
 htdocs/theme/md/img/title_setup.png            | Bin 1105 -> 453 bytes
 htdocs/theme/md/img/unlock.png                 | Bin 686 -> 212 bytes
 htdocs/theme/md/img/vcard.png                  | Bin 566 -> 230 bytes
 htdocs/theme/md/img/view.png                   | Bin 708 -> 204 bytes
 htdocs/theme/md/img/warning.png                | Bin 480 -> 169 bytes
 156 files changed, 12 deletions(-)
 delete mode 100644 htdocs/theme/md/img/menus/README.md
 delete mode 100644 htdocs/theme/md/img/menus/agenda_over.png
 delete mode 100644 htdocs/theme/md/img/menus/bank_over.png
 delete mode 100644 htdocs/theme/md/img/menus/commercial_over.png
 delete mode 100644 htdocs/theme/md/img/menus/company_over.png
 delete mode 100644 htdocs/theme/md/img/menus/ecm_over.png
 delete mode 100644 htdocs/theme/md/img/menus/externalsite_over.png
 delete mode 100644 htdocs/theme/md/img/menus/ftp_over.png
 delete mode 100644 htdocs/theme/md/img/menus/generic1_over.png
 delete mode 100644 htdocs/theme/md/img/menus/generic2_over.png
 delete mode 100644 htdocs/theme/md/img/menus/generic3_over.png
 delete mode 100644 htdocs/theme/md/img/menus/generic4_over.png
 delete mode 100644 htdocs/theme/md/img/menus/globe_over.png
 delete mode 100644 htdocs/theme/md/img/menus/home_over.png
 delete mode 100644 htdocs/theme/md/img/menus/mail_over.png
 delete mode 100644 htdocs/theme/md/img/menus/members_over.png
 delete mode 100644 htdocs/theme/md/img/menus/money_over.png
 delete mode 100644 htdocs/theme/md/img/menus/pointofsale_over.png
 delete mode 100644 htdocs/theme/md/img/menus/products_over.png
 delete mode 100644 htdocs/theme/md/img/menus/project_over.png
 delete mode 100644 htdocs/theme/md/img/menus/shop_over.png
 delete mode 100644 htdocs/theme/md/img/menus/tools_over.png

diff --git a/htdocs/theme/md/img/calendar.png b/htdocs/theme/md/img/calendar.png
index bbe6c27f041005fec8f47099cdfc7ebb1053af89..98a013a40148fb41b2ab42dcdd6d609ee7d4016f 100644
GIT binary patch
literal 106
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3Sg7<#%mhEy;nEAakdcdDsr
zo9w{&<^#(ly*m@ax;8NE(s0_5_CPd|$%yGQi=V2y<O(i^`)O^nxl}VF85kHCJYD@<
J);T3K0RV=j9u)up

literal 250
zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd7G?$phPQVgfdp969eo`c7}lRKXYG2)z`!6`
z;u=vBoS#-wo>-L1;Fyx1l&avFo0y&&l$w}QS$HzlhJk@WF2E<mb&g^3%$fhw(#{wg
z&rC~8V_;yIIdkTjGiUz){|{onWlLdTVBjhV@(cbC0}Pwa=$vO@VDRyDaSY+Oo;*X7
zgY6K{<S7RZ%t+j1C}Cmj^Lj-F`=SsPH%n&c%1TR*mc@)(tjP*X0!nupEt%fzFiX3c
qn}uQNr2`666SFi}49>JLG2E9nGT$JRVa>q6z~JfX=d#Wzp$P!Qk5>}_

diff --git a/htdocs/theme/md/img/close.png b/htdocs/theme/md/img/close.png
index ec4338e8bca2ad6905cee379100a8b0becfa5c9d..f2b546002f285e85f71d736d5e31b80a5d1c2b2a 100644
GIT binary patch
literal 148
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3SgM0>h8hEy;fonXz?U?9Ny
zJWuRnTHQ4j_qwLm4++f)3xk(Pq$QgFaji5neq?Z2P?%3NP&d*uqoYh+y6^1w*LTmV
z&*Z2OtrR+<@VWH(O!>KKtQ%)^zA=v7@pGDRPo?@izpp6;3=9kmp00i_>zopr04K9F
ATL1t6

literal 301
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`7G?$phPP=3j~Eyj7>k44ofy`glX=O&z`$AH
z5n0T@z%2~Ij105pNH8!ku$OrHy0YJ47Ub1te%Qkt$H2g#8{iY-I$^?u|Ns9_APyv)
zIqL<ox+KUin1O+jiJ66!jf0bmM?}){^%+HwJCeNJT^Ro}>E2^tV2Jm0aSY+Oo-B~S
z!05(yEO@oplXXH#FVaLrM5fF-bU@+w355>=8muY}K5T4`mIvFLxEpGYl`|>W&4@d2
zfK{x0W%RKHtk;eoJ8+f5#Jyqe!HJ1iSB0KFD&Zo@BOwtY$r$)g`0n-3aZec-7#KWV
L{an^LB{Ts5d@y7v

diff --git a/htdocs/theme/md/img/close_title.png b/htdocs/theme/md/img/close_title.png
index bebb74d98611e818118d81d55d5dfc5eb62f15cb..f2b546002f285e85f71d736d5e31b80a5d1c2b2a 100644
GIT binary patch
literal 148
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3SgM0>h8hEy;fonXz?U?9Ny
zJWuRnTHQ4j_qwLm4++f)3xk(Pq$QgFaji5neq?Z2P?%3NP&d*uqoYh+y6^1w*LTmV
z&*Z2OtrR+<@VWH(O!>KKtQ%)^zA=v7@pGDRPo?@izpp6;3=9kmp00i_>zopr04K9F
ATL1t6

literal 240
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`4rT@h290TVA2Tp87zg--xK5Zb;s5{t6Nmr|
z3=9y(jNKmIAhSw>{DK)67@3$^SlKu@xp+h*EnlBeWME*3^K@|x;kX{#=g4=+frmNW
zYqu`jlt2Hs%4`!AE$(`A#IVTu!(5df|3`;D9-3?uzJUASx=QnQO{QC^(`Om4+x?_y
z;c6D<C)@vsPdzy4_F_iMby6EPbIp9icjp1)flUv^!&I34eBCD4GB7YOc)I$ztaD0e
F0swe7Ttff=

diff --git a/htdocs/theme/md/img/delete.png b/htdocs/theme/md/img/delete.png
index 8ad73597be74e4690e6a5b354ceb560c5542ab0b..2482989b0cc5112cf6608b337b1480f45f866081 100644
GIT binary patch
literal 130
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3SgczU`xhEy;nFAy|Hx^cXK
zf#W-4WJCk=;d-45jG+^moSDT|G~|Ub9cDC{(U6(Q+?L84A=0a*bu1vHV`azuL`JWQ
f^T`hu*Ksj1_&zJ}lV9<9BLm1(S3j3^P6<r_#X%>=

literal 202
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`4h9AW1}o(vUIqpRrjj7PV21zE6P30yFfcTG
zx;Tb#$g&<(jAAwvVLNcMMle!brkX{EPi0fN?s0~2PIryG$M@c!I`i$suaj1jr=MQ1
z-ncp-ey7jd@_5mR>(YPij^FSX<+S}CyEG{E!u@^ALtp=imS4Z+@z1{!$LwS#o3R|5
zb76&x&;=FNlf1p64}^QUv^M7M(wTH6GUxW;%N$BS*wb!!mv<h~Sr2lgr>mdKI;Vst
E05*q9ivR!s

diff --git a/htdocs/theme/md/img/disable.png b/htdocs/theme/md/img/disable.png
index f8c84994d473348e27391c7095c451fdfac9e0fb..9bab123aca7f214c66ac06f8a1635eed9d8ee9e9 100644
GIT binary patch
literal 248
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3Sg?DuqW45?t8dciU4P=dhG
zkN4MoGZ3m;IAeu*kf&JCOV_S10$uY|^!6>e(8zDUhWq~QGdBMW`aiC+`?4-CPtR&9
z``+8Lx%#U%3;i^-z4cM<_Uw5(PRF`@$W;C7>-kurFU&!IfvA*cP_phN*#gn*O$VHM
zmj*6Le~@-6!q@H4VdE83y*j)bb+%?0l`-v#FfG*Bm8rayaaG2H1lh?;zKZG_sM|m6
z+`cKT@4wRhdpnL-B{TMHQ)LP%JIB^Mxp(LFFWfwVtNT<Q2ih<&Ffe$!`njxgN@xNA
DZ|rBK

literal 245
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`4rT@h290TVA2Tp8xCZ!yxc>kDKd5-^oUQks
zzyE&i-urX+-k-bn{@Atmd(S;@VPJUw{`>pt>~l_rmO;h$o`3&;?3h>fQm^Em@8ADt
z_Z)lw{r|n^@7M0V_t)xT5(5JRV@Z%-FoVOh8)*y-3~`<=jv*Y^dyhK`9a7+Nxajbx
zeTkse+Q)zUUopvS-*;Dd;;yMx-5pn6b1nV)eeZ9srH=P|1DJoTuR35;rhM#7iN@-z
zS(XoDWRrJ2f3h=c+Jl{|)A%a%@7rbUT|Z6!Cj)ynOaG)3s)rdE7#KWV{an^LB{Ts5
DgkW}%

diff --git a/htdocs/theme/md/img/edit.png b/htdocs/theme/md/img/edit.png
index 4e916fe1fb095017458fcdd1093c1efb8cc8afca..7012f52be5ae6acc556b223c8a822b5883ce62ac 100644
GIT binary patch
literal 148
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3SgM0>h8hEy;fJ$sk4!9alJ
zVdvF|=~0teJ}x(N+|b?aJ@2ffK;iSR%}?)2nej!*>#CIgT65UwwzvCcjxRHNzo)1s
zDj5iHsxC4RJfPh5!$<8<e~Xk8@4~hK1^G8jv-3QAcX_$YVqjok@O1TaS?83{1OTt0
BGsFM@

literal 818
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`4rT@h290TVA2Tp8u$OrHy0Ty8WabexoHgIz
zEdv7sXMsm#F#`kF2M}g-T4OSUfq{V~-O<;Pfnj4m_n$;o1_s9F0G|+7QC<!y0ZvJA
z5m`|IF*!{&S!n}3O?5L5%YZTuJM+3A{V;FGkkIgwDEH!MpM->j^z?M^<Q~7=g~7!u
za@sa#bsua9)^7|kXb3T$R+GD?EOc|F!{#cdU3Jb~O_h6Eo%go7>}_$|-{Q5u!)Jf5
z&!VQ>#mzaZTGLmzWvuBf-`<k9rLT5NfBk_@-veF#?QJd1eG6Lp7q(Aa)H-Qd_tYhQ
z)0a+Nuw~AYjmuW9-?nZ0tWCF<Y&g1V@7*2yPHsPZZO@U5JC5AkdFt8j)6e#vezNb(
z^L=NZA6z=+^3tA1r`J9?w)OFu4Uf-mczk}t<MW%YU$}Dc{ELGZUL3vj>e%Ji$F96S
zdF{>V>u=89cy;FH+w-^HoxlC=(w+C0?!Lcr_x-(lPj5VUfBWH^TaVsffAHbP!;iNg
zf4cYd^P3wd-`+X%{O+|Ej~+gJ@#XQ$FOOe+dGhM(v)5mrz4`j`?YEcjzP)<){nh*L
zuRr{F`|-!SPd~rBef;I!!w;W-e*E(5^VeTrzWx68<M+>>e}4Y@^XvED|NsB<tA4z}
zz`)R0666>Be}DnQq!W+*85kIrdb&7<a9mH$$k@=t^pLGIpG{%=zFkV{Hb+jmoplyJ
zvv$>qUJk*)uUCT^inX=5k`9^FP8CgYxO3}N*C7jYeOFdVLxJtfHZ9Uvd?wa&R=41h
zwR&gIYkj{mX;MNSL!r0#raxPL-l&jiIe4e5iN(^7u{zydk;DA-q?6aq-8wUa`HXJo
z_3Z|xhDIh01>KW{7CSdH$IMlz`aDT!u~YM(Seb({i7Xim3?*x<n-40bePdu?VDNPH
Kb6Mw<&;$S#bnv|Z

diff --git a/htdocs/theme/md/img/edit_add.png b/htdocs/theme/md/img/edit_add.png
index ae205e9d77050e9de7990790a6328bb58b008ad7..84a1e05229a10ad64bf63c1fd77dbae9aef24c84 100644
GIT binary patch
literal 97
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3SgXn49fhEy;nOJpQ4w6Gjx
zRFIMB;%NvH_`%4Ln8Q3tly}d24)@asm>8H!WF1$`>tJVKU|{fc^>bP0l+XkK={6U-

literal 220
zcmeAS@N?(olHy`uVBq!ia0y~yVBi5^7G?$ph9%LCR~Q%=*h@TpUD>bju!v~Ozu#B-
zpMimav%n*=n1O-o0|+xZtudLwz`($g?&#~tz_78O`%fY(0|SFffKP}k0|NsC2M7oV
zNJvOXSb~6)r4tx<fx!R&|NEsKSA#4q3Gxg6j{pop_s^YUU|>-8ba4#fxSo7tZ*}>%
vcXxRlR!NI*)zz)7jFO5|byy|k#K_3Nw8>C*?=sG9AnQC`{an^LB{Ts5>DEDH

diff --git a/htdocs/theme/md/img/edit_remove.png b/htdocs/theme/md/img/edit_remove.png
index bc4bdb360faaf5046d321966748582f0d44e9551..0725e5fc1558c11c816567ff93a962450a1376f1 100644
GIT binary patch
literal 81
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3SgNO-z9hEy;nD{%HOF}E>C
iEMV;H;%E+JV5nHef6)74>|+K71_n=8KbLh*2~7Z!920N=

literal 122
zcmeAS@N?(olHy`uVBq!ia0y~yVBi5^7G?$ph9%LCR~Q%=_yc@GTrEMs$<he~{{R0U
z{V>Uhfq{XwB*-uL|NsC08Gdi$3ua(o5cPC%4B?1QE=goybgP;2m{q5#LW5!JI~J~>
UyM~Jx7#J8lUHx3vIVCg!04)z9f&c&j

diff --git a/htdocs/theme/md/img/editdelete.png b/htdocs/theme/md/img/editdelete.png
index f8c84994d473348e27391c7095c451fdfac9e0fb..1fd90502328debaba9b7e16e00a2b47a9848e03b 100644
GIT binary patch
literal 202
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3SgO!Rbd45?t8dhQ};vw?`)
z!_Cd+yPP*#mv9_4t+~8LN$FkKTY;C(T#6@Dmn^zp8B}-TshxBC(MyUcp=)YB8XkA@
zd~}k1{+8gyAz6!V8_0y!*rh2g&hsqhaBR0<sk-6g=I2XaJ-+|(RK|`^G0qA*CLiWr
z^z?nkqkv86>iH~7(@y)ysqk#xb=FWZg;Q6VnU}TvFT<mNC2ch)-bOJnFfe$!`njxg
HN@xNAuhmiA

literal 245
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`4rT@h290TVA2Tp8xCZ!yxc>kDKd5-^oUQks
zzyE&i-urX+-k-bn{@Atmd(S;@VPJUw{`>pt>~l_rmO;h$o`3&;?3h>fQm^Em@8ADt
z_Z)lw{r|n^@7M0V_t)xT5(5JRV@Z%-FoVOh8)*y-3~`<=jv*Y^dyhK`9a7+Nxajbx
zeTkse+Q)zUUopvS-*;Dd;;yMx-5pn6b1nV)eeZ9srH=P|1DJoTuR35;rhM#7iN@-z
zS(XoDWRrJ2f3h=c+Jl{|)A%a%@7rbUT|Z6!Cj)ynOaG)3s)rdE7#KWV{an^LB{Ts5
DgkW}%

diff --git a/htdocs/theme/md/img/error.png b/htdocs/theme/md/img/error.png
index f41dd8a3bc02959bdf97c4334d9df8eb5b3209d7..0d9cf16f4a2139bea02e90c58b9108e8456db13c 100644
GIT binary patch
literal 201
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3SgOz?DZ45?t8dN$Cj!9m3B
z;d|X|ZPBUTXN_8?2{~R66WUnH!f85L;mC<66Q0||TKu^lsCQSgMrU8<oYO0|G|l+&
z_S#9aO0lPQOC#0a-PlmHwX)?2mtI5InMFC-I&RDc;)~D!cQH2TWOZMluXmTZRFP|4
zWTi;?n?FU*zMg+_RMT_XTGqW@Zfn24%P#!%;Fw_@!_$sktmdLqJ}@vaFnGH9xvX<a
GXaWGW98uE%

literal 489
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`4rT@h290TVA2Tp8Fct^7J29*~C-ahlf#Gd{
zPl)SNHMJ+Is*lvwpQ@`r)YW^fqx;stATc5=JtF*rvGFTYvsY$jug%O}TA07Jw|nK}
z@Xp8gt)E9xe(rmJ->?4up92EkhX;HL3wjsf`!OQuV@yC(P1T2l@WZ*;ACkjACnp~$
z%>SI8_BA{Gdv@0Myv%R;xt~f)ru6sjXlt1{X~O5`#;sE)eQjy^(OSKD-kfjU?Vo$Q
zfAu&2nB4zq=Csc<r~Q~Sd;7Xo9~UqDy=d;|Rm;DvS#fapj!zrbec7<~^r3yfwr%{q
zW7E%r`#+pL_2Jy9zt^w4zkmDNz1!~}+<E`_{`)5nem!~g_4Ugy@7{cU_vY7^&n)xS
zM1n%0B*-tA!Qt7BG!Q4r+uensgH_gpfq{Xuz$3Dlfr0A-2s1jZF`2=@z`$PO>FdgV
zorj5^g-iMKiCGK`3>ls-jv*Y^lM@t}Uc6XP5IQxmA}VT?M@(%lZ!L@e$!T*BhjFgE
za>Cc+R;1vvn4=e?&!4#}qqTO~v!~g)&mS&fn<!TB@pItyFD2Ur8D5JNZrC0)!PL-9
sfYH;tqqCFq)8|hG#T$(lS&K2;bK==`O4R-@0|Nttr>mdKI;Vst0AmH~YXATM

diff --git a/htdocs/theme/md/img/file.png b/htdocs/theme/md/img/file.png
index 73c66e9b2b33cb54953d608d06896218ebe6dc44..7b72fee88a86fb273f9f2a9e0a54126784e2357e 100644
GIT binary patch
literal 109
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3Sgn0UH4hEy;nE3nQ<`O(iJ
zy+Qj||FRX08<f~47&Ub%oZ`?pwC;_4nTN6K;x500(4r|VN7xwpoK_hxRSdn%z`(%Z
M>FVdQ&MBb@05wt}#Q*>R

literal 505
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`4rT@h290TVA2Tp8u$OrHy0TwoW)(M6KI8pE
zhk=2Cv%n*=n1O-o0|+xZtudLwz`($g?&#~tz_78O`%fY(0|Uc{0G|+70|NsmC#Q&r
zi0tg_+}zxPf`b0emd?)3nKNhZ+qQns_KnBqH=J0~esWpYsg-@F*GxXWcIw%UbIxv>
zb8g$>^V^qR*uCoFzI7M(Z@7GT`^)32-kjU=?#kYGSN6TTy6@b%b5~CuxPJcRy?ggQ
z+&uc>_VJImj(@y;{L|gjj~?86{@~`P2j@RMxbXSm#V?PqetB~B>(d)wpWXcW{MNVU
zx4yl+_wD8V?=SDYdiCo2>xbXpJo@qG(T}%}f4+P6^ZoN*A7B0Y`1;qUH@`l=`Stnj
zudnaFef|3T+sEJEKK=gw`OlB9e|~=b`}^m=KfnL{`Sb7ZpMQV<{`>du|G$6#|Nqy!
z_*<HRfq}Us$S?T+e}?O)cpVuS7-~IT978y+CnqEYu`ub?^Qj3WFckg$``0&8p+@6+
zcj&qK&5Y;1rl+T-xjeF3S-erP&^Fe@LNLZZTspZ>;`;T&r(D8)C60Y9+-z_qOth(J
z@7*_Fw@yuESrAihUF<6wscENi{hE)zXO!0@_Cuio6Q&CYK6(DMtw8cYLnkN0M1D~Q
Uv!8Lf3=9kmp00i_>zopr01Y4<A^-pY

diff --git a/htdocs/theme/md/img/filenew.png b/htdocs/theme/md/img/filenew.png
index 8680cce82bff07a3c3aa496e6280d871bcc50e27..93165497458917b4b2fdb26a301e2195f801f9a9 100644
GIT binary patch
literal 166
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3Sg<a)X|hEy;nE3mFGzG7f<
zAd#uem0$AT;fL&P^$x8O2kKQS8WcH~^h{7<>o8*KN;p-Zz3adOhBoeooD$a=0^1ic
zDX1*rND+*4eb5lX;H1zSEhwaL&gztCEQ6B;zj2e{L)#cnR>swmAs!w%49(vCn~nv=
S?_*$KVDNPHb6Mw<&;$T_{4;?7

literal 397
zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4rT@h1`S>QU<L*T_7YEDSN1C$qI^d36<Rsf
z3=9mM1s;*b3=CW!K$y{KjmZoK1_qXNM_)$<hK>E)e-c?47#NZRd_r6~Bn$-%g9Hqt
zEUUj)x6E0)_1xOM=eF)WxAoYyy~nN{J9q8axqIiX-8*;f`L%1$uiblo@80u!&!69W
z{{H#%_s`$IfByda`}g0$;Q#+A4F8WY{QocU|9{l~|2_ZzZ~g!O-2eaoQ*ze-Wnf@X
zED7=p{!aif%s+TRk%57s!PCVtMB;Mjx!Zg#3Op<Uat1898X6aQDsKM&e`=|cp0)qk
zlNT1*sXpt}+q^6B_O;Y9olj0NGnRg4-}R)`v`Wo7gn@-ATA6`^!CYeP1mPmLQwuU>
z)|z~KY|}66qqK?n<t`x`>+lu%1+Dk_@_2U|Io}fq{O!&$&)Q()!4SvtpG;H!2^-Jx
T{}ao=z`)??>gTe~DWM4fI~KsJ

diff --git a/htdocs/theme/md/img/filter.png b/htdocs/theme/md/img/filter.png
index ee34a22c78e0cd31d74739b7cb8a1bda9aa6e608..43d05a50940d1b364d1dc00f731a952503ab19a4 100644
GIT binary patch
literal 106
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3Sg7<#%mhEy;nOKeeST*%1o
z<Dg-6;DbE7je~W$tV1*B5zR%G84T5X822l&2M92obmV6UJEUeDEAZ_i0|Nttr>mdK
II;Vst0Q`R&bpQYW

literal 237
zcmeAS@N?(olHy`uVBq!ia0y~yVBlk5VBq3lVPIg;yRh7cfq{W3$=lt9;eUJonf(k5
z44efXk;M!Q+`=Ht$S`Y;1Oo#Ddx@v7EBk#eCSE;pf6mh<7#J8NOI#yLobz*YQ}ap~
zoQqNuOHxx5$}>wc6x=<11Hv2m#2FYEB0XIkLnJP*J+qP5HG#qPVgH{aEN&YbW$!VS
zEW2#j_$mG{58H(Av#xt|FtrBXoijN`&m$l+Mg70=EM_nHqnhg$-Mp*2#p-_U^D5>g
n_ZEn`e$_jqsHdjGzy6<yCU5ih<`bn13=9mOu6{1-oD!M<bcIY^

diff --git a/htdocs/theme/md/img/folder-open.png b/htdocs/theme/md/img/folder-open.png
index 1db8369b3d571114205b1df33c74356590be04e2..b0292d92aaec99817b1a0dff1c1c354cd715f10c 100644
GIT binary patch
literal 104
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3Sg=zF?2hEy;nOK=oSdT1|W
z_8@?HlFFJl_I?#j60ZLPMH3khy9+*4uxJcE8OZjFnW0iF=9s^P`V$5Q1_n=8KbLh*
G2~7Yi+8sIo

literal 801
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`4mJh`26+$Niwq15>?NMQuIyKt7{#~*kE~~D
zW?*38EbxddW?<m@0K$w;YfNS^Ffg#BJNh~@Fl_AS{*%bcz`(S@)5S4F<9zAl)7~P5
z49EBH|9SSsmdE=(ZR8L4DJ$K6$;8=&N2qfG2dCCz@BfanR%L6emoH$CjC5qR)le~9
z#22aLY3I<nsb<S7tJm)=He2sD-amIHUtr0K_b-co-m!~s`tSR}IcxvZysp;A4;QSC
z_p2+--t;Xo^V28m*q>XDH46vGWvET^7Sd66pLx>fRCkkhq28Ulvi7nocx5m0*7b)@
z`t)+@PqVaNpBScA`u|yRq3lsmZ1J9j!S^FR{P)m`zq79(Hg@gy{V|`uoRU;py16CV
z^XHr^yEF{NRxwtb`aZ|z{*C+6mbXLnzol-Ok)C)qMl&jDt82@H=cxrR*EEODY>vA1
zOes}#tHMN%1Kc&w*Uh>sd-2obI{B4Cr(A*>UidF-bd^jg<qj}mI$ZJ~qGgiN_Wlb2
zR~oOM72JIz?(M_93JTkpXYjNL32fyMk$e!rFoQSPoI$Je-m3tolJ}e+rmST0x7-)N
zWMp|jhjFIT1arpYj53$mE=$UU9lFQjQEVYFd*-{2!0&y{RnD~^8vK@e-Bol+J`f~z
zBEuoBFyVRbmESybET<fHSl?ze>-d{9K9f#mwr(wvxf3h7;#TSnnY))7x9Tid(U8FS
z`<0i(3q7lk0q17T`@8SshmWrxzFcYkJwtPTn%G*A+0nPZ-46MZ^Q>VFTLtTbh}q5i
z#15NnHU0Xsd*ey>ez`ld=2lhvhChG4B6sGrWhtK*W`rkID@bfVSjb!V;Dg@+(})en
z)t`mEzgPe7$<4_NwY9t7&yUub%9Jyksp08_CRG=Y726hW-MlgB_dbpeZr0Dg-d_B8
zaJF-}y4@a`Amh)Q8MOcDeVTrv=hCz+jT+Z2yHuklPni7rRj;-3;pT9?n3#XxK28ms
zV9s#*mv!o=c8gB7q}tfGv9`;%oL#ze<;IH>=NN6~Iq>f~dmYpHcNVURrL`{^7#J8l
MUHx3vIVCg!02{n^DgXcg

diff --git a/htdocs/theme/md/img/folder.png b/htdocs/theme/md/img/folder.png
index 04a24af2e22a3ef25a986218506e1cbf0147db71..fb51c4b100c90c3e1bcb801cd16e0226cd598516 100644
GIT binary patch
literal 99
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3SgXnDFghEy;nOK=oSdT1|W
z_8@?HlFFJl_I?#j60ZLziu7t(H3pvyWc$U;P<ekwSMlMy+6)W~44$rjF6*2UngF|d
B9Yg>C

literal 935
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`4rT@h290TVA2Tp8u$OrHy0YJ7m*JJs7M6Ts
z$H2hAS>O>_%)r3)0fZTy)|kv-U|?WLcl32+VA$Bt{U?!?fr0UQfKP}k0|NsW7as$M
zG&hehFTWU{fP{dcxTu&c1BW6rw;BVN79+P7Bd<0yuNDihmZGwrvZ{fouAiEglTUCp
zt7-?gRwt)c507>yuTB@APB*_^kAQx!pnjjAL7%u)7puV*0gJ6-Hd}@5b_&=WR`lO*
z<g-B9`KXl3aRsl_N+DN`BaT}{9Wze8Zjg3gFY~E$=scIuxsK6W<C5FsbEX8QZ*$JL
z7*>8Hvg&|;&7<Om)s<}<t6O$?wp<PCz8X34cJ$<1F;niix4if7{}|BqF@D06%vpD{
zXTHl>a6fDD_uM5va@YT@TluhZ?Wd-`?Ojv%waq=(Gx@-T83!lNIy!CciD~msw=BHX
zzViN*1;^*EI5%P4-FeF{G_HBrvhqR8+DH9sAGNIi+OpwQ+pa&IJHK@7`7>qxqse<;
zOxgE-?zX3kR-9e7{>G9GS5|Dkx_kH8CA%MO*!`&ez~31Mf6hAdd-s9c`wrb-aP;-!
z<L_4;c)I+;@8wtjt-1DP>)F@4&b--m=IxG)?>1iiu>0DFt&jiie)4bs(?3U!UOjjI
z&aqRE4xD*&?&_<vH$Ppt{Nl!qC%5jrJ@e+*&8I)Fe))g%$Nwi!-adK%_r;5^Z{K}?
z_wLK9w?Ci#{`cnl{|_I2e*gaa<M01}|Ni^`|Njjo3l9bchPfp{e!>3-F<?0TXO9m9
z1H&p$7sn8e>&Y{knIsfK(j5ZS=iHW@aq*TU&m-d-7B_DG5-&YJBP56S(XQ}mPqz8b
zn>9};i)~8U2LE22)$2OFJw6o%G8V;VuYUE~>++|)b4o(2pBo(Ud!4z;<4eJns{zb~
zi+@XVO}3r;)#U2b(8jL4zokxdKf0^qvvsS(of(mr)xVW(d7A3hD#5ffadZ0ld6ub8
z;oil4oD;I=&7C_}RPf#N?9@!YM@o&B#SDwHLT)ZuHSH?{0|SGntDnm{r-UW|eySwS

diff --git a/htdocs/theme/md/img/grip.png b/htdocs/theme/md/img/grip.png
index 8053007e9ddc69c0e5adb53ad1cc5fe511ab7a43..e054bf182766231d586066a18ae451228e5025e2 100644
GIT binary patch
literal 83
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3SgNO`(AhEy;nO9&odWOrfw
lztMS-&!X+6$_xw)D-@JpuFqdt%)r3F;OXk;vd$@?2>{)q6%zme

literal 90
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`4i*LmhOLfIqZk+%6g^!WLnJOI|2f|vZD1In
sVfpd@k^d`H9Ow4@Z=by}#e<1qBDaF+p=geW3=9kmp00i_>zopr0P)-!mH+?%

diff --git a/htdocs/theme/md/img/grip_title.png b/htdocs/theme/md/img/grip_title.png
index d6ecce335cba5efbb3ddf5d2f6f1e329619f8c68..e054bf182766231d586066a18ae451228e5025e2 100644
GIT binary patch
literal 83
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3SgNO`(AhEy;nO9&odWOrfw
lztMS-&!X+6$_xw)D-@JpuFqdt%)r3F;OXk;vd$@?2>{)q6%zme

literal 90
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`4i*LmhOLfIqZk+%6g^!WLnJOI|2W?uZ4{vM
sv;I)MiIActqfUblUvRSLbQXrr*|$?px~8sSU|?YIboFyt=akR{0Gmu0N&o-=

diff --git a/htdocs/theme/md/img/helpdoc.png b/htdocs/theme/md/img/helpdoc.png
index 435fbc77985db9e7d9c970dbdcc40d469c3551a7..1d194e23ec2bf3e3c45233091d06f25c21006610 100644
GIT binary patch
delta 239
zcmdnY)Xg+OrT&tqi(^Oy<J3Mwzg7nkSO4XA_5U?^8yG$iTXH#rdtnK0*a0gY9}dMG
ztmY5+c(NS|1Q&Ot7*)>nJoadQ^oMtkpPhYLqU1FzR<%n(oTp}UWM);;2hX2I_Tg@J
z5oh;Is0hzVQDS{C>*SA_9EltH?-V~Mz23;a`{j~#B|D$qteKx-F*%RR`Q)>g?b3Qj
zMJ1&4Kb=;7zNdS=^Fr|lXFrC%*l8_v{<(z6t;oLJM;2Npz5LI+mBX-mjj_>8`#=ko
xGbdC#V;cQk+RJur(P+}(%F-(8n{!J3i`(q_hYWw0GB7YOc)I$ztaD0e0swABZ6E*u

delta 280
zcmeBX+RQXTrT&+vi(^Oy<J605`GN{1j(_w|&N+9;@`8ujLxsmnvp$F=guFj6v*7`&
zghbB?iNzJnag5;$u1Z$UK6$Lc+2UXG=bWBH--GLK3(K7smzH2>p4c9`=5EUWC1I!D
zdCAQ6-6GPoZDn_}Ri&tVv}s7~7f;d7S^?$_WnqV{)guc&iSgEldpF!T%kt+#u<4Jd
z)-ya^4>&AiwX5de=i%tSjK3$9>r>p#Uu<1Qi`^F=k(bv0-{1Cgr&+`Lx@yK3r@l0J
zWN|&{RcqK8!kO??i7|(1!OJX0hnolEm}@u|yi8D6TA%kmY1v|llC!aI_mqX_Xil}S
nQ2eyP<Nk>N|C5{lvPz`{36_1IRkxCXfq}u()z4*}Q$iB}fa`xZ

diff --git a/htdocs/theme/md/img/high.png b/htdocs/theme/md/img/high.png
index c0eaee6542fc0d716f1fd9ecaf7e30a7c96ecd36..482dc3c31dd0f83d885c384b8d5a19d35ffdb6e3 100644
GIT binary patch
literal 197
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3Sg^mw{BhEy=FJ+sjFSO7!o
z#mUPyE#hu?B`|fW0h@;evq}%+r*z=}1163O6QuN(Df)i?#qzM`+p}M@gVkSciL=QL
zjqTbIaPham$93CZhfT|SBXMSviL{7qM?*(*ljk*M!<!j4x$bhN*XEoqQ#rS$<ld4C
ztIw^^*0ei1_2|a+cP}nieh{a1_n^kreZBwA^7|bq7H+)OQpdo+z~JfX=d#Wzp$P!h
Cz*2bt

literal 611
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`4mJh`26+$Niwq1*TAnVBAsXjvCwcn|CrY%Q
zFQ0jCt+Dg+CBX}}DlA>Pbehx72nRhww?%<MQ(hbsh<tG^{(*hL+f%*S!s2fA4cjw1
z+!o~ZOpg#YcTr)ywaWPZ^FyM`p2p7mUi)d@WSIqL*Q9U0<$i8zS@kV1nM)>VJKsHe
z@06&vewA+ijsJ&QmQCEfGsbN5mXh1ozE1pf?%e9Ez59OKa`gSH(0wQQ^Wd3OvG2!r
zEc1IR`}|Sp@r!+1c4f@6cv+dMDz^K>alYGice=G&bfzDE_-D@JE$rOOF3#+$*7hiQ
zJ})o-vUrc-G@og|M4txr6|YvU(343s@Bbd^)cLN`aDt(nO|_p~UY_8bS=)SK?Thbj
zJMK4I&5|XIXYQTTJSlsVJ59|jW-L9b)LS7}b?GmM*t3j`qD2z|rd+k&7;%5aH+{WO
z&Vv&YUv#}bqg9ySCF0$+C8vjnKe=WLi)5$68K2it;Wcr}TZ{y_Rw_Cj*k!T&dv&n0
zTmGkMR_5^zl|3AxM-Lvfleyg_-OJR*_^<f-x9s~7eHYF9zkRE_V0wM)l^NA>wi9PB
zcs!X!R?veX`s(+J-+96cEJm-GE(c%nTAHSN>YQHmw1fFes=T7gpL3a-1lRoKsrktg
zmA@chb>mOFACJ{1Fr4_u7~(c}#i8|U%1ZV;d5~lBp*d}D)ZGJaqMJT)FS_Vbx1TdI
zf5FcxSs?}$2Ps|;#SSNri8UU}jVBqOo-WiVAP{tDx{wo7qX@^7hsQh^oKDT%zw7v%
WOU7s8Oc@v$7(8A5T-G@yGywqJbsJ#-

diff --git a/htdocs/theme/md/img/history.png b/htdocs/theme/md/img/history.png
index 0fa4283476b0da9b026b8b26a2226ae30a9abd2f..148928d397d562a0d193a81e4c28c830410d6e9a 100644
GIT binary patch
literal 270
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3SgT=jHu45?t;dU|P+XaYmS
z#pd1Bixc`AcB^UZ*vraUuDfHm%AJLd%+I6?-@V&cpIWr`-sJuMlX^B?SGKP$xTM6n
zHcUa|tM@8D+dOIAV`8$K*0TDP2X3G5)?pCbyI-wii+_PnOYklo29{z*eG|97$bEv+
zk!m;C9CjCTE;4L#Hn<h;D6r)ghtwTo-k!Jpzcz<SGZfndrm|1t-gasJ-i>ifRHr?j
z>h`$P<e1AuKCZrwk0<M2^D-L8UVOa!VbYpO>KdP;+w|_PlT>XCEUSL8yu5FwK4%pp
Yo4@0FcKz9!3=9kmp00i_>zopr00s_eumAu6

literal 1362
zcmeAS@N?(olHy`uVBq!ia0y~yU=Rag4rT@hhR<1ZI2jn2o(A}YxH2#>u(Go7aB~Up
z@(K&`i3$rS$xG>KD(b7KSZc{yYAIN$t6J$OTI(uV>ndC8Dck6&*sAN;8YtTusM;E+
z*=y)J7;Cs18Ms@TdfV#z+S&Tr8~VFjhqyS0I~l|UyCelWC5O0FCPh@md(>q{HKm76
ztk0d>k-cF-=jIt@Ck`Jvxn|PUT~n{`o_6EJw)<C)zrL~k+sn(}AMX18^wjrfr@z0w
z`}589-(TMS`SRk=*Y|%v-TU|X{=eTp{=dKR|I35_-(LRz`NmpLnSp_Ujg6I$hnt^=
zM}U`Ch@VGPR9H+{P(n;ZMnX(MR!T`)SV>+=RY@M^H3f)Y9E?pIjn$oP4P8t$T+Pkh
zEG^v4&D||cJ#0<9?DTzXY<=x){Vgs1?G621&HUZ11Dza#T&;rKT|gf6G>!1Ei12iY
z^mL2#HjnahOAK^`_%|ioCo3wVEH$n?Ev6<bzAiJWAvL(SDrb6g`uvvkCEW$f`iqvg
zW^7o{w0TC^mf6+YmrOmdto7igxrf(HJaPEYnavZ<ZtOX`dFr_n2hMNpzqkz)MA!Du
zy1sYj&Al@o9$WD6_@ajw_ddLS^3n0dk54Usa(da*bIYHfTm9nBxtG^=yu5$q^`#B3
zudaQ4ef#U{J73?}{`$tQ*EjdPxwP)>wRLZw+<yDy?z?N7-(BDG?&kInclUpMc>Lp|
zQ=eYm{(S%7=Z9xLKRW#7@u4q|Pkz0B;Oo<K-=3WM_VV(#m)Ag%^6d2Y=O@0uy!id?
z-S6)n{dj!%$GZnVKEM6>^3=~a*MGi$^z-BMU#~Cz`ta!Y%d@}VUjF^@F(~dn+<`>j
zpYQMgeE;<K!_~i^?*0A#?(g@{e}8@Z`|JC^ch~=YyatNduP^_7d;9Ol`+q+_|NHsn
z-_LLVe*gIQ`{%zuKmWfz|Nq_D|DT_N;{EIG|6jqe|Kr*JA20v^`0)Sd-Tyz|{Qvp>
z|L@QLe}Db|=hy!~zyJUJ{r}&e|NsC0W$@U@z`)>C666=mKq+8(z_(~20|VnNPZ!4!
ziE!3~C-W{lNH9F8w@J2^OE2tvtYab?$-xrHQNW<$*Pyk|hKW6{lR5u@q)OF;hLBJW
zPR>&cw|JOjDy#a<Qrq~rH0S(>+6evbO;c@)el;$7`u_3~GmjE&=eI`{W>+3#+3RRi
z$?jTw@!`JqSXJ4p>rS7(es`MA#A_$Lj!s_J$-O1@v9axoy#{A?#L7MK56dcZyEK>c
zY@<5k<*nhZPn>TYdVg2x9nVwm#dQlyclGXCs%6XkarSvW4(3VT{}=65<KQn`|MHeu
z|96fHva8N`U)XW2BuIoy<w#kko5~C;s}l(;BUm^e?-O6*qZH_HI{6i2!m&t+<rjbc
zE4EORNw|}^+cz{yd{INJX4Y@_=hL19vYeY?IxpqXCGNiq=jS$lp3ESyi)FFUxknZc
z7XGMMaDQWCM;+^rg~jhS2()TUbDVLUL1iru$Lm8ykx82l{1VA1jPv4X+rIO~hjNDO
zB|$QddR&fW1shFgeXHVMwYi~N<Kg`MHlbOM*zSFOzJHG4?!AADHhy@LViTiyGTdO_
zgXNRXE-PQE{MLWRy%n>6oZ4DwJDKUfcE8)@C$lsAE(O0zt7V^_rMIo-#&h?x8uj@<
zRz9>_lV`RfJ$(C}ROys;ii`dkOBD9L@BhzyJ@D<dk2CyUfRc)*tDnm{r-UW|5?H`e

diff --git a/htdocs/theme/md/img/info.png b/htdocs/theme/md/img/info.png
index 12e6cd655d6630345cd24c74b5e85bec38524c1a..bb6095bd00a792c96a465b2f14ddacb5bd269a72 100644
GIT binary patch
literal 254
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3Sg9QAZ@45?t8deOg+(UIZU
z#qGk`ckd*!3D)O1$*{HyBxx%38Kp~}6}=#4x^+g0)s<tvbN9bmwWL<he0$f~)Jax;
z^A6Q7UA#@)Hrzbhx%bA2V|QJ{eUD#V|9*P1t4_G(&d|xZJTIy(7@o|#wx{=oR_cKm
zgDFO0XBwt1nD{3sc!N)GUDDT!PNjD>EN5{nb6B>;v#-ocw_)+_d$(t^$$itx6>r_Q
ztFe2tk8k+HyzDiSvu{*d{Qjg=9&oMhL!6qX@#ZZCS3j+^uTS*wySzZTi-CcG!PC{x
JWt~$(69CG7Yu5k(

literal 657
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`4rT@h290TVA2Tp8u$OrHy0Ty65Mh*+;T3QB
z&%nUIS>O>_%)r3)0fZTy)|kv-U|?WLcl32+VA$Bt{U?!?fq{`Dz$e62!Z1kDGFj6p
z*~u#?D!V$lx+l4MX>!Y)<d&t`)jiqOQ?h%O7Pm|(p0c&NXKD46rPWjRw)D(tnX<HH
z%G#beOMB*Q?OD2a%ABQB=B%BvbnTR-Tc<4DJ7w*$IZOA>S$l5I-fK(O9$UI~>(af~
zmL9vecI&yd$L_5?_I&H!V_Wy0+q(DK)???k9(%s^+`X;m-fzA3eed35dyk#ld+gfY
zbJzBsySMk;^S#&J@4ff^*tu)Ru020@?fJQT_s-pWe(v7)bI-q@d;b62`~TPOJ->GE
z{k7-MuRZ^M?fL&}@4sJr|Nq+e|M#B1zxV$Cz3=~@fB*md|Nr+O@csSw_wT>|fB*mg
zcM$mh{r~sx|NsC04<ZiikhNi8V2CIQ@(Tuu(Eu}4%s#}yz`(G=)5S4_<9ad&d*gx&
z3nmx{G&6S8HvhR&>+JML@y>z=0nBM94>UN$3tYdhuW%sH<MeIo11H6g@P7DqMeyp!
zFJDRw*o$PDY;2E8+_-xuX02#rjCOu{ez01ed2}>)p~CeG7mxbQoOt-&m16+{DVrAd
zcH1b=o;R1TpQB^-x<n=Q1FKh`I?q|y*0rH$)hr2Z?kk}W#V*x&&ADXY&eYg6#l=F%
h{7yiutP3N<Cl-Szi%eWO85kHCJYD@<);T3K0RZE8h-m--

diff --git a/htdocs/theme/md/img/info_black.png b/htdocs/theme/md/img/info_black.png
index 741dabd5e193196549a2a1296760643eb9b11c00..12a575454126e6c2a8af2bde64a37fa266b8381f 100644
GIT binary patch
literal 207
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3SgO!IVc45?t8dhQ@+vx9)!
z!|TnPZ#f&-F5x(8Rumj9C|KRStmEqjK|$GRh7Z2`dDlHEn7?>Y>}mlYNoDTD^Trc|
zDnF^ZoPDA(bKVLynfAcHAL6Xz|5m;$vi!s`yX(X9Nxt44|2?lpEWSRg?)tUoj{*<6
zeVDH7e<*Lqo|TU$7zy{-ad@3e@sV?p*}LoPWyKjSliFrAwd}6*XjyjTg{NUS0|Ntt
Mr>mdKI;Vst07K1IkpKVy

literal 312
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`4i*LmhOLfIqZk+%7>k44ofy`glX=O&z`&H`
z?e4<xzrFv=eg*~x&H|6fVg?3oVGw3ym^DX&fq{X&#M9T6{XQEjhm>lPMBN((28KPJ
zE{-7*muoK=dNC&ous+DY<`5;ib%Ril#05VA9Tvq6;UA<d8=rStI_cOnwVEwz?d?@M
zrq|nZ^!>Xu$C{_Jzdze6`Oh&RzrrA|L*&DYjE}Jsos&ELg(pWSeZDZkE3j>8?(VXj
zpF)hQ%pM#*apr5&^|n=Bd~WlWS{H4W<g1GowR!4Uo4x;ePNC>?y;F;>-AuZ6_tN>6
zm6_(RjJp4=`QOR7)2Kf=^StW4y`0~}u1&wPX9BzVKb<MdH?I4}?AxRJ>cr6_?F<YI
N44$rjF6*2UngGumdfNa1

diff --git a/htdocs/theme/md/img/lock.png b/htdocs/theme/md/img/lock.png
index 3d99cf1eaef689386c6bcae4b7e3f237d53bf43b..317c034b9b4780f4e94966b8acf30c7ea75852ea 100644
GIT binary patch
literal 206
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3SgO!ahe45?t8d&<!3hy#Pe
z#deKHwnx0AH(s-wKEc*~*4pVCzP^(c6ZCdg_#VI_7?dr^(_<EV#(?M1@3+$}%ibRA
z>^i2xp~jmUo_7A-omXe|MBmm}u%@e3yEe05oa}h<g+i6dsh2uV*OHV4r*Fyc4DhS`
z^eD9UlJ&3L75=g}t}XZf9=7jQ@SFdas|zb9@3;_^zV+PSyZl8AZPCXzXa8hiU|{fc
L^>bP0l+XkKJf2o2

literal 646
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`4mJh`26+$Niwq1*zMd|QAsXjXC!Y2WDU@iN
zUwkfKM)v*mB^{?+UAh;As=8iN(s9|6AsVqo>()>4ExayKAp$L$6K78oY)oo&(_<1e
z{c^)6&Zx9RX4%flG@JBu@3SX%-r~Oh>EX|~xU{tNncLo8xbo%8)Q>AyZcm;(dA9Mx
z4Rtqf|9)DN{Mc8NW6Gwv`}Wznum~O$naFTq&6KLCe#>vOv$LDu`||y~TyBQN<*Rr9
z?pnEWWw2)G$$vGQ-&$D<N&c{~nX~)uMZ>7r;Lis(t?^!)o9n;)@WVgd^X3(lmVPxo
za3?q9>C>kP63_k|a{BZ6#EIYcJC8W{uH0zzC-cO%+}*Lx6UA0Ci9GlxtmPvdKRd@N
z?_TlVqsd>xzWh7dkgv{vtk!tO*`2Ku5+$nsFV`|JT)rjXew6g5Y2N4Ne(>8ihc7lG
zk3+=B@ObY!pO!uH*$1`WhN~v>uj%^p@p(I+yk+U@U5R%ytZqk6@w45s$WZh1_0+r<
zg>wbJ_MZOwvwEFbdc#H83tD_JYb^wH7Ts`2Kc&T6SYR$=^iHhszH*+UXRlS<Y$NGL
zPX+D;Th>o>5;^(X!>my}UQw)f^Nx2LCp1LJiOf)9VJJSXv5zxOXz$FU(Xq;g;_5;l
zf9zw)o;~4WKq7-ewbdfuEt3;oU)SoKDe^gS{!P~(Gh0#^KQXC3tN*-s)64~Cb9j~*
zJ=tuxQ)UP21u31z1^h=@9SpuT^v_$mE9%&jb$(pu+FZ>PmrQ!_WPu6$ymX`Yk`q~%
zCv46Z`uZ^Y)yWSm?;W&Ulo$QqHu0^q$-D{WiJS%h8tWNqLu_toe*L_Xfq{X+)78&q
Iol`;+03hKn;{X5v

diff --git a/htdocs/theme/md/img/menus/README.md b/htdocs/theme/md/img/menus/README.md
deleted file mode 100644
index 12cd9da537a..00000000000
--- a/htdocs/theme/md/img/menus/README.md
+++ /dev/null
@@ -1,12 +0,0 @@
-
-Tutorial to create a new image for menu:
-
-1) First find an image.
-2) With Gimp, open image and check there is a alpha channel. If not add one.
-3) Convert image into back and white (Menu Image - Mode - Grey levels).
-4) Use the degrade tool with option:
-* Erase color
-* Opacity: 50 +/-
-* Offset: 0
-* Shape: Linear
-Il est possible aussi d'augmenter la transparence globale depuis le calque.
diff --git a/htdocs/theme/md/img/menus/agenda.png b/htdocs/theme/md/img/menus/agenda.png
index 0798d15f938689a6b894e2da42fd7cbe5d73aea4..35d8b1b3169f715eea352ee2bc07a4e0888b0f02 100644
GIT binary patch
literal 131
zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4i*Lm2CurW#URSl#WBR<baKK1mOt!FNk>jx
z{9ym#|LOlf4y^wFZ-vwcZT80L5@Nzk%nKTqFvtr@1=w0UnFQEI#0&a(=?9py2%Heq
h|M%O7CyaqXc>hH1)4rL17#J8BJYD@<);T3K0Ra3VDd7MB

literal 700
zcmeAS@N?(olHy`uVBq!ia0y~yV9;k^V9@4ZV_;x-vF+k61_lPk;vjb?hIQv;UNSH+
zuqAoByD)&kPv_nB3=9mM1s;*b3=G`DAk4@xYmNj10|R@Br>`sfJsvSe1?41X-Y5nJ
zCL2!|$B>A_Z*T6+7IBm~{?Y%)f=-PUh8jw0jDmq5mVVIHaOBVsi&`eManr^P8#W01
zG0qA4(S9RhiNPYn6-(9P1Op!Lo_L2f$++?9joo{_)ABbL@bm0`WBmKh_qy+A&KMWl
zu3o+RR95tq8@oQl{_th6pZ4iZNaO?gWHpBVL_YJ+P4{OxpP5{7_v}wTt^XYCforSn
zq-xH-;jMd6X)S+4xUluFtl}~Kn8P{Cr>=MF*eEOPdO+X3t9VPtoPO5*5otg2T@QpS
zAC=TG{^K?C^0Hf@`xKsLyB>(=y`I?ffXi=+YVNf+$r<MhWVRb_xp^r~Uhi?lj`zoH
z_B~3?c>jT+yfD*viLZTLg3VELp<9t52A%#DLJQoI4{eV=|NUWIK#k?adyo8fth1Fq
z;vB>A-tUp?-RewT^B>iWtD>%FabA5@E4=Vr`|=+%FRAN>h5RVwNm&t^{b0Z7pZ^9|
zGoNmM9K)S;Rq99i1D_Yhvfe+#*xv;FSah}LW$seX`N|cots7q7y0&s<kwP--TL0N5
z))RKDe-N;I*{QpdAF{K~KXC5)U*q-vY45w%=+^aHSN!?S_V2Q0^4h>X`!_zcS6{Z<
z<aX<8$^AY>I&X4}%zh;uuFqVUaBDJSyyur}vDei(Ke+xaC}-Y!A!di%Igf)sZL((H
zES<LF&?>9x5i8Q9duFrhY?az_S9o*xjop1`kA_(Ac4xi4W_CH(=?U9Dxu=ttM;(?-
zPB1+4+q-B}ugsQjN%bC!|5?3g-E*anHGW6w{{Zb%|CmelF0BeotGohAc%H6)F6*2U
FngBD}LTLa1

diff --git a/htdocs/theme/md/img/menus/agenda_over.png b/htdocs/theme/md/img/menus/agenda_over.png
deleted file mode 100644
index bdebed8fa264b115bcbfa4df01a32e5f84793462..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 541
zcmeAS@N?(olHy`uVBq!ia0y~yV9;k^V9@4ZV_;x-vF+k61_lPk;vjb?hIQv;UNSH+
zuqAoByD)&kPv_nB3=9mM1s;*b3=G`DAk4@xYmNj10|R@Br>`sfJsvSeIng&Z&HES_
z80UJrIEF+Vemmo0ZnJ?vTm7ni=F(GmozykvF6ePEJHfV8c#HIuya$4FIA7&V5In(h
zeR_9_Vn^<VyAfYK_b?oj|CWEhUax~=<uO^IKA!mx^BMNd+Y!E$={{osPYkmKV}{eg
z`|LlSi5>92R&!+Hdxj~-uNN3^31whoxU}@}q2#u&9~T<`U*i>M#?NqTifQ~(9{ZFZ
z_FYERvw7w}JbYNZ#+LC0qs0=7Ph1Y?Gykz3_$c<!+bm{M?eC)zUuU&XpJTYc`GWAo
z*IN}A`5Uz>E%M5~J~`GSdYbBkS6=N!k0MuZ6}NjBo2tAssHju_Y|hr4>c!dnq8aKq
z7yg`PXZDBfK%J|7|1AH0zWCyW8`Pw7wQY~Ld@uYK)L-Pdh3SsizWJJq?#ra*ec<J1
zuQ+p{|9XH)1?z*W2FA;hxnrM4%OCCF-m~&m{k9W=W<oYU<2D>R%%`};CH3>X>(0w<
z8~R%xxaS_(tsNz<r~JMuNlo{O;nJ_Su7BHcOvt?NpN+&1p&yOQ|KCmGmHBa3;emIG
s@x9g3ayN@qbOnWOvDety{@DIu|IyVmbbl;7`Uw=Xp00i_>zopr0G^)Ww*UYD

diff --git a/htdocs/theme/md/img/menus/bank.png b/htdocs/theme/md/img/menus/bank.png
index fbaee7cc6bd21fb4f562365a376918f52633026f..b83e7cd310aa66c2d1fff8988bbb7dabea41b332 100644
GIT binary patch
literal 158
zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4i*Lm2CurW#S9D#sh%#5Ar_~T6Bfw)dHyf{
z>;HTIPyLTMqLKD{{^$Qk>p3d;QZ_#fKJ&%?-~Ye=S3J1)f5(5H8&lc;?f)fjz2ld?
zK<viP|0n<d*gX0F+=-?FtQr>`<QsBy^}elOn`C-H?1J4#-gQ^F7?`Iod-wWeO%?+K
O1B0ilpUXO@geCx1B}cpf

literal 827
zcmeAS@N?(olHy`uVBq!ia0y~yV9;k^V9@4ZV_;x-vF+k61_lPk;vjb?hIQv;UNSH+
zuqAoByD)&kPv_nB3=9mM1s;*b3=G`DAk4@xYmNj10|R@Br>`sfJsvSeIce^ebvqdt
zn09-*IEF+Vemm1TLnKh7ZGX;`9}&qSqWAf)IBgVQHEoUPFl*9l>d@)Xh*&DHg@a?7
z*e%Yk){KRVB35|Ri0lgtG0<3%u{e`yx1!wvk25)wBxlz@G)hTVvtA#2lX<%F_j|_a
z|9?Kev-$bG%p#fgs;NAsI=ml1uvA63=Gk;6_Mju*L)K<}P!D2x-@=&Byj0|1e;cRt
zan^sV7g%)|KRIOUHg9iCjNQ*tCRH51Coa<^sXg`HrLUIP@31%K_Y3~<2svXdI*0$d
z(dVZ#-ZR88?!S7UV@-FZV|(0&)U@f$=8f(LOccb8Ur*GDn0zzxKwPZ)L?>n6sg6q+
zY?ya79+r9?)RF5sxl;cp^Bl%^lF8Le)~`Iv+{c_fxv$dxCF{K3OLj3`;EZ8k)^^rx
zX2Y54t?>t369fySPDp*P57hP!GgEDyHvj!ag9mdN><h$p@XTQnV{$KfueS6mlYx7(
zdZXk4LtB@8i4Td%`{Gv$zhq1hDv+Czd*dy8-ijqJ*sFSk7B9Xvga7m&=jnglbuYb4
zzVXb(tv~U<n%}d(VsF&L>-RQ<?^0*qWBRN4KzKr-)XGmQR@WatUbpTG>-7rFUi+2T
z5A-)UF#PknZ*=Td<IGHh|9(pgBgGhQ+q~Jm^u1K_?A57u!UoT@w_erzJ%5$W@lCP}
z^B5-c{{HE(xxL<6=kv7Vf4r6+Q+(-sO6_~-=`APUZ9dhuNAR;Vm!$T(vmNo<GQ-$*
zu2r72#%VE!jhR@+#T(4;C%t7(=<Tn!J~x9sf=x!`^YjM0<h<2iLSKIWw3GRU_<?ez
z)|(<v|LkK}zjp=K7S+y4H@G4~*D;iJ-_4gYmfs_KgJDh3{VwT06<$dp4Y}bKHRfVD
zanbI_Uh03GJ7s68j<@&JIwk88FJ~~}_AmO`>>9gNKb3!nLu$Bo9?Uv;eT&IH&!wvW
Z85UPbE%{{rE(MhCJzf1=);T3K0RYs`VeJ3_

diff --git a/htdocs/theme/md/img/menus/bank_over.png b/htdocs/theme/md/img/menus/bank_over.png
deleted file mode 100644
index d395710a8777d9c9612301f716557ccffc9188f6..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 620
zcmeAS@N?(olHy`uVBq!ia0y~yV9;k^V9@4ZV_;x-vF+k61_lPk;vjb?hIQv;UNSH+
zuqAoByD)&kPv_nB3=9mM1s;*b3=G`DAk4@xYmNj10|R@Br>`sfJsvSeIeDI!Sqm5#
z7~gohIEF+VejDlN*Bl^FYx?dq?<(~P!Z+j?g=1$uV!Tqt^!i-t>>Y*4uNZwkuv`-E
zc<1|pEjLCY{QTJoe|)&Mw2EE$KPl2j@`0n==V$-7c`RCa!?8K>Wb~(LHO(7l7uWDN
z#4GL(NXq?mU3CA05AmnmlDQNNo?OY}`l;D4Z=yfL9<!yldqU(+GT#i_nfb|?p>N`M
zhLYKfelkz=QsBRsAGQ4@!;U|vA0Je2Fl<m}$QKG{nD^SJj_-kwO@hLwS)M%%6%5}_
zzX?d4)ZbbV*Q?GS#r>(6!TghB`zmEuAx@d(Fikz>Ns$+m?P^wjRpnQySCX7uqh6`A
z-&G}DC3aGu%=tqG-SL5+Hm>^a(HESxyy%YUtG`N5x=*Do`ozy5uDP|H!Eb6$la}fF
z^tZd`RQW$O&RiO8sM$N6)wXWt^w3j&;ens}FZ~nJ*`2Z{@OjB91$m9Tb<8`?uJ~`%
zwuhy8mC1V3ntXwnmg1+(c@wWjNIsEGb>QdT@}K#EOPb8(6Kt*T;+i~JlPs1osy^SX
zS!)~h>6Wyq=H)deg%fyGH#8aMo?UXr(msG~O4|y*=E$afFK(W`alorg=2q#8&r-3S
zJNG1BmuR(Cy}!ET6X&h0!hI9ZYVJOodvbka*tz(beIGA|Hb(H)X;0j~Y2y>|2jVx3
W?@yn8Xqgfyp?JFbxvX<aXaWGD6b1(X

diff --git a/htdocs/theme/md/img/menus/chart.png b/htdocs/theme/md/img/menus/chart.png
index 6efce90a78859b6f4649304a8481fd193e6cb609..18559b692d133323891fb18891dadb79bc027169 100644
GIT binary patch
literal 127
zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4i*Lm2CurW#S9D#Zk{fVAr_~T6C~C=sDJQ(
z`u~rO;s5^znm!2UW6}>a6<}PknsNFKhKz=d>>Jrib}n4d*p~TH)bXo+fawq66N38x
fe)HYB!_TmgN3XhW(Zv%C3=9mOu6{1-oD!M<&S)(t

literal 1321
zcmeAS@N?(olHy`uVBq!ia0y~yV9;k^V9@4ZV_;x-vF+k61_lPk;vjb?hIQv;UNSH+
zuqAoByD)&kPv_nB3=9mM1s;*b3=G`DAk4@xYmNj10|R@Br>`sfeMUZRODWzB2Y)ay
zu&nfSaSVw#{C1{ycTA{A>;BSJpZt8B1Zr3uU3&cHbh!Ls=5ui=cy;9dgZYJe=jNt7
za0n1N*eGNmz>~$}rpm9>>AC#%z0EQy^UuATeLHrlUnJ)YZdb>vE2Ce(*?a9)^?dIB
z^~bOOe|>2YclKJ>AjZDib@CPNms}qt-;VcurE=AsuV(GnjwRb0zBh=wO}n$@@608^
z+s;o5O6wQ;;ol&9Y1vc1_o}u37A}zwW89~+#rb6wbJlIf9eYLQo1XFsbDjNi(Uj>a
zx3{|5Gc2~gez)Yt*NIH|yC+{^ylOT{f+0_GR?7<MyJd{*DzaN@w@xYgoal0I+wZk^
zQZ`Kd`|+RA2etyC8D77(Ui-ybuxv_E>eL6nzud}e_xQE?+AqNmRs|du8Mi0RoBl=W
z!|b>Djlq-Ft?Bw)EA%w%(7J8cRrV(Rjz~%IEoW(7!hC@9LFjFJ=KFu1KT!R8u=;%D
zE!Kc`w<xnUXYH&fnnX%IZ+`zd<1+gRH$(Pkw{k3x+-2Sz^*ZFz?gN{*oo86y=)Eyg
zfAZ(MOj}+aa{7J4Lodbe(YprI2e}WJ6Z)5!H*z0{e2{(ndBfMYW*ZHDFkC*r@<QZ|
zy9^bQ5$kj9Wxp705U<dTQ*V5qQ_mGsop3Nuu#z`ZI3)8?*{{8uHzYS_7sfBI_P8|p
zK=&j*dxIZhUj-i7+<J00FXXP{ujsPAqu;kL7JITU^IF$^BPILmTG9_r98f#QAJrXs
z<Jm(t6Y)I-D|SjnYyD8Ww4`4x=yuq-fJOe|-}RKYrdsB0ZcT8{oc!A9bL9dRsVgr+
zu1mM7OueGq8<>0CbroOh*4QV?&ZQ4N`)zrd<3HO>Nkg@`E^a}Yll1x3M-INf)|w|^
z=Wf_^aZ#M|slO-c?JAyJKKq*KOP0+26&o}k&HOxBBO|tKS);P<*41m0zfFB9FgZlN
z<ixe<w`cRsII8yR$J`+OBT6&lb{J;6X3aZq-lZy4v1Gy5hjx3HY};n?;A7nMm!Chg
ztbXw8UBq?uSz98_%jZvC(l3>CKJT*r(cHFuwlWTEywlyJHY@I}y1iXGSBY7waL3b#
zRGw>#w|LGs6@SS#`)h+)tcdD!HNDhhr^Vj9FqmX6+;IJH<~zYR2|He1R{Pz!V6Vxo
zEsG4-8*=~i3tA?#Kd?x!No}%8;aRqsA1|?FS8q$0_-c__PDOcf|3tQR-eEgeF51?Z
z7CA@XVfLgOYD&3nYd7w54OD)xTr>KKlc-<Fb6Iyish?jzB=c9=m8jl++kad0_Kbwz
z8Qr%}7M=aPc1h_2n}XWN-pI4+X}9MXnbejjmo{8kk@#EaL(7s_$Fub+bD8TH*Lm*R
zx=QJ4Os4IkxXlNI3yyxT&aKybsq<mV68nbL+w!LciCMkhbN}A4X63xQxl-m8(NX&L
z7ISpBbuTe};D39&mnPe}+xs?5W*7b*o%mieh*`?F+3r5`c}8|s*{;La?&rpDtCid_
zgZ=efyTF-x412ct6&keXS#f$7KM%RozwJEp@0|D3x9B_k-+N}cT6crJUgrM~FO>g8
zpKR=U>zTDKkHK8-*3Ug}?;g1L?B>JoZv`@ir#GISw2x)ox>paI#Fp?LxbjWV)4fr7
n+x&@J)N|gddulV^U02Vz@6EhB)>W@Rf=W40S3j3^P6<r_by9wZ

diff --git a/htdocs/theme/md/img/menus/commercial.png b/htdocs/theme/md/img/menus/commercial.png
index df9b443ceecb364cede57efc36815cf7112e3653..ba06d79a766a3bd14329bab3baa73ae130736da7 100644
GIT binary patch
literal 133
zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4i*Lm2CurW#S9D#KAtX)Ar_~T6BbzikpJ`l
zYrRCpSNjPY*jkDNDm){Y1rm~jmp!b%@PGP$PR5k~0t;oX+W+rlSuEu?uPxkVWqsoX
l0S}i?)gSNAPb^?!cx2encz4wjRt5$J22WQ%mvv4FO#tn`FfsrD

literal 845
zcmeAS@N?(olHy`uVBq!ia0y~yV9;k^V9@4ZV_;x-vF+k61_lPk;vjb?hIQv;UNSH+
zuqAoByD)&kPv_nB3=9mM1s;*b3=G`DAk4@xYmNj10|R@Br>`sfJsvSeIc4QGF?9w8
zrn8<djv*0;-_AUr9qcG@++OqFHs8>ogIOz-{+V6niqg^e$FR6!qSBXTaxDFe7AXAS
zuMj#id4c%B$?W_}T?%q<9Q~74eof1X>OI1eUH?P*;@1nDI{mf3g?@iBV`OjJb9ZL#
z@7mAL&Yts0^3t3&H7X-1E9=AOS0(q24=^U^eh{tD{iARtc1lp<C%>g3Za;(FG)tA%
z{5`}{7o{1xZqoafjp;f|GA{G(SyOn{_rawYGhXgL3KM>{mlj@s5PaaXmRz1d#lo|-
z%##i%PrtZ~_s3IZX|{9Bkq;y$ux-l@yU+GUaHsHx#SVdTPRoBEaDBj3a7}?-gVDX=
z_PPW8jMa^C39HZ8PW{<_K#X@qXH=|w(DDY;106p;DK3zIv87?%1-I)D?lV1ac+9q)
zV^QMu2lpfGZYiAF#r9vYg7wRl9eJy|45U57D!uP45!=V^v&$|~yF_G1%+hzl52BQp
z9_ep9`sw4XjEr>$UQaz=F1hH8$%YVV^;Da?9#gM)CG0=Gem!$|17~g?qrruY)CZpY
zAEXZ$Kd>#hs_e}y+sm|%`Ne03J4;SpZp*lQU&HQxy2Xkr)z}|O*VTT;CLCM(bUFij
zZPHJX3EPkSI=t@gvgmt@<bSMT{gZb+Z}a&{Evb!7uJ_cg-k89Bx}1sgW4dsE^(1rQ
z_eH5c<+?-b8SZagr22C4cE$*mUlXJ3Sf|uh_*~YG_;TvNvlY7cRoOnAetLZCYkx+|
z`k<($iH-5{0lK1FU-L8WdcA1dpH&PF^KBnDExmX}X?ckq*9Y##RK^GDHjn2lIkQbJ
zK;=PrNZ@uqse4DVy8nGzamS4{!Zv-zY4$Zg?`k~oP5hC5V3vL0(Vt2aHa^i=d*+*>
zwu$@=!GH<ki}Vf%pV{_B$nI0%gWf0hZ`mq6&oxYp3Vv*`o4wF7L#VAFLg@7C$4xcj
zJGHE{OY>`A=m|}~U&i~P<%yMXVvf-7|LU8Re{rX2s7{@lmRbhN37)QgF6*2UngBw+
BePjRt

diff --git a/htdocs/theme/md/img/menus/commercial_over.png b/htdocs/theme/md/img/menus/commercial_over.png
deleted file mode 100644
index 5fc4f661821e26f0bfe1d79c6168b36c47e1ecc3..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 638
zcmeAS@N?(olHy`uVBq!ia0y~yV9;k^V9@4ZV_;x-vF+k61_lPk;vjb?hIQv;UNSH+
zuqAoByD)&kPv_nB3=9mM1s;*b3=G`DAk4@xYmNj10|R@Br>`sfJsvSeIgKqL=hrhZ
zF#hv&aSVw#d^PfIVY2~G?U!Hn_ZE~e*)T~@;q@|q!FHBIQc?K=?+cbv^99luIIq~B
zntNXSb`6Jg$#eP6+%FXqpQtZaP?EVSSCC+B^5b~#yxUAG7^g6}F|@g>ziRDJX;)j+
z_{U5jQ2D99P=)v9x4YCo%zAb^b?tqp6(Ld#SDR{&N-Y<9VA}Bh#4LRV+y2?Tb1uZ5
z%UaA-Y#&p}#=y&;`*t;h&F7kFS;0aVB|J`TPXCwo-n-V@!2ZMe_~<odfBsI13E1g>
zqnxkvBG<%~o@<KdZ(uvX-f+FOdb3e}SX*q^2j=OAcYfQxEW~Tosn1Qe;^!vEa%^7m
z%T3B=N8a%@(?4u=HC|-9@$I_6Y+27{{r6K&o7)|DBW|I4W}<KMzgI2p(i6`<jXU&A
z?)BDUF7J>PzBBCEXY~aLt-f<cn}73$FMb~4slGSbCSPE`=aMJ2Y4xcI?>G(rAJL!B
zx~I=0K6z`?qBq_R`O1f~=Pa;^pC%I(-E3~WB!9A0jjTtA_@0>`)+~9DoO3hhdv!{k
zU;9_-i0WCl&#z-#uV!-N@R_oWKCE?I-o*!BPe~Ns{b+K|mB~%vaw|7*e_%V1p0JOp
zpfv88QdO&xLTmOrPv_okN=lDs%2)c%d|mf%T8{4Y^RN1REG*|&@7w%xT3hhOi~l#A
r%G$J5xwqYPdy3`(^^MN|`G51v+}=_2CW!--x)?lN{an^LB{Ts56zdcp

diff --git a/htdocs/theme/md/img/menus/company.png b/htdocs/theme/md/img/menus/company.png
index 828bf8f2e709d32ecb911377c85b8538f558671d..7b9227c0674c839b3383586590a7bfe6e6b13fdc 100644
GIT binary patch
literal 105
zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4i*Lm2CurW#S9D#2A(dCAr_~T6C~z5uorWv
z<-L*dDocSaU|HjY$r{%iPIE@^DtaGYA%Eg4^Vdt49xyS;-q{y${|~Py0|Nttr>mdK
II;Vst0IOLcNB{r;

literal 572
zcmeAS@N?(olHy`uVBq!ia0y~yV9;k^V9@4ZV_;x-vF+k61_lPk;vjb?hIQv;UNSH+
zuqAoByD)&kPv_nB3=9mM1s;*b3=G`DAk4@xYmNj10|R@Br>`sfJsvSeIlWl(tXT{U
zjC(v?977@wzn!_?`-p+aar@;>?FvdA1>N=zd?Ku@g6xHsEdTlcGduq0NDmJ`Xn)9&
zMV;N%{h;%OhZX_HmzDQ=w<(+K+;%-X_)N1-rM~|Cx>?Vb=K6YhhUPYL%@%)uwEAOQ
zjiFiS0U7O8OSf*za$7ALu;kW(qPD{QuNKvx647^)sAjn{b!QIC2c|jENqP-yXZ&07
z##FySuOPqkrPR9#I?**8U)qj*37J#;gt^(^FB5b4N%O{RZ=cJdpO|K_l^MP9y2Sdi
z|3IheGp-w@Q)?!%UyJ<YDHkzO{b%ykOShy8R(7suzCF$G>z<SI(^U2@<ht~k;i_t=
zYx~9XzBLScR$Y=y?{+x-pnHpr?1O7Y;oeVA=iY2NAY73AA)l$8ZT^){HM}>UUvK=m
z=j3<Ye<uP&AD>8HyFq#4_Ri^Ifkw+W`=)(jy1{;p=bz;1NZU)FOd5<&$Mo*m?!|a!
z)wFM}&RK?&4`fX|-W+(ZVUghzO`kn7&T{_ygr4}`e$bw^OID(zRc~TFyIj(*@2fUE
z`_1`iZtQ2zBh{b&Ppg>`RFh#jLsajdaD<1VorJ(|+Y9#@pBdG?e|du`>!1A^@%i`u
ZF+4Ebe%8c&+C@;rd%F6$taD0e0swr%_4EJ$

diff --git a/htdocs/theme/md/img/menus/company_over.png b/htdocs/theme/md/img/menus/company_over.png
deleted file mode 100644
index bed6b8dcbfbb062a2ff1d6affd40c1b072b2c2dd..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 406
zcmeAS@N?(olHy`uVBq!ia0y~yV9;k^V9@4ZV_;x-vF+k61_lPk;vjb?hIQv;UNSH+
zuqAoByD)&kPv_nB3=9mM1s;*b3=G`DAk4@xYmNj10|R@Br>`sfJsvSeIl~L~>G=!{
zjAEWHjv*0;-%fwX+hicnYTxs}kok^-nSlC5!8;D_1uX83yeZ6g9n>xUUpcZscbmk5
zCvipl^~!B7UBABD#ic{kSgCDN_$RNpli!;w`R_-}`f&7Wi>N1m{}s^_Ot0jgEr0KP
zN{xGscVkV)O@=E6?oG63Ty2;oSNtW_J8o^z+D(mnT+M#YIJx|QRoKlChesV=`foz?
z-kfXE*Nc~1!Wv+aC8qc!cC+vFh3TK4>HUB8_^sL0#TA@6^(uwT=X969v1jh=&~<U?
z>#I>L6X~^Ex|m<>{<Y`IS8|V8$-R-$d-zzOxraTnJvGVbabs58$>V!^Zp7Vn=6T}%
zz=G}5s!G-MPt=|EalQFzu=)XaX}ewO3#k>G0zZk_Fsg4l_4TpW-AquBdb;|#taD0e
F0sv-hp>+TN

diff --git a/htdocs/theme/md/img/menus/ecm.png b/htdocs/theme/md/img/menus/ecm.png
index 542ff5766e1d7df538e04a1c2dffde2c7de8f635..1bb8e0dafd64e92bd077b868cffc51307c37eea8 100644
GIT binary patch
literal 178
zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4i*Lm2CurW#S9D#m7Xq+Ar`0aUOvt15FpU{
zaP#E`ckv=orA5kIlR8#ySlE1DNO9)Qjm6iVNBg9?{qoF++_7x)fxUUcHj$Z+7<4u=
zaPurl>8YFGCA3pMWs=K7c4bS}$?`6|doK!lc&vDFGdJL#n6%G_I&S&2h}geBS<ar`
hYxn9(edTlJz-uyVm%dGPW?*1o@O1TaS?83{1ONkYLva8A

literal 912
zcmeAS@N?(olHy`uVBq!ia0y~yV9;k^V9@4ZV_;x-vF+k61_lPk;vjb?hIQv;UNSH+
zuqAoByD)&kPv_nB3=9mM1s;*b3=G`DAk4@xYmNj10|R@Br>`sfJsvSeIn(Pwi^~`o
zm<2pt977@wznyt9TO?56Sp7s95mP}|m&Kkjf(M&jVw@BN1J`$Ta0|sa@XE0`et1#;
zfT=3zi;(Tg4uu`BkJ{=vUeU=~bWwuSZL-7+AD_yfZ1djo%$)ab=9vQ`BKdJ=uiuTY
zk6r)jt54(1iL1@pWVYG-1i>@WmIZtnpKF)Q?45Rf#!cJb*H8VOqkQ?4KU0~<)7=hR
zpZ}hf<1@SHL5IhD)>A?cuB8Xx3YmRV(zx5I?)I51+l@2Ie_Pf&&f3O)`)R1(8aWG2
zldOC5AKdU_pKSQF`|O%?XQa-qale<B)_!)43E#fsk9*U$oo!xew7F{T<Neufj#blU
z&NbL9X8d}R`HY)lcLR9BHDi`Oi(8|8NbYFz4CjyQVkHzz!<cqAZuNU(S0GaH;)ogN
zc8|~82YePtTj<(!$+BEy6c+8ykm+()5d9?G$n4PhEbxI)fy|45H5@lI*K{*WuvL|Q
z-g`hQak};Oj;eK*GE-`FH{4(BHTh9(*Hn(j)An?f&pc`V;)Wz=!8+EkIy-}Fi%;<j
z#&ccC>{&i1ySlOUK#R(Tg_{2(etOI~UaiIXHEG)ob~BTw(vMb{JaOKuAQth{Zvnf6
zeEXk-SttK<F1}?GJoUpe-)ocN746yfFlZGy{tP{kmayvC^R3S%&aggR&Ty1(W6;vG
z33?j!yb-)TmunhN><^k-=IMUP=U(|r83sMAQif-lHOyzeYD}8C^wYGst7^=bzlhwk
zI;$0I`QP?xR<Y=fS8rmYWH!A#_w)OK)Cb<Hp3G<PZm>L%vp_V1ecAHBpZo`WdpUJ)
zs+BU|SlY#WVNI6Ewomqr*00o+qc%OU*NQzg=Xj*xqECVkc4<XkdX`>Yz<NXd>unc{
z6`usB-e10QO0@lxdPe=N8TOfitbzXoKiGKmf7oqU&7f0UHq%veLj7{33*se>KUD9t
zm%RL(UV1m>Wce%Bz4~h=O*zH=BfB>~)XrV${?d})Vr9Y{pDw%a_lj2fw14Vl*_T<n
zTN(S`_c_-&{GR{KBwvzga(?Lv_pAJ~PD~JOE18$J^^=C=mZm@RPb^NUXI!&O^6~yx
RM@2!I$<x)(Wt~$(695PTnIZrH

diff --git a/htdocs/theme/md/img/menus/ecm_over.png b/htdocs/theme/md/img/menus/ecm_over.png
deleted file mode 100644
index 269258a8cfb5302da89828e648105fb0dd32c0b4..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 647
zcmeAS@N?(olHy`uVBq!ia0y~yV9;k^V9@4ZV_;x-vF+k61_lPk;vjb?hIQv;UNSH+
zuqAoByD)&kPv_nB3=9mM1s;*b3=G`DAk4@xYmNj10|R@Br>`sfJsvSeIm>%b-p4X9
zFtK~OIEF+VemnDhZnJ^F(fCz0{L)uuE+}cbz`M!uC0mb!*$FmPVH4?=JO^_H=^er`
z`{$@u8FAM4bgKF}bqO8+_p`$6{h6)~fh-%v2N4g%f3V)G*I;06*!A7MGh>~$;-X3a
z+FxC6e}BfEA?VyE)&qWj=GiRD5owsS(4Ns|`<C1GlX8TVv|3EOl)O&L?ehO0?6_Ra
zR@_Cz{MHs%8}=F(7fHdZN|P&3J534vyyWRz>tgxI2ei+v+ScGA#;M8_=X8701DSg%
zuCFXNdaTIW;#qMh%Higu2Qqe|k%m=aO4U1;&TZ_MDo@Rilt1^-*gH&1kvH{b?5ziz
zr=2Wqi~oKjG?_vA<J@Q34{K|#FPy(;>3Yw-zLk%+d%G7D?C#A^4r_a(mCdkUG5V2_
z$q(D#Zx=l1E&a>%;oLa`i3-&<**pulSpR8=t<V(N=iG4pkHf?dsT$nhI3ApuAHSn#
zHuFBYUALb&eYbnKpK*^_+3tHET%Di0S=q}ixL>g+>y5M4_a(oz8~Ej(|C6xQ+4%9!
zvF6#2m`&`qEM+N)I;{2Zc<h1MSz1y-XTO@Jsqb5QtMMIw?`N5}hi5#sQE;=#^=H_Y
zyrBKib>0_62lzJSRxJBy`02#r?q|8`Tz>1mc2r(3H>zNrz-VFr>Ss-9^7^pgCguaD
zF0S@TVy_Y@OS%+c{p$IF2U2p$Tlcuk)BML!Ht$RIq|8|xKxxR+)z4*}Q$iB}=*1Ry

diff --git a/htdocs/theme/md/img/menus/externalsite.png b/htdocs/theme/md/img/menus/externalsite.png
index 01e30553fc569e01123faefa7ef3c019cbb36b5d..8abd6437ea69f4fd9c43960b6a14d677e94764bd 100644
GIT binary patch
literal 124
zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4i*Lm2CurW#S9D#&YmugAr_~T6C~6g)Iaz?
z{Xb`8`2W9xQXJasjng@JU6`!04+zTq-?&P0i4;d=$&bokqJe^cnHC<L-|^+wqy6s-
cPM%|sy4@^s?dAN}3=9kmp00i_>zopr0Oo-#t^fc4

literal 531
zcmeAS@N?(olHy`uVBq!ia0y~yV9;k^V9@4ZV_;x-vF+k61_lPk;vjb?hIQv;UNSH+
zuqAoByD)&kPv_nB3=9mM1s;*b3=G`DAk4@xYmNj10|R@Br>`sfJsvSed4?Ik!bBJt
z7$<wWIEF+Vemld~o7qvIZ9Yr4iIAY9bn_w(u_o6yE-cd7)&D)~rcDj)TF@bO>zAX+
z1MwyogBZIDTW2<>&b^cCAv(7)_1nGb^iL_q1rNE-S*n?K`4mX(IVg>U`sITUeqFac
z|8&%+E#3*nAC}zmX?q{{?)SW1U(UT=Z@7iA;M`B`kJmO9uM^9#?qWX~xo_4Z#ZCL4
z9kl%Z`icGCTBa||Z@oV*u{?b}+{WeGb(>c=d`xPN-!5OeL0F`1o=N)8UtR4d{>^%x
zKfi{Fr^xSE`}t42BK#Bovj2bgWVeImg*4^#y1<z~Uv|vof8E7(xSXfPb=rDazQ%g~
zFU=3C;$QNAm=kQSuAP;$u3@U+ybIeWy>GZG_-dYty~g4x;`xUk_&2mVyk_!Eh`soF
zlRfh)2h9&Ajj5~;JU%V1`S`&&{>gfm8}CEvQW>~T?LMWO;GDLW)ubUjK{_J%i^;R2
z!GeF;ET+#|^+NXn(~fViybjE}^S*NL>A3y;D>HvAV6DEG^?@xPfs&8&cSN+*tvYkX
P6%?PIu6{1-oD!M<EqCfF

diff --git a/htdocs/theme/md/img/menus/externalsite_over.png b/htdocs/theme/md/img/menus/externalsite_over.png
deleted file mode 100644
index 8e227ddc83f7c92994716cbe7c75cfdb4814feea..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 404
zcmeAS@N?(olHy`uVBq!ia0y~yV9;k^V9@4ZV_;x-vF+k61_lPk;vjb?hIQv;UNSH+
zuqAoByD)&kPv_nB3=9mM1s;*b3=G`DAk4@xYmNj10|R@Br>`sfJsvSed6xOpC-E{c
zFp7A(IEF+Vemf&D_ppIL+xp84EKUk6PKqLj6hxrpu>;8g9BCikK2^HA#{1P${ncOo
zPkQ>Jru<)$d%7n3fw<88Z-<2TJYdzYILICMp-FttgZbC1jqTc=zslv=mXsF!c=L@m
z-u=7JyU)K_Y=3ILVTiFYb5i%LM(<>6HM?hjr`=cmxbfVdnf;8vo`KBxFZ|=<!3y7C
z_jU7jBpT-}KKDIi<>&3P8`)~!bVRTH9A9s<^U{~SzwSwHzjN*7xpeEm@Um@8i;wr(
zo%2(>thpv~($7tk-b+<RS1_Mb{K4k)Q0x2~@7Z_aWPiQ+7F^M}lhHhZ!LD)l^ZmPY
tpK0&=r+=-vZVMO0*&y4w|7HGVD0Vq!GeJc<l!1YP!PC{xWt~$(69BH+sPX^+

diff --git a/htdocs/theme/md/img/menus/ftp.png b/htdocs/theme/md/img/menus/ftp.png
index d9d96f0255b04e220db0fb0549d01c42bb2df960..a70a9d29b775c0cd504a87277e11d5de4ba276d3 100644
GIT binary patch
literal 92
zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4i*Lm2CurW#S9D#%APKcAr_~T6C~6g*iU3|
uWj2)3yzDS(vYT_J$&@xfjf)}-4A#?*d7QF(7{kE8z~JfX=d#Wzp$Pz(v=`(6

literal 788
zcmeAS@N?(olHy`uVBq!ia0y~yV9;k^V9@4ZV_;x-vF+k61_lPk;vjb?hIQv;UNSH+
zuqAoByD)&kPv_nB3=9mM1s;*b3=G`DAk4@xYmNj10|R@Br>`sfJsvSed3LsWhqp5@
zFir7vaSVw#{C39vY!OG1<Mx848eP63h6^rgbg(5SCO>9vYSnlluMoz#TSFtz(W#?V
zNcV`-g&Q|D{%Pdsuxu61xss8zP{q;0)tTktx*d1!`OXUG>EC&G=h=6a+}0l=((>-j
zK3`k@?d<Kh2FE5`-PXmkUB<5c{6pg_VXOZ+KG@cN-~B<2@ar!O%m*|Re6GFRSSR1@
zn%}c=Z9)&H&6};CxQ%5uEByN=QRt(c-=Nz6Kj!O|XAB=Aj+#8$Kjq7|mCRFF9_lmB
z)k=%~Q+w^E9@__J9T7Xvr{7mqJa0J9_q3jQd&BHY@0s5*{0`mY`5;TVV)BMhv)5J_
zA5cCWzh3ynSA!1>H(tyrX1l?~v-83I$nBb)Y5MoLYnc7a8`huvYPG@4<p@)ONX68$
zdFw6C-21$Z)xrEiYOgNS;{#J>Sw9H6mzVyuDxdYky64BI=K3+%H#%qi(flCrgX_-r
zW7}O0UKhG&rh3!tzs&7tZ8CjUx7RZFF}q*+ao^&Dbi-Y_3#t!x2Nk+);yoZe)w7J@
z?*aCwmsxu(-aWdl@#BEuHEy4Z1OANSQ=`h-syKO=c3-JF_HeQMoyd><A$0;b)cGbG
z@@;hcp!%RGW!l_pRbM%NSU&JtY_opqeU-4@N~ZX2$4+JWNlHv(TI+w{i@e^cFs2#o
z_uA)fi2CV&V5{gAyUTLL&yP;nopby@tIg-Nxh6HHPj9t%{MeetwOQi_>w}%_N0NMg
z7=1YU>Obe~JA$9?K9kts&b7p6kEg5VeqM{0g4;Rv{Fwit@$thqQ+_G?MP4X+y1Oy(
zWxx5v+@`XI^;;}%t8m$K+jxHT)xK&Q@B7nt_0pTmIPRQ1B)&OnwTKV1T}Jtj4Z>x%
v8{F>I7_r~~ru+ZM+{4d5Sk~~#-<-xM=uvfUVq@PMP=fY!^>bP0l+XkKvpZ+b

diff --git a/htdocs/theme/md/img/menus/ftp_over.png b/htdocs/theme/md/img/menus/ftp_over.png
deleted file mode 100644
index e3ea742e7c7edd0d0e970ae45c28e464d90fce7e..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 563
zcmeAS@N?(olHy`uVBq!ia0y~yV9;k^V9@4ZV_;x-vF+k61_lPk;vjb?hIQv;UNSH+
zuqAoByD)&kPv_nB3=9mM1s;*b3=G`DAk4@xYmNj10|R@Br>`sfJsvSed9Dim{ag$T
zjGH}O977@wzn$^0u*pH7)!z7DzpRJW1in2X0^SCqDlZ#K64*DgSPNJk;M&5nrr}Ry
zdY;*XgDW|n-8*xxfSLV$+5LBN=31vGEqv6;s62uH3G+|J#5KnZH)I*;v)e`2s59|w
zU=aH0mvYyC&yDG+nX@%#D~5hPH?wZ}#Ghs#Hb$RTV>63A`RtZQ!*lLu?$h@0CCydM
zS##|DB>nm;t4rih7gr}}Z@d1pBKuSD>nip&jfV`6GiVyD-tj&0biic)#z1CcIqsRA
z?Xktz`Bv`ry!tA3Zhy#@z5~-;&K^57b;C(l(;c#LDw4jgB4LaEuZ>DsKF^*hviF&}
zY0)f((_L*5Kc<}WbY)%X6c`v<)ct^M#_Adi)m76j`kzgTp4=b$<JAO9p<-RRxs@&-
zLblG?6xn4S7CtRNvHNzVfVr>rn~>D{=sj6;R~71{WzD*Na8l5^?NX1q55IT1RnR^w
zn%8Tx|G%Sk_ga}h-2GsAKjy@&ed#67?x;;PnC1TQ&)R=mtQ747&n~@g|DgCL=eJKj
z9~So88D;a!+ti<L@%=5*T5zXaf6nU-6R&)&>3Gtd!}Qa^ZUX<4cK?6k{e0gy$(F|7
P1;w|gtDnm{r-UW|wyN-V

diff --git a/htdocs/theme/md/img/menus/generic1.png b/htdocs/theme/md/img/menus/generic1.png
index 39f808bed32f27c7d591d2e68e170ee96468356b..b51ce3ed95a437af48d672cb4b8494807587c080 100644
GIT binary patch
literal 133
zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4i*Lm2CurW#S9D#KAtX)Ar`0Kp5G|SARyv=
zu_sBfwYO*05uw1$Kl<)VA70(*+K_Fyu~1h#;km2OttOQ+eve0to;3<5_<V|rZatOX
l!@lcIIQJxlse;#~ByKtyESHnN$iTqB;OXk;vd$@?2>?VrEMWiu

literal 570
zcmeAS@N?(olHy`uVBq!ia0y~yV9;k^V9@4ZV_;x-vF+k61_lPk;vjb?hIQv;UNSH+
zuqAoByD)&kPv_nB3=9mM1s;*b3=G`DAk4@xYmNj10|R@Br>`sfJsvSedERH<S}PeC
z7<YNPIEF+Vemm3F+u2a0ZN7Hd$JMhH)&__#ZC29Y;#<_+(Y%A3uQcdG`iuI4P<Hlu
zN7*;4RxH?Y!;wXsgDb4Nd#fD#`2x+P;@fxXF341Pa-2L_?RW1<oRGguM(FDWt!F3Z
zPbqDCQSEoS+BJCM{9qN4#|~E#?ubrcH<AijcI&~OhUI5<Hn8bP3z=@sPT;?B{lJ>Z
z_gTZ7r+u{Eu;O5Z@_xoQS2E@87?RCQ|8t4FcKLVuTbnJ*qytqajubmSGnncdBYV72
zWCOzyok@0VmkvzK*UNsgy}|gwmFv?&jx=QE&R+H4`Nj4-@^-%)m~GE$&F+|y5bToY
zk`nEb)Rx?o<mz(Cs{f)y@Y(v;ZLvWqjlvIPcCd1VdZfA-a-Lzfy%o1*Z=!dqU%QBA
z{OzUFSb5Lo?>(^L8oS6-u^%Sfvwr^1xe`8q<%R2~HcG2}p1<~2c;u?b?yD3xWxhIN
zebeIRmf&a6QJ?+HKv3_qADERmp?+QRv-v*OY&$b#S=1Wd33T3P6koRbP3Xr3(;j?Z
zv{Jq!LSfGJsb`tw9oec(_p!M(>gg(n?Axr*l)vxO(rG7czfXC2V!Px|`Gbz)JGe~+
Q;y}^v>FVdQ&MBb@0Hd$#;s5{u

diff --git a/htdocs/theme/md/img/menus/generic1_over.png b/htdocs/theme/md/img/menus/generic1_over.png
deleted file mode 100644
index adfa8c1599b9c2b74e15d0b86e5cba6dfbe8587a..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 486
zcmeAS@N?(olHy`uVBq!ia0y~yV9;k^V9@4ZV_;x-vF+k61_lPk;vjb?hIQv;UNSH+
zuqAoByD)&kPv_nB3=9mM1s;*b3=G`DAk4@xYmNj10|R@Br>`sfJsvSedBIO!WzQHG
z7}Gpm977@wzn%Hk_ppIL+kAz8+oc866r?BcE)d?5bAk5-+X1%3=1q>f9CtbHcAWX(
zDZ994NW+^ey1hFl$31o4`1gig{F-95&V{#Fna$e&YwxxR+MB#!!|&dgYaVz9=V>(r
zI_xyvz?}6u<nHd`Nl77It5n`jxhCaV?D<$?o{myT*nux6^8Vy)zS&YE!)4Dt&u<Ig
z_GfJ;7oE*Jv2YVpoS(_7?<*e`7thUpeZ<W0i}Z(tw=Cz2R-D(@S#ou5d8_7jSGEFa
zgH5yhzP*;YT|Ch!L{Dc)=%i04K1i*axukciaERJBbyL%|jZ1rjE*Cp)Hx8dQzduR)
z#qajLhPGw*)>=(m`7?F*1m^JP+qS>_^?UAnE!ley(NH_j{W%jdr%Kgv`gqLGxwSo9
z$tW$dpLy#{(|}9Lu^)Ta{`6UBBRq5Yc|IH79OE?B_{-Avk+a1z*MC*)O|P5s^22|g
Zf6RZSYoAUo%XI`rk*BMl%Q~loCIA;*(1`#5

diff --git a/htdocs/theme/md/img/menus/generic2.png b/htdocs/theme/md/img/menus/generic2.png
index f4dfc5f360a87341fd9e6a59f10bc733c68028ee..b51ce3ed95a437af48d672cb4b8494807587c080 100644
GIT binary patch
literal 133
zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4i*Lm2CurW#S9D#KAtX)Ar`0Kp5G|SARyv=
zu_sBfwYO*05uw1$Kl<)VA70(*+K_Fyu~1h#;km2OttOQ+eve0to;3<5_<V|rZatOX
l!@lcIIQJxlse;#~ByKtyESHnN$iTqB;OXk;vd$@?2>?VrEMWiu

literal 570
zcmeAS@N?(olHy`uVBq!ia0y~yV9;k^V9@4ZV_;x-vF+k61_lPk;vjb?hIQv;UNSH+
zuqAoByD)&kPv_nB3=9mM1s;*b3=G`DAk4@xYmNj10|R@Br>`sfJsvSedC{-xoBlH}
zFz)hnaSVw#{C1|Tx3i&0+kEY^kE>@ZtPK!f+N`9(#kZ)tqj?86Uun>X^cVF7q3rDS
zj<Ro7tyr+*h9iqM2Ul2k_f|Rf^97no#kcR&U685p<T!b<+V9?zI3a(RjL_E$TF*|*
zpHkZPqT26twQKOi`N1k8j~%Wg+!39?ZX^}5?AC)l4a?8!Y+%!o7BbzMoxp$N`hhi*
z@3V$EPy1-SVa34+<^7Cru4KyFF(jLr{^t^T?eg#Rw>DdrNe8M<94U5uW-!$^M)r84
z$OeWZI+N_!E*+Sdub2H~dxP<VE7zxm9BIhRoxSS8^Na0w<n4YpFx#Hhn%yxYA=o9)
zB_-M=sV%uF$<^hORsTha;Is9w+hT)K8igOo>|o^z^+<Iw<UGS{dn<0s-bC+IzjhJL
z_}fdTvGShF-+N%gHFlAwVn0l{XZ`%2b0vKK$_v*|ZIo8|Jb&%4@W@q<-B&4Y%6xUk
z`liLrEy2&CqdxnYfuP=JKQJqCLjAhrXY+lm*>+~gvZyt@6X?9pD86j<o6wI7rakz+
zXr+8dgu<NbQ_nKVJF-=o?qhRn)YDZC*|%ArDSzLmrPEH@exLI4#CFM_@&_HocW|2u
Q#DSvS)78&qol`;+03n_1vj6}9

diff --git a/htdocs/theme/md/img/menus/generic2_over.png b/htdocs/theme/md/img/menus/generic2_over.png
deleted file mode 100644
index c8e58fc222091713ae13ff57f13fef53b96a4511..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 548
zcmeAS@N?(olHy`uVBq!ia0y~yV9;k^V9@4ZV_;x-vF+k61_lPk;vjb?hIQv;UNSH+
zuqAoByD)&kPv_nB3=9mM1s;*b3=G`DAk4@xYmNj10|R@Br>`sfJsvSeS&OD~Jsb=S
zj7vOS977@wznyv8_ppIT+kS?i3WqFKW`QFNDa^YVa{_KGkiNhxAf3{($?>Mb-37I5
zE`lCU>nbd#Dz$XYwJ?9BEW359)bGuIe{X-yrsNcz+$`4KzFvEq*Q)K@M}F0<x~cJF
zUfL2#X4&TFY6oN_vX>v*X|1kgc2jtwi_5b|W<i3I9Uj-))HiH6#qwgh&SUqvXRkat
zz3c<?gH4M{ErKPjif32OUTeg-PD|=*@bwQ9y`DQ*8y54_^3KV&KDIe$)z5`dw=9Ci
zvfXx_VCds@E1Pw4ereg);y0JH+Osk{J6xuH%bJz0WOTKxXWquUOMcA~PFS*d%CndY
zr)R!idCq#9=##sN{U-WGspgXDUg0w0N(uWj(`T=_=l^HrrNirQR@N=GmY!zWT+c2h
z#=Bcjo8>>7jVb3Hv41-~AGkiqW<Sq;pX0+W)A*ZBwO?m_pLL%9f4<quMco^=`Fd#;
z$*unxmi=$tq2`;-udAgSY##{R&=dR<_P*FI=CFQpcs_GkgD?BJ&x<x!t^c&7XX1Zd
zr>Su(>@^SDTYX;H5dUkJ#-)k}|4)7Skj?g=ckj7x@)zPubU_j9>FVdQ&MBb@098)u
A-v9sr

diff --git a/htdocs/theme/md/img/menus/generic3.png b/htdocs/theme/md/img/menus/generic3.png
index 00769352daef5a513aa7b39eed513a461d15cb9a..b51ce3ed95a437af48d672cb4b8494807587c080 100644
GIT binary patch
literal 133
zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4i*Lm2CurW#S9D#KAtX)Ar`0Kp5G|SARyv=
zu_sBfwYO*05uw1$Kl<)VA70(*+K_Fyu~1h#;km2OttOQ+eve0to;3<5_<V|rZatOX
l!@lcIIQJxlse;#~ByKtyESHnN$iTqB;OXk;vd$@?2>?VrEMWiu

literal 570
zcmeAS@N?(olHy`uVBq!ia0y~yV9;k^V9@4ZV_;x-vF+k61_lPk;vjb?hIQv;UNSH+
zuqAoByD)&kPv_nB3=9mM1s;*b3=G`DAk4@xYmNj10|R@Br>`sfJsvSedC5N$|6O5V
zVBF>D;usQf`0Y$vZ)Zc1w)xs+A6L&-SQ{X|v{^}mi*HePNAnJDzS5u%=`ZRFLfP5t
z9cACFTCrfq4M!Gj4z957?yYj{=L<BGif`YkyC75H$#L>zwcoubaYFts8KJKiw4R-q
zKc%$oMYZ4QYS-Y2^Mh4H9y?q~xFb4&-AF2A*{uhA8kV2c*}$eFEo8biJAwbk^#f}r
z-)9YTp7zmt!-|6u%KI7LT*;KTV@NhL{m&)x+U4KrZ*8_LlMYm!I8yBR%wVc-jO_77
zkqrz-bSBxcT{<u^UoZQ~_6FkzSFTSBInt1sJA2iG=NH@W$lLvHV75K0HM?U*La<Ao
zOG>m$Qd@FUlB>%ltNx1;!Ds7Vx5WmfGzveE*}=*c>XGVV$a#j@_Ey}My@}qbe(fTf
z@wb;wW92=UzxTj~YwRLV#eSG@&-(d4=Sukel^3p`+9<8^dH&j8;gPEzyRTB*l=<q6
z^-YVLTY{fOM}77)13|sdeqdJOg!*;K&*uABv+c}~Wl?K*C(wDHQGD6zH=!RFOndNs
z(MtJ_2!%P<r=De!cVw$F-N)wEsHdwOvTw6KQ~thBOQ)T*{XXU8iS3d<<qtZF@8C8S
Qhyz8tr>mdKI;Vst05p^BNdN!<

diff --git a/htdocs/theme/md/img/menus/generic3_over.png b/htdocs/theme/md/img/menus/generic3_over.png
deleted file mode 100644
index 0672d20bce4bb1776f71dc8038e32a8382f5ae87..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 486
zcmeAS@N?(olHy`uVBq!ia0y~yV9;k^V9@4ZV_;x-vF+k61_lPk;vjb?hIQv;UNSH+
zuqAoByD)&kPv_nB3=9mM1s;*b3=G`DAk4@xYmNj10|R@Br>`sfJsvSed6}NyT+s{+
zjA@=Ojv*0;-_CsNd)PprZN9?4?a~5j3eppJ7YJ|3xxo8^?EqV1^Crh#j=LOpJI;LY
zlwDjiq~XmK-QFFO<DNQi{CmSLeoe7j=fYd8%x3NXwRhVD?M+^=;dk%LH4nUl^RyZQ
z9d?>-V9t6Sa(8#}q@)n9RVr_%T$A!F_IxZcPe&;v?7){3d4KXY-)yOo;j(9+=eLD#
z`?I!_i_YeqSh$HP&d=o4_mvNei|1y)K4ND0MfyX+TbA=hE6(fdEV(+jyj63%D_eoI
z!KT@L-(JhyE}m!<qNlSYbke62AEZ{zT++K$I7IE6x~b{f#-+VMmx~>@8;8%D-=C!Y
z;&=OAL))@@Ypo`({F%CY0(1EDZQEb|`aSo(mh8QUXsDg%{+tP!Q>E%SeLUvp+}a+l
zWRw=!&%AY}X}~4r*pIzyfBG!65uUmHJf973j&T}m{AFqT$k}3<>%S`Yrq@k*`Qbm$
ZKjy#EwNEFP<vN0*$kWx&Wt~$(696V(&*%UE

diff --git a/htdocs/theme/md/img/menus/generic4.png b/htdocs/theme/md/img/menus/generic4.png
index 5f9240240da3f037ca1918367f6b6489b972c260..b51ce3ed95a437af48d672cb4b8494807587c080 100644
GIT binary patch
literal 133
zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4i*Lm2CurW#S9D#KAtX)Ar`0Kp5G|SARyv=
zu_sBfwYO*05uw1$Kl<)VA70(*+K_Fyu~1h#;km2OttOQ+eve0to;3<5_<V|rZatOX
l!@lcIIQJxlse;#~ByKtyESHnN$iTqB;OXk;vd$@?2>?VrEMWiu

literal 570
zcmeAS@N?(olHy`uVBq!ia0y~yV9;k^V9@4ZV_;x-vF+k61_lPk;vjb?hIQv;UNSH+
zuqAoByD)&kPv_nB3=9mM1s;*b3=G`DAk4@xYmNj10|R@Br>`sfJsvSed4<JO%I+{Q
zFz)hnaSVw#{C1|Tx3i&0+kEY^kE>@ZtPK!f+N`9(#kZ)tqj?86Uun>X^cVF7q3rDS
zj<Ro7tyr+*h9iqM2Ul2k_f|Rf^97no#kcR&U685p<T!b<+V9?zI3a(RjL_E$TF*|*
zpHkZPqT26twQKOi`N1k8j~%Wg+!39?ZX^}5?AC)l4a?8!Y+%!o7BbzMoxp$N`hhi*
z@3V$EPy1-SVa34+<^7Cru4KyFF(jLr{^t^T?eg#Rw>DdrNe8M<94U5uW-!$^M)r84
z$OeWZI+N_!E*+Sdub2H~dxP<VE7zxm9BIhRoxSS8^Na0w<n4YpFx#Hhn%yxYA=o9)
zB_-M=sV%uF$<^hORsTha;Is9w+hT)K8igOo>|o^z^+<Iw<UGS{dn<0s-bC+IzjhJL
z_}fdTvGShF-+N%gHFlAwVn0l{XZ`%2b0vKK$_v*|ZIo8|Jb&%4@W@q<-B&4Y%6xUk
z`liLrEy2&CqdxnYfuP=JKQJqCLjAhrXY+lm*>+~gvZyt@6X?9pD86j<o6wI7rakz+
zXr+8dgu<NbQ_nKVJF-=o?qhRn)YDZC*|%ArDSzLmrPEH@exLI4#CFM_@&_HocW|2u
Q#DSvS)78&qol`;+0J&%EdH?_b

diff --git a/htdocs/theme/md/img/menus/generic4_over.png b/htdocs/theme/md/img/menus/generic4_over.png
deleted file mode 100644
index 6a4d7b1acce5db322cde66f1e2fad71876449e3f..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 486
zcmeAS@N?(olHy`uVBq!ia0y~yV9;k^V9@4ZV_;x-vF+k61_lPk;vjb?hIQv;UNSH+
zuqAoByD)&kPv_nB3=9mM1s;*b3=G`DAk4@xYmNj10|R@Br>`sfJsvSed1b4)>S+uN
zjA@=Ojv*0;-_CsNd)PprZN9?4?a~5j3eppJ7YJ|3xxo8^?EqV1^Crh#j=LOpJI;LY
zlwDjiq~XmK-QFFO<DNQi{CmSLeoe7j=fYd8%x3NXwRhVD?M+^=;dk%LH4nUl^RyZQ
z9d?>-V9t6Sa(8#}q@)n9RVr_%T$A!F_IxZcPe&;v?7){3d4KXY-)yOo;j(9+=eLD#
z`?I!_i_YeqSh$HP&d=o4_mvNei|1y)K4ND0MfyX+TbA=hE6(fdEV(+jyj63%D_eoI
z!KT@L-(JhyE}m!<qNlSYbke62AEZ{zT++K$I7IE6x~b{f#-+VMmx~>@8;8%D-=C!Y
z;&=OAL))@@Ypo`({F%CY0(1EDZQEb|`aSo(mh8QUXsDg%{+tP!Q>E%SeLUvp+}a+l
zWRw=!&%AY}X}~4r*pIzyfBG!65uUmHJf973j&T}m{AFqT$k}3<>%S`Yrq@k*`Qbm$
ZKjy#EwNEFP<vN0*$kWx&Wt~$(698k_&u0Jt

diff --git a/htdocs/theme/md/img/menus/globe.png b/htdocs/theme/md/img/menus/globe.png
index 8c2380eda131f90b77a1f3792b2afbbcabb5b7b4..0bc7dfd48026b9d341ad11217046b949625fd402 100644
GIT binary patch
literal 390
zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4i*Lm2CurW#S9FLzMd|QAr*{!FZ*VRI7+ZR
zP|Dc8yhEVg;l0A57mOlGe9DoXZYmWFolP_LHZ9_IEKn3mZfW@bfxmF-lD97eO>BiL
zTJjB3&4n{#e$;hWE?>dU^=$T+{f{TGzTPJ(d2?IZiV6SbToY%uFA1JKpD)dZ_5Ia~
zZ06f`4en_rjxqmVuClC_YL_)MGt0i1H-S&$$k*UWqBi}Tr|;0V6i$g_^SWQC`zxGD
zE&ZeBE#E6$JYru?8Z?*IezI!ja$l_buv6ujv5uQ{<60g!3xT(M?|ct%<+*EL@L@jv
zyI~Wrmdx+hll_v6o6Ucvm^N$Qx+%PPt|Qx0*_io%3YIUPd-(WCXKh!uld6BZy1#!^
zIv1B1SrpgYefMd#%o8`A`zPi+{%HAn8XN!eHRS?!t2aKB)rvpR{I2SG``Z`GiW2|V
u#{@}5ZC<)D`|_&Od|t5^(*Mc+VJltvB;0S^%>)Jp1_n=8KbLh*2~7Z2ET-H5

literal 1175
zcmeAS@N?(olHy`uVBq!ia0y~yV9;k^V9@4ZV_;x-vF+k61_lPk;vjb?hIQv;UNSH+
zuqAoByD)&kPv_nB3=9mM1s;*b3=G`DAk4@xYmNj10|R@Br>`sfJsvSed5yLH|K2e$
zu!wuQIEF+Vemmo1_Owuu<Myk!85KtFb(Xq)+ay!_?6yT=QCC*U3%M8=bSVh4)Q4`c
zU$8>{kE%dd&xww%6Z3_fPOT}~uwdJomom@7%!IPeUU_L!bH8zU{62oU_w%0L-28p%
z%LldvJI~vGpI5x^{CC^$_df3lO*<Ad_4SOyL5%T?@r?6zz8(-uIQ+js`P1Gqx3IKn
zOG{_o?1-IKXncFp#WJh?-B0u<F<<h{u6J(x{+j6<`>wkO)*sk$D{q0k1S6lykH{t0
z6z9h}$X?*JVXNWT!rXs4-re%d_0@`Mb^^}QS2l4Z6<NJB-z;W)J1=cLOQEpgGRF7D
zn-h(r<<D&Oh(B?`U~{eHwbsH{XW!VKT{~a%hisB%*8C%DBJ<L2pIM_G@me}<n|flN
z!?)GON9q;%(nEc6H*;3#UdUzJ#~jDLkHN0@<bkON-a5oRu5Or~QXIBx^8vwx3on%_
z<tqICl{4OFIy=jn-G+0{2R6kYX%D;;8ZYnV-=o#e?`_WbhIL<1{3;#Rd93r;X3cp&
zb=K{t*Xq_!_h#A8TXC#c{mZd(M){=;KUiOgI@?>+u6HoCESlBe_uyTFihe$0zE;}u
z%lkFv2OrR9sA5uo&tTo~_JFXe!EL@bEOIjz-i<$?b@Oe>FZssaiwEX^UftN;IJv*k
zEy49nOqk}hglg^!S{sxP<mSnnzIwWjVZRN>rNvt+x9~hz+QeSLBEhte?V4q+yUdTJ
z4hMVrcg@}y!1m*$(A#L4KGTD~wyL@7_$8#m=I{49bA5;N;oHw2A82RPn<}{{=EG5z
z4@Z|QF7oS4|93ax9q$8)51Y#BG&il}`F;NCt%kLJ_xbn8HvK;vt7ezWR{HjQ*)5+H
z`8;px`;+TfPO$E-lKAmh>**iG@>dnV7g~I1Z%oarQQzRd|Aa-sWt}E@)^i$ZlQ-|z
zun9gO&wA`jsqo#R(pCT18miMj&gnljC2YZ|oBS%d5npz0Kh+z);?x_z8zt(Y%lcMo
zXur65I_`nn0<nk{*XA(&S+a@Y!NLdOul<<qSNvM&_*k{-pZnFM-DYPBzeY;Pa{qBJ
zV&4!^+k3fw@xI_+95wSfl-|xc&sy&|hs|#CVyOo;8}<qA2z}#Lt5V(Y`)kaE^}+uZ
z75-iwYI@pVQ^F%z&hq~HDV;poA{#i)To;`i&gG-Nb4F=;!~U<U=UiARHdXm^<8qnD
zlYhNX<gS<^Hl5|0|MM?Q0c*P#TP5ETNxpV>&6LPBS=;<~_9cDMa$Rh*U*NfgcjW}(
z8*?IFU4QnP<(XyKxt(^ClCA2bQ-sx<l~#xSv}gIFU9{?}&&mhcjlW|)1ny<{<zX>Z
zOyO8~bH@tix@oo11+%_t`mH*%#2`EP!^IEU`+O=d)N1;^nttNR|EQH(pKq}r|H^bm
l^~2Qv&$S<b;QGX${5uwQo@vWc*a|9BJYD@<);T3K0RWchC9MDe

diff --git a/htdocs/theme/md/img/menus/globe_over.png b/htdocs/theme/md/img/menus/globe_over.png
deleted file mode 100644
index fd1e54f4754189e57bbdb7ff41d7c8e7f2618ff4..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 844
zcmeAS@N?(olHy`uVBq!ia0y~yV9;k^V9@4ZV_;x-vF+k61_lPk;vjb?hIQv;UNSH+
zuqAoByD)&kPv_nB3=9mM1s;*b3=G`DAk4@xYmNj10|R@Br>`sfJsvSed2JK7^&t!l
zOlLe@977@wzm2$9c-w%d_T1O|w-jEnTx99p)o8wASEE~i`U>+Ew>YnGF7gZbwZA;n
ze1f_|y<D_}d(fuj<DPyy4$pO+^+1`!p(3i2BW~552dt-=>KOMo^n0@{U<-(4Xy3lq
zGHYtbnTtU#Y(MoEcU&>P?sxNS=6Ub)8&7`CPn)xz<wL?TD~A0HJy-Y|m<<?SD3=vw
zInGvXFl~@$xX1W|?E&8b+qa_qA8XuLZ7*JO7A@^-m^VjAU1_`0Ceew<-bf#v!Sqf-
zYwFC?z8rIz_uN%qyjf+#f0ZBCB;GUq*L<N_uJohvwYl*(ez^qE7r9vs^UvOJKlW+b
z#~W@%hmV^|Y?fXpX=!F;K1b?vP~hHL_6O67t8YmM8Ri?uzmR=>aN@n2Hk)q!xV?F*
zPO_>{aO<Rb`HVFI=c_{%<%BBtKR(;D?ADiOW`EvKGP^EVJ)glOrhfgg`|>x;J(HF`
zj8R{H@=goyQ|4uR)*rmis4VI1IZtAb!4iQLIsZ>R@Ab6My)Vi3bZXS}-YP|<7Gu_Z
z;h~SEf+S?h{xIzEl`BvEFjH&&<OlOt_iXIEnyvUCX-kNqy85f+Yvx+wUn|6!_IJx{
z*k80mWMYgB!+Rywld+sN=7FsI2g)Z}-QMh5;dOH(=V_iFwOoJXzt$YLOW~1ub7@m3
zU(9itoYlUp54x-Vo!TgK;Ju6UGtCDQ9GjcuzVOB+&RRRcSN?f(RyX5=w~o;=8Nsnj
zj^EHq3esFvwkl6#>y@CQeVrzqo<>0oKO{f6xXChgzJ1R9HSJ6BSwWX2&;KV&qzQgF
z6>#8;z_hBg?GmrGVw;$voJ@{&RJ@APPPPeulWvpjZL=caVs-zOM-fbU_B@pgYpoiV
z=Go@24D6Cr*&AjS{dCEjEB^A+(swyXq<#sgQ%PT&ne3tRTqm!_r!*sE=|Rb@#^x5c
x{}sQ~`nx-2c2;A2uJ@jX_yhV6#6L`*yg!%kh~)FntJZ)rf~TvW%Q~loCIGV2ZG->-

diff --git a/htdocs/theme/md/img/menus/holiday.png b/htdocs/theme/md/img/menus/holiday.png
index 493974477f38e5669668280796e2427499c336f7..014c9918c2e1fee9d00082877de83d6a6dd4ca06 100644
GIT binary patch
literal 308
zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4i*Lm2CurW#S9D#zdc<XLn;`rUQmr$Tqx7<
zv3P&gyO&jwQL%fsRlW0wdS5D<zhm+SuD{LM2lpn$|I5r1ocH$Y^X1pqG30e;Z+>-T
zW~uYPiWsl|DWQ7oSuy%+{$E^l&7bq@v=pNUj*7B<JU<`RRrI}JGkB3#XRI4^BkXZn
zh4kjYi2b>tYn5mE{1Vu=XA)19-lHFx9%jE69o=@htwq1+rH0ssuBz|3jvoVqEe<B_
z2ot?rT)?K3H*3Nr)9NUl1lf}I-QT|jSzUH@3i{pI`g;Z6Ldo+!;=CW(H#`hIb~`<-
ztEJ)%!vvmw(bg*>_j;bYI>nezxK!+%W;p5pLr1Uk{F2{4-b#JSbUrQTKf90ZTm}XP
N22WQ%mvv4FO#m)+i(LQ!

literal 1086
zcmeAS@N?(olHy`uVBq!ia0y~yV9;k^V9@4ZV_;x-vF+k61_lPk;vjb?hIQv;UNSH+
zuqAoByD<C*!3BGlPiA0X;4JWnEM{Qf76xHPhFNnY7#JAXOFVsD+3)d)F-kE!?Ohbe
zz`(rE)5S3);_%xU-uW`FBCY$a`5%QBFdZza==vbg&k>-*9CU<B?9B-_6%{d$4pr@c
z%=V0({~5GZ%yg7y&SmXWQW6qzsgRJIyixf0xg(EfzC7Gy9JKnST)({S$)t59SMP>i
z4SgPVxB6AsK@T^hNfUXT9~oFrE)lBWnZYQ>bj<cxtpo231~H{ar)(MHf@CY?D}*ap
zW-uIE6WTB6z<Pu6ALBo^eT@71I=(J!o?gOa!M%rf58E8JSIz(UVwm<ZpJTr7cH~$<
zjqjx$OZrt~FCBcU?m6G9%K6e2g9H0DUe@qUI5JE3^fmQKyJqg{o^)?&NlJjs)Y?b!
zpNsxad)$_|U83Yo-0kTN=NtXmSOagX|6u#T`a$&r!v})`o(g`8#|dk9|7Y0N$Y(G$
zdCeL|8xEi8Ty{!U2UdxCnr=QL`XKYcj^3GUaqM+0|5)yA+Gx8r-Q%&*1+D65pL=$)
z>M(GdJzK&1OW+4%1dATiX0vr{IY0lld@Wy4dHzk)q;sCLUI*9jH{X8m`^HVoWdRS8
z9d1XdbS5)-POhH$)2s8q;k?VQ8nq`pt3O*RbEC6k?!sSx^sFnAbi1ar?AST~TsHHW
z2NkPgCoM8#j9nls=(@-5W_IwgGdxD0&oeKdqqvP{+3Q`r`61W2Vm=k_KKkq~lRbY8
zi%s@@Uzvu|1lAv1Kh`XG|9no(+UbmS6B_=?{kS^k&c`+3f95bg`}N~D&xLo7!<L@^
z!}>t$Ly=#Uv_ojnRc)iU5;wedPCu2@9DC5+Md_u{hBvzQXU{*hyH|K~O?cMD$}>g<
z&(}3>|MNz4#(9S0?tA#}Tvxd;rG&A9>&MbH33s`FNZako72DZ&U;3QJ`B_WF8Vx<?
zifmPjyU4uzvcqu)&(8-eADo=C*4C)9@^ntf=b2kyZ!&$L|A61$g?Wdd;N74D-c`p=
z*Gp9}SxlPwb<g)j#@R{d_P>3u`?{?+vajPRbEA3j9Fz6)KZPC(nJ+xasMPiT6N%ej
z?`?b+-D<i!gL#LX;Mv9l))Qxa`g&CR05>c1BxbMOTkfvai@o-BUlH$)ylq*Gx4pf+
z-|pPGvn=j_9BW+Zg5K)jTc;PaUkuYcHP?6I(N)PyABz5x|6zP!@wS@PE)9QAg}rqX
zzIS%JtT6BHu-zS6>u1SUrJsJ28-De?QE%q&HM=JzZT9mDWvM&rV=&R`Yj}`l!28{g
zenp)+aj)DoHAVGnyqVdh%+g6-s(H+_1q(l4sIY6FsI_u+@0-n02^^LOc5A+s6@Slg
zwj+c8>okkQF*pA$j-N1XYGq%Fin8R%gHPl6*D#hGX_*|#z`(%Z>FVdQ&MBb@02MO!
A7XSbN

diff --git a/htdocs/theme/md/img/menus/home.png b/htdocs/theme/md/img/menus/home.png
index 2c174340c7696473d43c94ba34399b19fbd6fbac..1614347a829d55ba7c165290563c4979eff8693a 100644
GIT binary patch
literal 94
zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4i*Lm2CurW#S9D#s-7;6Ar_~T6C~C=u$MZZ
wYPO1Txyr_aRtG*h7^nBC@pe5<T)@Dv(e$4{!hx7F1_lNOPgg&ebxsLQ04_}%BLDyZ

literal 679
zcmeAS@N?(olHy`uVBq!ia0y~yV9;k^V9@4ZV_;x-vF+k61_lPk;vjb?hIQv;UNSH+
zuqAoByD)&kPv_nB3=9mM1s;*b3=G`DAk4@xYmNj10|R@Br>`sfJsvSec|8}M=-Uho
zOzNI4jv*0;-`@1^I2$N(;N$rd8pi*oMBGr2Hj~g?y5wd=#2KfJ6H>ym%rrQ;%@)0h
zICJPwnh1BbwDi&qN|76kCT<84dRh5-x7q%c*R${a`FH01zkBa9{q9zM|9)=g_uqcc
z=M}$u&)X`%vucgOflWN|0oxMSbhU<wU6DWhmUUkL^9^&4RKD?iE`K@Q-}`dAKv&O4
z0jEs|BF>~4wHVw!tmnBuJWb?lP1AnMQvQc>+m?KeD=WWTnx53|>!9tNZl3or!7Bf0
zM7h-F3Nh(@)7h^-R`W}#*fssmah7|>n%;|=r56ak_HsCXI_u8Cz&|IF4MH{?k~^^Y
z#L6$KeMe7x{+uXW{O0i12*dm97EYLZh}&kRR?fG_TxC~6I_n>q+|y^R(_L1uiGS^p
za2fx4kHjCGF$ZSZeT!dzDQB8=o$<P)d}pZ>$9K$Q|HpAIX-lH)2g^O@PMHNqY;8#r
z_MT+3@{{p4bB<rk^B()o%-O8{HuBY!_KE=4iCncD3wN&4%DKe;V~N&}yz}*k*2|Pd
z8&0aLo4(NcR$=DKE1&OvFz%lEhHvMci(Yq5T)5lmU0Pw6Z+t~hAn$IqOZQI|rka(u
z|EkYVZ=D~_RI_wm{`8i7@rHc;cHd)(Rz3EXZ_La-9>~)O(3CDrh<@btU5@$cZI#m0
z*%9;BtKL4+w0^0_RmS+4&-e3hdLI3w$=6iwMt)__r+x3F{q(sHt3KTH>;J^Q(<k14
jITS2eqnx_nfBRqd+e@pC<fH}v1*I`hS3j3^P6<r_%>Otk

diff --git a/htdocs/theme/md/img/menus/home_over.png b/htdocs/theme/md/img/menus/home_over.png
deleted file mode 100644
index ff0d692307f28e4b34e49314a5c525e8726feffe..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 484
zcmeAS@N?(olHy`uVBq!ia0y~yV9;k^V9@4ZV_;x-vF+k61_lPk;vjb?hIQv;UNSH+
zuqAoByD)&kPv_nB3=9mM1s;*b3=G`DAk4@xYmNj10|R@Br>`sfJsvSedBc+`VR{S<
zj47Tjjv*0;-_Cp=*kT}X^uA@ybiO@&3!1$-uQ!$`sLm1fU=M1N?GRlddxY;r!ruq?
z&h}28%-iDq=*{fJAI2<oEoYzU=5%oEe8nc|{m^zRYe4&sfQOZJybFqD%$v6HHi$VK
z{T*MEGsD;4#jaa%`@gKq0uz^>&a#p8^WK<LA;DnVu)Fi~yvn=F1wNa$A6m`u=MSTg
z&yPvf?`03<x&0Qu-zdYik2Qhuj{c5gy7o1dxj)qR{R|5I!?tPek}~m2g=WTYm>X(6
zDwN+&ba<uCz9GR#qjSY#i%m84>e4KmAA1y<{y3DsGf?Z*(hr(nws}7@U!8rRtg)y}
z#6Dj*`47v77hBG8=X{uD<)O22TI0r$Gd%|bU%c*T{_mTxe0BDL?T2<1TYUZ++}if=
zk*j^J#-2mkf9y|wp6fo(pKsr#4S^M{;Xgtj*cY|Qv)0*cQJEG!=lS;^KkGx*v1IQ&
jVVBqa!2Fl6<)nR#F-#ge&K0f&#UX>ItDnm{r-UW|fvCz5

diff --git a/htdocs/theme/md/img/menus/mail.png b/htdocs/theme/md/img/menus/mail.png
index b7ff50e3d9990ba330c6e079d8fa2938b90507eb..7b65a3d522e233755609ef0e370b2fdeb25704b6 100644
GIT binary patch
literal 211
zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4i*Lm2CurW#S9D#vpiiKLn;{WUO4E<>?qRk
zkbUPm*&}K`vYR#vC959uy5p22{O;(@#nrMuj$B^Af78<IpQY`Les=wJs{CDR#TE-F
zwk%qHi9zP<zgKrT>>VZMgzjHGk5{SrWSm9C<wuYFc9^Cfc$Jd=JcV_>-2Qa`Fe3&%
zzC-t(nC72hShd-a!#plz8^f8tpIMww)=BGB{mMuPvD$av{KC(Fnm?Fy0>AI5+&N2;
Qfq{X+)78&qol`;+0AC+eZU6uP

literal 718
zcmeAS@N?(olHy`uVBq!ia0y~yV9;k^V9@4ZV_;x-vF+k61_lPk;vjb?hIQv;UNSH+
zuqAoByD)&kPv_nB3=9mM1s;*b3=G`DAk4@xYmNj10|R@Br>`sfJsvSed6S)fixx64
zF!_19IEF+VetYA5_t`*+;~%dZ+*~k)w^u+_y7y1Sf}B4$dZ#{dU*b7ANQm3aOe1x%
z%g?#;o-2Pcr*yOic}?DA*z2e^>7t8q@%x^_+<DRW_nn<P|9*A$m)ch)zwMsSdA{fU
z&v~CK=T*P<S~}@vma$Lr>4(KXWbE3{KRmwWS7BeY)Y@s+`tIpG;D1ok`*8asSFsQE
z0V@pu++Wjoc1yc{--G(rv_G>{9<aq6S#<Ki`56p<81@}c-)Z{Da+@#HAB}g3bxLtY
zb;~}u?l~Iw<w&vM=A`d_iSI0uOc#jic1pPJaS4888T^BZ?W0xMufiXva@E%*9@QwE
z^?|`Vs967@!Y<)`s}3B_pL2lqkB80<iR~M;P3!s2Jx;l^`O}a78_lmfH-@(B-&U46
zxciFVwg)~A`u*mc>`b3UzA1CpdbZ=?>*XB$b1nL6Z%q8K{-Ev|KL<zoyaj6yMYU$V
z{FBi7Z{Lm`FJlZgH|1AM*~%5^{j@;CLG{Psg*S5py|yf$vZSN^;`K)78!?Ju&$5g~
zZdnH{$~tCcb2RkJW0`kH=FBhr7rpqs&b{N}H%*-O6uz$c%Tiva@$`QG)<B25{$Fhm
z&SsGF`0@L(o=o=~Lz$UYJ3p^lYqoo%l)M{*ezZT=o}754jbGconO_OgGEWlSRggNV
z)Yn|k{Z5+B8rB-+Z4ZR={5IbDBef~AM|sDBSsy-ckey#>zS!tzbj&-alxM3{SANQV
z+x2<g($b{Jt&>86)WXAFvU?Qu28Dgt8|ZTN(lMJ!r9b2ESk~~(Km7aynELPj;XlJ_
Wg-53hx;buvlA@=ppUXO@geCyIZc{e^

diff --git a/htdocs/theme/md/img/menus/mail_over.png b/htdocs/theme/md/img/menus/mail_over.png
deleted file mode 100644
index f9de32d30029fe43864afaeb341ca2204ee30d83..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 534
zcmeAS@N?(olHy`uVBq!ia0y~yV9;k^V9@4ZV_;x-vF+k61_lPk;vjb?hIQv;UNSH+
zuqAoByD)&kPv_nB3=9mM1s;*b3=G`DAk4@xYmNj10|R@Br>`sfJsvSed2<E#&(aJG
zjMF?_977@wznyV6@Q{N@tG&$qgIr6Pw=+Al-fG;)^wMF4!&-+m4r>ksG%jqu;ke?#
zuLoy+(#}qrq4O~P+nG1a<>fc@pUm6L$t?IVqV$-c_5t=E4Dt_{Yu28VUMKzfMX=_C
z-wpkZ$LBp%cMz)jC-N}-0INZUrP_h=_z%*rKbuZq+^+j=9^?E2Pp7^A&Nctl`p|nR
z9DA70A6SuCv{aOF1Jjvxx77k0_*eg1P`pfSYtVyJtIjuiyiY3b^q6coIbJoaR!eE;
zpQ~4*%!MYV9^K{R(zA72K*;f{qH=d_)-ptEZ3*<aZj<}4)+Ke-_CH5g-OrG&37zpN
z&Uc=?)4At-oB5=#edF5C@UFr9?BCF%vv!_a+Zb+|Z(jN0XX`m#tus1VFHRWcKb*M3
z`+Rw8d82sp8-t~qOGEbX9~N7?>E0!#nTMyeo;0u8G1IQPE{dt&YMBTxpLzZV!w(@$
z=WUPVtmgiqzvtqT4~*}2F}z>jSmvgF%gS!*i-X&Ye|&PjadA&WdS7$;^i{bh9e;FN
h!vd~>|ARWqf9BO3D`S)<WgY=Vsi&)-%Q~loCIGrw=wSc=

diff --git a/htdocs/theme/md/img/menus/members.png b/htdocs/theme/md/img/menus/members.png
index fb72919971c555e17a11bb4ee4d0bdd22e2a9cc5..9bba632552c230fcd9dab589aaafcb8e3948f985 100644
GIT binary patch
literal 145
zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4i*Lm2CurW#S9D#5uPrNAr_~T6Bcm)kpJ@k
zX}!~ftN$HZ*bbd?e4y&YEFe(Ax@nf+>P88NbY7EhU$hs+d|_IsIHBXo_ecBf{Z?<R
z5}6<Ua>2s`_3R2Z4s+NRBw0wW=xlt)z;I~cbpA6A@s}AG7#KWV{an^LB{Ts5e2+DV

literal 1044
zcmeAS@N?(olHy`uVBq!ia0y~yV9;k^V9@4ZV_;x-vF+k61_lPk;vjb?hIQv;UNSH+
zuqAoByD)&kPv_nB3=9mM1s;*b3=G`DAk4@xYmNj10|R@Br>`sfJsvSed8@c@{mU2_
zn5THUIEF+Vemm1Uhc{5-c>VM&+o-G8qMME_4zYE*knw0@hDIkVx0lMBHxZi?6vfOU
zgmqMuI#^z=3z1TEYFTtq;mT{XP~X>rQ8Kgtt4w}&ZjP~W?vld&Pfp*N{n`HcpY!JT
zv(ti(NwBTvNfhv&Rx_<;+MoRsUmkeXsJ36qg89yrIL5N0DmH8u93@Qa8>A1&uYFx6
zklfSVXLu~e<k%mM3)P2qtlNG;;<C`Dd;G~~{BB!m9#<-ryOD9wgi*Rdul;Kt^Jm!t
z>BeIV4$8E%W;JFlINmgyC8Q%_Enm=zjd~0G+%#CE8jRZa@-we)VvE(OXNyQbXv18_
zytq-=p_1WUU%}l2VGm{;W}L>H|9Db96PMGm{S2l`C5$t&BiBb(G}K-)xXE^>cXn<Y
z^IpX&p^D{ej4wC66;0cG&5pNb+XLT8Avaa(`7fP5l)L@GpIx5CyBd#+z1gh7Sk11%
zD_O6<{ZuhWmcQ7qy8CZG-`D4VGHv6@`OMdte=5%S!*Rq|R^{@Y^#?945&foIpz&ne
zIiY3hP1}C)#m-9HBYcB-%NO_R3mh^092)vRq-2_|US>Oclj%vC#ChK0=_{V3Gh{QZ
z*})dUFsF1&m3o0^>v}Vm?T6h?ZMC&n^h#3Ye&gc<8VT!Jx5xjhIhA;y`Bd3P<}x{h
z+d>m89i%GO7RiMq%CBnv@@w|eX?w$4Czcn^p2}wzqyOkB*8_z+O7{=?S+9v^?dkTe
zTT|6NUu>_&pD6Y<;R|k+W=QX|()%gOcWozY4U^ZEXSY5W*T_B<Wv@w%nIHcupl02x
zU5ZW%S250GmOW6Lx>`YUmD4v3uAiEGQ$Kfd^e~9IE7<dDgawE3pDFZ^ns{Qm^@NX6
zS5*yfHETVP`oNUI+~u?(HL$jB)lu>N4F0Wadjeu@bzfiJ*_PP;%2RjJ?Jp5gsSTY6
zPDo6XU%4~0wBK9j$H!L-*E~_Tn2>pGtCFL8q~fQ{yC?Su<TS2+S}e=4_v2oJF7JEq
zxz<l{Yksm_`=|Y<tqMPvFd0S7TxNc-TiyRsm$8$D<;3@Fb}K%lOyY~}F6~e;imcwt
zTe&Ff<QIz>!k^q8Y|=5*Zg#y@s_T{Tb)VSV>h1R0z54>irFI_L=2a|u#PyQieEDxG
zD)}`jufOa*o0_Ec(0pa$0i&f?EiUohVcvIi=A2i{`LkM2i3pb}%wEzso$JqyNm32#
z8&$KGx~~wZe6LmCnd4rcJLOc}sWX%QpFi=RRkvAx<@>pb3ZM+_>FVdQ&MBb@0D3^m
AKmY&$

diff --git a/htdocs/theme/md/img/menus/members_over.png b/htdocs/theme/md/img/menus/members_over.png
deleted file mode 100644
index 8c77498c304af9150165b348fc08498d7aa3f11c..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 720
zcmeAS@N?(olHy`uVBq!ia0y~yV9;k^V9@4ZV_;x-vF+k61_lPk;vjb?hIQv;UNSH+
zuqAoByD)&kPv_nB3=9mM1s;*b3=G`DAk4@xYmNj10|R@Br>`sfJsvSe1;*{lKKmFL
zm;yXq977@wzm2@;`^G>(M&SQ+J_FGQd?!{nTyXSi;9J+CeXt}!tD;i&Nod1Mg^+|g
zvq`NUHrdZvJR&vi6V|Ig{`k(KTrl}aey{hRM>h_>e^CD6zA&3Zb>0VE2KIyr$C+Pn
zGnzB>F{m-DXZXj|F==}BL<!~3CWdbE)03wd=GaLm^Ay_tijgZbl>fZ2veB^U;<~4a
zDVLddsF!9>wyblE>;2Q)8N4<p;#%*C#NMllH|NevxqszE+9{R!DUEGY4$pXEcg>@H
z;@QR<w-_D>9?+fm-fZFp&I8qjjdvduNEWr*olZYzpK{F1^vrX<@CnWp0R?65&;F~|
zF4*B|7=1gW<oeRKFM2_1@`CQ3+7>0bxO0NZ{>+6OH)Qm#$yG3%=l(zYW@X@px083a
zw<;Otrt<3qp3^z`D<-PA^j>Z%KO0kkJHxD}3EMWX^L&^Vb3#b})zrDSuQru;xkj<h
zes<@Z!|sM~GmW+x!J0o7H<d2dm@4&cdC&*PgS)i1u%F2*jr!p8^0VjWi*12(gqP<A
z$zIHfDf)TgSn{LXdq&CDxs#<tqIg)(w5R;@4D8Z;_Wp!eK4XlyLH*nqX<5U2o7P>@
z`r{e@P~-Vd<%co6-1`E5{K-?cw#iVRUT64Qf8BWzFSWfwN{RKt9~>Fh-JKUvx$(_<
z!~cJ-?u=m0XSC7z@ukrDL-y|9EDzkyx&5$t&}A_t?wo^m!rSmpvkt)n@>Bnb-WT`Y
zmuO^maLT%PZo92Qejk4xey%5Vrns;zo;kYGCup|&N<U{$&zP>_hWqu`ZXW#q<OhRo
Wp>xyL>(=K$iP6*5&t;ucLK6VZ;y5<|

diff --git a/htdocs/theme/md/img/menus/money.png b/htdocs/theme/md/img/menus/money.png
index 503e5c67519060721c3ab0f5bc146292530e9f7b..fb04031d47a2df76d49938e674ea79ee0082d470 100644
GIT binary patch
literal 179
zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4i*Lm2CurW#S9D#Rh}-6Ar_~T6C_we82(HD
zJIr`8s^hA{$N#2sybdo{{<jSHalJ7s{?P@7srMK!Gd+#}rO#C)q4)HEVwAus#X84u
zy?_6uB5u9>uf0KxHRb7yWrwFQFa7_zY3m=AAj=v27n|IFhL&V5n6}qq3bX3>$A-MC
i*<@{&^)eYTFjVC&UhN#=pUA+#z~JfX=d#Wzp$Py$SVb%V

literal 1259
zcmeAS@N?(olHy`uVBq!ia0y~yV9;k^V9@4ZV_;x-vF+k61_lPk;vjb?hIQv;UNSH+
zuqAoByD)&kPv_nB3=9mM1s;*b3=G`DAk4@xYmNj10|R@Br>`sfJsvSe1(xHUI}8~Z
zSh77`977@wznvNFBO5BxwttnV?pBT|mzY|E47Oeq%bB`r>qWCJx7;rWk1cVlHBkI`
zRAO<y-H(Jtfx@PC6`gh!ot|G$&QR-BV10ir&Sa~&;O(wUPMR7K84J~ZeDXDtd@j>=
z_~c57uuYr3OQ!w*J>N9@fA!h4Yd?NiT)uiPS?V^=PsvZlPts4EpYXqa@_vP8!><RH
ze!Kne^poif<u6Me9J_woG2310f7bP9jmTDC(GNBS>1;FJGx{?$KX3Zul^|`9&$Yw(
z0Ix&%x|8o2wKg^Em90>i{zRNPK3#CX(sb@`<_qL^sBqsnyYt%5q6d}<IbHYo_sq=x
zboYSfgSv$Hwj=wCYHscfm~FOz^992-hS@pdOAlJ|y<xN4c6W*S(^-F{4@^D4eju!q
zb(<C2;=|ip`F{u$?0y{Ybs({nYfVqt4gSW@jk~|<H|}*v=lW2!Kx_wB#PhB18?H&b
zX+4m8FM4|0b^dcZWnawnc@obo$G*<I+*|#lT6JUj+&_sAG}lkx^?Kc@fUR-8)yjoW
zwlk^w%&$EV^dRc?P6yKo{5;I=EVeu~$-9LrE^YL;ekXZ6CF}43Wj1x)pSlNZzkO%6
zZji5C5HgK_4XYW0c7x#OTJaB70h3z4?i8*lTQo<XS*|#HKhusguhpITKde3~eSj&U
zF5}Pl1Gn{V#fB|Pj#P-BpK@>=(?7Pj30JBTECVF9u4O4FTQxQxc<%N$FuK9M(K1qD
zzq;qSd`2^-<)O307Rz0+OH@*xCh}u}`DzPs=KM(YT!weEl|EiRpuH+K>QniSz4_Bv
z4lsPE?#S3OV>LsUlki?<5$);Hb4!XfSk;s5weO2|Io;Z_leHrLXvT%pji<kcl(A%l
zr%J`>uXR{l`nP*obaQT?)EdU%!sWTl1*JltVpp9lGTnCfwdn!ZiL;*a|D7SYo>4AD
zZnpE+pvkF+)!Etv(yr8Te&ueg*7e`#G3oQydogd{%Pp>wut?rnaBP3*ZwK$U`d@y<
zJ!t6Oac}*q2l?zrt>q3nt#Pf|%E)u<4I7`Y$j|7hyMol$eG*;oIb;4?p<Nd}uSd!0
zGv^uIGUfcd_q@}_@I9O-|1W*C<%a;PokL@hWVq0rfZyy>uVp)(ny~(s3A4WR6feWi
zJ>Qs)^D!+>D!UPOYPojitu?|GCs>6w&SvoZv{7GQSbo+xY3;M$Rp0w;3cq!mPEmXG
zIb@^gsxulNGEF|MT(aq?=i@6&t*_`a>hb)QD{i-4;<TmX``U`96RUqGeONr>uHH4P
zkC&GDc7D3{Eb)?%=&}g?&YuD=!wdVQ9v%zu3`jb=?`;0#RJ{|AOicYZ%%~SyZn*A9
zM|aKIR|aYGWCP08Hz{r1YgY2*qVU1jSD5$gtV&q!v^0NWa(1oo|5a~;=g!a#i)}Lc
zwx-H1!G6O{zn~0zjriMp?R&~&pUiuh(J6iD+o2104o{QZ>)HSNQ2NwVPWxs3twHMN
z(q?}S<@A1HC%VR3Xv2{whr<*aEq`^?nH?@Z`SVdLKPb2@r#4^9OuYPSKKFkH7q2X>
Vjf~$WGB7YOc)I$ztaD0e0sz7XMOOd-

diff --git a/htdocs/theme/md/img/menus/money_over.png b/htdocs/theme/md/img/menus/money_over.png
deleted file mode 100644
index 9a501e762d0d460c396ba28c1631f9ae38b12165..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 940
zcmeAS@N?(olHy`uVBq!ia0y~yV9;k^V9@4ZV_;x-vF+k61_lPk;vjb?hIQv;UNSH+
zuqAoByD)&kPv_nB3=9mM1s;*b3=G`DAk4@xYmNj10|R@Br>`sfJsvSe1vX9ho3acH
z%sQSfjv*0;-$w53yX+wFuW3bw9&f46#lxQ%UQ81UZ0UN$)zhM(xX2~EMM|+%{lK2a
zN~UjKT0JiH)%g#!7s$@aUwSd?jfJIpfrj$hN4MwiJbA|abFaCu;K9<V(mRe78T?E5
zbMQy=NA}16^B?Eu6&_=p@yYVf>0{yy&t&)x1RmdK%wXz%XZBa6q+TbNtebvXf-}or
z$d>x_96KY(=N|syr0Ulrwdy&wu7?kPULCtw?RyR5gBqW|zrWO^oH#x~|M$AjtPR_h
zU+iW1ka+)?JHviP8<r2r-gDC#Y#OZV7l&+9di3K><gZ7wK1u96|2aleDe?N!OG+!}
zGwfsjaiS}5m1+K)e1<JtWugt~Huf$x?d#Us)GI0Ve#+8S;;y=?B!9ltH_OpQu4Kaf
zNv~^#cC3H#d5`JM3nz*gVsw5?=~}q;Vq(s*cZX^ge|Y_(br#!}kXxVL&w6d;AC<Z%
zIDOmHYh6vLe=^1P6~+DtS<>_?y?=*Ts?5svFJ`6<s*}G)oQ+=*w>0tnq)8>yrk)CC
zxMy%PHN7Xd!m#$Vrt`j2LN_M0{gzpLWkt}<cc(s2`}jWeMYv>&jN#n2)02vp_SioB
zb6Sumf9<Q((y99yY@UD4Hp`k=Fl)2ka>H<ah39wp8T=XUJo~K6@SSscq2z96Gu6b+
z5)6{OvbBDPkG*f&sN43J?Sb&#T_LqQpYL9Mx@zHy85fO(jx*fTJob<4f$`V1$!{i@
zcHQl{dvL=+k7GLzZkqSGGAMk`{V5xl%l5=}pLo1b<>{tfwjoVkPpVvwm4$8Hm~h#s
zgu89)3A?q&);yf)k)gveU*y-4^$KtHG(8kKV0%<q_v_U^Uu@*t4m@ksDi3r_yLEV-
zo%ZBjt=#2VbsEXyY{~YrOtW1ALitUcu04NIwMS&4<azbla}5czU%t8|>GEXVrR`#$
z8}HjCZhfUWllOY?%q<dSKF8jf?hBc>(n##Bv|jf#^Dk?8!mjnq-Mq7Hk^H3@jiz-=
zrPg^*o$<?8{c3HkXvM+LzRT91`gWvm_qiqc%f3x>7B=g5+Uxi@B=3S5zvk}L`&S>P
zG~Z9W{I=kr;O0x)Rz~#PT@keRWADv}$6ISp%1;+vpMIm`&J9pT^K|udS?83{1OTqu
B!4Uue

diff --git a/htdocs/theme/md/img/menus/pointofsale.png b/htdocs/theme/md/img/menus/pointofsale.png
index 6bb68041d19064950fbee0a2c11116f7b4a12578..8826337cd3196ca3f91316ffefbb9c4a725fa455 100644
GIT binary patch
literal 131
zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4i*Lm2CurW#URSl#WBR9H#tGV?SVa`!%ns!
zSryk4ZT}~&kgDO#`rvr=f<u6_?W(r3ET%b5S3mSDXiHaN)#3<P#<+-8T)z90<7&p~
g<|`K`axgPg-=A95b(U=b0|Nttr>mdKI;Vst06HQmLI3~&

literal 542
zcmeAS@N?(olHy`uVBq!ia0y~yV9;k^V9@4ZV_;x-vF+k61_lPk;vjb?hIQv;UNSH+
zuqAoByD)&kPv_nB3=9mM1s;*b3=G`DAk4@xYmNj10|R@Br>`sfJsvSe1<sv6j`T1v
zFwXOIaSVw#{C37(uOkj3t^22PbZyXDBerODhH_a`FUP({{tXGrVs<SVPnm!4?Q3{o
zoRj#NU#zUDo2%(o#^#?lZ}=$a%uY2fpK<em3`YygyP7$3cHZ&S^$lLNic?F6|NTST
zJ?-B=$lW_!{lkuxE$a;9^aHatoZGs}cvBYJvQxzm&P<qTePFTgb72J&miX<mvn5_I
z<vwuOe2jMk`;u+uIg1`BJN9~9eX+BFpZ7q!-h<@kbIaGw>2GCgS(kKKv}{g*`e(J>
zzRVWa)?B>M>6>ujXXS%{fa9H?%UA6`&+&Q>1OK+;&3mF=X)O+ZaPn$`nTAv9mCLa?
z6F&bw(AmuSU2?|+tNp7V&f{Fm?7Kj@v0vsOvybOoe%V9a(WxeEAG}!~e{GkV&;2mD
zxxIVSsa?kd9b2X~nm?$UlYE&mtnvE3@AD;pXq?-w%V6F()$X}*o3`h(+ym+d7VWwp
zQaNAl>1%dpKhtef><{EWnfKpw_t|Z%KU(ipZ9mYz>;Ke4`H@BT(eJ%;z24gW=R0Hd
v!X!}gL!xq_?2Iiu|8tX8t?AMFJN<|J>5DBh*n$^WgQC{c)z4*}Q$iB}I?3%G

diff --git a/htdocs/theme/md/img/menus/pointofsale_over.png b/htdocs/theme/md/img/menus/pointofsale_over.png
deleted file mode 100644
index 4abe721969427e9f5f4e22dc7ac814f9cbc151dc..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 424
zcmeAS@N?(olHy`uVBq!ia0y~yV9;k^V9@4ZV_;x-vF+k61_lPk;vjb?hIQv;UNSH+
zuqAoByD)&kPv_nB3=9mM1s;*b3=G`DAk4@xYmNj10|R@Br>`sfJsvSe1@7=~OBXOO
zFlu<ZIEF+VemnDE?jZw_w*3lhC$_eC^-SR9m~5gvh4WF)0X74ttDLi(-@jytT^Mvu
z=FCwKMnTPE$NWzHR`uTb<LBke`TL(+T#Paf*PXGECGG($46WbtML?Og%;A~D^TS6Z
z_1A8F9dK)Y(d@0u(`K7YdoHc8v)H8Q7RR0g-V>$P@&xb|FFv%sAuDg&PbMq=!aAQd
z4?e8aH2W(1**q=pUx>8X&X2p-vwRbbkXlf1wnkEOVs`XvkMN)JT~qv@GH+icRx#h|
zkNO9z4f;_J3{ro@KVbc_Z{p9xH_lvVbl{$Rv0M4h22s6v;fxPL`S+O|xG7`)Ci?yF
z7hLO^Za!PH_M_>6`Pwz27N6Jprtg$^A(XsgbF8&wMf=%Y@2$(PNy&dGVyxfdckSv~
U)_Zwji$H<w>FVdQ&MBb@0HY+X;s5{u

diff --git a/htdocs/theme/md/img/menus/products.png b/htdocs/theme/md/img/menus/products.png
index a5ecf2ceb78bdb30ca662aa15f9afb81983003d7..a82363318156927050ee0ce88cf0632a042a85cc 100644
GIT binary patch
literal 84
zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4i*Lm2CurW#S9D#(w;7kAr_~T6C`#%uorAF
m;$2)P@%8Y9kB1YO7(}<qeNa60)RcjNfx*+&&t;ucLK6Tjd>69-

literal 510
zcmeAS@N?(olHy`uVBq!ia0y~yV9;k^V9@4ZV_;x-vF+k61_lPk;vjb?hIQv;UNSH+
zuqAoByD)&kPv_nB3=9mM1s;*b3=G`DAk4@xYmNj10|R@Br>`sfJsvSe1wQpTf%*&#
zjCGzajv*0;-_F?Rci2FnZT})Ko}4{QAswwVmkL?$Vb<BhAjHhQ!O-A?$_j7E8I?>4
z4oNF!+?b%joqOkqj-1VsBXg3o!tG8@DxG*fzCKp3{B6cs&#Pe`H;ii9&VP`!J8T}c
zy;Y+6z|s$I1V5<li_Ctzn=R^f&<?$tcX`e~O&2iuHL9Pk=Y3-`M^}8VnXv<7|AFSG
z{|)}Vc*wnA*5iJuI7tuN<MUl^&0$VHz5nS1vrwJP&4HhFW^S1nVWOY2>4TQ`{28CP
z*PG4P)UM}V!*%}N@0dF$|KE18>d9eFKXik6GsCX~8x78heo$(BU%97e_O-g}%6|S_
z@iUDo*m-pSGj90b?iDo4!u-JMr}l;gi;8ZQGH7IZMZH|GWYx?1Rc5!JP57{R*7^;3
z#R-vBPp7UF`y2ltW=i;h#KZkOi}q}J&UtH3YfJb-cCqV0FRL>p7k!S&dRi+oyLH~S
zm<P*sHSPcA|LAN_x__;XXASpbpCuoZ`?vkPd&{0V{*c9Do1P<S_8JT>a>4;l4xp&>
MboFyt=akR{0G;5~UH||9

diff --git a/htdocs/theme/md/img/menus/products_over.png b/htdocs/theme/md/img/menus/products_over.png
deleted file mode 100644
index 0a5d9a7951fffbc4b473c79c447a2a8ecd00fb37..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 358
zcmeAS@N?(olHy`uVBq!ia0y~yV9;k^V9@4ZV_;x-vF+k61_lPk;vjb?hIQv;UNSH+
zuqAoByD)&kPv_nB3=9mM1s;*b3=G`DAk4@xYmNj10|R@Br>`sfJsvSe1;JHQVs0@o
zFg){gaSVw#{C37&-ev=ymi|@DCBjxrcb90FG_~<cC@ODoyv-}oD0t&Q?ZQb@#Y3!D
zc$TV1{_)souQa*9M5!sN)ZwU-%|lNAibMIYW+=L|D@YuVV?6Whl+vT#z&Bj;Zds=N
z+aj0GpjKMXaADd#GkITzd9SJ-a-Y7M7VUgV>-nq)(c5?*a{B*>eK<Y-;PVJA_OG>{
z*DhLKaQMGj>!EUnBNB>+ve#_pvfq2W!K9|oX4$rvj3!!D$|qD$eoi_syzheVt9@<Z
z{O3SU`0>B_y9BRo*}cPWa@Kynm}ufwDksA)km=@iS^CiV8z)S~7fb{Nk*BMl%Q~lo
FCIE3?h;RS^

diff --git a/htdocs/theme/md/img/menus/project.png b/htdocs/theme/md/img/menus/project.png
index ae4d177c6cdb769943524b09e643971c1382a7e9..54f4aa382fe65b963ada43e8b5468879ab4c7dea 100644
GIT binary patch
literal 156
zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4i*Lm2CurW#S9D#$(}BbAr_~T6Bfw)dH%!x
z>;L8d<^TKtI`1~8P4j=^0{-ob4*b{uugpC8|1*t0;s5^znl8}#&mWT4s`g1Jlv%LB
zN@~Ne{#8<Le;szoXDn=NtE+Gg_{$x_`%l7>$@gb{eA_`T2J^@2bC+atpJQNPVDNPH
Kb6Mw<&;$To-#r@u

literal 449
zcmeAS@N?(olHy`uVBq!ia0y~yV9;k^V9@4ZV_;x-vF+k61_lPk;vjb?hIQv;UNSH+
zuqAoByD)&kPv_nB3=9mM1s;*b3=G`DAk4@xYmNj10|R@Br>`sfJsvSe1(93-R)jJz
zFgkj=IEF+Vemld^`*483@%pP`j_gxk>1gz^9&{}bl=<s%?p+<v!p*xMJkofyq(pp+
z^K_@nOU^%SY1i1v?fG`~_x1_Z1^<utKb}<XsomnRDoQcYa?fGwJ%`V`zm@vFi>*(j
zGQFGQKC@r&+CL&QmhjB4d@6fynNI4DJJtX8Z}HWBs=u<Vxmun<TFCyd>7S{E?`soc
zAEht;zA5jA^UnRu<z0Vt6G9)kKRvMRcF5Cwr61L<|D-mk7sgNgpVk_Giv1hQ3#~uf
z1Mi5&&x~uho>9B-15YEn?w^f&bag)5KCttXO5a1%d5x_5PGwpKS9RrQ_oioM&eq!e
z)90mToyE-T_U&PI8n!=ewC3mBPT@TizOp8*alO&(cD8D}@7p4mZ2OsObA!dI%h!I<
y4&{ADy-$B#>f7{b@zPnjfAlwkJZW9C(vHztpkQUyIf2`t(D!upb6Mw<&;$TK3c+Xq

diff --git a/htdocs/theme/md/img/menus/project_over.png b/htdocs/theme/md/img/menus/project_over.png
deleted file mode 100644
index d6c28b6d7ee28267dd5792dd34045956a5d8e92b..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 360
zcmeAS@N?(olHy`uVBq!ia0y~yV9;k^V9@4ZV_;x-vF+k61_lPk;vjb?hIQv;UNSH+
zuqAoByD)&kPv_nB3=9mM1s;*b3=G`DAk4@xYmNj10|R@Br>`sfJsvSe1u>HkCo4gw
zdAc};L>zuQ{VZ>jgFvf2k9hvH1Xd^ZB=u<toHrO%BTmKb&19eA!2UYb*No-Sgf;dL
zsyP!qp84*3!*}!Mnd<W~Ta%6n?Rmhe|Kq%df5d7=FXy<g-5*ppgx}_f`_Lr5=RvUM
z?9aYh^~rCAZnWH}m9Bf`bBV#VgI{>BUg>QcVe1EZC+;)87KrEl>AEF2^3_!P_HynR
zHNTnDVy&5O@Bg2;c6EUJN3$O~f8V%e^<-9T-}~LU|FhZAd8b~ithVdEBe2{r;vje2
zho*S5KQ}n5yV_J%=N)^w@ojCi&D}?7(qBO?t2ns-3Ukf7vz6kqu8yEU@^tlcS?83{
F1OO9*jYR+e

diff --git a/htdocs/theme/md/img/menus/shop.png b/htdocs/theme/md/img/menus/shop.png
index fab7db59040300ef6fbcbd91ced1831ac17c4df1..8d8da880f0ed080f7cb941c3c0418750a8a19ab2 100644
GIT binary patch
literal 259
zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4i*Lm2CurW#S9D#r#xL8Lo5W(9^C88R4Bu6
zA)Ynq>~%GfkX<aDVNtIXybkhNHB4OaZUJZ1B!h;qs0jgbHt!d?{A0aW`YZ0p{0jzO
zm&k=mYVs_Ws@3M^o*6ggvcd7r;4@bi_Xw&@EN)Ny<9Gkm?z|@@wI{wLne!I&Jetjz
z_G+S0=+$JAJu6?Ca;*z36=glX%Brhr+tw?+%cgC-5~aPbVq%t?U-T<Wvly?fO3Rf?
z1*Q3x9=m0w7R0`BVcN<wLArGn0nhBVS%yE;*>=->;!V}!Z2f<${Z*#&ofDh8lbeBo
Ofx*+&&t;ucLK6Vb322T0

literal 679
zcmeAS@N?(olHy`uVBq!ia0y~yV9;k^V9@4ZV_;x-vF+k61_lPk;vjb?hIQv;UNSH+
zuqAoByD)&kPv_nB3=9mM1s;*b3=G`DAk4@xYmNj10|R@Br>`sfJsvSe1<57;S6(nM
zFsXaGIEF+VemlcHL&Q;}egBGf*S^meyv|5E^89lYbl$LqLsO(XBI@X=pe+{<Ic3il
zDN9P!kGMHEAz7g}P+4nH(<8-*j!u;abD!JJzJEw?&)GKy!sZtIa>d4<Zyztuf4(=i
z?8KQHYqque=5X2_RR6&;|ABB#lfLjD-v`PGpH$agH5aN|@t`|WHiPLn+Z%nR;9tf|
zo98q4eLGv9vF7XAy)5S#PN!O#g*O^5;MHMR-YED}@WIA!$CmWwr#*XQYFwS1rfWR=
z?8UQQmyI^JCFkUqpZy~ez-Y%{UQ`m^kbc1bK}_E|wmDPeyXOA9o%Ze2nPswDgfH1i
zY_QKw`+O<op2_BBSL63l8~htZA52O1lVjT5_|f$B;{&pP;~4j?aNG3L^+E25rnRdC
zX0ztKP>wB5I{T~efpmd)rv?8U)@P+U`mI@0#T#Zi)IMY_h%~&<?Ei1kPVP71cWuf!
zcj>0*ujkTl2{pOL9>$)rj`@4TNr4ZyOJ6(Rkn3G-Ict4Yok>jdvxD22)9f}UCYYq}
zUm9hx=4W>Nk9bDo`H{>!w)HK$yL{%y*8AcXpLdt!G#!n3f1_o~+ylFt3i)5ms^`1^
zx#PCB_cL>zIuobmC-427ezk4!!S6~b`&NA{Zj7^Is`=E&KlkUlV}6Y{V&|U;S4!FU
z`s1GuP3zqo?l1hf`_{7V+^>!A-5Sp4taNy@O26iX@%@h-cRx0oKPX>f7q3#L|D=3&
iP~@)*vmX36|6!jrZFz<E(Zmo?8uN7Zb6Mw<&;$T=Bs0_i

diff --git a/htdocs/theme/md/img/menus/shop_over.png b/htdocs/theme/md/img/menus/shop_over.png
deleted file mode 100644
index bda5823f8c36729b82f6d310cb6c7e1991821c95..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 502
zcmeAS@N?(olHy`uVBq!ia0y~yV9;k^V9@4ZV_;x-vF+k61_lPk;vjb?hIQv;UNSH+
zuqAoByD)&kPv_nB3=9mM1s;*b3=G`DAk4@xYmNj10|R@Br>`sfJsvSe1%=;UF%K9R
z7|T3e977@wznyt8x5a>`tv=wszH))^1i?$ZyBzad^A2#xK6FcHzQpNeeuATf>H9)A
z--!(DtWqk`U4HEURp%F%<-FrkIuyC~NT=^Z(Ksk7Zpvq<U^tTeAp4oe52a0p#tc>r
zU(fvYXXu-Il5gMqhWd}MpW4f4C_69ZW03zj+kjym!@ZwzXK(%O?NB)^aM8iOEdIjX
zm)Er(-kIGVQjx51zE3B!`kI;c?1vRM_CAbe+r_!1Z|mPfZaiPE{}EGP;`E4hY1R4p
zGmCTPte?N9zi5GoTtCAFw<VWWlumx#=f6UH-gUN<b&MZoX(dW~rN<gPzwEVche+aO
zwU+nIE_0*T3(ZM;w81m-)$v~&LU!1+_fPfvRZyUx8uq}Z;kiQit~n2M8_XN?u82fe
z&%R>6G`8}&eNxr>m|s7;q<2dc|1v02tJofVqvbrq@>@T(Di&Ovq0hf!UHjqNvez~_
xiuSHN5!upvlOg}>obwmC{+b6o6#ZxOjrT*x2{%vnwAr92^K|udS?83{1OO<P)QtcD

diff --git a/htdocs/theme/md/img/menus/tools.png b/htdocs/theme/md/img/menus/tools.png
index de7f2b7b22164a355844cc2f6c6b738d1e88e4ba..244478041a433f518bece1ee9f40788e953a73f5 100644
GIT binary patch
literal 239
zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4i*Lm2CurW#S9D#+dN$yLo9mFUO33b7$|b=
zqj6ID;pQ9KZ&Kbm=Hx8V(B|e(IL;iQr7GuK$-2}e(M$86*g7NQ?@#VU{@nKb_gpJ?
zm23^e<nxWP!CHAKN7VU`vDC4sRjtiY^<O1*<I=`St$XJ^W-HNskizb2{BG&GhCRG2
zE@?JCSM+c3YQMRev0!OKN1NNTc`Z%mf(uVhG8WkMOisD9wWDK?yyxv^2?_P<I!nII
sfAT|E#p6C>&BVswyAv)HR$J+RRcg6>u7BkO1_lNOPgg&ebxsLQ05j!ZeE<Le

literal 1052
zcmeAS@N?(olHy`uVBq!ia0y~yV9;k^V9@4ZV_;x-vF+k61_lPk;vjb?hIQv;UNSH+
zuqAoByD)&kPv_nB3=9mM1s;*b3=G`DAk4@xYmNj10|R@Br>`sfJsvSe1!*tGtw$Ib
znCE!9IEF+VetR=AV{WJb`-k|hjh=TFP0d=eu}fQHlDH$6m}4}n_^a8{5t*WaF)Q@D
zZizdxuKuB*wPMSUWp*MiBD`JRYr_PDMFQ7&-}TB2S{#^}*K>S2r_8>4Z@a&zHS+L$
z|NZRDneX<e&&({&bN4#wv{Y5hK({HLWj{xq;GaJ%^<3AI6YLu7*R;HwyhFQM{+O#o
zc7l1sy$ZR*0jDo4pEB!d>B|5qFU_xFU#fz=%9l^M=X*6%XX%!;U9p+(G$Q5J9KY7I
z#)6qSB3$Ap<C>g=>(?gEe|B)nrGrfIS6lAB(%SYr$SXR{iu)_mw<l7cJVUr@{DdEW
zvAdQKop!x9`UC5^?9gpH+2$Y153I9O<Fbi)G<$ne`N2BPZIADSHN*@1ZBIx(VRo!q
z@CQenzGcSz(2tu%{I@8DmbE+Y(2r0%{c`K11O3N1O>5?gz5J2<r)mCc%T-fz^Z4`H
z>W->cSnm+bJs#=%tBzg2?f<fa@~z?pX(t2k_JqIQV&9^jK0$>2)S91#IUPC%fvxV@
zC*B_yEw$RVZNYwa@kfnP|I`d3%5M5xp14DJ`C@+g2UB0%IbHfj?x6I|-@XSe|BCM0
ze=;c3^wxxzQ&#2vJ960cR$bSD)o$M(@Yi&B7uG)cD)U3F=JtX6$y*!#-=FluQD%kV
z)p%FNGS8m8jejpP6&Oz5c`j^^<>Z{pI&-BQZ%jT}*U_iD{t}zNtJq4n%a#9B-(-FH
z*e7=9_L`oAHwW+UFrQ~0&iGH~UUsPKor`VW%jIn3q+|W8Km3W2b$b<9|Kxq1PIttq
z@(cZo6pZg5Sbspab>cbW)9)DeF_}N!>2~{Hj_&Nq1=71-P2oF#<g=PgcXNf+t!Hn(
zE#Nk9>G$H5bL;B*(lJ4|^ZUM?O!r0I552Rx{flK;fl{CL3G0I7EoZHMynf`Cu!ym~
zy*_)(!L6lbFSoJ0NoCw~$>F{CABnHOD`d?0I(KTw9_iaH{QI`(2Jy#l)V}P~pR=y-
z_*IKNjj^h){!R>Qet-C>?+e+E%b|s7(^_lqHSUdkSn9at?aFYr^CdTR))$tXerdiZ
zG}*J)ZTYoD#wpD+--(1x<$PrH;D07VozbcTC)qZCs*IWXM!%$JPv^mzhCga87V~|O
z<!yMbplzY{<NF$?wJwF%i#{j^zWWx=xX+kR{_KT&H&U%PT1^Y~e<K;Z@!9P#xi9Im
zGmczWZFqiNe)XoU^XD&XyT!RL^or!co0HGJc@cB{^JX{hU-@(YGj!%hZJR6UYXHjF
Mp00i_>zopr04enHW&i*H

diff --git a/htdocs/theme/md/img/menus/tools_over.png b/htdocs/theme/md/img/menus/tools_over.png
deleted file mode 100644
index 80f9a7f553a765bde7599d380459f301d726ef77..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 706
zcmeAS@N?(olHy`uVBq!ia0y~yV9;k^V9@4ZV_;x-vF+k61_lPk;vjb?hIQv;UNSH+
zuqAoByD)&kPv_nB3=9mM1s;*b3=G`DAk4@xYmNj10|R@Br>`sfJsvSe1vx8iM{foO
zCMQo9$B>A_Z)ZLXe4`+6{Qtclu~r|fDoP$qEl^#;9PH$^p}Adl2}>ON#^xK2YZCr$
znwdDkHbTf|Zn^d06*5oixOe~8sc?7sv9|1h{x<19y#LthoBz-J;Lae+@LTx7d(q^0
z1{?PJ{frij5k{YN7!L2(XIOUkMdykwb6>9ZbxB!N*w#^{^l8er){dB@dAsgvo^Iwl
zaDRpVJx1;aGHds+ewZ=yddbu4)1odGAKVk1^v=mef9vjo6DsK|r>bmtKDCbbmz+ia
zGc7@ZJ+CTKtrqT2dwST6duM{_`H6NC&F$arT#xr~css5C(B@^f4^)?W%nWXlZkv+x
z;E%<%L;PGnX3A>t&h`BGW}<B1LFuQ{CrnT-EDlN6`Z0&uyOr7RhH0@Q$F-~Bhu8C2
zlqJ;~NA<a%<>O&}r8IMG>-AHyUUs{kBIj&P+`)P;j$^*2FyG22?}S%1hkcmDti9t&
z%=ExTD?@f}J9L~+XAZyVgR`qo2^q(%wsHBpK4xm%Q-ev`XV}>6>)0!DJ=b`~JPJyd
zHP7x||K9IL$fsEjT+{c;SmgA)H561@*z2hKU*gJ#x_;+BiOf6vW!^5S`62xE?IQ=>
zJ^l=yk5z8Jb8uZ_nL4-r%oEp$hMUtkUyGFPP}{h=uSx1du;LGuJ8Vm2KK!}%w(0ya
zu@8sY3QjUA%e<TIoth)hI^9D!UYhB^{){(wf^z@3eUSL188mBN{l4u%(%TQ$c6T}*
zcW0ltFtzf+NAX`$m8Vzq?=JIPQ|UdwIoowU=UM$S-yi>f-?y4STTRrYj?ZEbDEWE1
L`njxgN@xNA>V7n$

diff --git a/htdocs/theme/md/img/next.png b/htdocs/theme/md/img/next.png
index 953731ca93435dad89d71d2f7574a86cb1be85b9..3e386e112d8a9da3935f13655069b64226523287 100644
GIT binary patch
literal 118
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3Sg*m}A+hEy;nOJrO)a={_u
zqE6fYmZ^qDXVm;|$~>BK_UN)V3{o~nKJYK=*`Q?8(3vP#JH^0hssID8gT)30hQL*-
VneAF~N(>AP44$rjF6*2UngHgBB_RL+

literal 622
zcmeAS@N?(olHy`uVBq!ia0y~yU=UznVBq0kW?*25u{^t(fq_A{#5JPCxhOTUBr`ux
zAtW<5m7zE>S5LuMA?0PVo`R8qfvJLlv6Ydzm8q$Mwt=C6LHUi!R0akH_7YEDSN5ws
z%uMFi)vtc6Wnf_7EbxddW?<m@0K$w;YfNS^Ffg#BJNh~@Fl_AS{*%bcz`$@mz$e7j
z&@0L?DA_V7$}%Y1GAi3Lx!5Tv*(tf$DY@DyyV@zc#VfnTtGLIjdP-1saZvS~pq4p7
zElZ=atD{<$M)j<XnzA*yXKC`3y~%U-CeJyR-O`iYvow3@vEr7V;-%-RdwQyS=2Xww
zTD|sM_10@GJv}Wwb6VCOYuS3PXUd$OrCWRUUYoM@*qk{_=d9g2XYaYCd#^1$c5m&m
zb6fX<z_Dxh&Ye4V?%K6;_nx1-_x{}T_t&03zxMq7y?giWJqLmJ@87@w4gvqa{|A9n
zUsg&mFfh251o;Jn_>^LXP46~ZFfcI8@N{tu;gFR*n9bc}AklE~dQZ%?Lsw4(Ztk9P
zW!J^f3Hw;i|Nrls`kcdl{;#0Wc6MFHR}c1{&NbW5#PoF$&(iX1FAj3DXvsT$h*%u@
z$!W!0edm`4Geq+R^>%*#lPTIOc+RZ+&(h8wK{?^uO$)o0I3&!KOg3s;rM*{~>1@dV
zC9AaOJ{4x1^>@MgNfvUs?-aJo3N_R&+iw1Wb@OLA7o|eeGzJC+22WQ%mvv4FO#t=5
BK(7D*

diff --git a/htdocs/theme/md/img/object_account.png b/htdocs/theme/md/img/object_account.png
index 46be8b6fe0f6c733bc1130255b140d9d0da85c9f..31628692b72e75bb6ac02d4c7fc671bc09bd0399 100644
GIT binary patch
literal 182
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3Sg)Oxx&hEy;nA7I$T!_pvi
z*sHCcM_qDGq2`3d8D~GterPZ9F4e#}T;b4#;~$u{dK+F#ZV~iilC*1NHGCM~7B*uM
zn}WEw%>f6k3<f7wg|`e#gacdz7;?5SUwOsMF_AH}gn@&%p@eC|yap8~riK^CIMoH@
jA5CC5!YSNQ#?P=VxHv$5t!^#@0|SGntDnm{r-UW|GpRVW

literal 453
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`4rT@h290TVA2Tp8=#{uelsFfqCYEI8=P86_
z=B6?fC+6xY7@8{NCzt3c7#SFtDj1qs85vlam?~%+7#bKPNoFi#U|?V`@$_|NzsbQa
zB*v?GQp=lxfq}EYBeIx*f$IYZGdis?nZdxoz>@Ch>&U>cv7h@-A}a#}Lv?^pi0l9V
z|F2!Uwig7BojZ5#+P!<vpFe;9{{7aiTa%NMqd*`zJG;2Lx}~RQ%CTd|)~;Qvsj2DZ
z<uzx{oR*%R;^N|<prGpNYDGmw0Re%nTlX$qy0oXKr=_JOJ3E_$gJaH|rBkNNnKEU{
z-ebp>E?s-?-o5YNzgt>b8X6i-;yks2fq{XsB*-tA!Qt7BGzJESHcuDF5RU7)=S~V8
zQV?JXn6XHpL)ANFa>Fc+U;pDXCdj-E-hbG~)XCkzj%%WjM6=1Ck1Yq@O$l9ISIwZX
z<WlL&E8Bu@X-v!7u%+x!j^7^R3`cFocSSFIZh36mJ4d_u;G6o;Z8yvAEoM9_cmDLR
z<c??4f}%d{aJ{wSXO?>Un~0OGGtSBVJt=;68|Q)xt5p^=FfcH9y85}Sb4q9e03c1e
A9{>OV

diff --git a/htdocs/theme/md/img/object_accounting.png b/htdocs/theme/md/img/object_accounting.png
index b5600221f02fc922e0c2bda2149f123a6d707d35..2e6898246c2ab9ad5dcf2e0f35f59d4f5d8bc03f 100644
GIT binary patch
literal 161
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3SgWO%wbhEy;nO9Ux2E@b49
z{h%3?P;uacJcqQw(isnR+}c`ii29~Q96Z1iYQ(!D!R*2oHWO8axdExcjcejIEag1m
zrN-F0Thi;msbvf&<$SjLuxK+fO)wIW?icDX%JGsp;KjjI-KNOSQ0}Ar|9HTja0Uhj
N22WQ%mvv4FO#pWNG2;LL

literal 170
zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4kiW$h6xih%orFLSkfJR9T^xl_H+M9WMyDr
z;4JWnEM{QfI}E~%$MaXDFfcIqc)B=-SokOZ@K;J$v3`BKQ75wk?~JN9w&xBAhH$WL
zxb5J;yf>#pdohzci-|*oO2&cw=1Xq!7EM_UuT@+R8*FU!V7SC!HaFwLe|v_n*~0nX
UHf~tYz`(%Z>FVdQ&MBb@08o)L`Tzg`

diff --git a/htdocs/theme/md/img/object_action.png b/htdocs/theme/md/img/object_action.png
index 0b02fada4147e31e71f53a800b91839be9b66f07..3a777f181d85869ea98b895c6ae7c61a7923efd9 100644
GIT binary patch
literal 113
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3SgSa`ZPhEy;nEAakdcdDsr
zo9w{&<^#(ly*m@ax;8NIxXyScxU!?@wMJ+Q!xT*=nHlN@T9&6ALKzs$cqdFOU)uMC
Qfq{X+)78&qol`;+0ExIE$N&HU

literal 528
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`4mJh`26+$Niwq15jKx9jP7LeL$-HD>U|>t~
zc6VX;4}uH!E}zW6z`$AH5n0T@z%2~Ij105pNH8!ku$OrHy0YKn5o6+JJS@uJ$H2fi
z!PCVtMB{wvB*ScJM}gM+w@Z^XS?;)aEGby5r;r)CtRS)GlxSH#PvOh@1@V)VVhie=
za&~ldbDOGP$w>8hs^B5mVl95i;_R!XH@naG8J*p<`~K|h#+ysdC7R7v^b{)DeOGqU
zd(VB!l?)7%iag_0YroyQ|Fp8NZa+Vh!}80HvzE0p*iFiDJ?PJ%uv7ZGH$(d4k3Wix
zW;S?EI$&AO@qpXYL&&pDAdb0V>$mVqF<}|s<(Ikn+7HVnpDCZTR%imtq}zfu8m0^y
znLFdw-_Mz7v$pGlgqq#fJH|%3la{kNNHwl{p)V8rvB#75WNi*#uiN5k27QlfP8{o1
zdXt-KH+wn?DYk5HKA2#A?VEp&=Psq0HXA3UtUa4NS%LG~tyh1iGESIUaCG9;V^gwQ
zPxdS+_B?ID_OPDSzAsDj<(+G<zurHa_L;rmanPSVhp+x*viNu}{`S$N#;aMSm-Du#
zGko*dcjto6G5zvMsW)8%MK+wXJoCKxO4iodZi_#19$2fwoM1kycJdd;OEbU!+oi$v
erONgX<FUqj-ivOsv@tL+FnGH9xvX<aXaWHJ=iD{`

diff --git a/htdocs/theme/md/img/object_action_rdv.png b/htdocs/theme/md/img/object_action_rdv.png
index 25edfa85b45b03ac727df4e3f8f93a037a5c6801..f29c713022cf3ca48e607fc9382921acb2081111 100644
GIT binary patch
literal 118
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3Sg*m}A+hEy;nD~K5wsTi3&
zXy|l^6kss=_qdT$z?HW`)HJ~V;)+EUDX!cbj>XF8ypuZ6_J}<}mZg!2*_46d_M&ZR
VEPoEIWnf@n@O1TaS?83{1OTjKA<+N;

literal 675
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`4rT@h290TVA2Tp8Fct^7J29*~C-ahlfw4Bg
zC&ZP3frEj;l7YdAfuWdz!-;{zi$TDPL7<vJpoN2@nnS>gL!g>N!iz&9h(jWZL!yO4
zF-kx{LO`HJKte)5qFO+rML=_kfMK$LVYYzfQVEF`38$qJPHQE+)+%cDC>qXDbXuzD
zwN^1`t76nv#i+fC$$K>|Ej7L7Xa+6SjM}Q1yjL^(m|@Ub!{TF>#d|GVjyVMdIYnhV
z6(4hIIp@@K&MRoCS9Y~m&pEH2YeC6tgIbOS&AAsf<yzF7Ystmc$<;l{OYbGGeV$!h
zoLya=-E%H`&f4rb*Rt0>&)#}2``q{9rPqqr-YZ`Fy!hPr>M7@{*WRn%`n>ww`<5w7
zTb5pHIrqNh-1nZn&wI{&@45DU%9J@%mY$okcI%YA$ENH(H|5&*Dfj-*S$l2Hv1@bg
zeP6ou+S0A}mfrim^!fj_Tkows_I&NN=WFkMU;F(3)_dQ#KL5Y>`S-og|L=YO|Jd{I
z$KL-x_x%02=l{>W|9|fL|7-8RUwi-m+V}tW-v7V%{r~gt|DXT=|Nj5~W>L54pjash
z@(X5gcy=QV#7XjYcVXyYmGxj?VBjq9h%9Dc$m;=N#@>fVE-^4Lu$OrHy0YKl<`uWl
z5Wi@5hJk@$lBbJf2*>s01O_HiUteF>Og4@SSIxfheJH;We1Y|I$zJZ)MnS8J?;NPf
zeSc}ztWTdFy>O8>WMd2cJSR&*qs**>_u_-J3q?As7?`Y0uRHkHDqOeKS#NT}^TwIO
z*Kf7VcD#J>w!(G0pokk64qTfv+wtVV0}9sKYR1}E4;<*4-FWc80fr>|8Ho){7g8NX
fdbpPgiZB>`Q*o_X)BKWwfq}u()z4*}Q$iB}n4dOl

diff --git a/htdocs/theme/md/img/object_address.png b/htdocs/theme/md/img/object_address.png
index 201577281f048ad530a5ffc90ae5ddcde1ea09cb..b35923a7e4ff612a9062fd6d52d18d8ceeea497e 100644
GIT binary patch
literal 227
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3Sgtnzem4ABssd(c~pm4U(G
zV(^zF#w9ri)R|`*rmgb1!MW{G^cts|hi0Er`tv+S(oXJ?%)gvN(`tX4`TjUIE84Rt
z`Kp9>oQmhCoP*-mC+(@2_T-d$@uV0Di5*k+%rs4Mo}?;2O*PUy$#qh$e3?q5S<<D+
zPwq83^G|Z0Y-c%5#k1&1x9j>zDwSI^dW=0M&5_8ywpV4R@nh-gNh#O)&#5l2Gs(@!
hIHmvW?C<{a1#R(B-?Bv(GB7YOc)I$ztaD0e0ssY<TVMbH

literal 358
zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7bv<1iLoEE)PHOZ$Y#`wJ
zI)x#DX%l0h5ko4omE&f{RHjRu2`xs98yqDRCYop5Y~Y*FQa-ge<~x&+Qjp5;eed7>
zuTM`q6+Z2$?nCQ;JDX?kdw>1fEw#G5M+_&Wlf2h{u;_ce?)57HYpn-X`#&U{e_SQe
z7G60=#WS_1a)Pl>o|Bq8YuBQTiVELPwsYql@=MU(;J%^UKtET^SR!^h_pX{Y)=xI)
zFPYr+T9bSG{ht5248GiFwa@Boh^qPF>txX=+P2qHc)CjU_xTe8Dl3D7FD!eJ%*`dU
zO!@vvIfqjB?Wa3!e<U#7d?Ls3VC%oki7K6ibB))@9^bs;gq;7TiaqK=GTnzSwXkk^
z8f5#yvrhY|T>m?Few&UdGMc@27TUG%x>^&c%A%uX`S_2U_p}@0AMED|@+a$6GB7YO
Nc)I$ztaD0e0stNsm3;sJ

diff --git a/htdocs/theme/md/img/object_bill.png b/htdocs/theme/md/img/object_bill.png
index b4022e77740bb96770f8fee065c58284e3518c45..19d4be8371db14278febf70be41acb3963dd7d0f 100644
GIT binary patch
literal 146
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3SgM0&b7hEy;nE3mFGzG7f<
zAd#uem0$AT;fL&P^$x8O2kKQS8WcH~^h{7<>o8*KN;p-Zz3adOhBoeooD$a=6PR2*
y7`88BW0BFiW_x7S6S;Luni{V1XsM`}G0gwjTk<Zo>ofxc1B0ilpUXO@geCw4G%!v8

literal 394
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`4rT@h290TVA2Tp8u$OrHy0TwoW)+vzwS529
zje&uIv%n*=n1O-o0|+xZtudLwz`($g?&#~tz_78O`%fY(0|P^EfKP~PR8&+@P|&q=
z=dPXGdu;2{rE_|gPHEXYr{&n3mV5W^eSiP{+_9}wdaCD4sh-kPymx8Oxuq@7?_KL@
zDPB9LXY0}_&yTG=x3*{R*0t}i?LD`4%CWs$-`_iSZtI-)@82(-Gv(g7z2~+r{r~^}
zoH;$$_HLasrRDqg@6Vs#yLRndPftrvPfu}iadvjLlatfAbLZyFnR9FI@l*x|2F8*g
zzhDN3XE)Lq7#NB@T^vI=uKS+4E!1Sd<9ab5$J8uNZLyof(F*o0|NmFoIdK2ZJ!{F(
z(4iraz!CcOPUeh&+w<FUQZAR>pLqUyv|Z=1ON*y?ESVkiMDC?$O>8W?-prY~rL!){
zc9%SxyZ(Foj;cjht2V#Q^s(D~?yR`&W|0H(=VLhc3iT-DGB7YOc)I$ztaD0e0sv|O
Bxz_*y

diff --git a/htdocs/theme/md/img/object_billa.png b/htdocs/theme/md/img/object_billa.png
index 93564621d7a5f5be223adff859f9a0d37980e5d5..19d4be8371db14278febf70be41acb3963dd7d0f 100644
GIT binary patch
literal 146
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3SgM0&b7hEy;nE3mFGzG7f<
zAd#uem0$AT;fL&P^$x8O2kKQS8WcH~^h{7<>o8*KN;p-Zz3adOhBoeooD$a=6PR2*
y7`88BW0BFiW_x7S6S;Luni{V1XsM`}G0gwjTk<Zo>ofxc1B0ilpUXO@geCw4G%!v8

literal 395
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`4rT@h290TVA2Tp8u$OrHy0Ty65*8Lv|H#fC
z$iTqBS>O>_%)r3)0fZTy)|kv-U|?WLcl32+VA$Bt{U?!?fq|hnz$e5tDk>@{DCpX`
zbJx!8J+^h}(m6d#r?l*y({gN1%e{N|zQ2Ee?%38TJ=JrjR8Q$C-n+Et+|rik_pbG{
z6tA7rvvui|=f~EbTidgD>)Q9%_MTfi<=Eb>@9!Nuw{_0@_wSd^nR4&k-g8@*{{R1f
z&YYfWd$-P+((?WL_vg>=UAuO!r>CW-r>D5MI6FJr$;s*5xpQ;o%(*r9cq#(}17k^$
zUoeBivm0p)3=AcnE{-7_*L_dj7HTr!alIIjYiiapIdE|d?>)z#|IdGBjJlbheU6dA
z#ifyPSwQIOxaNs7xBh-L;YjHH*#AF2|EoBqeJNtsQ=yJ4Ub@#E{2$GJWK?+gOip)^
zU%AzB<M*}27HwCBm)_1Xzcl0MC9CaG{XR(y_8Vq$PEcxMQDtCYVDNPHb6Mw<&;$Uv
C{JPTs

diff --git a/htdocs/theme/md/img/object_billd.png b/htdocs/theme/md/img/object_billd.png
index 2080958f0fb04a7ddb9fe953bd9294e3666d43b8..19d4be8371db14278febf70be41acb3963dd7d0f 100644
GIT binary patch
literal 146
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3SgM0&b7hEy;nE3mFGzG7f<
zAd#uem0$AT;fL&P^$x8O2kKQS8WcH~^h{7<>o8*KN;p-Zz3adOhBoeooD$a=6PR2*
y7`88BW0BFiW_x7S6S;Luni{V1XsM`}G0gwjTk<Zo>ofxc1B0ilpUXO@geCw4G%!v8

literal 341
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`4rT@h290TVA2Tp8^al8ZxJE@q1qB6NJ9qBd
zxxL4>E?qjOXX%udy>nWQ&1t!J@80+K@6R3EI;E$2&XnpYJ;i&M_MBVV^8DVlo|fXZ
zb9%Neo$~zH+H-4r_HJGK{@UJiYo{FByY>COW9PQcdH??X(m7M^o!fhE>(c-K|IeAz
zb8YX|Ia6A`fB*jc`Mqn`&h_-P^z`%;7Z+z|XFEALojZ4K&YU^7<{nRFU|?V@3GxeO
zaCmkjje&uo%+tj&gyXvJsaWBI4m_<7OKz^cv0$>}jYW^5z5o9|Uwkp`c=h))mJAIu
z0v5CzhFnWt{_Mz^m4CD1pM>7e{cfnX*M8n7qg9_vypvpZo$y?D%tL7QFPoxsXWqO%
zY=1a!{`oz9XVbE?RibpluR1(e3zm1Xl#Y19P`BnVXWN1&OLsCbFfe$!`njxgN@xNA
D&~UT$

diff --git a/htdocs/theme/md/img/object_billr.png b/htdocs/theme/md/img/object_billr.png
index 7a9692a08045fcaa51db342804aa593ef1bff0bc..19d4be8371db14278febf70be41acb3963dd7d0f 100644
GIT binary patch
literal 146
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3SgM0&b7hEy;nE3mFGzG7f<
zAd#uem0$AT;fL&P^$x8O2kKQS8WcH~^h{7<>o8*KN;p-Zz3adOhBoeooD$a=6PR2*
y7`88BW0BFiW_x7S6S;Luni{V1XsM`}G0gwjTk<Zo>ofxc1B0ilpUXO@geCw4G%!v8

literal 399
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`4rT@h290TVA2Tp8u$OrHy0YJ75*1|9?R)>k
zih+TFv%n*=n1O-o0|+xZtudLwz`($g?&#~tz_78O`%fY(0|P^EfKP~PR8&+@P|&q=
z=dPXGdu;2{rE_|gPHEXYr{&n3mV5W^eSiP{+_9}wdaCD4sh-kPymx8Oxuq@7?_KL@
zDPB9LXY0}_&yTG=x3*{R*0t}i?LD`4%CWs$-`_iSZtI-)@82(-Gv(g7z2~+r{r~^}
zoH;$$_HLasrRDqg@6Vs#yLRndPftrvPfu}iadvjLlatfAbLZyFnR9FI@l*x|2F8*g
zzhDN3XE)Lq7#J!%T^vI=uKS+4E!1Sd<9ab5XQ5e~nzEbY(FH3SKK-As?w5J|@3tZ)
zhHv6M2JTBQR8B}xQhaG|q&Ck;c2`|Rb(CPHynmgmR`2&o%(`YZ52F`2mz9>z-MK_F
zcJ9ASzT-c9ti#2BZ?HOYwQBR%5UtpZ<V|;sI~i*j=jU-&*lQc;F)%PNc)I$ztaD0e
F0su2IwsZgh

diff --git a/htdocs/theme/md/img/object_bookmark.png b/htdocs/theme/md/img/object_bookmark.png
index 39109ef5ee61c102adfab2c4c7378fd83f76c040..bde60c8877c7ac3d47ebc9c0609ba0f7be711c92 100644
GIT binary patch
literal 131
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3SgczL=whEy;nFJR0_xpBUL
zfw6H9TZ!s1p8p#iltWzkB1A0%7G;E7v~SCG_`$z@kw4F5iI9UfrV6ixmnq4%#jwSt
iFe>PaYj~wHFnIJfH2B!_d}Cl>VDNPHb6Mw<&;$VS_a*88

literal 201
zcmeAS@N?(olHy`uVBq!ia0y~yVBi5^7G?$ph9%LCR~Q%=SkfJR9T^xl_H+M9WMyDr
z&<gMgasB`Q|Jt={_wL<$?AWm>Q>NUzcklc6@6Vq<zjp1~)~#F5ojdpb{rja$m$tOD
z^i<ED%D}+DSQ6wH%;50sMj8VHgRQ5FV+hCf<b(rk6;q~6DUp<rU}fDp&A_1G&Aolq
z>deg9QLi?sC`^@F%DTu%?Ho&BrfaH0SK!SX5v<Fk85WxHFuPb+Zf0O$VDNPHb6Mw<
G&;$U>G)>X~

diff --git a/htdocs/theme/md/img/object_building.png b/htdocs/theme/md/img/object_building.png
index c9d1539dddcdce4f285117d26cab14ee97ddb90b..efe44594ae8c783c434517c0a8cb89e81c098edd 100644
GIT binary patch
literal 122
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3SgIC{D`hEy;nFVONxuxMb~
z*u>WM-(e-YfzWa#lSvyqGp4Bvgs?m@71+YJisQ0Mhp56N4_D{YR%Z$h^(6ENELUP+
Zu<NY7!chJqf`Ng7!PC{xWt~$(699>2Br5;_

literal 563
zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7I14-?iy0WWg+Z8+Vb&Z8
z1_lO&WRD<U28JqC28M=a28N&i85kN~GBA`HFfhDIU|_JC!N4G%KPmpG8v_I5PEQxd
zkcwMJChzSR3KTi|-sawuvjWbJaz1L413WgeZZz<@(sZb+C2#2g0q*3UBQr9RTyvEZ
zrT;TTZ`inC(H$r5GHo7K))1jX?P5yC?+^MsdweT@<K~lM^FBR$HoZ9ST&RFxo-)&R
zk-b(K+i$OzOg_)}fS<voV}@eOAEzTp0xa>?bN#+YIV=pQ2-Fdi_s~@AOAZJXwK?CM
zW5#{@sSzu~-E8HEX{nX-mM;lfxqa2DI)@{|vDeSXUJtc+ZZE9-W8eOnK5F(B&*ubr
z#a^$Sb^iI<mnBt^dei^99C%o;BY5@IdzO90QpXG148Qqud|Y-hV^5Thn7lA!i@^Tt
zuWb!|KhImW>Q>$U<;yaku{9su?6q`}DpQNVg&ecQ?YA98To+_YS@bcl4dZ_H+49a2
z#@F9}H^=C?Yb*`nC_HCrFUi+ldwZL=`Od}_VXM=RKQ>fey2qQNa-~LB^!n@e>%+9|
zH+FWMIR5zK-<vttQhVmU-1V<u^UatZx5e)Bp8xeL5ok+{^6Gq9B6aQc*WU&_;T;iE
zgOUVTPBI)eu$$_&^mw4i$+u<If^84u4;$>ev2AX-%=6z@YoG3~f4rZO!F<k1zqwC^
S&N47CFnGH9xvX<aXaWFm^6*pu

diff --git a/htdocs/theme/md/img/object_calendar.png b/htdocs/theme/md/img/object_calendar.png
index 8cda1f3f2202f020c2aa7f0438b72e06f559c83e..98a013a40148fb41b2ab42dcdd6d609ee7d4016f 100644
GIT binary patch
literal 106
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3Sg7<#%mhEy;nEAakdcdDsr
zo9w{&<^#(ly*m@ax;8NE(s0_5_CPd|$%yGQi=V2y<O(i^`)O^nxl}VF85kHCJYD@<
J);T3K0RV=j9u)up

literal 199
zcmeAS@N?(olHy`uVBq!ia0y~yVBle3VBlt9W?*308CRIYz`(#*9OUlAu<o49O9lo8
zp#Yx{*Z=?jFI%>3+N>8>uU`HC|Ns25EzVUEN+6|4-tI089jvk*3=9mM1s;*b3=CW!
zK$y{KjmZoK1_t&LPhVH|+e}OXZ1RgITv@`vz@X>p;uyklJvo4hnN5^kT#VgaLX?Y*
yNAaAV4$nFRts4>?K9WujUNMOxAp(mS8H6JFu1;5C6=z^zVDNPHb6Mw<&;$S>k2MVd

diff --git a/htdocs/theme/md/img/object_calendarday.png b/htdocs/theme/md/img/object_calendarday.png
index 5678cdd2411bf87a5a55920770749aaab067ca5b..75b1de981da4344286785aa815b5b0eef23459e1 100644
GIT binary patch
literal 165
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3Sg<aoL`hEy=_J$sPT$xy)c
zV)Uu_?k?3OBHo_fCru2NE@`=ckR#HENs_s%;@-DIhh<gLI-6aO&5)E#D{pCA*dxjN
zuuHh7LUeh)@?VP}rCo0RMfcUDme+U5E!mfAQX|i)F7;-~gS;ySS}{LXinGKOFlQbv
S$!1_+VDNPHb6Mw<&;$VGgE_wd

literal 223
zcmeAS@N?(olHy`uVBq!ia0y~yVBle3VBlt9W?*308CRIYz`!70;u=xnl3JWxlvz-c
znV-jyoS4Ivm(7({l$v@{v|omSfq}im)7O>#D!TxKEbC(l69ona2F?PH$YKTtt`8v0
z=(NUU1_J{FOS+@4BLl<6e(pbstPBhcLIFM@uK)l4U$$)7v{^5%UcLJN|Nr@ATb!#T
zlo%KobUj@hLpZJ{2QV?SiKdGSr@Kom&5@GI$vLs$(JLV)p_Tvx$B?PV91>0_aIi5b
YFW}vnGu=Uifq{X+)78&qol`;+0Mt!E;s5{u

diff --git a/htdocs/theme/md/img/object_calendarperuser.png b/htdocs/theme/md/img/object_calendarperuser.png
index ba16a4ab6c0dfe3a033f2739a587e8c4b567d181..98a013a40148fb41b2ab42dcdd6d609ee7d4016f 100644
GIT binary patch
literal 106
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3Sg7<#%mhEy;nEAakdcdDsr
zo9w{&<^#(ly*m@ax;8NE(s0_5_CPd|$%yGQi=V2y<O(i^`)O^nxl}VF85kHCJYD@<
J);T3K0RV=j9u)up

literal 198
zcmeAS@N?(olHy`uVBq!ia0y~yVBle3VBlt9W?*308CRIYz`(#*9OUlAu<o49O9lo8
zp#Yx{*ZE~z{{R2KY}vADvtC@idiDSR|F*AE13^klg8YIR9G=}s196hP-CY<uSY<sJ
z7#KJUJR*x37`Q%wFr(8NlNk&Q4D2PIzOL-|I62tW*h@CfO=e(VQ1End4B@z*Y{16M
vcKJcT^$7|RsTw>Y#!7AiYi@TiGBMOF<2MpC+~~u=z`)??>gTe~DWM4f5m-5E

diff --git a/htdocs/theme/md/img/object_calendarweek.png b/htdocs/theme/md/img/object_calendarweek.png
index 4ea2c09ccc96b569c2ed0e2aac8f2fb0b987cdc2..50c65619ee337320b5fdb57105719d3f3bed0c59 100644
GIT binary patch
literal 156
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3SgBzw9zhEy;nEAUzvm@N1p
z-Jn#^An>RE(Et8ror+T)8V3k4Gr2Ykc71bTHGG)YvWVG2RMsKv3uA}jLv|5YhYntu
z10g1i91}e@i6%BIT#%u7PGEj}z>)I-M=mt5iWz+noO^|V>vG0cjtSa(7#J8BJYD@<
J);T3K0RYZMGTHzD

literal 188
zcmeAS@N?(olHy`uVBq!ia0y~yVBle3VBlt9W?*308CRIYz`(#*9OUlAu<o49O9lo8
zp#Yx{*Z=?jFI%>3+N>8>uU`HC|Ns25EzVUEN+6|4-tI089jvk*3=9mM1s;*b3=CW!
zK$y{KjmZoK1_t&LPhVH|+e}OXj251^zjH7!FerPvIEHXsPYz&WW)n>p7fyGVSSrQE
m(s+bJOPaY+u~|Wafx$9|&+>+|^+N^*1_n=8KbLh*2~7a|P&0b~

diff --git a/htdocs/theme/md/img/object_category-expanded.png b/htdocs/theme/md/img/object_category-expanded.png
index 8168f76fa26b3e8f5002b4e21966d23e5f026cdc..b0292d92aaec99817b1a0dff1c1c354cd715f10c 100644
GIT binary patch
literal 104
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3Sg=zF?2hEy;nOK=oSdT1|W
z_8@?HlFFJl_I?#j60ZLPMH3khy9+*4uxJcE8OZjFnW0iF=9s^P`V$5Q1_n=8KbLh*
G2~7Yi+8sIo

literal 295
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`4rT@h290TVA2Tp8=$5!flsFfqCYEI8=P86_
z=B6^_rWWZbm?-4sm+2`O85me97+PAHSXh}@C}<lP8W=Rh+*f5_U|=ut^mS#w$;~3n
z!MNb%vuz9v44efXk;M!Q+(IDCc<FB49|i^nmUKs7M+SzC{oH>NSs54@Bm#UwT>t<7
zACZ*z;`O^Tmu{T7bYuUqvkVLj-@gBdU1?^)z`(#*666=m;PC858Uq7^kEe@cNX4z#
zUPqw=3LMPB9bf+2>v36a<DM?-%);Qe;bHR0vRT^4t(<}@U4MnnJN+v2h+fo5i8;$#
ts|)T<^Xyr?Ig6z*{Q7b69~O0cX0S1)zq-c0oPmLX!PC{xWt~$(6999%W8we+

diff --git a/htdocs/theme/md/img/object_category.png b/htdocs/theme/md/img/object_category.png
index aaea38dbef2c74ef5ec519976be9b70ecf4e94d2..fb51c4b100c90c3e1bcb801cd16e0226cd598516 100644
GIT binary patch
literal 99
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3SgXnDFghEy;nOK=oSdT1|W
z_8@?HlFFJl_I?#j60ZLziu7t(H3pvyWc$U;P<ekwSMlMy+6)W~44$rjF6*2UngF|d
B9Yg>C

literal 281
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`4rT@h290TVA2Tp8=$5!flsFfqCYEI8=P86_
z=B6^_rWWZbm?-4sm+2`O85me97+PAHSXddEDrg%R8W^ZQ*`CC}z`$PO>FdgVlbc1D
zgW2zS`z!_q2F?PH$YKTtZXpn6ymYtj4+8@OOS+@4BLl<6e(pbstPBhc5&=FTuK)l4
zk4VaU@%r7FOE=D3x-oCXmT%vG$SJCP^xSlffq{XsB*-tA!Qt7BGzJC+J5LwKkcwNS
zry}_n6gZeKI<3C<{}|i$1)crtJsBCedAmc)Gq+FGj8pnM!8I${@6-NIku$^kO4YXJ
frL?X7_+nQ8<D%ookC`zrFfe$!`njxgN@xNAh+kjE

diff --git a/htdocs/theme/md/img/object_commercial.png b/htdocs/theme/md/img/object_commercial.png
index 36cdcc8d4a2d0220e02cdddb5d62dea514d60a54..5f6fbc4ded6b2159c064190495590927c090cf1d 100644
GIT binary patch
literal 147
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3SgM0vV6hEy=VJ!Qzt<S62L
zk(tTi*sY|A3~xowb9zW>E_gCIXN5<dqti*-w_j_!6_X;i*j~Nu9L?GB>Eb=D*+#BD
zs<SuCZdf%>Sm3Jgf6g7N=5ZI4m`j_p+rMGWzq@IV-y^qE3=9kmp00i_>zopr00*}-
A^8f$<

literal 304
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`7G?$phPP=3j~EyjbW2<#N}P*Q6H7Al^Atid
zb5j{oGIRA5%oK7Hi;5MD3=B*a3=FIc%&iQJ6|@Zu4GgNwD!myP7}!fZeO=kFGP8=y
z^PRn9y@`Q=fwRCPvY3H^>jMZgI;}C8!N9=4lJ4m1$iT3%pZiZDD+2?AdVo)eD+2>V
zb#--5PtTk=bCxb$8Wa?ioSa--T%4VqJ!Q(2sHi9>C#RN{7P+N+n-~}v7)yfuf*Bm1
z-AH3#U~uzvaSY+Oo}A#oaM;1%Xz(;ehDH6$QzaQRpKbaiwV~iBW5+5NW`o?x92Zk3
zmN9slH)MY6V=*|Z!7wpB#H=ktKtv=hfq`MqOz!T#N98UuFfcH9y85}Sb4q9e0N65I
AO#lD@

diff --git a/htdocs/theme/md/img/object_company.png b/htdocs/theme/md/img/object_company.png
index 2a582b8bd4c899f370f0e74a234005c1f00d6ac1..efe44594ae8c783c434517c0a8cb89e81c098edd 100644
GIT binary patch
literal 122
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3SgIC{D`hEy;nFVONxuxMb~
z*u>WM-(e-YfzWa#lSvyqGp4Bvgs?m@71+YJisQ0Mhp56N4_D{YR%Z$h^(6ENELUP+
Zu<NY7!chJqf`Ng7!PC{xWt~$(699>2Br5;_

literal 492
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`4rT@h290TVA2Tp8u%tWsIx;Y9?C1WI$jZRL
zur9zS#I<G0R;QpAr>K^os3}3oJyF?HlC!5I7f;D9o|9cYr?_}&arK<y>ZQdkb6R@V
zwoF-T>DAKHv$bc++MX#}d**DNGG*(OIa{a9**j;>-Z@M6&RKeF>72bwm+oD<^w`q1
zdzY>~wsh^ewQG;9U3+fr)?;h8p4+<i+}5q<w(h;Qck8*mTd(cidv5REYkQAfI|f4c
z&K<jV?%cg==k8s*cJJD?=lAYCzxVw8^XKou;QROQ-`~AqHe_I6U@Qsp3ubV5b|VeM
zN%D4gVd!9$^<ZFN;4JWnEM{Qf76xHPhFNnY7#JAXOFVsD*{?Fn3F)#}ryM`Qz`(HF
z)5S5Q;+AROZN4T49+%g=?-dqEn+45g+r+>6D%<tb|Ni%Lx;=lJ;-|*^q5D>m{67Z&
zFGs6>H>}qFym<1t%Sl$J7{s5<%~&4mJDq36xt9eg@sHE?ooQJ7G<(X5jNHjg+uEL}
z=DQ~Q?d`D)eY550Rh^elr>FLAzp>Ev=e}It-M=j@ZmFCspBY#qu<F&q-sUwQ``VS>
tPUPKa;W+EfF<ysxK~GIuo)`ROE@%?{{P^*;+YAg044$rjF6*2UngBSo@0b7p

diff --git a/htdocs/theme/md/img/object_contact.png b/htdocs/theme/md/img/object_contact.png
index d4272f367c6e5eae37c9ddc745fd8a9be7d05bb7..16030c443338558c86faa43bc79a985192a1857f 100644
GIT binary patch
literal 280
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3Sg-1l^G45?t8df}iKQ=mx0
z!~CmHRvnOxRlQ<l()3AIDMPqRU#RCZS1uQ)lkmr_N>MBKI$5!8KYQT8gJbXC=-JOX
zT)N|kgPO6x?bVri+9H!@XRdhhLr`n;rLapnll<eYZw4_P*i%tc@UU8aHj~Ox-SZEQ
z%)bB0%+Nq!jjiU~swt<IG}%qyJm=`mqNH1(BQY(oWtx5Rhs4)BrjAkTb~~oL;k#2^
z-m-21`;j93Z;~gkGNxU#TD30Mhan>(a@Q&qZSIYewk_QnzC9~zmz$ZGUZ~2lPoIQ+
lk9_O;%Dc4c72j8Wx2B{W&Q+I}GcYhPc)I$ztaD0e0sx=<bjbh!

literal 666
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`4mJh`26+$Niwq15Y)RhkE)4%caKYZ?lNlHo
zI14-?iy0WWg+Z8+Vb&Z81_lQ95>H=O_WN9tVse7-+>bCaFfgfmx;TbtoNt}9KU+9a
z;<)|yXFcM=pP5ga8ahgO=5i~o?a<sYg)g>brN?wWztWHT1)tUztZcF{Y2F>%l4sU2
z!D-`O*I7B4IbYVPslJbWxA(f@k`RH~XU{+Xt()Jz{$TyGix!u7mv=t*+VJ4xr`WuE
zIueiK19rd7I&Qga&Uwa3Wt-2gzQx{mYn|C~@6Vq<Ul$V>j~DAcs_wNiV)fOk-@pF4
z%iUSGVeeywrw!YlKioMfs*F83JNx>rJ2iq~tFM|b4SKoq^{$MyCsT|vWRo*r3i^Hi
zVdJ`Q!qR&M1{*oV#l+SfdHnHf-ga+^HjSk(zE&-{ocZk=pQViz>w(F7(^3O9o)|Eg
znVIF>-e#Sw(WTUOSaI^?$!E^oQRcYBBf&7?v|7O&Gc||hmnS-P#97VVC&j{;C?Vu3
zIPdwylTR!x15Y%vI7BrZ<#<!JdtdJD()-`Tn-mf(WG=n`&gp#g;6c6keX&;i4H>6A
z=Ta`Hudk0-8Dht&7<TU5xd}m&yq3<GJNMwW)izra4>Yu}{><syby=qIZ=HSC)~Ky3
zSFTJCI<+WsR>s<&E7dw`|DU<e-4|0JGS%zpw9HwTy)@%H0@WWCa^Ec1ygM^_(TpSi
zMJIST*x47EgoTH1*FC*!;gnr^Ehn^=@-Qf}oJ^S%qSgG~eah+YhQVS%ee;sntX-RV
z*x*9c;;sLbCnZYsxcdE`{&7*JP-MlveKxxcyB6&)E7cKk6*R01xL=pf@aD<`^ZCku
W7JPkkj+23bfx*+&&t;ucLK6T0Nh~n{

diff --git a/htdocs/theme/md/img/object_contact_all.png b/htdocs/theme/md/img/object_contact_all.png
index f571504b24677f54c02299d6eb3435fcf1118788..cc204fdcaf1f376df619bf444699ec4123df7d9b 100644
GIT binary patch
literal 170
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3Sg6neTihEy<KJ!Qzp7%0K;
z@Vwv-ac`AH0o}<NF|C_Bn%`9KmSwLnlfL=q<m!?$Cc!=P)0DlXHe7wZCNw2=1MA-#
zk*-|9=4C+_GuWrkKR0RW`$&tOJNe^e&lYm<ev9+^keU9>(A3BK&W;whz|)pr_J3k4
Ykn<?s^|k8~0|Nttr>mdKI;Vst0Q*isLI3~&

literal 810
zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4rT@h1`S>QU<L*T_7YEDSN1C$qP(1}yZ0PP
zU|?Y2EbxddW?<kJ0%68WckBKzFfg#BJNh~@Fl_AS{*%bcz`*Dg;1l9%Z*On!;9&3I
z>fqqu;N<Gy>gV8*;NX$w<mBK40<KQ3-cBBVPTo1LPEM{Key$!tuHHc&9v&Xv;U0c5
z-rnBc;W>WZ-hO`Je&IQOX|w%u_5^vm1_cELrOgh{nG&8eJ0_threaS_#kqupgoK>l
zgw|teIYntjQ_|{>rM2!!Ydx3Kx+kaiTu$%xoGEXLauSNBoGY4gy=cnAiu&G)DSIlW
zoU54qu)e;czP`S`bxQr>uk~yGx7Js*&OX+<=4<Pk|E*j8_x85-E<V@0_<HY_|Gj(u
z_a6H{WlHOmHP@#c`#*b1@9Zg4X0JInd&|SwTi(n*_J8)d|BDwdUcBY{;yqs%pZmXN
z&%-sx{;xUrf6JQ1TaG>4vt`Ymb8q&X`?}})|2=R1A3JvJ+_7Wl&K)~<?%cVD|F54r
zcm4YHhhP7{dHC?n|NmeA|A!L)|MUFY2#TJ(k|4iekTBga!va<tV+IC>m!2+;ArhB;
z&%O0N6d-c^BlFp5PO(MNYBR&cb}l=7yZQR2T{;gRx%CFxP3Sx|N$1wj|M$y|-TU(F
z@Wa#Zk1`&)$^Vb}gYW$}kGj{{KM1-1F34ha_*xNO>91Lhht{$!m-LsCQQ~=<V!JO+
z_4Ui2T9R^m4j=h;_+O#KufKmUyr099@NUbGqw{VT<vyNN+}<S6G=1rd!p-U})(x!_
zF6macRO&yyDqCaW<Jh{H;g;{NB!}|>Vp`5q3yw6|{8i))_1S2Uq{Z!MsGQ{3*Ob2O
zppW?Oi(;+PE1q^PmaS>I#n$@%`crYi<3E1y`E$fx{*>(;{kJA;3=9kmp00i_>zopr
E0H9#Rq5uE@

diff --git a/htdocs/theme/md/img/object_contract.png b/htdocs/theme/md/img/object_contract.png
index a75f954555ed53222249ca6921a7df634949d1ef..6e14b35ffbbb4acc323abdfcb9ea0d37421ddb97 100644
GIT binary patch
literal 134
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3Sg_<FiHhEy;nE3mFGzG7gq
zz-d8;)T%}8JpVTyVAsfMVB!t9#we1?yuPD%!lIKrn<eZFM2uw)F6Llt?^HS@Si>JW
mQOeo0Du}Ub#e@kr7&P9_mEx)wj%8qAVDNPHb6Mw<&;$U53@APT

literal 359
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`4rT@h290TVA2Tp8u$OrHy0TwoW)+vR<dDev
z!N9=4S>O>_%)r3)0fZTy)|kv-U|?WLcl32+VA$Bt{U?!?fq|hkz$e5tDk>@{DCpk3
zd-txLyLax`xxH(zZJl#&Y0v-v|G&R~{{G&zV_UZ-CnxV+JLmuR_wS!S&(6+1wsmcG
za`L&YbN+w-UYwo%{MxbS=k}i4y7b(!z4wl7-Me+^^XJcx?cICq*s-;1*S55@ynp|G
z>C&ZBrcCMS>Djw=YjJUL?cZQM1_lPkk|4ie28U-i(ij*RGCW-zLpZMc9*-7kGT>o2
zAh5u9p@_t3@9ss6@9JIBFW7y{XJpWSpeVTWaf+<>4rTS)eED-pZ$EEURegPJiQ87!
z6|q)-XE>b=(69NvHEYGO%x|W-*QeKf4h>yfs{HS4cMyl>)Af-IA6VyqW_{1-lXQZC
Pfq}u()z4*}Q$iB}*%728

diff --git a/htdocs/theme/md/img/object_cron.png b/htdocs/theme/md/img/object_cron.png
index 6186d18da70caa5acaa255752415d8136edcdc98..8a3a5091614a7b394b736de789d24c29d5228623 100644
GIT binary patch
literal 284
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3SgJoa>P45?t8dU0!_w1Wu4
z1@W|FW^-q>d*tibwk|LXe|D+NLOG-HfkM*N#59q^yT5&wydS!mi)&fzwacaawV&Re
z|NWv*+v<qv-mQ8sXCw!i?F|;b_Gs3!O$)*jMYmqt_I>YP@lB7_6yEH;%@AI*iSNNi
zONMB>T|8%gsNFQycspBj!Gqb!w#|M&)b4Aqc(F6UJK$ZswI;)H-HOc9ktsFCoH5@n
zE(<dkS(|j+eLBOtD)lv@?Jj$_zn{PQmDZss*U-?IOG>NW&DG6RpEF_O<Go!I_`>hz
q{(QjyE#}f?(aWET)M8E6y;t1r5m(dxLyUoefx*+&&t;ucLK6T|IDXCm

literal 433
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`4i*LmhOLfIqZk+%BuiW)N`mv#O3D+9QW+dm
z@{>{(JaZG%Q-e|yQz{EjrrIztFa~?NIEF}EW<9u9pE;4?z{C61-@{@<w>Y}GKGyd2
zNKO&p7TXx<qGTwsMvHCY3>~K=qwW^po=I*#zW>?0S6(oCqOpAMw=H{jU;o@u%p%L-
z@TOee>8*!sv%hpJ3u|}J1)gQ%P7^%;?@jDjw2Qq^@5rSap(O{Fit}Gssj%_PbKb8D
zepYxUCrq)>3thG2h~!e^XR5U+zO1s{OnjwU4*IbY5nJXgyY&29Z*$6yMpwo3cai4b
z5)2kzbgsO{_u};T)feS&O{utlF~4$6RFQ5|g4&$<lS@y{XklcRzQ8Ci+-p^J>hyA@
zL{Ix`7yPfzmh$me`}afjcjEkx+&yPIPbdDGAkxT^yH8`{{Y&~OzT73{ivm^7nS3~C
zt=P1MC)^``>pZ)&_h+0n*LPr^EZ}?j?C*|Jn>(V0@1j4I*s<+A|83oiN2U`lPFS$;
noy`Kl^KwnaYU>@H8U8!ycTQw|W?Rg_z`)??>gTe~DWM4fsJpiE

diff --git a/htdocs/theme/md/img/object_dir.png b/htdocs/theme/md/img/object_dir.png
index 6f364389133c425747e0eaf8eb2920013a815572..fb51c4b100c90c3e1bcb801cd16e0226cd598516 100644
GIT binary patch
literal 99
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3SgXnDFghEy;nOK=oSdT1|W
z_8@?HlFFJl_I?#j60ZLziu7t(H3pvyWc$U;P<ekwSMlMy+6)W~44$rjF6*2UngF|d
B9Yg>C

literal 301
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`4rT@h290TVA2Tp8=$E)glsFfqCYEI8=P86_
z=B6^FWajEA7?~)fy(}xzQ!p|xuuw2Eurf8ZGBQ@sHZU|Wi2b^fg@J*Ay~NYkmHh^j
zgs`RL%4mg!3=9mM1s;*b3=G^tAk28_ZrvXS1_qXNM_)$<hK>E)e-c?47#O4jd_r9R
z|NkEq6}5D!;{X5G{$E@A|Nqis$Br>DFns_1{kR0fZUzPh#*!evU<QY0H_{jw7<@fl
z978H@rJjrAV^HK^b*yNp_%F=g%{Do6zm~?t7vc@!(J4HE!H%I@O4#f!+d2A7yL0Ja
zc#ux_>b|<$Mn6(@qmJ&5N;dp1@9+BPCG#?2#uF!h_2x4$Ffe$!`njxgN@xNAD7IvR

diff --git a/htdocs/theme/md/img/object_email.png b/htdocs/theme/md/img/object_email.png
index d5cd141733d3b07e6d6348aaf0afecac51346718..977c4cbd8f91a5c010de1e00ed9938b64a740ced 100644
GIT binary patch
literal 189
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3Sgw0OEWhEy=_J-0EpIY6TI
zqVnEr$`8&RVm9d5+gZrVs$3y#+_Bk7WD>7a_m|nPJUu4p-C1vYbnE|fY#T2wV2OH|
zJatbC+l!VZW_kzK&sHgsd?{L7tLERjxUTciifJ)_f0RwU)0@=zsr^*qx>NGu0W)l#
tscq~n`rmoWK9G6JKC_d{C-42v7WHv{<(k$h<qQlA44$rjF6*2Ung9bTPsIQL

literal 368
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`4rT@h290TVA2Tp8u$OrHy0YJ7mla|&%m4CG
zgn@y9v%n*=n1O-o0|+xZtudLwz`($g?&#~tz_78O`%fY(0|SF!fKP~Paq-fgo~=`+
z?42`b@0>ZumM%TFcI~;XTd(cid+pe<bH|R|J9qBhxpU92UAuSf+VgAI-roa(=lAZt
zfByXa^XK2+gTQw%`2YX^|73Tm%?u0-QYArt!5}_X%pjt~aEpO~q2ANQF@)o~ZGR*m
zvmuA`<(wsIPEr##-TA+0>Ez76jbBoFd~Wpb2$}!TA^(6ptHkAwJdtS|ukENR6zR~N
zzA@|;qrv8#%bX_eTgS_~#o0os;!3z`+Wy$M#Ny9ya<_^6F{<DTd?@w!_Ql-EtDj!+
s<4u}6E5m+mfadk!Z+bH?y`RWmbeiX@Ot)tV0|Nttr>mdKI;Vst012|SoB#j-

diff --git a/htdocs/theme/md/img/object_energie.png b/htdocs/theme/md/img/object_energie.png
index bc3966d2fa2e83c5810278c33a37ea5fc6718d90..668d1bc68a13e0118d53a2331c13be10cd7a7933 100644
GIT binary patch
literal 158
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3Sgq<XqIhEy;nD~PHXm?#`%
zc+<sa@W;K0k42R6CQpl~<%7T$gZ2$d?1#GS8fu?=-|(%MDA}kziy`D2!>SCeeGIt_
z+LfmjTp|L+Cb&9WbY)9B)b*y(gwb_1$MO~<Hp@d@EfObK8Q$M>sBb*JZ8`%31B0il
KpUXO@geCyGfHM>T

literal 376
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`4rT@h290TVA2Tp8u$OrHy0Ty8;1g0}ulTb+
zn1O+Tv%n*=n1O*?2!t6g-L3n>z`($g?&#~tz_78O`%fY(0|Ue40G|-o|NsBDv=kQ?
zM;$x1)X-3(r=@uB-YM74P0^GPSUacX+_5QhdMv*`@7cR`&j0_%)-JXD{=Vh;wH_x!
z!)xcx-MhB8rzNPmSRy-_;oi06|NoaB+uKu|o&Egz^Sygp_HK>({=Mh@^X%{MdyXAj
zd+gY;y?d*VZT0&9z4-aP;;0~}rE|RAzwfCocDi?OYjL($b+K1ZPx8{GJyVi%<QNzj
z7)yfuf*Bm1-AH3#V2Ji~aSW-rm7Ji!_Ttq`X@!bgH8ob33g#`FrZjy5PtWp2tCp=(
zWO{t^)JbiPO<J1H6-tYe9tlkfx>Rtq<_}Yo)1iXNJ9boBR0v+%u(7y6X=mfiR?(ZD
fJw6t9xEMOcSiSDfIy{qsfq}u()z4*}Q$iB}%{r%T

diff --git a/htdocs/theme/md/img/object_generic.png b/htdocs/theme/md/img/object_generic.png
index ccfd2d2f5b2cc8a689ef175cbece501f8084084b..7b72fee88a86fb273f9f2a9e0a54126784e2357e 100644
GIT binary patch
literal 109
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3Sgn0UH4hEy;nE3nQ<`O(iJ
zy+Qj||FRX08<f~47&Ub%oZ`?pwC;_4nTN6K;x500(4r|VN7xwpoK_hxRSdn%z`(%Z
M>FVdQ&MBb@05wt}#Q*>R

literal 361
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`4rT@h290TVA2Tp8u$OrHy0TwoW))}RUA>)6
zgn@y9v%n*=n1O-o0|+xZtudLwz`($g?&#~tz_78O`%fY(0|P@vfKP~PP*6}*R8(?u
za&d8SOG`^nPtTMoQ<g4Wx_0f_y<4{)+q?JJv18|!_MF=~=iJt%=k~6>wsp?EV_WZ?
zJ9h8dxqJ8SJwLbi`Sa)RkF9-wZtMGNd*45Q{{H>@@Ar;<zjyBY^K;*yU;F<2-uL(S
zzQ2F||NZm--{1fL{{8>|@Bjb*56g7k%fP_ER1)MD{GZ|Jb^|X428J|G7sn8e>%PY$
z`I;3(7#!wthq=0TbL%;FJh}V7O*N|Jr!<p7UV-wu4vVRpzD|Kpn%wSgYMK-fUB78X
z#&WG!sn;H^HC=9XEMRTl-tSwF`EJ`cy)0TPe({o+w14l*Us$B~*sAI`$g6a6zn@gh
SJdJ^Yfx*+&&t;ucLK6T<nXCN(

diff --git a/htdocs/theme/md/img/object_globe.png b/htdocs/theme/md/img/object_globe.png
index aae8bf6eba03015d44032e7fafb2450c05a19dda..4c4a2e48c29043e83face284e3c33a7469578774 100644
GIT binary patch
literal 305
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3Sg{P1*f45?t8dg1h`ph6MW
z5BD`PW=)^vE;!5ceUez<`Gw0pp9?N>>+<w?YM{ZP#8K5c%i^rJT~pPbH~Ehq@ZX>L
zBl<FH_U71i?`HZeTfORvtZ;Rq-^0C9OKx2=v*U`d5mnnZZI;mXwSO;9vEH@(;ghM;
zT2rllA9Q0jwm+a>e{qv3(~6tjpEN=mmmiYexzb?5>E0IqqWo5M2emr~ydUcA(6>46
zyU;(XDlqC*?0jjj=l3{e7pxL^K1W7o&ZNWI49U{IXa2D4|Lb`Bnn1&@sjcpD)>RJ{
zPN;mde`lA==~L%IemvX#Au@3t<H}uypRUYp><TiCt+kci9`lN8&bOLavE|k(3=9km
Mp00i_>zopr0Qdxmd;kCd

literal 366
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`4mJh`26+$Niwq2mrk*a2AsXjPFL`@21xg(I
z=zQ^<(%VBBY_6`ZVI{LqO*)}8by0V#;F3TAwU!;+QCmM5Zz;OEEdS>JxpIo?X&<94
z=6$c~D~>zfdSpYFwMjukXZ>?0`As_xa7X=clg|IJnCW}S!A<dt+hopt>?jX?&lz*!
zps$Q_Bh$2v%kH;V94j*~kV)Mdc|`A7=*fSxUE{8vyK-|$@O$+gM`l=gENT)A-Mm0n
zcdbOp!f$OKmax2zxcG1h)7tJWlWwgEe|P@F?-${dcym^UMqgWNb?O0!>T+gP-u*3(
zx+nP4e)^_(vQIdaZLmCQMJC(sHrF{xexjdOJ$qU8=1jqNE1hED!ZRymv&+4%PYm4s
zE!XM~Lte<ucds11SHI}v=F)MuwT#dIA{@Wsk@M-zXTQ0!&bpXzH*R@fb*}AI;TCzx
YH5(qp?KoJ>z`(%Z>FVdQ&MBb@0Qz00GXMYp

diff --git a/htdocs/theme/md/img/object_group.png b/htdocs/theme/md/img/object_group.png
index be0255f7ec2679667491349672d653bfaea6ab89..cc204fdcaf1f376df619bf444699ec4123df7d9b 100644
GIT binary patch
literal 170
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3Sg6neTihEy<KJ!Qzp7%0K;
z@Vwv-ac`AH0o}<NF|C_Bn%`9KmSwLnlfL=q<m!?$Cc!=P)0DlXHe7wZCNw2=1MA-#
zk*-|9=4C+_GuWrkKR0RW`$&tOJNe^e&lYm<ev9+^keU9>(A3BK&W;whz|)pr_J3k4
Ykn<?s^|k8~0|Nttr>mdKI;Vst0Q*isLI3~&

literal 655
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`4mJh`26+$Niwq15Y)RhkE)4%caKYZ?lNlHo
zI14-?iy0WWg+Z8+Vb&Z81_lQ95>H=O_WN9tV$wRNBWgk!7?@-{T^vI+&X-QI&kjzM
zX`TOl@AV}D|Cd}j*`T>LY0ZKrdB<|`^6=JkR%vfiUcLw@C|()ApgHf6+AD=T-iXCF
z?%XkXyZ7Yp_uq@X3NLJyn|HXenCHN?Yu8S_dX=^RZl1l+#5EdS;g?@-*}rq=%OCxp
z=FXkF=l0uu8QX97zuv{R;POkG@T=YjF8^;#%g=wGwE3panyr;yoS~{qTRJ|xyL)^3
zT)*duUXys)n!^u2+^~QD{`U+;@BaoZzIY<Jr-MVusb}KD5A5dVRsN?uI~Uy9S^azG
zsySOXTz**+7kag`V?vP9F^`_cq97wJu05Z3{G9W?{eEP8d^OV?_6?z-mZ5()Gz59g
znHRP~>zw7B?-lPq-b-AQx^wRywuJV>i5-Uf_!S?_S-dX$lTCVvh@;BGy@#v)IT{~7
zPCn)NQ~E$&e*WnSn>tyiAA(K?qPh*!<eV$yYYteS&oNu9qb{;IiR};5iQj+g&PP?p
zhR!u)YnXB=ar4HKi1W`vu5zBUj9M%9c+(y0+Z%7c-6uFvTj>&8K<Fl&-P`tU+xF?}
z?dvb*oZhUX>^igl-<PL1nYOH|;*Jm#WL8k>aZ~p5^PevI$(8&4-^BIhkK^9E<uji+
z^X}a`y`a9nJ_#N^522Omrrn(kYtA~9PD#D_{^p&(XF|6!`Se_rlaZM-+voU9L$*-Y
zuR6jLTMVBSdA%&!T$y)Rr-%Lf`}JG&w%D0XmkR&S_U~tK@(<?UkK<|{e60&$U|?YI
MboFyt=akR{02DMg@Bjb+

diff --git a/htdocs/theme/md/img/object_holiday.png b/htdocs/theme/md/img/object_holiday.png
index fdc1dd8e22ba4d7780de2fa6aaf8be3d130e2d28..7f11fe166b8aba21f0c5a7a6c191a5d58a119497 100644
GIT binary patch
literal 251
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3Sg9P)H=45?t;+P~G2#ZkmT
z{+*`ngLizj3s@ga%Vn=%o$bsqCwtpPv5hw~nP1z9-`ne%_H2KCNr$1{gp(i6OS_jS
zCUJ#+xez!*^_X#`%C;HLxvpL{X<HonDR03UyVyAw7Mye|nWh!A;-dIppG|V}-O{y<
z&hs-FS$&>jdo)jFg5&cp+xW<3+>P}mA-jHTnX3A)LUgP7?n9h^Yc@Mh|0}jdIXcUr
z(>Hr9_tCs9a=$9Yw?=Nc;TBu7pxD19@lnagGZwi=8G>E~Z<INdeTjjAfx*+&&t;uc
GLK6TA=4lE5

literal 771
zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!toPI<aGhFF~LomA~{IZ))d
zYL&oD-^*Sv`A>$JbY4A`@-yPH&xK1||7SR^ZIPKZ>GW}z=>5LWvmY(9{Or1N$CaIy
zW^+DY%wL(pwbH)5^XBVtO^vDNE=FIvJhwx@?$v?zYQFDv=O5q8PW{TCeZGH^$f>Qb
zuJOsNzWV5mkm$Jsg?B0^_%GH-=C{t*kQ2HjDeA<Rvf_9`TAA3SE9)KZ{g$%&-Me5)
z(ZU~ll&fPu9>|qiYJGRQNS8Oq;T@7{XSxG2V<Mv5dzb^xb2sy@mOiRDY1V4Fh`{9S
zFAv{g>Zy%tSy#?r|6Ke)g*{_Y(dUz;M_v3BLJu#Uyy(@pj#b+P4QhY$wr%&Y*vb&>
zB7NoKdWV@z;p=BFP}iO!V2~@Zr^xnW#u=W)mp@;yvEqL`dGm*mV~uQU8JF-|U!PaM
z#f0nh-hzgniCKngIvGBF)}O#%-_G`!U!nTd!f$bkQ?z-Pone1F<?7n!Y{6SKeT=kb
zImb;ZVfgn++oZpyagLsG3GaSJ(d*(~rhgSyT}#$hx+(iD+0k|F64&5j%RmJ+CgD_p
zz%MLQj_{c9oj=I?)_uqA?55|dY&_C#IY&9Fehd#SoFS{~(PdoHC8V@;Q|F2BElz9C
zG01F`IVbwvaZ{dDkMsEjbB;G1`5__DYPDuwt-<B_x8^+X{UmATUCb)_V&<f7ztBj<
zZTd^DGdmpZXArZ#b*9_q)Nv;nsf!c$a#$bfTgozbrJW1g;kL#*x*XLl+J}T6F7xFS
z5Odk}CI0ihl|ELf=87D}M#q1??{lmEEpU4cn=8+no~KHVji!fWAGTVweE3j&w=|~w
zbo!;cb;i6$*>zcV=klk^Zu}OL882A>rq)|4cCr8W({d-Qb6+ND9}?Rbf7mu~Zs9S{
zZFhRvllYS^&w4*!_NCX_?!|Yne0-5rd&{#lK8@j;i1*f-@Y8!O^wj^=uTH7n`19eq
h^ohGG7Z=wvST2t<XKz%z#lXP8;OXk;vd$@?2>|4*V7~wW

diff --git a/htdocs/theme/md/img/object_intervention.png b/htdocs/theme/md/img/object_intervention.png
index 7bb7ef583b465f156837d8900d29c41e636c0533..148928d397d562a0d193a81e4c28c830410d6e9a 100644
GIT binary patch
literal 270
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3SgT=jHu45?t;dU|P+XaYmS
z#pd1Bixc`AcB^UZ*vraUuDfHm%AJLd%+I6?-@V&cpIWr`-sJuMlX^B?SGKP$xTM6n
zHcUa|tM@8D+dOIAV`8$K*0TDP2X3G5)?pCbyI-wii+_PnOYklo29{z*eG|97$bEv+
zk!m;C9CjCTE;4L#Hn<h;D6r)ghtwTo-k!Jpzcz<SGZfndrm|1t-gasJ-i>ifRHr?j
z>h`$P<e1AuKCZrwk0<M2^D-L8UVOa!VbYpO>KdP;+w|_PlT>XCEUSL8yu5FwK4%pp
Yo4@0FcKz9!3=9kmp00i_>zopr00s_eumAu6

literal 340
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`7G?$phPP=3j~Eyj^h#VKN}P*Q6H7Al^Atid
zb5j|zQcLv|3{4ag%Zl_Aj0_A+6^sn5OpUD!j1;sD3=Ir)@_WBAFfg!}c>21sUu6*$
zGZJj(?iFBQVBjq9h%9Dc;Q9c<j81DzW-u@?u%tWsIx;Y9?C1WI$jZRLU=ZLF;%aMa
z8x<9moSdAUon2g9TwPr~VZww33l^+hyLRi=t$X+GJ$CHaxpU`El{-9t{`~*{|8w;1
zJ~A*c2$Tf*1^-6{3=foJB^ekP0zF+ELn>}1|KMlj*^wbGF3u?McJuQuAFEP+omu<%
z%=^YKH+R2%Rrp_W&-pud)&(x&6tOSf^X`r^Tkp0vxu(lJdGwYkF4NPq<EeK_{#Vca
bo1Z}?(xto2`$sba0|SGntDnm{r-UW|d0K;r

diff --git a/htdocs/theme/md/img/object_invoice.png b/htdocs/theme/md/img/object_invoice.png
index b4022e77740bb96770f8fee065c58284e3518c45..19d4be8371db14278febf70be41acb3963dd7d0f 100644
GIT binary patch
literal 146
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3SgM0&b7hEy;nE3mFGzG7f<
zAd#uem0$AT;fL&P^$x8O2kKQS8WcH~^h{7<>o8*KN;p-Zz3adOhBoeooD$a=6PR2*
y7`88BW0BFiW_x7S6S;Luni{V1XsM`}G0gwjTk<Zo>ofxc1B0ilpUXO@geCw4G%!v8

literal 394
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`4rT@h290TVA2Tp8u$OrHy0TwoW)+vzwS529
zje&uIv%n*=n1O-o0|+xZtudLwz`($g?&#~tz_78O`%fY(0|P^EfKP~PR8&+@P|&q=
z=dPXGdu;2{rE_|gPHEXYr{&n3mV5W^eSiP{+_9}wdaCD4sh-kPymx8Oxuq@7?_KL@
zDPB9LXY0}_&yTG=x3*{R*0t}i?LD`4%CWs$-`_iSZtI-)@82(-Gv(g7z2~+r{r~^}
zoH;$$_HLasrRDqg@6Vs#yLRndPftrvPfu}iadvjLlatfAbLZyFnR9FI@l*x|2F8*g
zzhDN3XE)Lq7#NB@T^vI=uKS+4E!1Sd<9ab5$J8uNZLyof(F*o0|NmFoIdK2ZJ!{F(
z(4iraz!CcOPUeh&+w<FUQZAR>pLqUyv|Z=1ON*y?ESVkiMDC?$O>8W?-prY~rL!){
zc9%SxyZ(Foj;cjht2V#Q^s(D~?yR`&W|0H(=VLhc3iT-DGB7YOc)I$ztaD0e0sv|O
Bxz_*y

diff --git a/htdocs/theme/md/img/object_label.png b/htdocs/theme/md/img/object_label.png
index b112af5cf0afc02fc7c8f00999205ed0a8d8b603..faa4774a5cb33366af150a4331b3a0c05c8ac5b4 100644
GIT binary patch
literal 158
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3Sgq<XqIhEy;nOGqS~dC<TX
zdU2|W(VycD^^!G#qHo!`k`7(x5jxSu*T8D{kdMvH$90Cmd<j>3i4sojU*{G$M+C|x
zzTPIt*A&k4=tS46jT%1>KWLSER>foHkip$j=8(bP;>E+v%HY1K!GAyBFDC{D1_n=8
KKbLh*2~7Z+;xr2Y

literal 769
zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!toPI$UFhFJLLPWJZ~c9b|a
zU7|-kZ&roDL>K!8cK$e<LKC;eYHCGa9|i7js^bwB?sZfW`z3yBsV?_l=jdCyxtR;s
ziU>t{bx+y0+j@6yx%~Z`3p}2Dcry3Qncvm(E7RQ!c$_78*bZfwDDk#Fyr96lep24$
zKhCk&=Nm1He_XvoBAMyzO(q47^oByO9o{GVd7Aec^ZZ@BZnH+_e8aCUfm5#6Px{AP
zpyjykd(~a8T(;@UG|Qe`D&<|ZYS!Pn`l!oWPBX@A`O&2HvL}<}!hy#-B{F)O<BE=p
zGo-{CxGzhXwQPaLtLo6FqLLL)6nvAn%~-a0{R+0Tdmpj>FEzOLvPACsZ1;0TYs1!=
z&)RbH2lvCk;L@%bp4vqdW^2AX!uH{vaH)~%=}=8MXA2?6-G8~YLf@~}3cY&b-%gXF
zORvBFoH%d3Y~qprf~B`#-{)WFrQ0vzV5GcwxfV;nf(hKQ<{r#mAr}<dmoLA|TJ-M#
zo4`vytKFKr{wn?clY8yY!?H)aiy3FuG`?A7k+nVGhMr@W+rzk+CVd5`bI)gAxu9<L
zU`cURzUj8OIIgw_A9lP+3FJz?_qtUg?%*aB#ZB`z#Hv2kNjfQ_wR^YStAo1I4z@F6
z{8MWh10)<XMftXK7e7&&crGD(InU031+NS%Tm|#?-)D0Z_B5Hb)>1lQ<}?Et9`#E_
z*Iq{P9C*#0;K`HJs?)w=;liyPNh?Ln%!*G;-?lOMZ)eiZroGL-X7L)l{M&qwK_^>B
z`MKTMGiMGOzHbxpUJ$WTDO^V}`o<x*GGR?Cr?S-@CI?q--TTy-on-@C$#Unq^~pz*
zULKylesjqb*Ikz+ZuSf7^odFx4}O_fS$@Cxid~)a`p?f?8BT7>=?J)eyWaYB!NJGz
z%Z^lNhijZO=i^`gGW_0#jM|igb@tPle(Zk0z4qJ3D~@|V_Uy7v44UsVxxPGD;$nrv
f#Cpbk@6A_qxJ=c3tdYmSz`)??>gTe~DWM4fBe-F^

diff --git a/htdocs/theme/md/img/object_list.png b/htdocs/theme/md/img/object_list.png
index 1ceb098d9cc3e9a75d8125cab0a63e79aed51d7c..f5df34a3bc9f8393c23f35e25fb7b18b4b51654b 100644
GIT binary patch
literal 83
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3SgNO`(AhEy;nOWaCe5@<TX
lEK$G|*yXlXdJ6-?o2O=s!5(k&7#J8BJYD@<);T3K0RY;h6w&|y

literal 179
zcmeAS@N?(olHy`uVBq!ia0y~yVBle3VBltAW?*12lWRG{z`(#*9OUlAu<o49OOR}U
zPl)TXWy_|`dU5sY)&KwhTm5ro0x3%Jc6VXuV3qY?U|`@Z@Q5sCVBq=y!i-L9OlB}J
zFtC?+`ns~;U=|UPW9nwQy_A80LBZ3-F@)oKG6yej>WcsW*?U%pt!2D?H9+dv`KYZ;
cj2sLPzKirnzY+h!z`(%Z>FVdQ&MBb@0G+-yng9R*

diff --git a/htdocs/theme/md/img/object_margin.png b/htdocs/theme/md/img/object_margin.png
index cd0eb4109f7768afd725ee12fc5213b3d4c31adb..b8ad5b5cc2460224ca85ccaed177b9ffc9f9ae03 100644
GIT binary patch
literal 92
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3SgD0{j%hEy;nOGI2a@IjtK
u`o;Paj4Yg*zxbP$Xf<*2>brhnX9#}hSI=naAk4tPz~JfX=d#Wzp$P!ZVHe2&

literal 571
zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!tom^@t^Lo80WUh>Sp<siY9
zQ0G<8Rln$a+@;|4Q(r857NDscI^E=zkmF`W$4C*68<Tb%R8-q~BPrR3C-;n$`jH&Y
zrEfpJz0n&enrL)s^+ub2a@EJ?A1yN7vzxV#<$r55kIKt_J1dWM>02u_&b{hNUwclW
z_;gWihO6jPp{Z%?uM%1=zZ0n0$r!gPvGzBE;w$Mtw{`CAT(skRirlgTZe30t3kCc(
z-Z=aDMA$72)2d&yF8%LSy)Tw`{>C!qPG$K{aqA}Ojen%<e!iXY`vb?*$!0m{=bAIS
zWfTgZT>L>oVAb&rdw<x--VmR4<MC?`(dY%6+JDSC-RHQowy|A*`ZDI(C47}Tx!2ut
zUTCNA(pll*6TYlh`Zjf2llVf;yGML<SKOv2*rBedX<r%;<ffr^X~M~0m$&N`FSz)3
zvG^2!_v8Z%Gh1E%SV%v*`CH$--f^X=%ZzgiZv5G<nyYQtc6ob7`I_0xx1@WR@>|&A
zU%!5^@Xp~Z1-6x@2W&D`f)~^jEfmjamsk?<q|e%F#?N)HHhV~&5?pY$F=#QrTZTfc
z<#om6w57&6zZVH)$?kak^5lUmmEN_?j7>gK+x_YmuTgToWf2;5po7b1;*vW3E&6_J
zVt1~*xyzoPG3nM{OLog#{%cOvH$0wfI6N(2#VUc<vNz@)JbB=&qk{HH*-3^zO_H~>
fc_Yl`{pQ}8;<x?cKe==U1_lOCS3j3^P6<r_r{M(i

diff --git a/htdocs/theme/md/img/object_opensurvey.png b/htdocs/theme/md/img/object_opensurvey.png
index b5de3223bd4944e9ba35075c3c6a0052731a12d2..d1f88f3c794510b47ac4b97f7d6568c3b6e24b04 100644
GIT binary patch
literal 103
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3Sg=y|$0hEy;nD~QcW`O(il
zuR-Hizx<^zL4gbIf&vqkad5Et3I1LDlqF8pz0;?FVJ7b#SF4LoCJYP=44$rjF6*2U
FngA8&9M1p%

literal 743
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`4mJh`26+$Niwq1*>pWc?Lp09&PKx#jE|fWb
zKHK(PCV!c8M~jkC_m_ilO{}p~F5I{>XYFahQyn#ebKBA)^&L~9lB6DrYI}8`y<K?j
z?Cm`%i+rD-)628AzTG!_TdLT+{QtU}>prx~|G)qJ^Y6d^J}f>o(Lj`!;mW4ls*xo+
z7tQ)7C))DqX{|ne>`e68EmzZ~9%!9$UHn7f?Fon9PU*d2w>kA!l**nnNBWMhyx}<|
zU_R&8b!^UJ!n+Sdr3Aj;?>Wc&Ti(9>w=S!>3cscwU9wHaaHq0(pse!G#&F4`tly<u
z>MyR-y|FEU|M|ootF#+a_(b`(#|Ze>?`Zk5E+?htl+&@}I#0gdap*5*IeOUi(aG&5
zU%b`Kc9}hWF#YB4$6GyeER~;SY;ydb^4M&#%fkbycO(N2JxCJh)eCEPKKuOWr;X_|
z($AVajs9q~>Yd4*H`BXYnYE_8STDFTV99C6&oQMuo7NX;$mlrMy>|^<>DzucIawpV
z<8el=(kkDgOM9hz_6mzusme*MSNLSy^M1csfca-B*1eG{=1q9KN{!QR{oL-x?N$8?
zO3nEDCTN-^-dTHa&wYW@={3bi=Cpa$8qM>cqr}^H=%{c2$IqFc78X}5xUX;Kclu#>
z#7Faexh^N{KL;%BcW=$pmy_h{N<H%W*<7BZ+%k7}Msz>gXAyYT<D$h{2KjAA4w!wG
z7Rgw$LZ;`q?INW|mHF!$&!#TbbmZ`O!)W}wB&P9F9n*L3iw09WJ<oO2<Z|6ik)J8X
zZ@SV}GWfuuvzzpa5;rmnG-+>IfA8YfUn^shZm3TC=6&?kLXj0SZFii0Bj$Y~T6X2x
zUA@_I=X9I@?tjfGbYpK)V*6a*6|+MYoSNWLBBSq-S7LJTrTJ!?_fr+Ou;wNeON+5M
z3Pn78`5>!7Fs#y#Ly)zy?R#~`yyvPJKbY74k62#E?3N(g=_;CK&%nUI;OXk;vd$@?
F2>@oFV5R^7

diff --git a/htdocs/theme/md/img/object_order.png b/htdocs/theme/md/img/object_order.png
index 20a1ddb6131aaa940f8ca6e16b1ab2051d95535e..19d4be8371db14278febf70be41acb3963dd7d0f 100644
GIT binary patch
literal 146
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3SgM0&b7hEy;nE3mFGzG7f<
zAd#uem0$AT;fL&P^$x8O2kKQS8WcH~^h{7<>o8*KN;p-Zz3adOhBoeooD$a=6PR2*
y7`88BW0BFiW_x7S6S;Luni{V1XsM`}G0gwjTk<Zo>ofxc1B0ilpUXO@geCw4G%!v8

literal 357
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`4rT@h290TVA2Tp8u$OrHy0TwoW);&DlJnuJ
zU|?Y2EbxddW?<m@0K$w;YfNS^Ffg#BJNh~@Fl_AS{*%bcz`#%x;1l8+6ciK{6_uQv
zTwGk-($dn?($dq@GiAz@rAwEtUAuPg)~(03u06JQ>#@Cij~zR9ZfVcCt#i(8U3zZs
z+H-rio;$Yp+SWPOj_tj6?%2I!TkoAacJJD`d-v`=KezY!wPVkpKYxGk+WY6v-@kwV
z{r&U*-{1fL{{8>||1MnIstgPaOeH~n!T%YaZa45^U|`7bba4#fxbAyAP^?KofWcwg
zwWXU5iNtBLa=rPxe#UvGnfnD9%9y1$PMdl6sRn=b%}G;3#cez{n%_MiF?I6p(B4Ej
z@5`Gr*S){w5p`MHob`)*&68s@+ZuP>d0?89{crBEdlE~ptY5_NgGu28cg`I9ctHjR
O1_n=8KbLh*2~7ahg``pd

diff --git a/htdocs/theme/md/img/object_payment.png b/htdocs/theme/md/img/object_payment.png
index 5691147d8ffc7e161001fe58d28bd306815f779a..96eaf71df1e2ec5c3450fc491c5cc8eb355a6759 100644
GIT binary patch
literal 221
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3SgEb(-445?t;ddXg!p^%~d
zqkoKBYVt<UlPSiP%+rl3+25SXntbsQuZEA&sW#V{IrkbK<^|+Utbh5M_0Ib|h50`v
z<@XE!tWLSx+hM(xF?vz)t0UbvLcTmX%@iTl-(^>###sGLG`7<_TdikCvF@VMjC&oS
z?ol6CnXTIN_V#8?+wOC+3_HZVtJ3!T-omuZG%4)hx{Bh5KFWQ(Hwv^L9qfDcUti(_
Z^EpL}TB|yr2@DJj44$rjF6*2Ung9azTNVHS

literal 339
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`4rT@h290TVA2Tp8Ob+k~asB`Q|Gj(n)~?-p
z?%cVpTer?xI_LTG=f{qnTe@^>&zzPiOQ*E-^tAM}OqtTNbm`KqTle;WKub?c%aooe
z|Nj5KcJJEOt!wAZnbOlzU7ej>U0l6%>Dpt*j_qAqeQs~h(m8YXu3frz&Xl!F*Pc6e
z?bz0qwNrw&&I#JPw)ouMmc46}?;R_?c5KSMb8ELQO+L0Y`Pka(d&lNT>~ASzU|?V@
z3GxeOaCmkjje&t7&(p;*gyVYaxs7~`juNg9iw$;*EQ;{jn{@xbrHR+lNeUBnc0Ug9
z@XWaL&O5L0N%p^F>vw6l4}IHZFmE@%c}5S{>#bGuR_&NxrFxG$*T(et(k^zx)SjKE
x)=uv7`C%7-WQw};EA1zS9g7rN{`x=Ro~SO%uX*I%BL)Tr22WQ%mvv4FO#pBLt5W~~

diff --git a/htdocs/theme/md/img/object_phoning.png b/htdocs/theme/md/img/object_phoning.png
index 23a4e0b1dbbc3749b03c45864b52f7d12f907520..0bfd66d818ed353dae9362de2760565767aa02af 100644
GIT binary patch
literal 200
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3Sg^n1EEhEy;nFEG+bvtVec
zmMr<8dF$v0d7j{pno*3QS6ci7nL{qd)pX72Fzjr7$Qt0O&a7Pb|0<)Xq#zedUE6b>
zbjcf>nx9!`ZEa}moUkcs!KT)P%My~iB)=JMF<P>iRX<{t)QUGu&6<Z*6nfPIY9!_{
zE*1E|Q0DzpB1>YPvdBYj^Xh~JI?Ts1?Mj1%7>u*bKfV@Q*u=oVz~JfX=d#Wzp$P!?
C7DU7V

literal 577
zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s77>k44ofy`glX=O&z`&N|
z?e4<x9|RZdT|SwCfq}EYBeIx*fm;}a85w5Hkzin8U@!6Xb!ETDBPXP1dilTtX9fnw
zgPtyqAr_~5gEn>rJBrw*e^Q9tdW*xcJ3;wIYMPw3<AhwDmcPv2($jOV9rE8GkaH)=
zG)X_Ku2CaN^UUn)yEnv|DVQ~>eYhtx`=pTA(el*~@9lhkulSu~<TM6`=XX@!{}p41
z$i8UG!H^nxZ;A<X!<0*tC6ZIuy7qkh&v0(1wu=3vJB$pTzPGn+f3?f*<)%i%V>Ze=
z7t5%0FVe8<IsVvBgr~us;egB}mIucQEWXTTP}zGve{ExsSO4l&T=#zaN$)v(NAqR4
zSLXIrtCZi{I&sWp*yr)fO^BgRI{Dn1t#fBF9%vD$W2j(vP-)j(+I%(ZXm{NYaoNfF
z|6?vGWfxdT@We4$d_Op=ulU`$604(X7T1rSOfk~zQcAN`dHJ<yr_GD+zq<?%S(az?
zR5Cu;k~yooG<JSOcHzFP9>IIRYZ;EK^s0DR86A_^o?E^4`s><rb_<uNEiJJ=7Ew4k
znS=4(@7hW0uT^^9XUt*T;UgriFkj{E%&*7q^avbUlPRVBQir?R)ckc*9n*n(X=!%z
z4@Y(HS|`5v;tSrBVh2hm-L5qF^kuz@e4BvSpWB&czEAevXDgWggxT{u;~5p(wX0sG
dM^5{}%xCl7C413#X$A%c22WQ%mvv4FO#u1h^RWN`

diff --git a/htdocs/theme/md/img/object_printer.png b/htdocs/theme/md/img/object_printer.png
index 8722632547c5b7179d68c6e3e670131c72c80bd3..6e8bcbf98a57f1c6e80aa31b21e15677e3796778 100644
GIT binary patch
delta 139
zcmZ3%w48B*N`0QEi(^OyWAXw<j|7VbHemx%Q-eS5&AcgEK?wy8&0Hrg`S1iw?qe)X
zI`rN_QmtbVhl05Dp0fu09&OGdSChk8LKg9;yxwRbIsLP=024<?w4jiKh7;dwc8M;z
tgtlttRZ4Rd`(%m@Tw9c9ykcO`+uD#jW%`O&3=9kmp00i_EbE*SngFd=E}H-V

delta 269
zcmZ3^xPobdN<Cw7kh>GZx^prw85kItlDyqr82-2SpV`mAz`$AH5n0T@z%2~Ij105p
zNH8!ku$OrHy0YJAl@pNUxR<VZhk=1%ji-xah{pM~6E^Z5G7xZ$Ut{9qXtg4raan^^
zrm`XPvIM58Cw-<#7pt2@61laU5}jmDPt+*7di`(x_y6^>I-xfimMrP9c-+JObA9NB
zZkMwRSM19ks~P*%t>!lBeB^ahYvZG%y^E{0A2`gNvgOXoo4<W#&(z@8J8-RglVqUl
z>zg%~?AU)y*~M2-bwsGsN+)1L-<x?Q50x1%UTWuh>8k#AiD&$RrvJA%lhxh0ud<uX
YQ@CF+W${i11_lOCS2jPFbxsLQ0C+%a;s5{u

diff --git a/htdocs/theme/md/img/object_product.png b/htdocs/theme/md/img/object_product.png
index 79910e5e214f7cda81bc1e7a1e9e2d45a05eb813..695352538d934ef7366d58a08183d55c558aec5a 100644
GIT binary patch
literal 150
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3Sg#Cp0ohEy;nFVM<JxpBUL
z!J6fiNy8Kg<3H&Zr#G;(+i*`YO-d+W2;#GN({L(DYgR+bOh!Fd_J$gXk_B6p4&@zU
zVP3=`q$^%<>@MqqHHsdkyod8*3fZTuT$C2Y#E_DgnGwr8JAi?Kfx*+&&t;ucLK6Ue
C7B02`

literal 559
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`4rT@h290TVA2Tp8u$OrHy0TwoVie<0w(~P@
zWME+6EbxddW?<m@0K$w;YfNS^Ffg#BJNh~@Fl_AS{*%bcz`!UK;1lA?z`(%D%*@Kl
z%+0|n$i*(m%Pt|vB_YBkC(NUzB;aT$>7gg%Z*LlIryK2Q8R_es=wlrh;Fc5SP?4Zl
zoa$T`Zcv`#-;!X|m}*;};a-&&)0l1BTj<zX7TQ@6+FqU5UYj^I*Rr#zytg5FN>kLV
z$!#m<PT1Vxx~b3a;{Jt)Hdh?kQFrRlg!9K|@0#ScYpUCx89w`F2JM>{bYOnOfh7@#
zm&YDn6?=4T^2v?)7q&MYU7vh>Q|8I7`4@IKo!p*(W_Q`SeKi;MH{Cux|IGffa|dhA
z9j&==qUq9!j;m*S?_FK?;KrJ_PtRXC-E`?p$MuVoZ(o~#@8+_XPY!>2cjxMr-s{&U
z-@GyN_O1E%?k;=!Wc%~ydtbgh{Pykn4<D|5{rXT?Z)Y0=0|R48kY6x^!?PP{3=9n2
zo-U3d9M_W*7?}0E1=&~v%087$Z!2suZC+GblbfPoQ~CaegTAhHcCxEM_%$OdqdT|m
z1UScv9GPmo;luaMW~Nsz3$tsRnVFRvnwyyzFcdF+larIPrtv_G(2=JXix`>GtE;OG
zH$?uqwQt|Mckl9UISH)(QR?LETry=xBHzR7UqhZc7OC3XGn+9m%uf?d`cvESm4ShQ
N!PC{xWt~$(695OA^Nauh

diff --git a/htdocs/theme/md/img/object_project.png b/htdocs/theme/md/img/object_project.png
index fd84ab427dbd736dfd5be112faf87c9d7d2896d8..76139922af1f9fb5ac1f63c43fc79e2d3bfe8cfe 100644
GIT binary patch
literal 158
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3Sgq<XqIhEy;nA7Hq}W5vUA
zfT``jgN69)DSC&~+L#?GSXL}(UnuV($M)G=c_!DBKkbeSCUtu3@#S!3Z-{yGfnnDo
zCN_4J2#2Oc3sdhhd5H*a%QN<Kl@{zOX(%jV5N4X1VHhCFz_91UjGztf{+}2a7#KWV
L{an^LB{Ts56e2O|

literal 926
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`4rT@h290TVA2Tp8u$OrHy0YJ55*08PY<cc9
ziGhKEv%n*=n1O-o0|+xZtudLwz`($g?&#~tz_78O`%fY(0|VpT0G|+71_lN$E<Oeh
zX>J~2UVbq?0SN&?aZxc@1`b7LZZ!rjEk<rFMqX`ZUM&`0Ek$KLWmN-FT|YG~C!gSI
zR@Dw}txis@9v<yZUY#yJoo;@;9s&JcLH#~KgFbPqE>?pr0v21vY_<y9?G&&%tmwbr
z$Y+7H^HC|6;|gA<l|rr>M;y0^I%b@F-5~A0UglHh(0MMQa~-3%#wEAM=S&Gq-{zcg
zF|7PZWYq!xnn%SAt1H_!R=4c(Y`GfNeKm68?dZw3Vy4`2Z+Y+E|1qHJWBi0CnX~R@
z&wQ7&;C|NP@3~8U<gWi)xAI}-+D}b=+q<UjYnywnXYzpwGY(Fkb#&U?6Vv9OZdrJ%
zedYZr3y#lSac;u8yYrS^Xk7EKW#xmGwU7GOK5AM2wPnMrwq1WZcYf*E^JmKXN0axy
zn6mHv+-*-6tvI`E{f#9XuB_O6b@%SGOLjlnu=`Q_fxj~j{+xB@_wEC?_Z_;w;OOhc
z$KS6y@O1fw-^;K5TXXHp*0Zm7oq4nC%-bCo-)+43VfVEUTOa@3{p8>Nr+<zdy?XBa
zonxmS9XRvm+|^fSZ+^OP`NfSJPj20Ld*;orn@@jU{qq0jkN;1eynXWi?~4~--@g0)
z?%kJHZ+|}f{qN29{~td5{Qmv-$KU_|{{8p=|9=Js23J>QVaAw)3=9l&OM?7@{|{oo
zaQe?49|i`7*`6+rAsp9}XEZZOD1@Xt2nd-QEZ%A?ab|1bhRt8~U(GXIc|+<*>3W@$
zx$|vIZB?)E9NFsMtFwAtr?<za!a&BN*zDD>UVB~swAaQar18#;%+Jrxer8}6FyB=l
z_t1uep>Xf-XH(C2mlrc@F%~ALF&?$Pb?ez#ZbO!$!)fQ|*%qH_SvT#OjIhFW8*6K8
pZKXTsub;XkbHtUY_!$Gkw0}`wt==*6GcYhPc)I$ztaD0e0swc=8Z-a^

diff --git a/htdocs/theme/md/img/object_projectpub.png b/htdocs/theme/md/img/object_projectpub.png
index 1444573cf05c248eaad1c94fa6ad2cedcd7a78d8..76139922af1f9fb5ac1f63c43fc79e2d3bfe8cfe 100644
GIT binary patch
literal 158
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3Sgq<XqIhEy;nA7Hq}W5vUA
zfT``jgN69)DSC&~+L#?GSXL}(UnuV($M)G=c_!DBKkbeSCUtu3@#S!3Z-{yGfnnDo
zCN_4J2#2Oc3sdhhd5H*a%QN<Kl@{zOX(%jV5N4X1VHhCFz_91UjGztf{+}2a7#KWV
L{an^LB{Ts56e2O|

literal 929
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`4rT@h290TVA2Tp8u$OrHy0YJ7m*JJ+iZA$*
zz`(%3S>O>_%)r3)0fZTy)|kv-U|?WLcl32+VA$Bt{U?!?fr0UQfKP}k0|NsW7as$M
zG&hehFTWU{fP{dcxTu&c1BW6rw;BVN79+P7Bd<0yuNDihmZGwrvZ{fouAiEglTUCp
zt7-?gRwt)c507>yuTB@APB*_^kAQx!pnjjAL7%u)7puV*0gJ6-Hd}@5b_&=WR`lO*
z<g-B9`KXl3aRsl_N+DN`BaT}{9Wze8Zjg3gFY~E$=scIuxsK6W<C5FsbEX8QZ*$JL
z7*>8Hvg&|;&7<Om)s<}<t6O$?wp<PCz8X34cJ$<1F;niix4if7{}|BqF@D06%vpD{
zXTHl>a6fDD_uM5va@YT@TluhZ?Wd-`?Ojv%waq=(Gx@-T83!lNIy!CciD~msw=BHX
zzViN*1;^*EI5%P4-FeF{G_HBrvhqR8+DH9sAGNIi+OpwQ+pa&IJHK@7`7>qxqse<;
zOxgE-?zX3kR-9e7{>G9GS5|Dkx_kH8CA%MO*!`&ez~31Mf6hAdd-s9c`wrb-aP;-!
z<L_4;c)I+;@8wtjt-1DP>)F@4&b--m=IxG)?>1iiu>0DFt&jiie)4bs(?3U!UOjjI
z&aqRE4xD*&?&_<vH$Ppt{Nl!qC%5jrJ@e+*&8I)Fe))g%$Nwi!-adK%_r;5^Z{K}?
z_wLK9w?Ci#{`cnl{|_I2e*gaa<M01}|Ni^`|Njjo3l9bchPfp{e!>3-F<?0TXO9m9
z1H%$e7sn8e>&Y{knIsfK(j5eZ%ncTAHI_KDwQ$4culld%8Lqq`b)<B?&dJ>QHm0_!
zS9p$W_3zbLy{^;S<5OWEV^M7O>Q}G5E`QoPrzE8D&W%i4U(rsvzFksT3V9{<&WW3r
zZ=Sbomr=*-yVoP)1m345u3F3b=-8QAb{n@Z*3~!GIwEj_ceZWyw=<f;yP{?l`!vLS
se)HzdnvMedcx~@u0ddYVGnpA4ZwU2%x%qDj0|Nttr>mdKI;Vst0GOX2!~g&Q

diff --git a/htdocs/theme/md/img/object_projecttask.png b/htdocs/theme/md/img/object_projecttask.png
index 4a01b50435a54567ce0d53cad192e728aba5505a..c54e95f03ba60dd0dc30f7227c8cb70c0e7c43cd 100644
GIT binary patch
literal 216
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3Sg%=dJ045?sTduBgxlY>Ot
z$K{C(CET{l1ErTGG6+9nP+P~a{eb(Q%Zhyt>1&xkRQ8IuGE2>m|NU&~b)my9?pG`Y
zGFn~d7@z9ndD>zj)_i_Z+%dVYTs2KXY6}C8wwYeN@xqhmK+p9LFAgn#{pE7a8_%5^
zOW(b?vEu2&Er%D+YLRG|(PCwy)%inj(VPCDT}$^XcVAMF<@M@2AE3Z!$^Gw^^em;`
V(svAuSquye44$rjF6*2UngBnqS_=RG

literal 941
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`4rT@h290TVA2Tp8u$OrHy0YJ7m*JJ+i;y*_
zWME+6EbxddW?<m@0K$w;YfNS^Ffg#BJNh~@Fl_AS{*%bcz`%Gtz$e6&fq{XGi;sar
znwv+MmtTxeKte!JTvSY!fkTm*TaAHBi;-K4kyo3USBr&LOHo-*S=B&P*H2B$$tSp)
zRked#tCLf!hex}USEq|lr<-4|M?k+<P`^*mpikVYi`8I@fW=lZo2|ljI|XbGEBfy@
z@>wA5d{oNixPsSdrI4$}5yvf}ju|IkH%Pm$m-*B=be>D-T*v6GamnrRIa31Dw>f8A
z3@bkpS#`j_=23CO>dLl_)h)X`Tdsz6UyYo2J9_f1m??MMTi*Nke+=mQ7(d}j=B&Hf
zGvDPbxSzH7d+w4Sx$FPdt$bLy_ES^e_O7Y>+UB0?nS5ZvjDwSB9i2A!#I*URTNd7G
zUwMDZg5z^noSU%j?!09e8rM8*S^1!4?W6v+k6PA$ZQ1auZP%a9onJck{F$=;(d4}^
zrtEt^ciYoNE6y%ke`CppD=Ri%-M#zllHHFs?0(dK;O~rsKWCl!z5BrJeTVKZIQn|=
z@%O6^JY9a__wuX%)?E9t_3Z0iXWr~O^LEF@cN;H$*nRE8*2jN$Kl!)+>7OG<ubw-9
z=h&%72hO}XclFiTo1ZRResSZ*lUsM*o_X`@=F^{7zx==X<NuQ<Z=byX`{Kpdx9`5c
zd-vtl+n>*V|9kWO|A!AhzkmPz@%R6~fB*ge|Nn-Pg$Dxz!`zY}zu^Ca7%-gvv&V;l
zfnkHEi(?4K_2e1NOcKw|7zzm)z2f0$Dp<~8Y_y3xWlI@b^G>tIoF1n`!f8HQ+t>>4
zYO_k*Y%RJJ>~z*4=68s)o15a|IV$qvq6*iyUYkBK(7{3BxTm}5iQc&i2Tq(gb}VD%
zLbgY4=9`U;3=Ft3R%tiyxEI{>gY`!1U7xL69q!DC4Bn*{A+<HttyO|)XX57c^Ybn#
z8Kim@_i;|ho;P>y+^MNkrlzK5@;z#56rC~0n4RJ8UgwZ%FBLro1_lOCS3j3^P6<r_
D3?dsV

diff --git a/htdocs/theme/md/img/object_propal.png b/htdocs/theme/md/img/object_propal.png
index 2dc60e66b3ec3d81f7a71167d00921dbb1bca75b..19d4be8371db14278febf70be41acb3963dd7d0f 100644
GIT binary patch
literal 146
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3SgM0&b7hEy;nE3mFGzG7f<
zAd#uem0$AT;fL&P^$x8O2kKQS8WcH~^h{7<>o8*KN;p-Zz3adOhBoeooD$a=6PR2*
y7`88BW0BFiW_x7S6S;Luni{V1XsM`}G0gwjTk<Zo>ofxc1B0ilpUXO@geCw4G%!v8

literal 284
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`4rT@h290TVA2Tp8qy_kdxJE@q1qB7&yLa#2
zwR88*9Xq#o?Xk6U&aIttZfVc||Np<gfByd7wU(Ba=jZlb+d2otzjo{#i1B^x(mCh0
zF1>eb>+|Q&w{Bf~Z13J<$BwOCyY~J2_e+;9oib%gPfyR@ty_zWi<6U+r_{(>FfcGM
zmIV0)GdMiEk;cHlkmBj$7{YPg_xNe1CItc33m>ztJ(#QF^~Uwp|Nkl7Og6ifl^7U2
z*g|_x&)ODsls)sh`2CeDdHdDNuL`{1`sB^7O9wpimnyUW(lodDl(qfN#f!6Ji|#rY
oTmQek?e4<&{mbKLJ3ZkJzsKsFf8H>Vfq{X+)78&qol`;+06fc&2><{9

diff --git a/htdocs/theme/md/img/object_reduc.png b/htdocs/theme/md/img/object_reduc.png
index ccfd2d2f5b2cc8a689ef175cbece501f8084084b..b59cbf36f3eeab619f6c875e1ee1a4eba26c3eca 100644
GIT binary patch
literal 221
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3SgEb(-445?sTd(KhIHBjdG
z$NuFrHnMy&bKd#v)Pc<`uV&2?)i@S6-S@?;n;hB(Rnk8Kz1+`*uK%;|@aLCbw!eE;
zwLHyi?oPA($x}O)IvzRI82|d{J@JD4_%Ex@>WD0s*wb0@Rb!rrxLHGM$lm&CtBMzJ
zJn)lweS}xxlz+*mzZKfM%&d%VG2NagyDc!=G)QgL#S+u1%<a#7!|VT*aK5RU;nFPo
be+PeBW;K`Pe$fRC3=9mOu6{1-oD!M<){S3l

literal 361
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`4rT@h290TVA2Tp8u$OrHy0TwoW))}RUA>)6
zgn@y9v%n*=n1O-o0|+xZtudLwz`($g?&#~tz_78O`%fY(0|P@vfKP~PP*6}*R8(?u
za&d8SOG`^nPtTMoQ<g4Wx_0f_y<4{)+q?JJv18|!_MF=~=iJt%=k~6>wsp?EV_WZ?
zJ9h8dxqJ8SJwLbi`Sa)RkF9-wZtMGNd*45Q{{H>@@Ar;<zjyBY^K;*yU;F<2-uL(S
zzQ2F||NZm--{1fL{{8>|@Bjb*56g7k%fP_ER1)MD{GZ|Jb^|X428J|G7sn8e>%PY$
z`I;3(7#!wthq=0TbL%;FJh}V7O*N|Jr!<p7UV-wu4vVRpzD|Kpn%wSgYMK-fUB78X
z#&WG!sn;H^HC=9XEMRTl-tSwF`EJ`cy)0TPe({o+w14l*Us$B~*sAI`$g6a6zn@gh
SJdJ^Yfx*+&&t;ucLK6T<nXCN(

diff --git a/htdocs/theme/md/img/object_resource.png b/htdocs/theme/md/img/object_resource.png
index 8cda1f3f2202f020c2aa7f0438b72e06f559c83e..b35923a7e4ff612a9062fd6d52d18d8ceeea497e 100644
GIT binary patch
literal 227
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3Sgtnzem4ABssd(c~pm4U(G
zV(^zF#w9ri)R|`*rmgb1!MW{G^cts|hi0Er`tv+S(oXJ?%)gvN(`tX4`TjUIE84Rt
z`Kp9>oQmhCoP*-mC+(@2_T-d$@uV0Di5*k+%rs4Mo}?;2O*PUy$#qh$e3?q5S<<D+
zPwq83^G|Z0Y-c%5#k1&1x9j>zDwSI^dW=0M&5_8ywpV4R@nh-gNh#O)&#5l2Gs(@!
hIHmvW?C<{a1#R(B-?Bv(GB7YOc)I$ztaD0e0ssY<TVMbH

literal 199
zcmeAS@N?(olHy`uVBq!ia0y~yVBle3VBlt9W?*308CRIYz`(#*9OUlAu<o49O9lo8
zp#Yx{*Z=?jFI%>3+N>8>uU`HC|Ns25EzVUEN+6|4-tI089jvk*3=9mM1s;*b3=CW!
zK$y{KjmZoK1_t&LPhVH|+e}OXZ1RgITv@`vz@X>p;uyklJvo4hnN5^kT#VgaLX?Y*
yNAaAV4$nFRts4>?K9WujUNMOxAp(mS8H6JFu1;5C6=z^zVDNPHb6Mw<&;$S>k2MVd

diff --git a/htdocs/theme/md/img/object_sending.png b/htdocs/theme/md/img/object_sending.png
index c798ced0b5c113d90d6987b597b477a0face49fa..7a4a0a44f38d545f0a9a5b1379f7f95a244ce450 100644
GIT binary patch
literal 173
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3Sglz6&0hEy;nFECF?w>a@Z
zp4+Bj%?UOQhk%L9JG%r7822v{=HcQ=<MEf=!V&%abU|w)_nHod5(UqT>TOeb<|iKF
z5S*dJyx{G7Nv_6k;><6Z6*|<C7(PDqY18Go#dBM78RN|zE)p)1WyXI}Zk$wTa&7s?
bz>xW866>KQ%jPpMFfe$!`njxgN@xNAQT{qb

literal 273
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`7G?$phPP=3j~Eyj7>k44ofy`glX=O&z+e#I
z6XN>+|9?+U&*bFf?Ck8~;^OM!pyktZr%ai$a^=dsQ@qZt4LWzMXXnnH$BrF4ckbNt
z=g-$WY`O|Es3gcQn8D%MjWiG^$=lt9p@UV{gMop8v%n*=n1O-o0|+xZtudLwz`(#>
z;_2(kew$m4TbRA!X^tWT1B0)pi(?4K_2dKvhM1Tb5yvg}_iophn(*?vrGAS&!^<;M
zWu^Y{@a&5;PS4o#!r({h+F2L>{}XO@yM5_(t(q&3o|>+jo?e|pvy8-zyOIp~oYM9u
UMZMb@7#J8lUHx3vIVCg!0MVylk^lez

diff --git a/htdocs/theme/md/img/object_service.png b/htdocs/theme/md/img/object_service.png
index 65e9041589f39e0c76746ea08669baa778442a61..4f8ad8e43e2e6ffaaf1a0751713aa1e1128b046c 100644
GIT binary patch
literal 161
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3SgWO%wbhEy;nOJpqIX<=zF
zJ{+%5a%laEsSoW1%pQgboGM^l!N8<%$dag)kTQdDs@nlghd_}4ZjmD`Q%`uMNY*8V
zera~(TDXEstAq2jK$qF0kS%h{TpABD@`p5NWHG!tz$@Kh+<A|IfxkTFoy;|n#|#V%
N44$rjF6*2UngD_^Gcy1H

literal 365
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`4rT@h290TVA2Tp8ObhS{ab;j&a59we(v<MB
zG|UciDo%DPP7W&0_NopttWMUf&UUKKj%rCZY{|B4sZQ=GcIqh(>ZuOuX-V#BDV~yT
zxpvN!tvya#d%X5eaoRh_Yww((V{@X8EsZ+1Hu>1r>|<N2&+RQfx3~J-vFdZjrd-?F
za&7O@Yv)?7U7K?6+?;#Y=G?os^xnOt&!6vo|NPwh_vgO9zxVz7^Z)<<tI5Z`W?*1o
zED7=pW^j0RBaMN9q1DsHF@z)9^z>_~CIy~`hoY|O)&i;m!KYW8;d%G}*`&n#{kD6m
z*%(Y$Er01KJFoZlpN%`}ch5eY8}#jCZm_~E<-+jtx6*6v=0BTQ-MXGVu4LZ&mp3G$
zBNtCqT32vFuQPPbo7s#TM8w}k`7l(R`7JO*!g&#gop4iYV~?l)(g!+!->T~})@dm6
WSO$uD<S;NWFnGH9xvX<aXaWFHl%v)F

diff --git a/htdocs/theme/md/img/object_stock.png b/htdocs/theme/md/img/object_stock.png
index 2f439db7b500111372c4f8cba7e71e06e460b823..f6bcc6478aecbbafaeb3cac77dd47f4845c8d042 100644
GIT binary patch
literal 91
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3SgD0#X#hEy;nOK>C{c+kKs
tr63}k@S~quPT``;skPEu`~ER7{JRx!F;7PEF9QPugQu&X%Q~loCIG<Y8KeLJ

literal 554
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`4rT@h290TVA2Tp8u$OrHy0TwoW)(A6wf)GJ
z&%nUIS>O>_%)r3)0fZTy)|kv-U|?WLcl32+VA$Bt{U?!?fq~&qfKQ0)|A2talkBft
zxw5L${{Nd*ckbNTJjwm^;lsOU1+3~cKfHVQ>D`^XcW<6Gsd4k>Rg*d^Cv_HH*<84J
z^X65HW^JAnuz6O(=2-z(uADx7`t+MOZ=Rf<w0lwE?pYD1R}~&!lrXE&d{$?|tVxBl
z8Us#muAEhAe|q<#)4M0l>dZL2s_^itjME^LaQN`<Ns}6%JbCiu^sGsh_LB<LG9uI}
z6ZF4+{d(o}<|~I+UD@3^sWYK5LG8}rNu7oEhZkimnl-DlGNQAwar3N<MY9?g&6>1o
z)uL6CGFDAWST)JMv$Jv4tj<-l3OBD>wR@KP?#-JQb-K@*)p>YP#G*#~-J2IJnpC)G
zQsrNt&@&7S42&f~e!&b5&u*kKFfc6fba4#fxbA!EI$x862+M`n?>04P9A)C_NLs(~
zxKy?IxBvgeBTbG~&a^zqz;L2{@z$rx>lbW)n6h+BR_eC-vx7P+7aqNuvFW&Z=lh<?
zuAY6XXSaAPh$-0JY|-MB>U4}jPjokD|0fS=lN&$xyjDJ3@#Jmqqm3>r<20Tv+h{Fp
zv$8|;Sds&ev0mvzHI_XI^B3IOTHo}_V43=B{)4?++pa78+4Sq1wDom<VP%Emu?!3h
N44$rjF6*2UngH&c4Nm|7

diff --git a/htdocs/theme/md/img/object_supplier_proposal.png b/htdocs/theme/md/img/object_supplier_proposal.png
index 2dc60e66b3ec3d81f7a71167d00921dbb1bca75b..19d4be8371db14278febf70be41acb3963dd7d0f 100644
GIT binary patch
literal 146
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3SgM0&b7hEy;nE3mFGzG7f<
zAd#uem0$AT;fL&P^$x8O2kKQS8WcH~^h{7<>o8*KN;p-Zz3adOhBoeooD$a=6PR2*
y7`88BW0BFiW_x7S6S;Luni{V1XsM`}G0gwjTk<Zo>ofxc1B0ilpUXO@geCw4G%!v8

literal 284
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`4rT@h290TVA2Tp8qy_kdxJE@q1qB7&yLa#2
zwR88*9Xq#o?Xk6U&aIttZfVc||Np<gfByd7wU(Ba=jZlb+d2otzjo{#i1B^x(mCh0
zF1>eb>+|Q&w{Bf~Z13J<$BwOCyY~J2_e+;9oib%gPfyR@ty_zWi<6U+r_{(>FfcGM
zmIV0)GdMiEk;cHlkmBj$7{YPg_xNe1CItc33m>ztJ(#QF^~Uwp|Nkl7Og6ifl^7U2
z*g|_x&)ODsls)sh`2CeDdHdDNuL`{1`sB^7O9wpimnyUW(lodDl(qfN#f!6Ji|#rY
oTmQek?e4<&{mbKLJ3ZkJzsKsFf8H>Vfq{X+)78&qol`;+06fc&2><{9

diff --git a/htdocs/theme/md/img/object_task.png b/htdocs/theme/md/img/object_task.png
index 14dc14a9602dbabc7b0702b0db699610bbd68313..c54e95f03ba60dd0dc30f7227c8cb70c0e7c43cd 100644
GIT binary patch
literal 216
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3Sg%=dJ045?sTduBgxlY>Ot
z$K{C(CET{l1ErTGG6+9nP+P~a{eb(Q%Zhyt>1&xkRQ8IuGE2>m|NU&~b)my9?pG`Y
zGFn~d7@z9ndD>zj)_i_Z+%dVYTs2KXY6}C8wwYeN@xqhmK+p9LFAgn#{pE7a8_%5^
zOW(b?vEu2&Er%D+YLRG|(PCwy)%inj(VPCDT}$^XcVAMF<@M@2AE3Z!$^Gw^^em;`
V(svAuSquye44$rjF6*2UngBnqS_=RG

literal 176
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`4rT@h290TVA2Tp8hz9tCxc>kD|IC>)|Ns9_
zOG}$MbEdJeF#`ibYr)GV1_lPkk|4ie28U-i(ij*RJUv|;LpZL7_Bjf%I0`Uos{a4~
z#4@*heKZ@R=cHqcm6xA=$a$fgyVJkIOFkr___kP7&0&V$(o74E`<{-@&7T)P>3`w9
cM9*z1wJrLLN&!nQzGVQJ>gwmR&MBb@0G9ba+yDRo

diff --git a/htdocs/theme/md/img/object_task_time.png b/htdocs/theme/md/img/object_task_time.png
index 8cda1f3f2202f020c2aa7f0438b72e06f559c83e..a9852339cc0d4ede24c3f5a473dd9a1ae07efd18 100644
GIT binary patch
literal 116
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3SgSbMrShEy;nEAUzvm@IH)
z=P`9S_&;Mq;sH@j0~?3HPYfD|8r&tFIQddJRG(-c+S2FK&R^3pc~%GqGeiIKl9lni
Tr?VLt7#KWV{an^LB{Ts5VFVzh

literal 199
zcmeAS@N?(olHy`uVBq!ia0y~yVBle3VBlt9W?*308CRIYz`(#*9OUlAu<o49O9lo8
zp#Yx{*Z=?jFI%>3+N>8>uU`HC|Ns25EzVUEN+6|4-tI089jvk*3=9mM1s;*b3=CW!
zK$y{KjmZoK1_t&LPhVH|+e}OXZ1RgITv@`vz@X>p;uyklJvo4hnN5^kT#VgaLX?Y*
yNAaAV4$nFRts4>?K9WujUNMOxAp(mS8H6JFu1;5C6=z^zVDNPHb6Mw<&;$S>k2MVd

diff --git a/htdocs/theme/md/img/object_technic.png b/htdocs/theme/md/img/object_technic.png
index 6186d18da70caa5acaa255752415d8136edcdc98..4ae5d40a34072b9d1e5ee77ab16c99723101482c 100644
GIT binary patch
literal 256
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3Sg9QSl_45?t8dU2x{bE1Ij
z!~F8KJ*5J!Av{i9duH^mTc5D7b*b3KK*yTJDr*-_2%F@(yXUM?>#l@zt@3S_2I6)9
z7fxspu07LR8uUZx(53l2Arf6?%prXf-u(RX%y06gOE-2O>w6Me@<cE}#YlLo@#Hz-
zZ4OT_tqL`BJijGWZ;CztHHIujn}#o30w*lv19qNsv)zz-ZQkx6M&;EyR-xABzhmd9
zUz}Kda^11+=<b-h9Urq2rB5~r9oLjyv}OM>_Iw8+zpsYd?d~fjSEw%eqJNozfq}u(
L)z4*}Q$iB}?sjVi

literal 433
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`4i*LmhOLfIqZk+%BuiW)N`mv#O3D+9QW+dm
z@{>{(JaZG%Q-e|yQz{EjrrIztFa~?NIEF}EW<9u9pE;4?z{C61-@{@<w>Y}GKGyd2
zNKO&p7TXx<qGTwsMvHCY3>~K=qwW^po=I*#zW>?0S6(oCqOpAMw=H{jU;o@u%p%L-
z@TOee>8*!sv%hpJ3u|}J1)gQ%P7^%;?@jDjw2Qq^@5rSap(O{Fit}Gssj%_PbKb8D
zepYxUCrq)>3thG2h~!e^XR5U+zO1s{OnjwU4*IbY5nJXgyY&29Z*$6yMpwo3cai4b
z5)2kzbgsO{_u};T)feS&O{utlF~4$6RFQ5|g4&$<lS@y{XklcRzQ8Ci+-p^J>hyA@
zL{Ix`7yPfzmh$me`}afjcjEkx+&yPIPbdDGAkxT^yH8`{{Y&~OzT73{ivm^7nS3~C
zt=P1MC)^``>pZ)&_h+0n*LPr^EZ}?j?C*|Jn>(V0@1j4I*s<+A|83oiN2U`lPFS$;
noy`Kl^KwnaYU>@H8U8!ycTQw|W?Rg_z`)??>gTe~DWM4fsJpiE

diff --git a/htdocs/theme/md/img/object_trip.png b/htdocs/theme/md/img/object_trip.png
index 95cc4412111f7ec23f1295471416152743455e88..3d75bc937e59131d6e83eca6237fb53b63280d09 100644
GIT binary patch
literal 221
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3SgEb(-445?r|+GXl=#DRf<
zz5F?QiABi5Q`h#W`Fr%%Ggmrzd7awR$aQYL)%3H+_U@h?c|Y-+%wpxBtdC2MsRU1E
zn9IrLl;u75Zh(H6iLj3VLyh<0>0b>__jjbcIvM8Z{pwBGhfjxHR;^s&BIx$NbG_c$
zlrJ26jw~|X_VcUKQStK!q~#afNIt=8ZL~}M!8EJTteA(%mzMS(6%s7lG1>SO=XD(e
b{$-k5bD}v8Z(Gd3z`)??>gTe~DWM4fQ)yZw

literal 337
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`7G?$phPP=3j~Eyj^h#VKN}P*Q6H7Al^Atid
zb5j|zQcLv|3{4ag%Zl_Aj0_A+6^sn5OpUD!j1;sD3=Ir)@_WBAFfg!}c>21sUuEGF
z7Pj2|NvVc`fq}EYBeIx*f$IYZGdis?nZdxoz>@Ch>&U>cv7h@-A}a#}gF%2#h^wuw
zZB$fLa&mHZc6M=badma|gb5QCELgC1?b@wdx9;7$_t>#x=gytGcJ12p=g<HD|8JwB
z-N3-WAW#zI7yKU;Fg#F>m1JOG@bh$W45_%4{DYs7XGey(xHzN0+s)6ve5^|Ob!OG$
zGw%<U?5?^~&-UKfdVBVi45pvyeb?t!A6am5+TOLtOgax9H92zS=+X9v{uyWf=O_MW
Z<XPgvzP{msEdv7sgQu&X%Q~loCICPcherSa

diff --git a/htdocs/theme/md/img/object_user.png b/htdocs/theme/md/img/object_user.png
index efd446a1a4c05b50932240855227fec33c4564c2..599e87b3ab83c621f919b124054165edfe13692a 100644
GIT binary patch
literal 164
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3SgWP7?ehEy<aJ++bZkb{K7
z!}Uft9hP75Y%xw_-+0y~N?UH4+rykE4iDQ!o>jj!p6sT-`*wCq)ze_1Q>DB7X6iY`
z&fVtJJ9oBD<cyoAjy=dRv65V)Tbo(x_H=psl2F;H3z}bv`uT@;&NlmdRXVUBC2qBw
S?N0^<1_n=8KbLh*2~7Z0u0P%Y

literal 581
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`4mJh`26+$Niwq15Y)RhkE)4%caKYZ?lNlHo
zI14-?iy0WWg+Z8+Vb&Z81_lQ95>H=O_WN9tVw?<(B?+kv42+jNT^vI+&d;56HZLep
zr1iSp^FvEHrpT}C6<{~XO`kF=%X%}9%uI_wcRnAPm%<jC{V$|{VEn~m(_naU%91jl
zC1HWDmWnTVdau~xc}_a7nNi{SYv-bFT5HRHnD2aDe0I6HxApDY)l<EmuH5QZw)<}R
z-njhrSF=_|&NtVdb#__#`+wK!wnkM7@;O@=m`Qy#Ka(eT;C1Bs8KS+%+-`mU`}|-6
z!&;LNna5vlYlekot!GGi#-^`6S;V;7OH*U*!mVxBxKvoUemdp8Tm84rUd{1wjNas{
zQ3oU0lX=}13m!_WF#DeLK|A2u4E|u-)-b6+5k;PM36^G#1Lt=he0=_Ru(9cT^}wEw
zM<o{DS6&iickb|q2UWj|!Zg-e?4R*}-pRCiE`?Jj2Q?`?@|WkA=WT!ZbkBl_=-6m|
zk?z+orC+w6yU8SYQ0n&C)MEE}UxW@SSg;=mXL$3@?uO>nuKdX>pU7sv%~f={7v;^M
z(84l<S@UV6$ZC1@c)z%9x8JVc6t`agPE_1I|6iTQ8KyDlSUg|Xk(AajA??|w=@U$q
z0^gQcvEK{YIY;e~7=y+0e<xLqn-40ufB1XEnBl{+YaYow)z@}2%wQ1s9G`0}DAAy-
ibo@-6V!iQab{B^mS0X!DXD~1@FnGH9xvX<aXaWFH)AQc|

diff --git a/htdocs/theme/md/img/off.png b/htdocs/theme/md/img/off.png
index f4217646b2645e16a1c83ccedb6755a8932a1e38..9bab123aca7f214c66ac06f8a1635eed9d8ee9e9 100644
GIT binary patch
literal 248
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3Sg?DuqW45?t8dciU4P=dhG
zkN4MoGZ3m;IAeu*kf&JCOV_S10$uY|^!6>e(8zDUhWq~QGdBMW`aiC+`?4-CPtR&9
z``+8Lx%#U%3;i^-z4cM<_Uw5(PRF`@$W;C7>-kurFU&!IfvA*cP_phN*#gn*O$VHM
zmj*6Le~@-6!q@H4VdE83y*j)bb+%?0l`-v#FfG*Bm8rayaaG2H1lh?;zKZG_sM|m6
z+`cKT@4wRhdpnL-B{TMHQ)LP%JIB^Mxp(LFFWfwVtNT<Q2ih<&Ffe$!`njxgN@xNA
DZ|rBK

literal 568
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`4mJh`26+$Niwq2m|2<tCLo|X@CwY5I2THVk
zw)gVZ)IGX?k)8>g{zk`-T#uY4?(i`XU81sa#SX!vb0ZvGk}g@zRq0jqyHuvsIm1Nt
zrA6AA6s5f$*Pp&E=QB=S)6Kr`^W5*2=6#RTqh}v>dh@n+M#1jd<;KR7_H0=2oS89p
z*4(p!`VPhYZzFd<ne^;gNou|P*&H$RO=l9f78Nj@e4QKk?5J$uoA>3H^y;r<h|E%W
zpe5EU)#+es^JMGQ#jTE!de$!__#ZJdn?KLaUh(eTqD^~y^=Hq%a7lfK-PsSbzOJ&i
z-VqVc{xrW+-RFzCt(-`cqsa8>fwyin%$uG#MK58>={<V+xgU2XX|z1KATYVv=Z}ZN
z^RG_dekX=#typ?Fz&~h3y3q<Xp^U4m794jftDEQ9!z9dG++cib>&m!ChmWvi9WtB}
z!gcaupvlyHjWuf`gbx2u-}nCI!R1R;U&L#7eE;e=V^))aE$_vrPK!gDWcWV!Xl|SF
zV<zv5Muonf2fu<G3rj_h%gR<<zt?ATcXi-?r<$Tk={_Ilbn35F-XO|4pI?gg^-h^r
zk(|7~%{z8*9DKP&{;R35yr6xAvZY1G_Pcj0oY%`N{eA3^;u~Im<!e`uKKFTP{;{W?
zLF>-7ES&@IDz4n@<dB_y)vVL7?D^@y!_GC^^*_x2&@Hk5d${jU&5vCZI+vZ46jYmc
ddviVG#ve~+@XMA?W?*1o@O1TaS?83{1OSY&29^K-

diff --git a/htdocs/theme/md/img/on.png b/htdocs/theme/md/img/on.png
index 728bb3935366414766d184afb9cbc545e4ccebe1..7d0344d4dbb4584f45eb469d43a3506fa9057bcc 100644
GIT binary patch
literal 230
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3Sgto3wp45?t8dj4SUAp?oy
z7q72tV73k^>E~fMwK3TtZ*H^Ol)GH9jVC-x^(X2^?)&gNe*Tm5^VS<n^s+f_?(J^h
zqGJ`ky6U@j=<b_Aw=|Z#IUlNCo;hLiy}KdjYE4db-_zkb5Fi}S?K#QT!0X+wKQBT$
zo<v+&^ZnIswMou(dYk*ZRIC*`X0G(u!ersi{o5pb|CzOSmmI5OQH{RNRvCPC=8>ZA
l$qOPkl$UJS{3+-E@h7u)U3qXKhk=2C!PC{xWt~$(696AeW)c7Z

literal 603
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`4mJh`26+$Niwq1*N}eu`AsWH4lkR&@P82y_
zE^gw;`&CI(X%ok;E|JCm8V~I1Q1H-gTDxM++O;xVQ93~;Dx1#e<tSZr?Mn%CwC4~v
zoc8<T?!D_Tm~D^w{qT3P{frXX`{zDyFu%9!$AQmtitV1yVV9d6oMZg*#v@;AnWWb*
zA{H6{(5Q`>cXG~z<3h38Q;Kgt>fPP5)$Qe#ibc_N>;06%J|~ubmQ@d{ZsmU^qBhCh
zWYx>x?puz}_P_VH?#1@_*^Ud|H10R)_P@p4xBttG<95M0HaB@!J>Aq9mR;VVyENT?
zZH4mgjUgomqYD&bz9~h;J$gP}Bzfoao!$zWljq#^*;5*Pt8eGmxHIYJAG)6FyL!rf
z$tuSss}<|MJ)1kln%jSyd~=ZXiJiy8crA~HePi=k-me(ksSxue(KXV=<)dOmgv&Oi
zM~S=GC$C(bqojP!WvW%cbg?t3zXCMYCc50}*FVZybN541#486s?}Uf#t-g;8+Pl}B
zcDU1{e)95(45l|p!g=nyAN0u`Gu_CjY1*<p`}xYW)pmi&NiDJKx^Elkym5{53@+E!
z<4}v>+~yh>d)(s<gK5q+*UrxJSK=|frU_P8x_K?x9c#PuUuB>0lG~if&Bn4>&+wgb
zp?cs`#+AI`i_&&X<3A)^kZ5Pnvhb;2Oy7*kb$Wl5tiH@Ic6(pe%ymOrzinGVPLguJ
z<g&;apTD0L{OfY`#sm9>ZV_Lr7N5A`>?089v{G3h_=sKdTX`P!+nIse&rV@rU|{fc
L^>bP0l+XkKN5m2}

diff --git a/htdocs/theme/md/img/play.png b/htdocs/theme/md/img/play.png
index 4922ea1ec12a8606851317be0927fa7c83132889..96021dc5081e1daa4d37cd649d720e676c27ecec 100644
GIT binary patch
literal 131
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3SgczL=whEy;nOL!b`?pf5%
zbFW48FZ-dXJdapJ8XsD>rR?c?P+;GzmFLRwWA4JP#;F??c{z1`Gh885R3W6;zCJ-f
jU1Ubw6IbrPj12NGw3WiY9o@;mz`)??>gTe~DWM4f1Z*r(

literal 653
zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!toLOfj@Lo8002HR$cIEu(Q
z3p^A!`|iw}+;>7JBzu?M;7k$}Si>Uf;&?$V_ELvEhnu(SWbd-{wD(eh+}46RI=VS5
z2i<~Kw4Q1_F8O`a_T8KRJv|qF|KFYXI<_`*<NSNy_vPP{Zn>n`Di(b{q-}`;J5!%O
z8`Jsby_&kUQh$D1m(TsAa;wPXRBPhNtNnV)^4EB*q9Y}2V|8CGS5YsoZJZr+A$)d|
zLUazZBcJE8e;+OOHEffVQ+7T1!9V^&&4gpBe17FWWp4L58fm_WUJ%o9eOg<N^6kB^
zi;KikYWuF;@3nE-e#qd|zDKiu#7q}G9>4T}B7^ORHFJdKnm$*IxG=@E?q<T5ET_Fo
z<hSrfNl!Rh$m-x+aYSHK>%OJ2pS*rPoR?F@@?=LwN)<cTj;f8jR>XG8@TV`gVz{5g
z;CJi5B3`qk&5yd@eB7t<R{r!YmPt=P-Yz<P*zsA^p#|m(h2C}u-f-t+_{pAcCi!yz
zyBQ^U0u46||N1KY$UIPBS9@mv*VIk?Kd055N&Vs~bK)vr!)<<s#`iVL=5;VjHg*~p
zTw5h(+V$p>NbA|E16Mld*(nL{+QItNR@v8T$}7LWuX;_J_q+^RxA~&>gPObS7g}ty
z4Hl`C6z<<+yCFa1-Nhx7!+K+K7S_&psGWbbS9Mc$^8Gt)>z=wWCUBOgv&ob?JMVAV
zb=j~}bgF>ed7r%@C%(K|*Wb8AC}Vr<<T?IHFBGbBH8Zd4e=l}#d{lj5C!b_=;7^7x
z<|gNg=W8opoa<k{Wv%_`$EVwOzrL!v%8E_4`9NX+%H7+4C;VqLGzi$f|H`Xh3=9km
Mp00i_>zopr01zE7mH+?%

diff --git a/htdocs/theme/md/img/previous.png b/htdocs/theme/md/img/previous.png
index f807a78d281f1b8b9db94abb430a94456a5bf7a3..e0f87b5860376ef84bdb2ef80464a67f132fcfd0 100644
GIT binary patch
literal 114
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3SgSbDlRhEy;nOJrPNXknT9
zCw+!n#K{siHz%(&fiR=V8z$}NVVC4v;3OofIOXi2Eq#2aIy$HAV)T<>SfrzBTWWjf
R4+8@OgQu&X%Q~loCIE{PA?yGE

literal 620
zcmeAS@N?(olHy`uVBq!ia0y~yU=UznVBq0kW?*25u{^t(fq_A{#5JPCxhOTUBr`ux
zAtW<5m7zE>S5LuMA?0PVo`R8qfvJLlv6Ydzm8q$Mwt=C6LHUi!R0akH_7YEDSN5ws
z%uE{m(^;6>7#J8h3p^r=85p=efH0%e8j~3e3=Aykj=qiz3>*8o|0J?9Ffg1C@Ck7>
z^olYJO12D&vJA?$jLNo5E_Mn^c1kXGO0IUwu6D|9@yc%TD(>;Bo)VN@98^6gsAW!2
z%hIUq>Zq2bQ9Wy;rff~_S(-d$Z}ObI$#afnxAbK9EX`hethlA8c<H(7o}TKSIn{Hv
zR<Au*z4cm4PfttFoR+o6TDG3+nKGwm>DHdT*QRVeHfPS#IcvAh*?Vs3-fK&b-CKL?
z+}6DyaO~Q>bLY;TyLRo|z31ody+8N-{k7-MuRVW%@7}$8&q3h*`}gm^L%{#<|3To?
zmz5F>3=FO%L4Ls?KBbsp)4Pop3=9m@JY5_^IAmoH-sEdC5OFxzEwIviYL;@ZnD`=>
z*G`Yz4t@UlKVN8$V3lud=yh{j##s;cp3dF2Q29d6>42*A-g$Q%7kpA=nPVEYG`{87
zPosv-ZmWN^1Ux_Yd3op-hl(3_KAQWbHhzeU%08G9Eb7^KK+*V^!TeP&ZRRYuroQV5
yRcgM=&Uou|%92YK^JL={zTB$asCUla%6|JqITsg`-O3CM3=E#GelF{r5}E*v7(N&P

diff --git a/htdocs/theme/md/img/printer.png b/htdocs/theme/md/img/printer.png
index a81e2fa0df60af0e3719f655335833d9d8172810..6e8bcbf98a57f1c6e80aa31b21e15677e3796778 100644
GIT binary patch
delta 150
zcmX@fw48B*WIYQ51H+%=Zg&_M81g(_978G?lNT_0Bv>@C2^)x-8vJo@=1tKGN+@t>
z<~ni7hbLHaA7g3Kq4y4wY8{I>6vU<XoHgM0Xmb|1njFp&vWQ3J^+pTH>7S(qm^eD3
z1%(_mocLa|OLWO4v{f^&QktXKCsS<T+M+z;6$69b)`r|E{L@#wVqjok@O1TaS?83{
F1OQ}_F{J<i

delta 313
zcmZ3^c#>&?WIY=L14G!kzHkNx2FBtbcPEB*=VV?oFfgzsdAqwX{0G4WdzVjUU|`@Z
z@Q5sCVBi)8VMc~ob0ioT7}!fZeO=k_v&sobXm*Qo9A;o(IO*x)7-Dhy?4;eiha3c4
z=Ig45FiIY|%n<63v)toK1Lukc8Oz1I(NCfo8(%inb4->f+4SzuM2;ITOm5A*J2U#n
z_O4wGOGG@_D_UoY>P@JaC3c|7VZ|G!kL%a`G}EdPwhpZ}o+QGYuE3n8JiUTRJRv`A
zeg9V74YL)B*w^W%KTg{+N8%)}#n$&zwMBeIPTg9&@6M9tKP3+EC)e{b7@w})u_SJx
z)QUOHbNC~wE!2$yglEj~&T`_KB<1-tBYV;*&6md;SFf$I2)%GF{;Ko@J&nt~EZ4Fb
Q7#J8lUHx3vIVCg!0C$Xd8UO$Q

diff --git a/htdocs/theme/md/img/puce.png b/htdocs/theme/md/img/puce.png
index 8c116b0dc4218939fcb62ee4087b2f2a353f6d03..9bd70dccb731658e40d16ba29f4c09174d35c5ec 100644
GIT binary patch
literal 193
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3Sgba=WrhEy<4J$G?si-CaK
z!^_RWZy!D?Tf9WXS6eA5fA#i`9}`*ycv@6meBUoO<DqTqv4jg8k+Rm}dS^CWob=;E
zzjxUs=PRu$cN-sVd(0L6cz3wrCXRW>Ld_n{%rdd>T&Dh<&E{a3Tt3IPq%8&6mYYwC
xD=vC|LZx0sB>NBV>81&)J!gD)O!j<b&gNXd%~3C=iGhKE!PC{xWt~$(699zAP5J-;

literal 504
zcmeAS@N?(olHy`uVBq!ia0y~yU=UznVBq0kW?*25u{^t(fq~(CfKQ04p;we)P_kuE
zlx0x1WmL9ha<NlTvQu)gQ*yOacC}M>i&u7wS8<P5^^~CO;-Km|K`nEFT9!s-S4Xuh
zjp|t&HDzmZ&(h>6dz0tvO`dZsyQL?)XKD7*W5q2!#Y@js_w-cv%&DHUwR-Kj>aEvW
zdU{%V=CrIm*0S|n&y+bmOSksyy*6d*u{m>=&RM&4&farN_g-6i?B3dA=eF(zfn(S1
zojZ5#+_h`x?ma(u@BO*w@2@?7e(m}Dd-v|$dkzBc-@kwV9RmJ;{|^GEzO0mBU|?`9
z3GxdD@hQa&o8E1-U|?XF?CIhd!V%4SFq*3=K&0*B`p1ELQX(A{zC4MT^`Ak?VXsJQ
zP}iIPZ?4^nVf;I7=AKs!N(R2l&o(`)Y062cT5{~}<n!l~yc^23G#M}Csu=X@=rAPY
zGj-p#TKCLiiMU{R+Ji}_WtCdF9oB8RB=Dk4?c}7Hl^fNa{?BDp-FzWDg}E}iW=YDH
n>B;UauYMIw-?VI<_YdYesgPh6rbb2v1_lOCS3j3^P6<r_FI61B

diff --git a/htdocs/theme/md/img/recent.png b/htdocs/theme/md/img/recent.png
index a49fc171c06d79261f00cc16118595d22077b29b..e6fb611f3bce650dd1c8b36e190277d573c63c87 100644
GIT binary patch
literal 165
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3Sg<aoL`hEy;nD~M?rUokdG
za8MU9bx{4k@j&g0E~yP#Rt{?xu`JN_Y7voTxKw&XBWpqLB54Q3lo{<SGuWBgt0Wd{
zGHH7<a4kH{&*93)BeUa>>>>`vDH5+PB;_-P2r^!9=uu+Z(CNa!sw6DKFynGRLpgKq
ROa=x922WQ%mvv4FO#oWpFO2{I

literal 447
zcmeAS@N?(olHy`uVBq!ia0y~yU=UznVBq6mW?*0t{Ft+Yfq~&<fKP}k0|SGhp`n+T
zQ?i#tvX^3VkYRF^S8`NPOR{21vSv@VVNZ2(Pj&W`mh822s@KkG*;>r7x0qpXHN)O&
zj=j|adzV)4UD|T2n&DUr!?6~Qb1e+#S~$-2aGaZ>d2Wi~wHAhJJq*`+IIc}myw}5U
zZwkk~DFXNAFx;D?cyFoGy|qElr!YL9Bk+8V#Pg+^&(}IV-x~G&Sn>Ng67QEvykDyL
zey!&FtxoUvCV$@>_5E1(_hZH1&sBdv*Yf?^od4H){$HE&|K6Pc_m=*@xAy<@t=Wnz
zI~W)k7)yfuf*Bm1-AH3#U|8bm;uykl-M8-~Uz3A?%W6)x^4X555=S01Wi)v^Ow@Jz
z^S}QSgV5`+_a9a<q%ll*ap(+_lNQ51CWgyewky9^x6i%L(D7JXby2N^iLBSNrEXDQ
zOQH|l+iG^AV)-dE#xwb$ku}FmR&`~l&N#To?&;SvGr}T;jx#bGxR-YN<RTmEwaot>
zJGp#6@~|vbILhUTizD}vEk_ep80W{l`?s2bq1*n$=ZD;rJorl_YL?|OFfcH9y85}S
Ib4q9e04xK`jQ{`u

diff --git a/htdocs/theme/md/img/refresh.png b/htdocs/theme/md/img/refresh.png
index 9994475cdfe0fb8c646eb1877a84443066a73d93..a4fac077e7aa050f4a84419d6d3df6af9af4d16d 100644
GIT binary patch
literal 205
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3SgO!0Ja45?r|dd6Pwc!5mA
z!}Nvg6dsu!YG{^d`NDQKKdWxCaj2))(fRY5k2qM@`uKibJ$dQ*KhL(#v)vh%|3PK?
z!U+~vIHv}!6uWn)<IAPW@|2P+fy^n~!H3-b^hQnfRGhXbF7u%MBKPe<y|>P6EqJrN
z_~9X+XII;W7aPxyvKC^GYq5@w{(fk4Ew@p)T+PpGJGNx&+9#Yf<I-{Hy28M~z~JfX
K=d#Wzp$PyJwpMWf

literal 722
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`4mJh`26+$Niwq1*Gd*1#Lp07OCpa+2oZ;y?
z^oD27Q!SmM(=|W5rd1Z5^$bXwkaU3EL8{1P#@BGxk6|+T7cBqRlpox$Z0aY@U9ux5
zWT)hh%9#ZjUnVC8+>toC`^QPC$@%r?cmDrhZT0T{>8~g6pEuh*FZ!{5xTx~+MJG-l
zI?%B&aBhF&_QQR)znr!|+9}_D_Wz%osUQFU^}7Av{u<lgdMncpZ<iIc)|J<(d4^3$
zk`rTl=90?xk|mXGszoJRV0a+gJ3a5P{hQBjx_)onrQf@hr=|a%%JowFe%j5y`>!W_
zP1~edK81msS-V+7eesKH5uIz@rDgoqaZJ(LE|B(M`qPwz**T}*Y}B3j-eIv}v;Q7F
z?=QVYFK^%9_2vJ2PQeJxQwJ4JC>%ViQNGaW<LTFLSMJ}g^13{V!?2(^M(M<{19uLc
zRG4_=)PYRZLkgR$o63J34?AivKAA<{qrlM1u%p<}WB$ph6+bddAKbT{Y4usxRYK)w
zgyam@8<H%n5t0WUW*j(tV9%Mks~?4SAG$s}QYl`wahhRAfdR)Gp679&a`*lH|N8B<
z?MYiK4`qLqED8VJturIxT%P9Ha|e<X4;<KcXzJb%HOo#+Z5Fgyeq^VFs$@%p+}!*#
zLUrr?UY?!Kn)ly-`ir?ykM)iIo|`kJ|M=@W=e9`|?`B}`QI2bLG>q&$s213JP(ors
z4v&n(a+eRr9=W`aX8l^^`}pzo$iDyceM<iROb))cf4%hOy7{XLZLTGqm0xj+`=d1%
zgPT@xlhNW|V)cFJR<}<2ey{ZP-+$J3-`wAyx$FOZzp@`&ZQ}}8uh(hjyB2bo-A7RB
z56_~byL|N8lYjWt<%IsIwvGPrwlCpb>*gMdJ#%kL{`k1;x<@42yQg|Or_FwBIQ!l#
mc?%<}oPkWljf+<p85U+;QxU!N=O6<E1B0ilpUXO@geCyu*k?xo

diff --git a/htdocs/theme/md/img/reload.png b/htdocs/theme/md/img/reload.png
index a4029f119def5d9ca4c5f7f1bc6a452176bf5b06..a4fac077e7aa050f4a84419d6d3df6af9af4d16d 100644
GIT binary patch
delta 188
zcmX@WdX{m5WIYQ51H+%=Zg&_M7^Zl-IEGX(9zA2Pcf3HR;bHp1bqbHn4mC7Ow0vPZ
zo1axT**MhG>*)M>%|{%pYkhpbuAaQ~{GVrA=h^NI%m1J<ec=R)E1Xk<R*K!b)A8j}
zWqC?TmO$nd?%+die|n>)dMZv^6qk9>ev$k3px#?&widkEUi|Qosn4^k?ZS(V=SNu!
wvB$MoM@N4@w7HhsC|s`Q=d~SMvUTkf&YE%QICNcMU|?YIboFyt=akR{0RQe*SO5S3

delta 691
zcmX@hcz|_+WIZzj14E)fT`B_u1AB?5uPggC4iQF010S1-j~N&kI14-?iy0WWg+Q3`
z(%rg03=9k`>5jgR3=A9lx&I`xGB7Z52l#}zGB7YO%=s@6G(}+Pe~Ik962<2fqoybp
z?^Ucmr&xVWvE{j9%X`J1?}}6YYxca?T>Ia!<(%P^?}qhj|66YT?=<DT)7Jl9OaBKg
z{U5aVf7G07QFES0E&U#~_J8)V|HWIs7jOMveC&Vq*7wzWzgO@5Uw!U>OG``3-tR5P
z{`VaF-gE4K&$<6S*ZxmA_J7K`|5L90pL6d2oNM2gUi-iF-v700*RH+xeeJdXYwvwu
zd+-0&=l}O!d%ySI`@Q$R@4Z+5fA91E$L{?<_Wb*?=l{<=|9<ZI|8wvEUwi)k+Vk(%
zp8vo0{{Ovu_wGG^fA9VGd+-0>`~Ls=`}fb^e}De{`}6Pr-@pI<{`>d$-~Ye=|NlD(
z{Qv$R1cKY$w=pm<n3M$h1%vpwaXnTk2JdhsP>lTWba4!kxSV_8t=}O75w-*^EiaK2
ztK~wR=Ulh98kBPAU2D}%KB<tKGyU?nf9sDJb4m%{m-qc`^4DUyXtLKYDc8vg8P7Im
zKHRY6>GH7ICPn2_rk$!;?)O($x4754HRko7b@dA;U6ZoYaayzeb8pwWi5Ywb>b2)z
zZ$EkHg7lK-Tc6~5OP0ENWP~{{;S@K%WA?SA>UYwPW|4xAE=9ZyKf2cFO_VeK=w~y*
zsYys@r^BxKoN1FMY&KvC`<Z_BV4z}{*})r=R1Y71w)&j2>eCvVxC{-qxw($a=94RS
zH=VJ)HT7<>&YvY3Lica}f9X<l=k45iCH&v&W`8#Se^Fd!wwvu6F7|Lxy7F}Ob6Mw<
G&;$Vc?vhOa

diff --git a/htdocs/theme/md/img/rightarrow.png b/htdocs/theme/md/img/rightarrow.png
index 2c479d9453b4a6e65bc3909c793c221241071707..79f3cd6420303e214de569e153aa49ce1816676c 100644
GIT binary patch
literal 142
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3SggnGI-hEy;nOGtc}zc6uu
z2&Yh(%E=D`C)5^n%uH15Xb%>Qxyi&KAAFH<fdP-1@t(uW-q?%%XmDhhAMY!1k9n%b
ugW#lN9~vhJNw)PTsIoXP25|N=FucF4=_>D{=E=aoz~JfX=d#Wzp$Pyg0xRVJ

literal 156
zcmeAS@N?(olHy`uVBq!ia0y~yVBlk5VBq0kVPIhR(diP%z`&5~>Eak7aXI<N`37kt
zfe9%q5<5~4Feyx$F7fQqG@Ek<trecUY{e~4INRbxJX71udDIL}PUh*C3{yCm>u@lh
z$5FsDxQ(HWLnVSoWY5_Ij)^YpRy^jCM-q-LVzy)p-O*g&%)nV5bRw|$*<=O=1_n=8
KKbLh*2~7Zs&@eIp

diff --git a/htdocs/theme/md/img/searchclear.png b/htdocs/theme/md/img/searchclear.png
index 12437f848238b68f5e1b716b5f56a7a5fe076df1..5715b64beed38049a6f48d0aed63fc5016d46290 100644
GIT binary patch
delta 114
zcmaFD)Xz9UB|FU1#WAFUF<C<6K)+^_X2Ilz?5<1ZKV)0BDX#6m15Y^9lhWkP8~8OY
zwuf`ZY?5Ed(r?rubV|fg_Z8zL+lr|QHC^GHhnCN1tYlurvhbx<z?2gi3+)*gmOHB!
V<e%PZz`(%3;OXk;vd$@?2>=XNEDrzx

delta 329
zcmeBYe8MzArJk`k$lZxy-8q?;3=9lRN#5=*4FB8v&+KPlVBjq9h%9Dc;1&j9Muu5)
zBp4VN*h@TpUD@xm@`<yEibrQKGcYi`@N{tu(KtW#lA`~iLV;r+&-<$%bt^EQ`J$<F
znd9XAhDei$wJtg$JuU`6xHx(oE<JKfOy&~~HEZfTd8FR=XXG7+e|}#wxBtF(ck}MY
z{88?=+v1cqzjY~>n^(C>f9;BuZ@t*=WY?{?67N0prPOC{<_j&|?S9gon-WeRIForP
z@}f_ei(iP@6)z{>T7ms*!g|FoXDd8qRV^=i5URy#dn5E<qXJi7T|{S3IrD6Vjzx!z
zCKa!KcsL-`)!#(WDOOLZvcGTQbtAK@fdz`QZp?Nz=M#S1oE;eZ<L@%Z*pTSnt2VbI
hzbYo0eu}SUS|{(KS}WK*n}LCW!PC{xWt~$(698J>g~<Q_

diff --git a/htdocs/theme/md/img/setup.png b/htdocs/theme/md/img/setup.png
index f997e53799b568372453abbdc854c78d5c628a40..4ae5d40a34072b9d1e5ee77ab16c99723101482c 100644
GIT binary patch
literal 256
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3Sg9QSl_45?t8dU2x{bE1Ij
z!~F8KJ*5J!Av{i9duH^mTc5D7b*b3KK*yTJDr*-_2%F@(yXUM?>#l@zt@3S_2I6)9
z7fxspu07LR8uUZx(53l2Arf6?%prXf-u(RX%y06gOE-2O>w6Me@<cE}#YlLo@#Hz-
zZ4OT_tqL`BJijGWZ;CztHHIujn}#o30w*lv19qNsv)zz-ZQkx6M&;EyR-xABzhmd9
zUz}Kda^11+=<b-h9Urq2rB5~r9oLjyv}OM>_Iw8+zpsYd?d~fjSEw%eqJNozfq}u(
L)z4*}Q$iB}?sjVi

literal 702
zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!toT0LDHLo7}w|M>sko>@^w
zN=j?Wym{{?PMkQA;SdiGPmqBno4maI{V7wXY<cn|B|c_WcURY?ep%~n-=ChIE`RjM
zkxPL*3{6}5<?a9J>+0$rPICwenR306nf;q>&5sZJSFg_2_c6YZ^s=LaLvsS-J~lSC
z)aU2t@8>9yYg0^2Ok8<=ef<BB;NY#2E3Qc_v$V0XVb7>AidndATiMN*mzV3ixw|ix
z5R#FZQ~veU)&B}_-sJEXH5y*n;OX$b=F_)t=Ug`Orkq&l+^)xztI_<c|Kj!Q+dmv?
z<^JE8$Y8c))21Th6V}#cZ!EI%^5mKxru+Jy-DF$+EoRHst-71HZR7j&;e&>4-Jc)z
z6BMtni~Cvs^wd)Q)#2;y5)%^xmG$)W+DvabwCT*bTwfct`tZ}k*3bT3zj`(I$&)8J
z?1_AQeNhU1th@YV-gxD(Nk~h#mxax?uP(_w{=cti^Kwg0v&tQpINBQe`urA5pC11F
zndsjCpC^~hm%n-GV{YC4$8HLGiWv=)CIxNSU;ki9xA^*|M|+N6cip^U`K?E1rYe8_
zcmCbB`$nrzuj5(HC?q7L`0wAs&Ff-!f0mah2!8V9iIc-4*{Nx39crE(JDK`_`L>&R
z?2ov3m|a|54?8&>61%ta^OODa;}66L$VUbSPxQ<#?tD3OxA?Vx^8@m?F5iD}lT;pq
zLCWF3e-BT$srezb!ZO3q-oD<#Z2vWJiS0}uXR=S<{wH78)RxC&17i+@v~=|G$H(9Q
z|NV<iFF7^Um)WgfL*O&Bp}4?iW<z#?&rBNwk~)4JnH96xc)^X8=L~IlPy0Od@$s4K
zV8z|h+Ylk#@w6dAqT^>n1Ve{vV+3o**GElPmW8BA&*Ll!WjW5pAZ@O=%w$9NZ3YGg
N22WQ%mvv4FO#lQAMy&t<

diff --git a/htdocs/theme/md/img/split.png b/htdocs/theme/md/img/split.png
index bb66213f41332ebfae7172ce9e949bd2a4c60dda..f3c34618c6b568c56ce9815285bd517bf5398445 100644
GIT binary patch
literal 153
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3SgBzU?whEy;nOGtc>=Xq~<
zqPdcbhhITyMwcD))B_Dlhr@Ha?3h2QSky~}ut+lKPD-A^Au@;KnJ>eps)N&%m{+*|
zbvViCU^QnU^DDD83&dBfnYqE<-&jUr&5Hv90WS3n44#uUxArcWP{F{!z~JfX=d#Wz
Gp$P!D#4u?9

literal 195
zcmeAS@N?(olHy`uVBq!ia0vp@Ak4(fz`(%Y%JZIqfq}im)7O>#CI_1cw{GCCS`P*W
z2F?PH$YKTtt`8v0=(NUU1_J{FOS+@4BLl<6e(pbstRO`JJ|V7a*RFm4{{8>||D8IV
z)-o_KFqZ`R1^@rgaQzgoBLf42o~Mgr2*>s0jD&=Y1OZ;&)C7T20ahVJ1tkHO9ZZ~z
p7Xvi7mDr}Su4aD8@RF6`=M46_)o0xj7#J8BJYD@<);T3K0RTR{HMal&

diff --git a/htdocs/theme/md/img/star.png b/htdocs/theme/md/img/star.png
index 4b6b458467588e6c444e1d4e23a00622db915374..d6496ab6f892098f74795a9a7f6628f8ce88bcdf 100644
GIT binary patch
literal 175
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3SglzF;1hEy;nFHn5I<kX}v
zLvg}}MN4_QIW-fLf1LO*uTgZrQhwWihZlXZMqLk?1B68D7`hfQR<=27c<~vWNHp&4
zOw@`w>7u~T?w~QN!JAY0u<?Q~Ty0YwJ_$}}7mYBkN%dgb9Mqs={HE)Xgvo;(-?of4
bM_vYnIvpRKwe^t<3=9mOu6{1-oD!M<l$1I^

literal 381
zcmeAS@N?(olHy`uVBq!ia0y~yVBle3VBqFpW?*2bSvMz_fq{XsILO_JVcj{ImkbOH
zT>(BJt_(^H%Zj}gRCp|_@><rAw7SW6b&K!PrsB0N!E2gRR&|GM=nh!Zo3d#_-IhsZ
z>!&4dnjW@kX4uC0>01{^?_5y1eM#p21=aiJ_v~Fbb<e7tgDc7pu4vr9rtt8p>H9ZS
zpIqCyXG_kZwF~xdF5JJP@Wkd>`}Y){+cxFgjyczkth;@B=dII+?w&pV_TkMB&+qk0
zOv(W{u_VYZn8D%MjWiG^$=lt9p@UV{gMop8v%n*=n1O-o0|+xZtudLwz`(#>;_2(k
zeuITg*hoit)(ck#28MV~7sn8e>#p6;g&Yh7*!<tCy7a%$t@wZauw-)m+jHgYA2zJ}
z;C%T$|GED2=d&a<!h(&i`3KK;S;uZ5t}B#sep}1O-q`*2Qi>{5;_sW>HIYp{E+Oj8
h5&FuYX3sg^2JX9AY|9#7ECK~9gQu&X%Q~loCIHexpvV9K

diff --git a/htdocs/theme/md/img/switch_off.png b/htdocs/theme/md/img/switch_off.png
index 28a4376fb438b41bee3481e229439c14b55f8e1a..ad7e703ccac95afb2a7078f244ab47c1a47c26ac 100644
GIT binary patch
literal 292
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3Sgy!Lc)45?sTd)C&AIZ&kG
z;$xL2DaVsWO>?hZ-00)<=7`aPM{GGq=IbbB_PB~Y;BVq+5;J?}JYB(Vwn%3|x8s(M
z*8AFRzb%UA*XIU?-<%RwyMt%j%GZYu%#1nN|0-xhZL)CTo|hl?c8O0;(B<{DUEE;)
zjPcaGBlp)$NzFRJTCC6P$NEu&^|q-?{2i;7RsM!qHw16LS((`x{eIdCucRwmgzmqt
z*b=)S)k0{oTpR0cqc9uylg>TLmRZ}DCa@oSm%_lE$9nntrEfB~(@f7U%y2uNec%zx
x@6fcvoyE+@UlnQIm~u@uHaI%?<Mn+Er&%+X&FZmJVqjok@O1TaS?83{1OTOkeKG(5

literal 1252
zcmeAS@N?(olHy`uVBq!ia0y~yU@&B0VBq6mV_;xt+wdiYfq{XsILO_JVcj{ImkbOH
zY)RhkE)4%caKYZ?lNlHoI14-?iy0WWg+Z8+Vb&Z81_lQ95>H=O_S+otf>r`6@A}Fy
zFtDU}x;Tb-9N#+4Hzy=i<aqt_d%y3UDY3fIpSgTXN6pboTvJ%xm>Pq^Sswc>7D#r9
zkX+1NevH-e@HvTVdN*e8xFE4zW7diYR@H4n6Sr_(;c|U*e9!N+d$re(`kem4%+#e`
zd2;XfxyA2(&M$sv>Hh7VtWAWDSp4d+)pwO1WhlJ2{qFSr(DS_yVisLn7i<0bO5@+h
zt%p{19XCIr<?!mYo3Y6Q>3yxgU0l+R>-Ec<+uGheUiR+J&lSb*`i_~*>pt)&%th*7
zW!~nq`b!e^BeEr>q!w)sxn*Q*+xuNkFtR9o@t?VK)s&umt`xCK-nDDjs-sEP*P<N6
zrc}*mYC3-1cj9i1`Rp5J9RGcLfvZB7j-Kz#*|QJpe|xpRt48K{het+KboAq(l`UJ#
zW;!huQ8Vbsu$i|c%X6+k8)MY!S?&Tck3K|QSjFbJaHX2qbd#!c#^&M+rzr6-tzv4@
z*<GBO@{Ub~gULn3G&gsx=gJTjE%%C*m7&?buUfNYiXR^5_VM%GSXF9%dmEpC#BqJ`
z`qZpfYI?o}dZ~Ap`C3FjJKy=*VtRnD?dxm#3zlDr<Ytsp?V5Qra*NQGYuv}~ul^ps
zXjU`p<!kq*m8^ZYEJiQ5UT?;MgvF75d+WP4m43;)cY^;uZ}H#$*)n!T6a4Ld&B&fy
zfBE)q#%$f6&zKI!&rQ#%nY8a-uS=oNjFXqIUJmy6?hkVM7AE|3r_r$)zrX$Q5|L=`
zIP`@3Y+mST=NSeOM+|;lwp3ep_rcoj{hRB2#l_wA3mzS*_VKx=F#Ys~)CBAH_?o^Q
zLX%IXTK;}2`D;60!IKY;Nzsn2Z9ZxXk{(CB4di++YPL$J;m7(EpN62Oi?>uN{GBro
zN}PT2UU*CClovVqX}fHk!~M;5SAX*HiBX-+Eh%Srdg@2-mc(g`*UPBR&wupi`}2zD
zuO!^q_mq4|m3ybBcgZ^bqMS@em6hb$$xAC|s`T}p^IK+Te>(oMV78a5UaVYdRn@e<
zBzEQJy0^FS7QFbG-mzLVii`Es#HSnA{@qjXBJ$A=r{dzejeqZ5zwB;nA@DihDf?~2
z!@}JA8=H-n?|<-QxB5-H3&*$LuQ{t+`#0y^`^T60?H8!t_pEl;HtV_|r6eu*?6!v3
z?T$qqS1h%rzB1bDWxK<JMQufBz}nJHLA4pD#4En`UjO;#OXj+m*$LMlOy+qf?b5xW
zIzxV@lXjs=yZ3?R20QZk9rHx5Ma@}V8Z&>{=`URzi4uBirf)lbOsw*H@q0tH8UFs8
zFH}fHPChd6tm)?e2QIVBWN20D(+<%Nm8(w@cT{T@Qd}9ua`v6Av&UZfC2~Q}r$x+f
zD$h`r$n|LcCGqh6@glKCex~M2i+m@k1PaWk(u~o%sxe<E?aU;-x15_3@4nu8Zd#Rr
zTVtU2C69?`pUhZwPwDy;<&uZB?oGcujP#dJQCfFoqNMciw`Ubj9CMU-@<H>zc&Edx
zB|Sa=be^8@3O3Wue3d<!SAmy#LB0e7YprzSlG1s%DpGP)r6eV7zwy^~a5cDl98Y9m
PU|{fc^>bP0l+XkKMb1O}

diff --git a/htdocs/theme/md/img/switch_on.png b/htdocs/theme/md/img/switch_on.png
index d4e32d98f57ff37c78bdf1e6b4235e7fb4cefc17..0f72bfaccd50450154b10e9563966bf74a8d68ab 100644
GIT binary patch
literal 257
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3SgobYsU45?r|dd}X9IZ&ka
zWBfDIe=E-zO?u-f{C3jKrj8w~f}Jmvj95ez^$sX4Sg=FVwR}O?Mv3-^V*Fdqe>Z)8
z$MVCmUmo9LcV_M}ne=Dj<0I`>pYLw$>&fMR+dkDRGbiopx23+0pM)k0{$i6j_QsQG
z*++-g-DbK0N5Asy+P8SxuU8w=g<g7_%lGnb3Y2_#nQxB!+{BB^qR%|8;!-*P@v-w4
zDa#L+@5zZa>7Jeus^;~1#+};}E*3uVo%{3E1$&WiF+1|++zO2l-ygjxb8+e2%WD}J
P7#KWV{an^LB{Ts5(*1S^

literal 1228
zcmeAS@N?(olHy`uVBq!ia0y~yU@&4}VBq6mV_;y&ZTC-SU|?V@4sv&5Sa(k5B?AKk
zTavfC3&Vd9T(EcfWCjKX&H|6fVg?3oVGw3ym^DX&fq{X&#M9T6{WgcZptV8wikRsP
z3@kpLE{-7{$Jb8t&IxsuI9`9>y!hPC^>JR&SzHoIp3KKILYnzGs(lI;YKtFR%k7*L
zv9loY(4kf}y_g*zwk8B8-`HWWf>TP!GeBCN)A2x-k8};=*8bbKtIyB;8FMH4*1e{r
z*E#2AdOoxN|Nr}s^Cy1%`0-($ZFS$$%qssLLvcYfBc6g+kDus^yV=dD`MEIc*YYaQ
zB%c3G>UYnczW>xT>}>wdvmGq@Z}+YK-9Eo2P)$wEucxPH&y^fALt`^Nl}A@DPv<TC
z^jmy~h+p6(U5SroPpWU~oqxRQzuZRKZmkPC&phh)zh|DGdb7{wyk=L@VI>Bama?47
z-*Qi7PF=HN(oQXbDv8n)tD6O^SzK8P1-ZLi1Jos0)tZdmd)hcV)^eB&vm8wIx)pzH
zc4Wc1iOXItGg4BT!Ft4DZ_p_tqm#P?<1Q*HwJ1Fhiint@KHoo}FvE2D`g`sXMrmo!
zS6mTV^;B!^(mBuWC`Gsb>d=Zc)Mn&JQt{NR5Ikt<&XE`_`Er%x(TA6(1cj-ozFx_>
zc){6eIqKJ+Evr0We>nN~e7B>Y&we@Xv*ljW2D>vC8^d>6)VG~}Cu03N`Hghdw9Ow`
z!gg$}P-0=6ulnpPPv}w0@Ae#qDox+}f|fc-ojxL`DAZeJbwcmIhPzvT@xG68Yb}mX
zWS_4-yJh~}%wul+Mpo4g=IiGy&tGwF-^AuQe=ll;1|?k))oEP86xk&{aki70EsMy}
zYX6l}CPui$Tz=DJe0cTqhY!_vZ26-3Jnf!aQ{XhI{x>yUGo|kv-rv=@K21idqHq4K
z<((oSo2(u=e$b9!a%`Qk>>{(pd&AA8X&>YNhKp<osF@U?HT~nXuQPfl&YqarnYC@I
z_U7jjZ|=A4YWexC)N88N*HZ#wt?Q%JZ|?r9arBE)<;6wo!xpb)Os~6I=@g>6#M6D=
z_pZ+0?)UdCZqeZA5_g}Z_G8An!y!EBPR{=xth>f|?tX>*Ww!6($0MZn_`MT9vE^7!
z;nb5)l=<%0_L%YdSThD(ojqgjC8MJGB~MlsuPFT!Z5A0Ndp=x7GwbB8Et+!a^YUje
zx7hR6qF;ZX+wK|9@4Zc~+4zHv)zUA>DE#rKOV8ijEo!N|*{hdUaWd@Y`h|D*ebF=Q
zZz!I7$!N20hJXueaQ})$&vrXqORAa@6MaT>f1%o*L+@hSS9lyt@4db=%|2k^{Pj`q
zFHVWvGsVLEKVP$zm(y0^Cp&bONN;EG6aIY8^8H-pV+FINzwo)gxTm_v<I9Sr6(3*c
zXR=Igh;nM)zvIRqmdy@%x?VxY8&-Z$y~riv-~4(@j@)`r_Lbb}mvnUl7ZpF6KFj;^
zIm=V)_UvTqock<WXIp33gdIkDQ}QGwg*A2ywJp3GKKc5mv%9`eTel}JZ2!@!yRM>V
zHq0>jbLGmF-5q@VygXB!c@h^(3W^FBn^~4FGz<P+>b~p2Wt-_8Gwy7fzCq9a@GhNH
s-rw`YU;biNZhGRKX?Nk4;XiYkf_?8jX6meCU|?YIboFyt=akR{0QR*!A^-pY

diff --git a/htdocs/theme/md/img/tick.png b/htdocs/theme/md/img/tick.png
index 9b035d99511c7edb7d17f84e171817e6edee3b3a..8e05ce551c7cc277ca1271eae12e91b77401f61e 100644
GIT binary patch
literal 140
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3Sg1bezThEy;nOC&ioK4cJh
z%-Y4nFA-<>LLh8Wcl=4`w(B#zesE}SOszQmfGbtoacTlXVjDNleTkTdUS9-)W}KQN
s=vAQo`}_yCMJ)3-**d5?voJ7NbxWqs(mW}`z`(%Z>FVdQ&MBb@0N^7mE&u=k

literal 227
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`4rT@h290TVA2Tp8cm()_xc>kD|L*7ehC3ZX
zjwT*{eOzI)q40Xu=Bqt(?k<tos5#@#f*YT1`yY-?IbEQ-)%5Mp_f?l#KK=gOe{;st
zhigoCyT+WzJpSg)>9^+_toLnZU|?V@3GxeOaCmkjje&u|)6>N<gyVYcxr<y43Oub3
z1Am?m64Cnj_x={?MBzhsYu^-DD0RP{EV5qqJkP}|AN*x^aoc?AOJUNuI!W?_=|>j5
h)s{?FZ*Tr{uiv<p@xt@vHs2UPrn>sMtaD0e0st>RW-I^z

diff --git a/htdocs/theme/md/img/title_accountancy.png b/htdocs/theme/md/img/title_accountancy.png
index 6e7c2a412c60a614c7ebd91e0e06df4ebfb46191..f83b7635712300abcf059f591e413105286f0bbc 100644
GIT binary patch
literal 218
zcmeAS@N?(olHy`uVBq!ia0y~yU{C>J4i*Lm25-&)VFm_<g`O^sAr*{oFZgpEG7xZo
zIK5D}!d-OzL&GK8{_XF5aEN(j$jd1_QOlRic8c5n^zn4X>C)xd^PWlfBxz_Z<os?o
z!Qk(~m|r?VeK9jj4b1sNjKBI%6H3)O^gK*%*;1Wgp)YS_&n!$-^0JVA=KD9DE6iq!
zkYBunjSs^#-lhGwe$A*oav`X*XJHqMo2L2Z%{>dv<k(JicxJ47JURNskB`$&?`0^L
X@4ppoUai2uz`)??>gTe~DWM4f8tqk|

literal 1019
zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}Y)RhkE)4%caKYZ?lNlHo
zI14-?iy0WWg+Z8+Vb&Z81_lQ95>H=O_WLYCVhZM>`;s3rFfey`x;TbJ9DaN4c6Vs1
z1lx!EvlcH-?zQrrRbpb5nVM*n<|)ZxcqR3LZ){1dxzI(|zpSyGtQTV^I*GUhiVK@g
zQArJ3Hf4E_$y<Y&$7im6+*4itStsI6QGvwgEV~~!s@MOmegAvU`Ok7<#@U~)c1!Co
zKkQn;X`jGiI_F@<zWhVY|JxsDe_)fch%dCdwB`KMGuI;uHD$zSG=IO?zgfI+d1G16
z<HDS|d<|xIdZt<!wpJ%I{(rKRp@5}+k?2=V1M|j(FTE~w<^Ac+z9@Y7@z0!lU+-A9
zp8X-9zMOjjbM{6?b_4m^#N`g&W!8L;bN5VG^5(et<<y5<JW0yyR@>|sEl<-w{>JA0
zA>)hxCjOtWOgEvr&_3*_do<I(>#dOy{ku0v-A@+(7V;wZLD`*YEw<B6{WP;>es{FC
zaF<TeRc)X7$M|ZRawYT_&m2BoVY+p{QJYxH#Iiqv%d0<H*73h+uHZhO=o=xm-@#~l
z(YA-_d)nTrGV8ZBzU_Q-++?oOZaFcr2Zn3BgYphI%o7csuvhixmztH=8#8v9UEH$V
z<anV?pSa8a#g^70+jeQo7HRPo7~Z;F^il4O&wBYzoo?sM#=ndvGG=*RU!*6i|4n?7
z<hbQ=@D;9-M+;T_^Q|5od=ZirdHj&YKC8FCzb;d$)k;@OUVNr;t>+P2)^$fVSFn0B
zEqTM7E6N}|v*Y$g)dlC<R^ENdUhY24b?R=_15r!vO-iX}n(f6l&o3qZSj5_(^N**V
zSDN~<VA-?TiMh6Q-5;Az&R*A`ce;QnJTbHBPJj8S%pH8~9~}7Ro;e`t{YCa>adLr1
z->*sP)sxw^nd(f+&xg+n4j0<i*#D?JI(w0H$G6#+Tl$_}sxYyY{<ZHw^~#RM4Oge<
zna`*-F?&5z_v;Pop8k)Fc^xtLMJ@MeCGS+fGR34XY|}PteLe5VKD(I`?D9_9P2#hX
zxzOvyJZpAM<h1+NA43JX*eA`L%ecuPXbxvXU%>D1RgVK2=5#(3{4?w4MwQf<Y^kcX
zFIVgqzG1{8_A}Y{*hl}D*S9XnsT0<El;9dsY0hXPC18ChPC4h?sk^~H>-pZDxEF2|
zpcK>hI{8D)BH7hf-v5!1?Orzj=^UGQS+l4|IXgNV_c5$^IK5%5`S<rX7p_+?Dp8fp
zE-bU!S@?&kcNvSN{&(xoH6}%KPn`B&duy`#>+8C{hgTT3CI*MRxxW0vF7wT4*Ph1y
aXE-^Fz20tf>0Sl~1_n=8KbLh*2~7Z<A=b43

diff --git a/htdocs/theme/md/img/title_bank.png b/htdocs/theme/md/img/title_bank.png
index 034a8d0c5e4a4264c8d3dc0b9185eff071087d54..7ff265a49172eff0f2b0ede94ab364bbabe33cf2 100644
GIT binary patch
literal 216
zcmeAS@N?(olHy`uVBq!ia0y~yU{C>J4i*Lm25-&)VFm_<`JOJ0Ar*|t3*-Y*IFb_<
zT@m1HTgkIu;-7I$Du>E_0mrtow)H&!AAV42Hh$SwU>st&hds-!y;|~2hj~k{V*5kZ
z7;Uwf^9y`$2&lDHwEcEC`r~1Io9h9M1I$c~jlbr5{Ft1`WuUczAw41CpSoZjt6RIm
zF30~TTX>r<ED&T9uv2$SIU!+^bzy}gZ@>$ODJKLNc~hL)1q0Ih#s0N0GTh`nb1Ud}
S?PdlB1_n=8KbLh*2~7Zp7EMY3

literal 796
zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}Y)RhkE)4%caKYZ?lNlHo
zI14-?iy0WWg+Z8+Vb&Z81_q`*o-U3d5r^Mi^X~{vm0<gD|ISPk<B11mB#EpMoAg%b
z;GC>1GhG&O!HC^09tGlgcRISowstS5ZA{$4`Kx(`fa8T_98oPCPL3)oA`JcdzMsEi
zoi|T=etYryv-7R<{yZo+SAMSi-uJ)rzE{rw{`lXH<H>6(>IB$7eCVj%_Q7^th`rAv
zrCrMV^d2AGcezukLAB(<xf;9A?phve%eFjTZPrkxu&ZP8jKkR$K`h(E7{9z?dhvXD
zYk8sC`?@10^Eg_v4>sO2V7c{U@2AVEImaJq1Yh`n<A`<R-tP2`?Elvair+dc@PcL0
z-yc%-Nn+QtPi>!AE&kZ>R&*{yE#HC1jeB3!DCa%ezF@2NlDmD&3l_IjSjq&195i_N
zi*5cxt$7Cn_lT>^J05+*M5W`}e^1A|83~N@A3NPM{d`{L-@%tl9=}y=c{}BxDch0-
zRi?px_77^`=p1?VTtc+fx<lXjmgBcPWrMhvteYFxYt1jVn8&be5vOp4=9~(X7|Ry@
z51H5AatJM5D}D3KRY#SaFa_!U$3M^5dvwZiH|>2=r*C&8KJq(fTGpGpjSh>|?BAZc
zdUX5ISu0;0a!QEfaOyvrSRd29K=;~>H+R>HhbY@ke9m5A)_CpYCy}^g51Vq#r>|xX
zJ)!m?^w;-@XTRAE{^bAZ>K8ij`bLo8iiK7eR=%v-d*G+{$9I-Ck#9DwZ@K?4{?C-s
z{A)QG8P@BZ6L@}eEjIq4T)N*nw1D&Z2PU~gKW(;WeOa(IhVQ_&H&u#DzZc%vXURTI
z+cBAI{jrxN*YtI_OY;RCnkn$UWY&}`|Ftcq{y)b$(Y)*2u0@{@EU>$f?=$<*JHN7<
zC%>PRm>-{ME+bNUlQX?|!=4`A!aeHCU&?xV7l+&pVEnsHBJ07+JJXf6hBY6ElC=x3
zQOREG%&?WCB>23vyUc;4ohLWWI=5YJaryM*+rN6FWB%)Q+`3u*fq{X6!PC{xWt~$(
F695vYfgb<>

diff --git a/htdocs/theme/md/img/title_commercial.png b/htdocs/theme/md/img/title_commercial.png
index 46394177698fb286ee15fd47544bf6d0de642807..2474d61bb76d75bdb846f71f844aa0aa6e2f0e01 100644
GIT binary patch
literal 176
zcmeAS@N?(olHy`uVBq!ia0y~yU{C>J4i*Lm25-&)VFm_<a!(h>kP61P6AihX9C=um
z-}dfM7hJ!@{R7|ZY|eWr;YU9G=LmBPnvtNKwygT7Nq_wkMV>E5wVjlE7WB<EILzyN
z=tXe-&xsTMYApD_c!B5c|ABWp9Y2Sya1vd0A>29JYIDMlCC=$Q)$dlG>6OjTu`J@M
eN;rI6gkSF5sXd$(k>U&t3=E#GelF{r5}E+S)j`+*

literal 828
zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}Y)RhkE)4%caKYZ?lNlHo
zI14-?iy0WWg+Z8+Vb&Z81_q`(o-U3d5r?-<KbtM=C~>U*c7|{E)m!}gS?vuLF^Xz)
z#kKxptO{~D*j(T2?(fuJb#XDff0MeXZOD=409#G2u8vzvCPs8$Rmt6S^Ubl-n+<qo
zr%ldbYs*PXe^&df_FnD1av7_9<^z!rj3%&7YutXI_<`(&1^v0^1>zaoUhp?2|24AX
z*)wHfRrfuXI)?OLj1RW)Olj=88hcuJ=Z@J{hR=N&<QsSeKN@hHVe&8iB@!TX;rm;&
zIC0?v8V_DCS@zNYfaw9|bIjoly|e7sB;=|vD)8?K6j;WZCN_gHk7;^?!!ai*vBuy7
zF+vP6589M$ctsktKCs+a?Qgg$*SCwQVe)}eNq<Jk1eY3jQ~!A$JO^Y7xFy0ruzhk`
z9mXa$iN!$wsI^G&+fN6MmrV|m&2nV4NN1TNe~~%Cb=O31sRK+KSY)o=(s(TTfbWA+
z-#MO=g&pe~*K-+N=hzX@H@z`kD*qd^1DnMHh8X@k>~b0FXW8w2xnp*z*Fk{-(HqOQ
zes6F;kluLmgm&bEjT)X;n1444b8TA1!{o!{ZX$N6Xra8^4vrqlIqw6TZmBO^_3FyL
z6%|XLyVz{tw%}WHYKMAr_a%<&T*n+AluQ!wIlUmVq2f|oyw%R1=NS34&8or<DSq6W
z)ysas{NktJ&$HatZgieE`~6ks;76DA4to7s%jnw8Bz{AQ!8Ulp)Gt+T-y7do$#YGx
zUB0Yj?z`5ew_F<LNx5<7LysPG)DE;f_A6>TLs{11sw2A>DekOKIU+V+aB9ZVJjNdB
zylvdK?uY%;f4L>lG<BUcLv!2jW)6n>-v6p!&xQ$cxt{Fw@+-8taN#Ahb_Msf2-i4|
z=(eV<Tr<iT4m~<_dGpWS<xg&@Ca+&s=xp>}_G@0TBf}qI*3657V)A{Pl77^AH9e7L
z$a?h8d-X5FcV|xon)tuUGf1mgul3zOW1haRhL-=7>x&L7-2ANLzsLs9nFS&0afa`D
f8(kw$f0N&L>fa0_8Ncfc3=9mOu6{1-oD!M<9Gqjm

diff --git a/htdocs/theme/md/img/title_companies.png b/htdocs/theme/md/img/title_companies.png
index b2539dba849a6f4a1ff231d2004df2b39607f582..4d0f7ba2a04f5abf1438fd1501324ec0dab07539 100644
GIT binary patch
literal 146
zcmeAS@N?(olHy`uVBq!ia0y~yU{C>J4i*Lm25-&)VFm_<NKY5XkP61PQw+Hn966ZZ
zzx;QHRa?8Wt-#l)_o$IT>)!_!hMPS6{%CY9Ivak`=Cy0Z)}y|Y9W-x+oo<TX7RC~?
z`peH<Z~g^o3x#~XT4Nfs<gXit$s&b<12(a<zoofqW$j>KU|{fc^>bP0l+XkKwlXx|

literal 562
zcmeAS@N?(olHy`uVBq!ia0y~yU{C{L4mJh`h84Ci*D)|KuqAoByD<C*!3BGlPiA0X
z;4JWnEM{Qf76xHPhFNnY7#J8YdAc};L>zuQ<Di#}qd?pKE=Jc00vt`#Q&<I+*n}ob
zXnvx^c>l1uz!ycE>aSWq1ms*kJUKW)hFP!4Qpf2`VR}iuey`5qlH10&H*ap&eR0~S
z^sD{-knpoxJd=dpiV9~5YriRd)sS|L(aLmLnQH0$$4kx`8oy?e&+_@pU!ro?TvbOp
z@fW{mdhZ@D1?D=&-;DE_9|WKL>X>Z#tmUq!6@S3q;yTyh$%l#_JY=2E{@gq)srLLL
z*N=bAI@Zp*S$H6QD{qpd0e4O32Wjn%JUgar5%&0}oUoWT$?)WTu8lLEoL|&2^QPH`
zSmzV+p6#rO#cAIx4bs<fZM-|H<=UAyF_+FOO1+OQt?!JQvcc}d?X8oIqFJ`td}nL5
zuzg^nkahZKx7R<J9g|8P-Sm8Yp!~d(){&puFD*7`+cV{_7O3X2d3qpt?dguIYyZS0
zDJF91tZ>=8X-WiJjqzqt{|%Mr{j`KmH>eul=H`g*(i1;dc(7M1cZr7%b6UgG5Z%lv
z`sW>AS*&c)ES;mdF|gyO*TG(C*V|tNP9JxD6Lrbe^XtD`Wqr18Ip4#Iblh%Cx#1#s
zTAS-Mv#-s{4bcx`Srh*%D*kU<_r1Zq^q;%xS1Ic@uhh$n&#n5#(iwE)%-j#rMhpxL
N44$rjF6*2UngGta@lOB%

diff --git a/htdocs/theme/md/img/title_generic.png b/htdocs/theme/md/img/title_generic.png
index ae2243275490d5769ba220fd3ee00bd9c3175a3d..ffb07138f9669b5e595a3ec4a405f62a4e3de894 100644
GIT binary patch
literal 197
zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-4i*LmhQHi~JPZsBJ)SO(Ar*{oFF0~BIr6w%
zwDRrV{)U-T`P^Q&EwQT}UyD7&@4@|b^LqA+Q+76=+m+3~j{8~(?{V)VnwI^Yx~4G-
z^Ee$uA5CQ{Vqs@sY?$$YL4`p;ScZXxfx)pMU+GOR!%Ag_IgHHq4BzS*cq9xG4jfo)
zVxRONh-sRH#jCdG=BAp?YaRqTch6EgQ_G-flXIbIKhpsQ1_lOCS3j3^P6<r_35!67

literal 789
zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}Y)RhkE)4%caKYZ?lNlHo
zI14-?iy0WWg+Z8+Vb&Z81_lQ95>H=O_WLYCVk#C7b9a|8Ffc9hba4!cIQ;gyW5$$l
z0rn5^lR~F>aAqvs7Pe6L$%2K8rrayy_!5%E@9I(&SfyqAZBbm+mjDfpCXp_6!|==V
zZcS?Nu-URTBU#iWBTz@T*YxbMv}B)c)BhiG-?iKGOdj8(1CI}Wzc>5m`TA#P_w+x%
zWOuVue?#J0-uDLtmIWStx7A>mVE&`m61siKZ%y{_vU9h+KlZt`M=Nj3;SaAZ`s9<J
zh}Sf|-O)4i(27ONL)*+BtJFD5hJTPV6a5x*BxS~oBNq?d(za;*9-dTU8+SCkqT%<B
zmc}*f4_jNvDjeR?tN)S7>qcww59#{Edf&>Goe$;q^p<~2<l#^2c{WS-koyhcuw8~t
z?+bMm_!rB6p5f*3Y&PSIzDJCErsmIoEd8g;ynyNVB<`yQ!RI87FxIril{`pvtT*Mn
zCE&ns$MM#<^QpkI0=4hE!eZn^&*gg5R10_c{fTz}KZ)VrL5poE#j024p8w_4pgT?P
zOX}WBDqFnU5~RvEn4gk+ej!AtXzL~w=1E7NR+!Fq-h8xq^^`WAFAq(7R7LLQG6YO-
zoc<wGC`0Bx>wzS;XSa_Yh}l%8RV@CGhk2@#(X?Bv4;=T{MXac?PsuZ7-m2%hXYI-D
zA9uA(4}Sh!j4|Tvin}XLx_MUc$v-}N<%`$D3t3JV8r65SZ+^*H%GmR8xk138uV4Nw
z=XFds`scUn$^Uz7Uu~ogPJD7G;>HTbicL)Y*O$(VITf?M>Kbc-xo^7rvwxy(3ygOf
z&*}TI<L0v}F7Xe=apv1UxbM?%Z)A-*+WPd^iiz%zZ%DQ77iTCj&2XB!hkac_lB(yW
zo=Y3geCKAc5<j|A`QzTm8_Po(PR&$zs$F`(A$-@fjBE3Ex$CH}T$a4&*nymNm*0k6
wdGeHDg`we0_NQx?8tsnV^m68(=D+-5lio<SB+e{jU|?YIboFyt=akR{02tA5O8@`>

diff --git a/htdocs/theme/md/img/title_home.png b/htdocs/theme/md/img/title_home.png
index e9273e727f59a5eefc3516fac772d8326f64804a..b832916f5e97b28900f42852d245eead209cdb4e 100644
GIT binary patch
literal 126
zcmeAS@N?(olHy`uVBq!ia0y~yU{C>J4i*Lm25-&)VFm^US5FtmkP60R1;!pG_BOUP
z7aALMtQffd9p{qfINc}Z5>a+V;gzZfQ^P+t-j{pY?tgSP)YABVD`T0gX~)0H-UgkE
d2_g&($vt+~Zw@%{F)%PNc)I$ztaD0e0sx#(C364(

literal 721
zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}Y)RhkE)4%caKYZ?lNlHo
zI14-?iy0WWg+Z8+Vb&Z81_lQ95>H=O_WLYCVj8M?_hu|)U|@>#ba4!cIJ|fI{_ZOd
zBFF6~-;VVU|0q!3*fFg;tjw&b=t1K@<E}1^6&%-+v^%D5?Y&hox1%>AB15^uENuCl
z)$P+$CU5-7)}}i1OwJ<aeuLTD^Y7K{zyDp0`EUPHiS);n+u1F+MP{iVDDMByV!<xM
zevi?=F>?CcIUx<Yk=GuSvsCcZu&&8rvtcYN^*z9}a?KjY_go)tfAoC*N1pMptFXmF
zhv1v?f9=@xnB=EE*mAJ$)!)$jO3df2wQmHU<$fSiARHllMp}3F4Tg6N`y1LfD$QY7
zKbIw7!CupnExo!Aj6Nu_H3o6)cyyaFN8jN&#}2+4hJ7v9-bf~ho?xvHw`P!GyEgaI
zx}^!`1->@@)p<e64`yngsbskpa#`4P-lFu=4ar_la$6f1`Bp9q7k^?=mU1BX!BqzX
zdxpMMW&e-g;GDyDk0*qaz4eI4BJckP7jbS_Q+khCzcF$yhd#sfD!)Sv^BbbG?%uOY
zm{T`z3ya>|yFY7stezVz5e&^b+vt0KVpfA_=%w<l@2qZwe>wBIW|q*32mASJ@-iZv
zAIv*ay|`_Y&<*xGQ(t_#aCk+CfwBtM_Tsa$VJk1M+uT-kdP`#hOPb#XqXqLWHwc?v
zynIZ-fqDHq4$YfqE;<;n&eY)WRQUWO@}~}Gq;xQ=*p2m-mnPH*b~HpT;VOEt$DQ5n
z|9!p-4V?=Y1YFqWpB0{9#}#z^`Z2Rb>&m%bhlGeQMIKqI#Cd_iP-;cO>yp)(4hkBL
z@<n|M4{TFNNY=P<#WY*y0{g1>HupU(u3FuH<#ny1NzYxuAlKvC3uW=UYkn=*djF$%
Z=;|NS{}*-TGcYhPc)I$ztaD0e0std#H_`wA

diff --git a/htdocs/theme/md/img/title_hrm.png b/htdocs/theme/md/img/title_hrm.png
index de788526bc1e458293e2c957066e54695c1d44f3..33114ffd1c928c7807bf462507874b45f3f29aa3 100644
GIT binary patch
literal 447
zcmeAS@N?(olHy`uVBq!ia0y~yU{C>J4i*Lm25-&)VFm`qHcuDFkP61PS5!BM6fzwD
zc)oahleNel?n~(f-`hm*$SQsL#C2}3orTMtmlh#H@BV07TNm%LcCWo3AN_OA{CEF$
zb1l}{d|B}K8bjY^BdO(=s}-~DW41+1y~11UsIlw$GtaA4_gh*@GXpnqMW?JW4Xgj#
zV|2Oh`d<wP+pEEy+gzsCmR(L%W{@?jn#yc@CGM4LYLVXlT)hRy#N;m<9<JFOHeq+Q
z8Z+C@*=GtI4X!<Bx*~u4N`uu*m9#wyFWxT;C@BBRC^~EEnqYx1#St2t%H2HHDE$)a
zH*(V0r7a{a8fzuIy{J)Se#o6oFCP7!5o~w(+>1}IALQ-iaes8boL%jw?(~-{y}G^~
zHP2;nFP_mDXF0bmO8EXaFW#&>qQ+Hj`?rW(F;ToHcH#E!j)kWp6=knJaObHt;pi!F
zwN43KK5512Nc(mx%caZ3xF4Ndq2VyM``kPo*U-v&Up-BO^-T4TUSF^E@3r;9po_bN
zW?TvBUT!$q=dWSt#VR$U0Nuy^p_9BFeXqy<`oO>OhQC5)X!tw^1_lOCS3j3^P6<r_
DCqu<_

literal 1028
zcmeAS@N?(olHy`uVBq!ia0y~yV9;k^V9@4ZV_;x-vF+k61_lPk;vjb?hIQv;UNSH+
zuqAoByD<C*!3BGlPiA0X;4JWnEM{Qf76xHPhFNnY7#JAXOFVsD+3&N7h*`4a9bF#G
zz`)$%>Eaj?aro^FZ-3!HiMIJOn=UaiH8qHvR46V|nI*O7$PR;D1uxx%%his>KdAp;
z|3khc_0h3bPBp!rq@L>@N?H;w+)PE;?PYiNOr9f?ersb%gX{h$r_X%xIlt$<<^8V?
zv9E%r@5*VhFrAlgeu2G&d3VE>eH(c*7@jo>K6o6)c%S1AgC1jbBhLjD-<Q&S513dV
zsDEItV6kCIGiR<5FOb{8G>5UxMWye@f#?UCA6P2Z#NHI}WZuqtAb$Bi_IC{84byrV
z>SMIim^D4$-hcB^C}7L6IOgjOZwnoltYVqZWYt)=;I5Igd%_&9XD_23+a7Q|z&!6L
z<HZ2gA2J2}JNVzQeCs$;s-T^od*u(`2Cg-&Gg_0^>{-m3+0DHu>O=N{EhaP67YkHK
zybzda_CV(Y+YAQ1?wkd^*VffAeDZAOSKhop!fsJzwCfAC4?-1syWffKWJ?JA9(!s1
zflpyxE#Zy9smIDScCucQD^D^{eBfK;u>Op->Q5Gj&;QrdOnM+Y)At^OxZ3HW8+@q`
z4!PZ~v1D?L(ck{5_^OW_d(Ewi^L`GlmaFAI-cNfxcb2!zhvoy06Hjpa1SWqzAf8}z
zNag!!oqsuEKN25^87SP=J;^BDsQG}gz&z>QVy%5?lNscXC&n|(7oB{4%d2(k?xr4E
zu()u2Po(O;PwN{DAGml#zFu+8Gt>Q+OTk40efyOe0?Q3PPj%sw<aKrY7S9m2r1^m5
z+ArmTFB$DR&n#<j&y86gwYw?j{^h;Ox6fsjFKZ}QGG_M)^9br}_GkVbVk^e;!0`)b
z*J{?rvmGZ|!uF=ru2$Pye8;mbbn%yV6^Y{p`YtCX+l#vB@t-*{XWz>9vyA(DH$)eI
za8G&de1LKF>5t0q7XMkcWXAp_ubWEZQq+2dc4vLiw0zMpDR}-Y4t1s_`Ms{T!cN;X
z{?EL+@=#BiGW(xZAxmzqjq2{x_hUM)Waq)5vH#HSsmIRT?>eRZSZRZhNcqj2Ytpi^
zUk^R1(JqJzRFW0C_h*K~wa<A4_qAQE4RzyBX14!hoFD3<8Fe6=cf+0h%SMZPCf!|C
zqojWM(;}lcGZr~th`zNvRx@_8%45wvev%h+&IZ_@dKSAiMRM`$^4^UPZeFcub~LK+
zlT?X)T)!><#&au2&5cV6tY$tboS!X|d*gZti=b13I4|$5qoS^o`kEgKpZ8i-a1~!V
l!nI@9m8E*6k@NqsmYQmwJignxmw|zS!PC{xWt~$(69Byy#}@zq

diff --git a/htdocs/theme/md/img/title_products.png b/htdocs/theme/md/img/title_products.png
index d3c5b125bbef73d5cdc855a8a6ef7ec9a450235a..142d71505c8c1a4855394adf3a392990224b3ecf 100644
GIT binary patch
literal 107
zcmeAS@N?(olHy`uVBq!ia0y~yU{C>J4i*Lm25-&)VFm^UBTpB{kP60RhQ>exE*S}_
z6AgS4&lp($PiB<PNE3J(cbH}IMl-2w7{TSn$gs@F*+D}@Dv*JJfx*+&&t;ucLK6Ui
Cs~JxK

literal 678
zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}Y)RhkE)4%caKYZ?lNlHo
zI14-?iy0WWg+Z8+Vb&Z81_mZKPZ!6Kh{H#x+vbZH3bf5X`_n=3(ds1*ol3V9J_ZIf
zig2m?V_vl2fxkjm$Nz?mj7v+FEnl#RS9Fm_cgqhCrzMZC-TQj!jGOZ7H=E71Q&qgT
zSAY94_q*)*3hhrhtSdA&^L;q2_S7PlJ&yT%gW3&+H1UT11KJ74B;QJYU|-RA|A77j
z^#oRzoEla+-QqkW2A>Aa4`LPkXHxet%eh6&@p_WS!yuQ@C@&QH{)<P%3Z-AWRgF@a
zGg|A!Ri=6~eBgdIzq3(t17i;N45=N{7!yp`{2GoQV1D|=%jt2T>Ib2ZS_P&R`NG+5
zQxAAO`+a8d?LOVc)4duK5<=MCR2n|GI`K4X!ZDVFP@!i`3gvlx4f+SvAB0`#2{L2-
z)|j7Ma(JIC|Hd_CF}!yizW-imw}&y$dw+S?L_OzS{0G+A*t5p5EZuo}LgsOX*#|aG
zxgE9jfw$4hZjVjt%y#RSw<TLP{bkGMoT+|b*~BBW7^@GY|19RM;Jed#<@eMFwY)M+
z`7A6#H@r3P+f9=9<v+l+=w6uWCo9GSY-?{aiZ^FR*0<EQG#=wfHM?<Q)x^UM(G1u0
zRxS`;V7e;j-judr#_6i;&%7>+H2kaE!TM+FeRGlSjW$-S7fxmFkT#iI-??i+caZY?
zc`KHD_F@X+G2xsW^z|?s&l%x{#f}oKSElQQT`_BYyX*VIQlV)^8#Fj~J29+fyCBNM
zQG9^+Lm}4!IfwbN2O8uLHHZqRcJF35z*$h+!Otw?QLO3uKQ?fme!SOGJHAzisu?@i
eKX$bH$9%`~yP-yT+Cv5g1_n=8KbLh*2~7Zk7#v&x

diff --git a/htdocs/theme/md/img/title_project.png b/htdocs/theme/md/img/title_project.png
index 05d8ea630b88abf9e2bc09ed311fb223e818231c..da63e58c0687e7247d19dabd297eacf70157b943 100644
GIT binary patch
literal 237
zcmeAS@N?(olHy`uVBq!ia0y~yU{C>J4i*Lm25-&)VFm_<EuJopAr*{ory6oK2k<z|
z7tc8VSoX^0DS7clO_#V=Sd>rTEBlsWAL}K^BUJa$`QZ0s2bw1+K3V+a(9}uuEj~Nh
zpPS>6<`!;O7<55k!uoO%)k_zJ1E<{1x^*ew#!ODrHw+SIZl)}iy0V2m;mEveIUFl8
zQxa5e1v5#r_y!oYilrPsDlhbH!k>j-uJ)~#4L@DBb;^W<iS|$8-=1H0O|7-*vFy$@
rGW?ewGXK6FBrLGJv8##Meh=g2#zf&dW}{~e3=9mOu6{1-oD!M<dh}pc

literal 604
zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}Y)RhkE)4%caKYZ?lNlHo
zI14-?iy0WWg+Z8+Vb&Z81_lQ95>H=O_WLYCq6+d#zNJnK42&;5T^vIq4!@ngKTFzC
zpxyrEyA;j;DMCF5S(;|C$Oz3jenR>OYs@kJhub}p|1h!Hx5TmpE%976L9KQ6k<gsE
z?@G4k)is?h+PqJB<CTm93Y!<-%&*&Q+?<e`9li0Z)vx&s>l;=*e53e*(c-<3!CQ_G
zd==al$}^Y8ioW0~VD@ROJbW|RdFFpE1Lh*;gbh3mN=y?Nzt%E8nJBd6bijfT$*^S&
zpZ~4dT+M0`w%Rf^di7r+%@2R$*#p-*i%A-Y9SLp!eJ6JE2Z4%3oA(K>U@KeV##=L$
zE9_?0QLC)rrs-UNn0Ev$TX?qgVZ?m<Y`&H-#`UJQo44&w@IR>6IA756KErM%i{2l$
z%xX;kuCQ$2<!KHpo}|NE$5_9ob@S5CmtOx~m=w#rU$v6WhW`)SLEGt?ALJ?$zkG1G
zS$pxna6<fMg)J;U*ydy=<uS2K#Vq{F`pb~j?SL|Kf^voW${ORvOWorle@6v$GEQLL
zdu8_ftsif#e(>>W8&h}0zt{6m-Df($zM>~QhSlM+HA4(T!qf!}F{=_TPvZ*tq}yX2
zV0K_z*aBV$-TRA{GF7r9Z2J+UseXMC%hVe0<X|(+0Ey4f*9)EDVZFr1&}r^m!`d~2
z$(DDz$|jq<J>13*98(g{PTl(X)&<vZC%^t`KY1&U@!|2+8#)yqSTis%FnGH9xvX<a
GXaWFt*85Tb

diff --git a/htdocs/theme/md/img/title_setup.png b/htdocs/theme/md/img/title_setup.png
index d7548d28709860acebe173ed2ca4954678f950f6..acf1ddf85b3388b4fb02a683664d7599d96ebfe3 100644
GIT binary patch
literal 453
zcmeAS@N?(olHy`uVBq!ia0y~yU{C>J4i*Lm25-&)VFm`q9#0p?kP619S8cO{6D5v6
zT&+K&p;quON7t=OTA_j^7tbp+S#&Iz5H>-NwX~q5NWig6VV8yl2UlJ9HW5uOJ-u^X
zlWzE^eJz{Z-d^po+2YHu-k;A86c<gpu{y4M(e$=&p(3@0OWI@uuNdcP7%zI&!FYCe
zqL9I>z7<i1Of!luubERgzcu&#oU&unJbpcxvU%QXF8N+hUGe-M%9~b&=XuI}3VyTc
zJ>QB*QRgoasebWGN^_$&>t3o#n_}aWF55k8!NR3;^W-#Uelgp5X3wRVqLt=qSMIFs
z+rHx3s=lpC&%G-1O|DAqI{IjmjGowL-<e;N3gh_1yKc@p<F?U4y?yo3oM`8@k#c8K
zR|<Y#J->I_tw|cMb}vu6RULTMY<Y>3d&pj6(-X`$uU%sB^|orZnXtJ^X>Io1wsjuA
z->x_%Z0OQ|Mdpk1n@#!4RP)3q%T8QAzot_w*^X0owO`Z*%}LkJM1Q!VpLkkhr{wiF
z>^%{Jp{E(tV#?1n^mVT~+_vew-`BwYzt8vQ#J&8#`g!Z#m-^KqpX#n@%)7(Dz`)??
L>gTe~DWM4fkE75f

literal 1105
zcmeAS@N?(olHy`uVBq!ia0y~yU{C{L4mJh`h84Ci*D)|KuqAoByD<C*!3BGlPiA0X
z;4JWnEM{Qf76xHPhFNnY7#JAXOFVsD+3&Lm3GxZ6f1NRtfr0s+r;B4q#NnqiVmm@Z
zMUL11Ph2MR`-0J*4z<Zknv~upb94rTeR16z$<}M}bwWy_zNe|a6Kmub0nrePFJZPE
zh9YJbQ>ISkH=WdC80jb9b;iAU^2NQA|5itapPO^e^838kJ`%YRch26*Ui<le_WHf&
z{>R*W<|C6kXW`@hoIaOQC+$)V{a2c@&6u@9u)wLUp|$cG=YFmYYD+Giurv2N$o$TW
z@iYs&4vQSC-I)#M2Ap3^H?Lf>;zgL(E4H#FSAI8|Zc{(JOlbCsey<asl=e^SH<~z+
z@j?HTJ2zYIzv8){eBfK!rt8yAoLg#nV|ing*Sfr<!__(Kdz07vE@k3pVpoa1ZIFDx
zDnTS-`mNH~`O~7kMU84^3O*Jn@Lk-qmUY#EGEduy2j_WIo2n*nyRTjObN{K1VzUoU
z^PH>yl(iWi2=k0ijywC|rGB%=rJn~T&54-qUB&W4=Eu=*=a>J<QO*?Ju<~TOEaNxE
z-MR1cm~QwzIHi`%&y;`bUO0Q1+y}M-*OSVxw*JjyT#<V~R@daOSG3QvhTa2>Jy9!|
z9$WrWSGhZnd6oDM%~X4)7=D|X!t14U)6$x!mgsGejNsH^wqv`;xU6A2x7p90x8H>e
z%^0ME%+wpsZfifB=I^(rcU$}IV9h_g6;|rZ_O62Iy~kB#xBp$aWOn1%i`yqH*mlEi
z%7xUU)$927@Vu?$nsLJOzhi>OrQV4jzx>*)8E}MCCAaLxJ=4cw({}vQZpc0Gr{z~c
zL)@H=Y#%1QJvgW0tKGM0Z}rpGOkH|y(lqA1j1S5me4Oz;t)c4bH}|y{4Cm@SpKc;w
zVK=L!s3z(6*RaRiwsS1g{uQjgK_kob=1u#}cgwA$^YR(5s2(`Hl1DZFLHV}dhu$$h
z*!pC3nqObgrK1O&5A12WepTD>K2wZ<&70KQ?$4fRdtS16u<yglrzid`xNLjCa$z=e
zm5T1{(gem;)(4$FJyF>pvcq7hc)|W9OE=HmSp9hM;#&^;*#Di1WZvO^X;P$So#%Fz
z6;aHW^K<@7{K?kpcwm2s@wKWTPucpn7cU*vf64Y>m73WP=Sf$+c5&>GwpiU5&wC@Y
zdQE0R;F|5Gj9E-Cw#Rz^)aUxIvSaaqf-~#8w+h~7PVFly<dgO5i*Mw=w4iBakM}En
zziWc88h5Q-GWo!&9Xd<1-kfJUu&gn5+j8z1FItwYe_WhzvbAyLq93l?KSen1w_@ZG
zYxH7V!N{$m>+vGIrEXKmv7CNSE1r_nl&tk{ANy{bwfN#+>xQe7jy1QIxZRh|d^uG_
z|IIp<75Ux`UUi4odR@7tDVANG;g{jhSs)wuqV$|uT6N92A2<HLTYqjp<I~dT?weCr
SYB4Y{FnGH9xvX<aXaWEw=LvNH

diff --git a/htdocs/theme/md/img/unlock.png b/htdocs/theme/md/img/unlock.png
index afefaa94d47dbe2e173bbcb9d464e02dd2bfc771..44d193e427e2da00e32b61d361bf5a4c05cfdd67 100644
GIT binary patch
literal 212
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3Sg%=UC~45?t8dupTS(EtgD
zhwB55xV0NZWGY|dN}9@<BjcoV`A(F~f$KK+IFeR!%ybb@v}RG>zinqs{*m`v+|y2X
z2H)0-Y8GJAO+D^*{@mP3L#v=K4-WI)FpbdMRmS?@<Z9RcD$DO`6HRv-8^2t-=HBv|
z6P`@^k((u><2!v{-L4h>+nsi-^#5&k?VDEcv--=sHNK=h3s6rjm8$>F+vMjjILBEv
RfPsO5!PC{xWt~$(695%aRoegn

literal 686
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`4mJh`26+$Niwq1*rJgR1AsV8r2mLc-LS+to
zd_TML_j$g5jZ<%lC@l@zGJTqmC%>zbV@p%h)K%&m%l+@=9-M9a<<ZhBlc!hcIyo5b
z^6X_ln5O#R-K85Qo{!(XIWqU|&D^xK?`Ny+?d7lbE4i>dpJQ+Q%=v+Kut+*vp-xox
zC!O27%D=yR`#wCZ&gfW5uUqrdrK%>UoHZ}(tG}i{)z0!w+4-FO{N?`Nzq8MKezW!T
zbp5?s_xyPpw%PLCmMH!PCWq{|%ySBq-t$fVIQ8t=v-kQ}ueL9__4fYOYsWV)`tj)O
z(WBb(F}uqi$L;^mQo*#qye`&VbLBjaRmCSaPx-oa>-}rez3*L?e17$(Mo?aM?p*uY
zUvCfZ+}Z6YFo&6sVfAeL`$<n$d4A5{8l=U(`)%3l`I)oqb`^d-^zrxndf6Yh?59R+
zCyIzx&YR9Czv0*3)^DD{_TPVHe?7F;Hsk%i7~j49)3U|wt?!pk-BP^jxnEqqnfx*7
z?EN_|fm@g(7-H*He{9=VkomFqbClgaxkr;+rY`<pz`oFCPrdhczCY9d%@sKQa7%s<
zCnNWQy<RWpE{Izl^tEs@gR7t6DUR+rjWY!qH_!TCv*4;t0J9szt;lu}+Y^l?4V~3T
z_S*e^*mIZhOVElR8jVH)Od<+VYuJx+Oi!DUcjCiG!T$2Jl5Y<Rcsd)!8C5wH8W=L>
zw0pPv%>O2_&FzitrY+wS@;MGm%0yS3V`pSwVAzvBxhwc3i=_VyKb=UnVCHL$>H%c|
zvz1OUEnr|>kY6|X&c0vEYhE4ev-vdh$RUfy$2?k^KipPcsJQ5tw!J|{fMM@1_oC$=
y#lMSwYO-KqS5jc&=x8`97QB#~hmqkQ`<}@$Ge7F@-NC@Xz~JfX=d#Wzp$P!w07H=g

diff --git a/htdocs/theme/md/img/vcard.png b/htdocs/theme/md/img/vcard.png
index 315abdf179d730998a31ef3be62955f892771663..343b28cbbe9d37e56568f759548cc75bb224c6f2 100644
GIT binary patch
literal 230
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3Sgto3wp45?sTd(qI($x)>3
z;$)kb8F$+@33G2zU$~`&c{A&xr`~rMr5lo>t|?AabCDLhGSR1qTfOD_hx)U+e&w+R
z->-d|d2LyZCUb4q<#XNXyQ|VYr%ZKVH-B)=apIXCL$k>&n*?u%m~8x#k*V~P_scTo
z@O#=xPY!lCnC^X@yxz-oqeJswmRqlEWnbs|FW$S;Z;kQx|LyxU#ct_t@t8KNsJrd{
kr-N6#>@J_0+x?c`rDT)M%1*s_1_lNOPgg&ebxsLQ0B?F>u>b%7

literal 566
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`4rT@h290TVA2Tp8u$OrHy0TyAW)arrJ~Cf&
zCj$cmXMsm#F#`j)5C}6~x?A^$fq{V~-O<;Pfnj4m_n$;o1_p*p0X`wF3=9k$92^1y
z0*Z>7nwo}&hK81wmQGGiK_CzX0?EnQ*~MT`4F)aMEiFADFr{b8(kaJ^ryQ%EGiT16
zrAy~5-8yIO-Z|%j=A4UKy7kyr5ZJr**uAaSvbWxwvv=>_y~mF2J$7#Iv1@ye-P?O^
z@7`-u_FkK__uAfL$BrF4_x#wsy~mzUId|^)xogMHT|0N~+P!nvo}asS?A*O`*X}*P
zcklVV=g;pwe}C`!_j~WZgP6~sKY#xI`TO_J-+zA(0^h%X|Nj5~f2LKdg&7za+)9G{
zg8x$kFl0`1xxm1{FxAt=F@)oKX#Z`lLk0pa;Ue4DUd!4WveYfN>FXseM^(dw7Lot|
zr=Qt(^Rr2NW1{#zU4_T>DGj2}oqj}A3N%eO^pae>R=vSts<upym#+S#FB@l<R=o~7
z*L~FZOK$Cpw(q}Y-2ar#GVvbY?-?Am_vWt&H}zF}eDTuG?b&<GOfv0x9bW~xO<a0K
nDP7{StD#X}gYJUAhxiZm$?+6iefW@pfq}u()z4*}Q$iB})0H@(

diff --git a/htdocs/theme/md/img/view.png b/htdocs/theme/md/img/view.png
index 76c1e9f1e6a37537d3f3ad016ea6411213012116..f22aab3688bab8ba60673dc6b484a85d380db1ae 100644
GIT binary patch
literal 204
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3SgO!jnf45?t;dtq(hkpPk7
z7nNtkzA<Y!<<2f3Dn3^%i1D@2OvZ_33#3*kgdEslq$YLru!~J`?z{6bg;(x>4BzeP
zXfFCetFxLhEi>Qr70*5+lgW#(Hcviw^k#aCn|gOja8*yh@|*il#<sAD&wk>+y5qv5
zH71!C-8FuGcoMhvxT!<r`HJ%a2G3^SuQ_w7U*yZ$f-irWL+?-Vd2L+rfPsO5!PC{x
JWt~$(69BamRj>d6

literal 708
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`4rT@h290TVA2Tp8HV62GxQg;}NC|LCii^mK
z3W&*Rs>w<l=xM5(c~}ONdDxlP1?h)*JBEaYmqfW2NBblsB&4UOdnfn!<t_{^UXjzb
zF{}GvL$H2hh(SY$@wA%UHD#fjD;+jhIqj-*?rN&s)9Spp)n#vs+x`}>{T)90dwmu)
z<t}c{S=E}px-DZ(Z~69?ye)mTTl(t{bow6X@^5czY3^Il(!a2M;-c0`%etp7>6^ZE
z>VhqEmTX+Ma{ab#+h=XMy=24DReSI5*mrXK;cI)2T-<Tw=FU^kcAtK>_w<u}XP)mn
z`~2Y2DVLY_JUYGh$+4}E&un;ncEjWI8y=tEbp67WgXdoyyzt`arB}x;zdm;5^~q~*
zPG5g>_QtC-H{YJW_3r%bcbD$GzjXKgmAmin-FtfD!TZ|}-`sli{`!LtHy(bx{rJ<p
zr=Q>4IQjO@ndf(}y?FHS;fpViUw(P~>dTW?U!T4H`s~fumv6tleE03uyYH{we}Dbq
z$J>uT-hKM{<?Z7y?;d{m{PW|NU!TAJ`tt4fw;#WM{`~Xv*Pma%|Nj5~pI`Ok4F(2=
z#*!ev;Qs>*7$%)~?9af!knic@7{VdTdhnp{;Q$eq12>=R>s?_j4HVZ6aLjUeG{r^W
zc4XS8hr$itTem;nQ#b$i&(BE<gf8kcZ(SQH%;wJ&q4BdiE<fVM#~WL9o88MNwY0wd
z?sxmz0p;B)JEdjJuWsYn)u~cxdSm6b)WV$%ANUtsHoJ17R8EC~fq}u()z4*}Q$iB}
DND9s_

diff --git a/htdocs/theme/md/img/warning.png b/htdocs/theme/md/img/warning.png
index f1b93b8cc8267b6299f2b299726e05ca560ac881..dc168ba9439b1f04c813c2794c8778dc78b8dcc9 100644
GIT binary patch
literal 169
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3Sg6nMHghEy;nEAVe%P;^w?
z-YBr%D6LJU?Z3kemXwDKNj&0>Tn7YB2pwJbf+0YN@q1Em64O){hh!huml9o<3`DOc
zYpgmPa;0J6ipH`o5ec~jjVcBaSGEAv8K(jonE5(HE1G>6CRH#h2Q->bP?2R|u=Y(_
V)wg;2N(Kf722WQ%mvv4FO#tqLG;sg`

literal 480
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`4rT@h290TVA2Tp83I_Ouxc>kC|M|JS$F7|_
zcWv*nW5>>&J9h2Zv2%Ni?=4L}w>Ie7R>Nz1HLvXzxOR-;+E#&cYm?u<e}8Rj(7oq9
z|KDf7e;)Pzz1P|~igV^z{{PPK|3Aa~?+oYG3Os-Q{@T{+d-q!Y-z$E8E$aJor=`^#
zb9yBHzi0UVp5feD%X`oFK0lWH{9McXYsuf=N1Z#SdGDIx_xA$dzjM4l$8qo4()Y(&
z?p-T>|Gaq49L=RuEdT%Kcz=)K+TNgh_pZIa*7E;eR8WwBlb6%~_lnQo8$Q3*^ZZ=)
z_j_KNii(Don(yx!-aDpw?^w(C_xJ7{E53Iuxj0!fIa%}hIj85>_CCM1^!c^qdwYYP
zUz_v%-o0zbs=wb``u^IK_s`E=J68Ps-qx*JN8d0oFff(``2{mLJiC#`z`#)J>Eal|
zaXmT3fw4#6)T>+UD(md8GapSY$m38}ew@Bf)F6-HvAbW{v8@5?)Rj5@q~7FsXl3Md
zfY0FitGNa<%6~nV7r5Rr@nfTs^5b&7V~-uyS%qja3(QZS()dYYztIPSdr2Y<g^ri}
vB_(epzNz==k#BT!eDd#q`mf*985zFLmEk`vu|bJ}fq}u()z4*}Q$iB}6{-Rt

-- 
GitLab


From 87d6a5926bfb9756b73ac1844c9224f1a8f92389 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rapha=C3=ABl=20Doursenaud?= <rdoursenaud@gpcsolutions.fr>
Date: Fri, 4 Dec 2015 14:06:53 +0100
Subject: [PATCH 089/197] Fixed md theme name

---
 htdocs/theme/md/graph-color.php | 4 ++--
 htdocs/theme/md/style.css.php   | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/htdocs/theme/md/graph-color.php b/htdocs/theme/md/graph-color.php
index 4346d007158..3450180e153 100644
--- a/htdocs/theme/md/graph-color.php
+++ b/htdocs/theme/md/graph-color.php
@@ -17,8 +17,8 @@
  */
 
 /**
- *	\file       htdocs/theme/eldy/graph-color.php
- *	\brief      File to declare colors to use to build graphics with theme Eldy
+ *	\file       htdocs/theme/md/graph-color.php
+ *	\brief      File to declare colors to use to build graphics with theme Material Design
  *  \ingroup    core
  *
  *  To include file, do this:
diff --git a/htdocs/theme/md/style.css.php b/htdocs/theme/md/style.css.php
index 56df547b9b1..a7a191f45bb 100644
--- a/htdocs/theme/md/style.css.php
+++ b/htdocs/theme/md/style.css.php
@@ -61,7 +61,7 @@ $right=($langs->trans("DIRECTION")=='rtl'?'left':'right');
 $left=($langs->trans("DIRECTION")=='rtl'?'right':'left');
 
 $path='';    	// This value may be used in future for external module to overwrite theme
-$theme='eldy';	// Value of theme
+$theme='md';	// Value of theme
 if (! empty($conf->global->MAIN_OVERWRITE_THEME_RES)) { $path='/'.$conf->global->MAIN_OVERWRITE_THEME_RES; $theme=$conf->global->MAIN_OVERWRITE_THEME_RES; }
 
 // Define image path files and other constants
-- 
GitLab


From 8c03e46a83939e15b4cd30d4bc853dd6f4b329dc Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Fri, 4 Dec 2015 18:33:57 +0100
Subject: [PATCH 090/197] Removed a TODO

---
 htdocs/core/lib/project.lib.php    |  4 +--
 htdocs/projet/class/task.class.php | 41 +++++++++++++++++++++++++++---
 htdocs/projet/list.php             |  1 -
 htdocs/projet/tasks/list.php       |  3 +--
 4 files changed, 41 insertions(+), 8 deletions(-)

diff --git a/htdocs/core/lib/project.lib.php b/htdocs/core/lib/project.lib.php
index 733a83a500f..efbaa78557e 100644
--- a/htdocs/core/lib/project.lib.php
+++ b/htdocs/core/lib/project.lib.php
@@ -344,13 +344,13 @@ function projectLinesa(&$inc, $parent, &$lines, &$level, $var, $showproject, &$t
 				{
 					// Project ref
 					print "<td>";
-					if ($showlineingray) print '<i>';
+					//if ($showlineingray) print '<i>';
 					$projectstatic->id=$lines[$i]->fk_project;
 					$projectstatic->ref=$lines[$i]->projectref;
 					$projectstatic->public=$lines[$i]->public;
 					if ($lines[$i]->public || in_array($lines[$i]->fk_project,$projectsArrayId) || ! empty($user->rights->projet->all->lire)) print $projectstatic->getNomUrl(1);
 					else print $projectstatic->getNomUrl(1,'nolink');
-					if ($showlineingray) print '</i>';
+					//if ($showlineingray) print '</i>';
 					print "</td>";
 
 					// Project status
diff --git a/htdocs/projet/class/task.class.php b/htdocs/projet/class/task.class.php
index 0b490aff863..ca8ed73e10d 100644
--- a/htdocs/projet/class/task.class.php
+++ b/htdocs/projet/class/task.class.php
@@ -575,25 +575,60 @@ class Task extends CommonObject
         if ($mode == 0)
         {
             $sql.= " FROM ".MAIN_DB_PREFIX."projet as p";
+            if ($filteronprojuser > 0)
+            {
+                $sql.= ", ".MAIN_DB_PREFIX."element_contact as ec";
+                $sql.= ", ".MAIN_DB_PREFIX."c_type_contact as ctc";
+            }
             $sql.= ", ".MAIN_DB_PREFIX."projet_task as t";
+            if ($filterontaskuser > 0)
+            {
+                $sql.= ", ".MAIN_DB_PREFIX."element_contact as ec2";
+                $sql.= ", ".MAIN_DB_PREFIX."c_type_contact as ctc2";
+            }
             $sql.= " WHERE p.entity = ".$conf->entity;
             $sql.= " AND t.fk_projet = p.rowid";
         }
         elseif ($mode == 1)
         {
             $sql.= " FROM ".MAIN_DB_PREFIX."projet as p";
-            $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."projet_task as t on t.fk_projet = p.rowid";
+            if ($filteronprojuser > 0)
+            {
+                $sql.= ", ".MAIN_DB_PREFIX."element_contact as ec";
+                $sql.= ", ".MAIN_DB_PREFIX."c_type_contact as ctc";
+            }
+            if ($filterontaskuser > 0)
+            {
+                $sql.= ", ".MAIN_DB_PREFIX."projet_task as t";
+                $sql.= ", ".MAIN_DB_PREFIX."element_contact as ec2";
+                $sql.= ", ".MAIN_DB_PREFIX."c_type_contact as ctc2";
+            }
+            else 
+            {
+                $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."projet_task as t on t.fk_projet = p.rowid";
+            }
             $sql.= " WHERE p.entity = ".$conf->entity;
         }
         else return 'BadValueForParameterMode';
 
         if ($filteronprojuser > 0)
         {
-			// TODO
+            $sql.= " AND p.rowid = ec.element_id";
+            $sql.= " AND ctc.rowid = ec.fk_c_type_contact";
+            $sql.= " AND ctc.element = 'project'";
+            $sql.= " AND ec.fk_socpeople = ".$filteronprojuser;
+            $sql.= " AND ec.statut = 4";
+            $sql.= " AND ctc.source = 'internal'";
         }
         if ($filterontaskuser > 0)
         {
-			// TODO
+            $sql.= " AND t.fk_projet = p.rowid";
+            $sql.= " AND p.rowid = ec2.element_id";
+            $sql.= " AND ctc2.rowid = ec2.fk_c_type_contact";
+            $sql.= " AND ctc2.element = 'project_task'";
+            $sql.= " AND ec2.fk_socpeople = ".$filterontaskuser;
+            $sql.= " AND ec2.statut = 4";
+            $sql.= " AND ctc2.source = 'internal'";
         }
         if ($socid)	$sql.= " AND p.fk_soc = ".$socid;
         if ($projectid) $sql.= " AND p.rowid in (".$projectid.")";
diff --git a/htdocs/projet/list.php b/htdocs/projet/list.php
index 3f9aea52444..2475074d941 100644
--- a/htdocs/projet/list.php
+++ b/htdocs/projet/list.php
@@ -318,7 +318,6 @@ if ($resql)
 	}
 
 	// If the user can view prospects other than his'
-    if ($mine) $search_user=$user->id;
 	$moreforfilter.='<div class="divsearchfield">';
 	$moreforfilter.=$langs->trans('ProjectsWithThisUserAsContact'). ': ';
 	$includeonly='';
diff --git a/htdocs/projet/tasks/list.php b/htdocs/projet/tasks/list.php
index e3540afc1aa..d23617192b3 100644
--- a/htdocs/projet/tasks/list.php
+++ b/htdocs/projet/tasks/list.php
@@ -128,7 +128,7 @@ if ($search_all)        $morewherefilter.=natural_search(array_keys($fieldstosea
 if ($search_task_ref)   $morewherefilter.=natural_search('t.ref', $search_task_ref);
 if ($search_task_label) $morewherefilter.=natural_search('t.label', $search_task_label);
 
-$tasksarray=$taskstatic->getTasksArray(0, 0, $projectstatic->id, $socid, 0, $search_project, $search_status, $morewherefilter, $search_project_user, $search_task_user);
+$tasksarray=$taskstatic->getTasksArray(0, 0, $projectstatic->id, $socid, 0, $search_project, $search_status, $morewherefilter, $search_project_user, 0);    // We don't use filter on task user. Because sometimes a task is assigned but not the parent one and we want to show also parent, so filtering is done during output
 $tasksrole=$taskstatic->getUserRolesForProjectsOrTasks(0, ($tuser->id?$tuser:null), $projectstatic->id, 0, $search_status); // We load also tasks limited to a particular user
 
 print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'">';
@@ -156,7 +156,6 @@ $moreforfilter.=$form->select_dolusers($search_project_user, 'search_project_use
 $moreforfilter.='</div>';
 
 // If the user can view users
-if ($mine) $search_task_user=$user->id;
 $moreforfilter.='<div class="divsearchfield">';
 $moreforfilter.=$langs->trans('TasksWithThisUserAsContact'). ': ';
 $includeonly='';
-- 
GitLab


From 94fe00fe8dbebe190fa63e15ff1d08b1852e0c7d Mon Sep 17 00:00:00 2001
From: philippe grand <philippe.grand@atoo-net.com>
Date: Fri, 4 Dec 2015 19:45:39 +0100
Subject: [PATCH 091/197] [Qual] Uniformize code

---
 htdocs/compta/facture/list.php |  2 +-
 htdocs/ecm/docmine.php         |  4 ++--
 htdocs/expedition/card.php     | 14 +++++++-------
 htdocs/expensereport/card.php  | 24 ++++++++++++------------
 4 files changed, 22 insertions(+), 22 deletions(-)

diff --git a/htdocs/compta/facture/list.php b/htdocs/compta/facture/list.php
index cce908dc368..707ad32eec7 100644
--- a/htdocs/compta/facture/list.php
+++ b/htdocs/compta/facture/list.php
@@ -138,7 +138,7 @@ if (empty($reshook))
 	if (! empty($massaction) && count($toselect) < 1)
 	{
 		$error++;
-		setEventMessage("NoLineChecked","warnings");
+		setEventMessages($langs->trans("NoLineChecked"), null, "warnings");
 	}
 
 	if (! $error && $massaction == 'confirm_presend')
diff --git a/htdocs/ecm/docmine.php b/htdocs/ecm/docmine.php
index 2ec6dfc4aae..13f5ee516b9 100644
--- a/htdocs/ecm/docmine.php
+++ b/htdocs/ecm/docmine.php
@@ -114,8 +114,8 @@ if ($action == 'confirm_deletefile' && $confirm == 'yes')
     $langs->load("other");
     $file = $upload_dir . "/" . GETPOST('urlfile');	// Do not use urldecode here ($_GET and $_REQUEST are already decoded by PHP).
     $ret=dol_delete_file($file);
-    if ($ret) setEventMessage($langs->trans("FileWasRemoved", GETPOST('urlfile')));
-    else setEventMessage($langs->trans("ErrorFailToDeleteFile", GETPOST('urlfile')), 'errors');
+    if ($ret) setEventMessages($langs->trans("FileWasRemoved", GETPOST('urlfile')), null, 'mesgs');
+    else setEventMessages($langs->trans("ErrorFailToDeleteFile", GETPOST('urlfile')), null, 'errors');
 
     $result=$ecmdir->changeNbOfFiles('-');
 }
diff --git a/htdocs/expedition/card.php b/htdocs/expedition/card.php
index 6a236ab534e..36d85366805 100644
--- a/htdocs/expedition/card.php
+++ b/htdocs/expedition/card.php
@@ -98,7 +98,7 @@ if (($action == 'create') || ($action == 'add'))
 		if (! (GETPOST('entrepot_id','int') > 0))
 		{
 			$langs->load("errors");
-			setEventMessage($langs->trans("WarehouseMustBeSelectedAtFirstStepWhenProductBatchModuleOn"),'errors');
+			setEventMessages($langs->trans("WarehouseMustBeSelectedAtFirstStepWhenProductBatchModuleOn"), null, 'errors');
 			header("Location: ".DOL_URL_ROOT.'/expedition/shipment.php?id='.$origin_id);
 			exit;
 		}
@@ -303,7 +303,7 @@ if (empty($reshook))
 	    if ($result < 0)
 	    {
 			$langs->load("errors");
-	        setEventMessage($langs->trans($object->error),'errors');
+	        setEventMessages($langs->trans($object->error), null, 'errors');
 	    }
 	    else
 	    {
@@ -338,7 +338,7 @@ if (empty($reshook))
 	    else
 		{
 			$langs->load("errors");
-	        setEventMessage($langs->trans($object->error),'errors');
+	        setEventMessages($langs->trans($object->error), null, 'errors');
 	    }
 	}
 
@@ -395,7 +395,7 @@ if (empty($reshook))
 	            header("Location: card.php?id=".$object->id);
 	            exit;
 	        }
-	        setEventMessage($object->error,'errors');
+	        setEventMessages($object->error, $object->errors, 'errors');
 	    }
 
 	    $action="";
@@ -433,8 +433,8 @@ if (empty($reshook))
 		$upload_dir =	$conf->expedition->dir_output . "/sending";
 		$file =	$upload_dir	. '/' .	GETPOST('file');
 		$ret=dol_delete_file($file,0,0,0,$object);
-		if ($ret) setEventMessage($langs->trans("FileWasRemoved", GETPOST('urlfile')));
-		else setEventMessage($langs->trans("ErrorFailToDeleteFile", GETPOST('urlfile')), 'errors');
+		if ($ret) setEventMessages($langs->trans("FileWasRemoved", GETPOST('urlfile')), null, 'mesgs');
+		else setEventMessages($langs->trans("ErrorFailToDeleteFile", GETPOST('urlfile')), null, 'errors');
 	}
 
 	elseif ($action == 'classifybilled')
@@ -482,7 +482,7 @@ if ($action == 'create')
     print load_fiche_titre($langs->trans("CreateASending"));
     if (! $origin)
     {
-        setEventMessage($langs->trans("ErrorBadParameters"),'errors');
+        setEventMessages($langs->trans("ErrorBadParameters"), null, 'errors');
     }
 
     dol_htmloutput_mesg($mesg);
diff --git a/htdocs/expensereport/card.php b/htdocs/expensereport/card.php
index f5d38bc001c..e7b0be3d6d5 100644
--- a/htdocs/expensereport/card.php
+++ b/htdocs/expensereport/card.php
@@ -139,7 +139,7 @@ if ($action == 'add' && $user->rights->expensereport->creer)
 	if ($object->periode_existe($user,$object->date_debut,$object->date_fin))
 	{
 		$error++;
-		setEventMessage($langs->trans("ErrorDoubleDeclaration"),'errors');
+		setEventMessages($langs->trans("ErrorDoubleDeclaration"), null, 'errors');
 		$action='create';
 	}
 
@@ -267,7 +267,7 @@ if ($action == "confirm_validate" && GETPOST("confirm") == "yes" && $id > 0 && $
 				if ($result)
 				{
 					$mesg=$langs->trans('MailSuccessfulySent',$mailfile->getValidAddress($emailFrom,2),$mailfile->getValidAddress($emailTo,2));
-					setEventMessage($mesg);
+					setEventMessages($mesg, null, 'mesgs');
 					header("Location: ".$_SERVER["PHP_SELF"]."?id=".$id);
 					exit;
 				}
@@ -279,11 +279,11 @@ if ($action == "confirm_validate" && GETPOST("confirm") == "yes" && $id > 0 && $
 						$mesg='';
 						$mesg.=$langs->trans('ErrorFailedToSendMail', $emailFrom, $emailTo);
 						$mesg.='<br>'.$mailfile->error;
-						setEventMessage($mesg,'errors');
+						setEventMessages($mesg, null, 'errors');
 					}
 					else
 					{
-						setEventMessage('No mail sent. Feature is disabled by option MAIN_DISABLE_ALL_MAILS', 'warnings');
+						setEventMessages('No mail sent. Feature is disabled by option MAIN_DISABLE_ALL_MAILS', null, 'warnings');
 					}
 				}
 			}
@@ -295,7 +295,7 @@ if ($action == "confirm_validate" && GETPOST("confirm") == "yes" && $id > 0 && $
 		}
 		else
 		{
-			setEventMessage($langs->trans("NoEmailSentBadSenderOrRecipientEmail"), 'warnings');
+			setEventMessages($langs->trans("NoEmailSentBadSenderOrRecipientEmail"), null, 'warnings');
 			$action='';
 		}
 	}
@@ -490,15 +490,15 @@ if ($action == "confirm_approve" && GETPOST("confirm") == "yes" && $id > 0 && $u
 					// SEND
 					$result=$mailfile->sendfile();
 					if ($result):
-						setEventMessage($langs->trans("MailSuccessfulySent",$emailFrom,$emailTo));
+						setEventMessages($langs->trans("MailSuccessfulySent",$emailFrom,$emailTo), null, 'mesgs');
 						Header("Location: ".$_SERVER["PHP_SELF"]."?id=".$id);
 						exit;
 					else:
-						setEventMessage($langs->trans("ErrorFailedToSendMail",$emailFrom,$emailTo),'errors');
+						setEventMessages($langs->trans("ErrorFailedToSendMail",$emailFrom,$emailTo), null, 'errors');
 					endif;
 
 				else:
-					setEventMessage($langs->trans("ErrorFailedToSendMail",$emailFrom,$emailTo),'errors');
+					setEventMessages($langs->trans("ErrorFailedToSendMail",$emailFrom,$emailTo), null, 'errors');
 				endif;
 				// END - Send mail
 			else : // if ($resultPDF)
@@ -576,13 +576,13 @@ if ($action == "confirm_refuse" && GETPOST('confirm')=="yes" && $id > 0 && $user
 				$result=$mailfile->sendfile();
 				if ($result)
 				{
-					setEventMessage($langs->trans("MailSuccessfulySent",$emailFrom,$emailTo));
+					setEventMessages($langs->trans("MailSuccessfulySent",$emailFrom,$emailTo), null, 'mesgs');
 					Header("Location: ".$_SERVER["PHP_SELF"]."?id=".$id);
 					exit;
 				}
 				else
 				{
-					setEventMessage($langs->trans("ErrorFailedToSendMail",$emailFrom,$emailTo),'errors');
+					setEventMessages($langs->trans("ErrorFailedToSendMail",$emailFrom,$emailTo), null, 'errors');
 					$mesg="Impossible d'envoyer l'email.";
 				}
 				// END - Send mail
@@ -1059,8 +1059,8 @@ else if ($action == 'remove_file')
 		$upload_dir = $conf->expensereport->dir_output;
 		$file = $upload_dir . '/' . GETPOST('file');
 		$ret=dol_delete_file($file,0,0,0,$object);
-		if ($ret) setEventMessage($langs->trans("FileWasRemoved", GETPOST('urlfile')));
-		else setEventMessage($langs->trans("ErrorFailToDeleteFile", GETPOST('urlfile')), 'errors');
+		if ($ret) setEventMessages($langs->trans("FileWasRemoved", GETPOST('urlfile')), null, 'mesgs');
+		else setEventMessages($langs->trans("ErrorFailToDeleteFile", GETPOST('urlfile')), null, 'errors');
 		$action='';
 	}
 }
-- 
GitLab


From 5cd43d2df0ae9c742f7222c973c12b6ffb5fa23e Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Fri, 4 Dec 2015 20:51:34 +0100
Subject: [PATCH 092/197] Some debug on new features

---
 .../comm/action/class/cactioncomm.class.php   |  15 +++++++------
 htdocs/comm/action/index.php                  |   8 +++----
 htdocs/comm/action/listactions.php            |  20 ++++++++++++------
 htdocs/comm/action/peruser.php                |   2 +-
 htdocs/core/class/html.formactions.class.php  |  15 ++++++-------
 htdocs/core/lib/agenda.lib.php                |  13 ++++++++----
 htdocs/theme/eldy/style.css.php               |   4 +++-
 htdocs/theme/md/img/menus/cart.png            | Bin 0 -> 259 bytes
 htdocs/theme/md/img/menus/graph.png           | Bin 0 -> 179 bytes
 htdocs/theme/md/img/menus/members.png         | Bin 145 -> 210 bytes
 htdocs/theme/md/img/menus/money.png           | Bin 179 -> 256 bytes
 htdocs/theme/md/img/menus/shop.png            | Bin 259 -> 403 bytes
 htdocs/theme/md/img/object_bookmark.png       | Bin 131 -> 201 bytes
 htdocs/theme/md/img/warning.png               | Bin 169 -> 392 bytes
 htdocs/theme/md/style.css.php                 |   2 ++
 15 files changed, 48 insertions(+), 31 deletions(-)
 create mode 100644 htdocs/theme/md/img/menus/cart.png
 create mode 100644 htdocs/theme/md/img/menus/graph.png

diff --git a/htdocs/comm/action/class/cactioncomm.class.php b/htdocs/comm/action/class/cactioncomm.class.php
index 56465d45fdb..5e14b45665b 100644
--- a/htdocs/comm/action/class/cactioncomm.class.php
+++ b/htdocs/comm/action/class/cactioncomm.class.php
@@ -99,13 +99,14 @@ class CActionComm
     /**
      *  Return list of event types: array(id=>label) or array(code=>label)
      *
-     *  @param	string|int			$active     	1 or 0 to filter on event state active or not ('' by default = no filter)
+     *  @param	string|int	$active     	1 or 0 to filter on event state active or not ('' by default = no filter)
      *  @param	string		$idorcode		'id' or 'code'
-     *  @param	string		$excludetype	Type to exclude
-     *  @param	int		$onlyautoornot	Group list by auto events or not
+     *  @param	string		$excludetype	Type to exclude ('system' or 'systemauto')
+     *  @param	int		    $onlyautoornot	1=Group all type AC_XXX into 1 line AC_MANUAL. 0=Keep details of type
+     *  @param  string      $morefilter     Add more SQL filter
      *  @return mixed      					Array of all event types if OK, <0 if KO
      */
-    function liste_array($active='',$idorcode='id',$excludetype='',$onlyautoornot=0)
+    function liste_array($active='',$idorcode='id',$excludetype='',$onlyautoornot=0, $morefilter='')
     {
         global $langs,$conf;
         $langs->load("commercial");
@@ -115,8 +116,10 @@ class CActionComm
 
         $sql = "SELECT id, code, libelle, module, type, color";
         $sql.= " FROM ".MAIN_DB_PREFIX."c_actioncomm";
-        if ($active != '') $sql.=" WHERE active=".$active;
-        if (! empty($excludetype)) $sql.=($active != ''?" AND":" WHERE")." type <> '".$excludetype."'";
+        $sql.= " WHERE 1=1";
+        if ($active != '') $sql.=" AND active=".$active;
+        if (! empty($excludetype)) $sql.=" AND type <> '".$excludetype."'";
+        if ($morefilter) $sql.=" AND ".$morefilter;
         $sql.= " ORDER BY module, position";
 
         dol_syslog(get_class($this)."::liste_array", LOG_DEBUG);
diff --git a/htdocs/comm/action/index.php b/htdocs/comm/action/index.php
index 9b466e3d9b7..2324b6ee799 100644
--- a/htdocs/comm/action/index.php
+++ b/htdocs/comm/action/index.php
@@ -902,7 +902,7 @@ if (count($listofextcals))
                         $daykey=dol_mktime(0,0,0,$mois,$jour,$annee);
                         $daykeygmt=dol_mktime(0,0,0,$mois,$jour,$annee,true,0);
                         do
-                     {
+                        {
                             //if ($event->fulldayevent) print dol_print_date($daykeygmt,'dayhour','gmt').'-'.dol_print_date($daykey,'dayhour','gmt').'-'.dol_print_date($event->date_end_in_calendar,'dayhour','gmt').' ';
                             $eventarray[$daykey][]=$event;
                             $daykey+=60*60*24;  $daykeygmt+=60*60*24;   // Add one day
@@ -951,7 +951,7 @@ if (empty($action) || $action == 'show_month')      // View by month
     $newparam=preg_replace('/viewcal=[0-9]+&?/i','',$newparam);
     $newparam=preg_replace('/showbirthday_=/i','showbirthday=',$newparam);	// Restore correct parameter
     $newparam.='&viewcal=1';
-    echo '<table width="100%" class="noborder nocellnopadd cal_month">';
+    echo '<table width="100%" class="noborder nocellnopadd cal_pannel cal_month">';
     echo ' <tr class="liste_titre">';
     $i=0;
     while ($i < 7)
@@ -1028,7 +1028,7 @@ elseif ($action == 'show_week') // View by week
     $newparam=preg_replace('/viewweek=[0-9]+&?/i','',$newparam);
     $newparam=preg_replace('/showbirthday_=/i','showbirthday=',$newparam);	// Restore correct parameter
     $newparam.='&viewweek=1';
-    echo '<table width="100%" class="noborder nocellnopadd cal_month">';
+    echo '<table width="100%" class="noborder nocellnopadd cal_pannel cal_month">';
     echo ' <tr class="liste_titre">';
     $i=0;
     while ($i < 7)
@@ -1085,7 +1085,7 @@ else    // View by day
 
     $timestamp=dol_mktime(12,0,0,$month,$day,$year);
     $arraytimestamp=dol_getdate($timestamp);
-    echo '<table width="100%" class="noborder nocellnopadd cal_month">';
+    echo '<table width="100%" class="noborder nocellnopadd cal_pannel cal_month">';
     echo ' <tr class="liste_titre">';
     echo '  <td align="center">'.$langs->trans("Day".$arraytimestamp['wday'])."</td>\n";
     echo " </tr>\n";
diff --git a/htdocs/comm/action/listactions.php b/htdocs/comm/action/listactions.php
index e762b22bc70..86978967970 100644
--- a/htdocs/comm/action/listactions.php
+++ b/htdocs/comm/action/listactions.php
@@ -39,17 +39,23 @@ $action=GETPOST('action','alpha');
 $year=GETPOST("year",'int');
 $month=GETPOST("month",'int');
 $day=GETPOST("day",'int');
-$actioncode=GETPOST("actioncode","alpha",3);
 $pid=GETPOST("projectid",'int',3);
 $status=GETPOST("status",'alpha');
 $type=GETPOST('type');
 $optioncss = GETPOST('optioncss','alpha');
-$actioncode=GETPOST("actioncode","alpha",3)?GETPOST("actioncode","alpha",3):(GETPOST("actioncode")=='0'?'0':(empty($conf->global->AGENDA_USE_EVENT_TYPE)?'AC_OTH':''));
+if (GETPOST('actioncode','array')) 
+{
+    $actioncode=GETPOST('actioncode','array',3);
+    if (! count($actioncode)) $actioncode='0';
+}
+else 
+{
+    $actioncode=GETPOST("actioncode","alpha",3)?GETPOST("actioncode","alpha",3):(GETPOST("actioncode")=='0'?'0':(empty($conf->global->AGENDA_USE_EVENT_TYPE)?'AC_OTH':''));
+}
 $dateselect=dol_mktime(0, 0, 0, GETPOST('dateselectmonth'), GETPOST('dateselectday'), GETPOST('dateselectyear'));
 $datestart=dol_mktime(0, 0, 0, GETPOST('datestartmonth'), GETPOST('datestartday'), GETPOST('datestartyear'));
 $dateend=dol_mktime(0, 0, 0, GETPOST('dateendmonth'), GETPOST('dateendday'), GETPOST('dateendyear'));
-
-if ($actioncode == '') $actioncode=(empty($conf->global->AGENDA_DEFAULT_FILTER_TYPE)?'':$conf->global->AGENDA_DEFAULT_FILTER_TYPE);
+if (empty($actioncode) && empty($actioncodearray)) $actioncode=(empty($conf->global->AGENDA_DEFAULT_FILTER_TYPE)?'':$conf->global->AGENDA_DEFAULT_FILTER_TYPE);
 if ($status == ''   && ! isset($_GET['status']) && ! isset($_POST['status'])) $status=(empty($conf->global->AGENDA_DEFAULT_FILTER_STATUS)?'':$conf->global->AGENDA_DEFAULT_FILTER_STATUS);
 if (empty($action) && ! isset($_GET['action']) && ! isset($_POST['action'])) $action=(empty($conf->global->AGENDA_DEFAULT_VIEW)?'show_month':$conf->global->AGENDA_DEFAULT_VIEW);
 
@@ -136,7 +142,7 @@ $userstatic=new User($db);
 $nav='';
 $nav.='<form name="dateselect" action="'.$_SERVER["PHP_SELF"].'?action=show_peruser'.$param.'">';
 if ($optioncss != '') $nav.= '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
-if ($actioncode || isset($_GET['actioncode']) || isset($_POST['actioncode'])) $nav.='<input type="hidden" name="actioncode" value="'.$actioncode.'">';
+if ($actioncode) $nav.='<input type="hidden" name="actioncode" value="'.$actioncode.'">';
 if ($status || isset($_GET['status']) || isset($_POST['status']))  $nav.='<input type="hidden" name="status" value="'.$status.'">';
 if ($filter)  $nav.='<input type="hidden" name="filter" value="'.$filter.'">';
 if ($filtert) $nav.='<input type="hidden" name="filtert" value="'.$filtert.'">';
@@ -158,7 +164,7 @@ llxHeader('',$langs->trans("Agenda"),$help_url);
 $listofextcals=array();
 
 $param='';
-if ($actioncode || isset($_GET['actioncode']) || isset($_POST['actioncode'])) $param.="&actioncode=".$actioncode;
+if ($actioncode) $param.="&actioncode=".$actioncode;
 if ($status || isset($_GET['status']) || isset($_POST['status'])) $param.="&status=".$status;
 if ($filter) $param.="&filter=".$filter;
 if ($filtert) $param.="&filtert=".$filtert;
@@ -186,7 +192,7 @@ if ($filtert > 0 || $usergroup > 0) $sql.=", ".MAIN_DB_PREFIX."actioncomm_resour
 if ($usergroup > 0) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."usergroup_user as ugu ON ugu.fk_user = ar.fk_element";
 $sql.= " WHERE c.id = a.fk_action";
 $sql.= ' AND a.entity IN ('.getEntity('agenda', 1).')';
-if ($actioncode) $sql.=" AND c.code='".$db->escape($actioncode)."'";
+if ($actioncode) $sql.=" AND c.code IN ('".$db->escape($actioncode)."')";
 if ($pid) $sql.=" AND a.fk_project=".$db->escape($pid);
 if (! $user->rights->societe->client->voir && ! $socid) $sql.= " AND (a.fk_soc IS NULL OR sc.fk_user = " .$user->id . ")";
 if ($socid > 0) $sql.= " AND s.rowid = ".$socid;
diff --git a/htdocs/comm/action/peruser.php b/htdocs/comm/action/peruser.php
index 41270d7996e..a0f78608d04 100644
--- a/htdocs/comm/action/peruser.php
+++ b/htdocs/comm/action/peruser.php
@@ -278,7 +278,7 @@ $paramnoaction=preg_replace('/action=[a-z_]+/','',$param);
 $head = calendars_prepare_head($paramnoaction);
 
 dol_fiche_head($head, $tabactive, $langs->trans('Agenda'), 0, 'action');
-print_actions_filter($form, $canedit, $status, $year, $month, $day, $showbirthday, 0, $filtert, 0, $pid, $socid, $action, $listofextcals, $actioncode, $usergroup);
+print_actions_filter($form, $canedit, $status, $year, $month, $day, $showbirthday, 0, $filtert, 0, $pid, $socid, $action, $listofextcals, $actioncode, $usergroup, 'systemauto');
 dol_fiche_end();
 
 $showextcals=$listofextcals;
diff --git a/htdocs/core/class/html.formactions.class.php b/htdocs/core/class/html.formactions.class.php
index bc662e4b434..88f2f87c1e3 100644
--- a/htdocs/core/class/html.formactions.class.php
+++ b/htdocs/core/class/html.formactions.class.php
@@ -244,10 +244,10 @@ class FormActions
      *
      *  @param	string		$selected       Type pre-selected (can be 'manual', 'auto' or 'AC_xxx')
      *  @param  string		$htmlname       Nom champ formulaire
-     *  @param	string		$excludetype	Type to exclude
-     *  @param	string		$onlyautoornot	Group list by auto events or not: We keep only the 2 generic lines (AC_OTH and AC_OTH_AUTO)
+     *  @param	string		$excludetype	A type to exclude ('systemauto', 'system', '')
+     *  @param	string		$onlyautoornot	1=Group all type AC_XXX into 1 line AC_MANUAL. 0=Keep details of type
      *  @param	int		    $hideinfohelp	1=Do not show info help
-     *  @param  int		    $multiselect    1=Allow multiselect of action type for filter or search
+     *  @param  int		    $multiselect    1=Allow multiselect of action type
      * 	@return	void
      */
     function select_type_actions($selected='',$htmlname='actioncode',$excludetype='',$onlyautoornot=0, $hideinfohelp=0, $multiselect=0)
@@ -270,16 +270,15 @@ class FormActions
 
        	if (! empty($conf->global->AGENDA_ALWAYS_HIDE_AUTO)) unset($arraylist['AC_OTH_AUTO']);
 
-		if ($multiselect==1) 
+		if (! empty($multiselect)) 
 		{
 	        if(!is_array($selected) && !empty($selected)) $selected = explode(',', $selected);
-			print $form->multiselectarray($htmlname, $arraylist, $selected, 0, 0, '', 0, 0);
-			
+			print $form->multiselectarray($htmlname, $arraylist, $selected, 0, 0, 'centpercent', 0, 0);
 		}
-		else {
+		else 
+		{
 			print $form->selectarray($htmlname, $arraylist, $selected);
 		}
-        
 		
         if ($user->admin && empty($onlyautoornot) && empty($hideinfohelp)) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"),1);
     }
diff --git a/htdocs/core/lib/agenda.lib.php b/htdocs/core/lib/agenda.lib.php
index 74815f7bdbd..42244a11718 100644
--- a/htdocs/core/lib/agenda.lib.php
+++ b/htdocs/core/lib/agenda.lib.php
@@ -41,11 +41,12 @@
  * @param 	int		$socid			Third party id
  * @param	string	$action			Action string
  * @param	array	$showextcals	Array with list of external calendars (used to show links to select calendar), or -1 to show no legend
- * @param	string	$actioncode		Preselected value of actioncode for filter on type
+ * @param	string|array	$actioncode		Preselected value(s) of actioncode for filter on type
  * @param	int		$usergroupid	Id of group to filter on users
+ *  @param	string	$excludetype	A type to exclude ('systemauto', 'system', '')
  * @return	void
  */
-function print_actions_filter($form, $canedit, $status, $year, $month, $day, $showbirthday, $filtera, $filtert, $filterd, $pid, $socid, $action, $showextcals=array(), $actioncode='', $usergroupid='')
+function print_actions_filter($form, $canedit, $status, $year, $month, $day, $showbirthday, $filtera, $filtert, $filterd, $pid, $socid, $action, $showextcals=array(), $actioncode='', $usergroupid='', $excludetype='')
 {
 	global $conf, $user, $langs, $db, $hookmanager;
 	global $begin_h, $end_h, $begin_d, $end_d;
@@ -87,8 +88,12 @@ function print_actions_filter($form, $canedit, $status, $year, $month, $day, $sh
 		print '<td class="nowrap" style="padding-bottom: 2px; padding-right: 4px;">';
 		print $langs->trans("Type");
 		print ' &nbsp;</td><td class="nowrap maxwidthonsmartphone" style="padding-bottom: 2px; padding-right: 4px;">';
-		//select_type_actions($selected='',$htmlname='actioncode',$excludetype='',$onlyautoornot=0, $hideinfohelp=0, $multiselect=true)
-		print $formactions->select_type_actions($actioncode, "actioncode", '', (empty($conf->global->AGENDA_USE_EVENT_TYPE)?1:0), 0, (empty($conf->global->AGENDA_USE_EVENT_TYPE)?0:1));
+		$multiselect=0;
+		if (! empty($conf->global->MAIN_ENABLE_MULTISELECT_TYPE))     // We use an option here because it adds bugs when used on agenda page "peruser" and "list"
+		{
+            $multiselect=(!empty($conf->global->AGENDA_USE_EVENT_TYPE));
+		}
+        print $formactions->select_type_actions($actioncode, "actioncode", $excludetype, (empty($conf->global->AGENDA_USE_EVENT_TYPE)?1:0), 0, $multiselect);
 		print '</td></tr>';
 
 		// Status
diff --git a/htdocs/theme/eldy/style.css.php b/htdocs/theme/eldy/style.css.php
index 5587efa2431..f82a4feac45 100644
--- a/htdocs/theme/eldy/style.css.php
+++ b/htdocs/theme/eldy/style.css.php
@@ -2935,7 +2935,9 @@ td.hidden {
 /*  Module agenda                                                                 */
 /* ============================================================================== */
 
-table.cal_month    { border-spacing: 0px; }
+table.cal_month    { border-spacing: 0px;  }
+table.cal_month td:first-child  { border-left: 0px; }
+table.cal_month td:last-child   { border-right: 0px; }
 .cal_current_month { border-top: 0; border-left: solid 1px #E0E0E0; border-right: 0; border-bottom: solid 1px #E0E0E0; }
 .cal_current_month_peruserleft { border-top: 0; border-left: solid 3px #6C7C7B; border-right: 0; border-bottom: solid 1px #E0E0E0; }
 .cal_current_month_oneday { border-right: solid 1px #E0E0E0; }
diff --git a/htdocs/theme/md/img/menus/cart.png b/htdocs/theme/md/img/menus/cart.png
new file mode 100644
index 0000000000000000000000000000000000000000..8d8da880f0ed080f7cb941c3c0418750a8a19ab2
GIT binary patch
literal 259
zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4i*Lm2CurW#S9D#r#xL8Lo5W(9^C88R4Bu6
zA)Ynq>~%GfkX<aDVNtIXybkhNHB4OaZUJZ1B!h;qs0jgbHt!d?{A0aW`YZ0p{0jzO
zm&k=mYVs_Ws@3M^o*6ggvcd7r;4@bi_Xw&@EN)Ny<9Gkm?z|@@wI{wLne!I&Jetjz
z_G+S0=+$JAJu6?Ca;*z36=glX%Brhr+tw?+%cgC-5~aPbVq%t?U-T<Wvly?fO3Rf?
z1*Q3x9=m0w7R0`BVcN<wLArGn0nhBVS%yE;*>=->;!V}!Z2f<${Z*#&ofDh8lbeBo
Ofx*+&&t;ucLK6Vb322T0

literal 0
HcmV?d00001

diff --git a/htdocs/theme/md/img/menus/graph.png b/htdocs/theme/md/img/menus/graph.png
new file mode 100644
index 0000000000000000000000000000000000000000..fb04031d47a2df76d49938e674ea79ee0082d470
GIT binary patch
literal 179
zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4i*Lm2CurW#S9D#Rh}-6Ar_~T6C_we82(HD
zJIr`8s^hA{$N#2sybdo{{<jSHalJ7s{?P@7srMK!Gd+#}rO#C)q4)HEVwAus#X84u
zy?_6uB5u9>uf0KxHRb7yWrwFQFa7_zY3m=AAj=v27n|IFhL&V5n6}qq3bX3>$A-MC
i*<@{&^)eYTFjVC&UhN#=pUA+#z~JfX=d#Wzp$Py$SVb%V

literal 0
HcmV?d00001

diff --git a/htdocs/theme/md/img/menus/members.png b/htdocs/theme/md/img/menus/members.png
index 9bba632552c230fcd9dab589aaafcb8e3948f985..270e4de2e052c458576a3db1b2d32412f6384dab 100644
GIT binary patch
delta 182
zcmbQpc!_a>O8rbv7sn8b(@!T_a~*OJVK{#530oCYzqr2=i}FW~q}jrmYXy?iMUJ^C
z&+cz+^<5_Yjd#z}gF6h1k~34&SQ2vHeSLg4;qh#d12$js0?e4x8P+c>Z(b#7@%88S
zsbRJEzP~)vy>#VeyZ_&LpXuq^L`7F`Feqe85VBg&ymoDFv9YN>+xCUb?_`tM^_<vi
pc-YDdgsdKj-+I5F_3>lQWryQ6SRMwyVqjok@O1TaS?83{1OQZ0PC)<w

delta 116
zcmcb_IFWIJN^XRwi(`nz>Ewh3+&|>M{C`^S^x*1$hZeR&ryL)sIx!0fl(24^CAhj#
z!Xcg4<l7hRMKNEP7Aj8Yc=G+xetW;w8>>X-N55R~@IXDgf{nu*wgpKR(knU}-!U*8
YS~#8mj6?io1_lNOPgg&ebxsLQ0QZ72#Q*>R

diff --git a/htdocs/theme/md/img/menus/money.png b/htdocs/theme/md/img/menus/money.png
index fb04031d47a2df76d49938e674ea79ee0082d470..707d167616765fe8f34d8e637cb2a2a1ba681389 100644
GIT binary patch
delta 228
zcmdnY*uXSFrT)05i(^Oy<JC)s+U|ieY!4O}O!n36Jejp=#*8VA?^3o#>ZnPkZ2iPr
z!fV%X#9VP{&y>aw|GC3$w;A6(r_cO!&*kb@lJ|Zst^df=q`y*IHr}3f^*KiMwB!Pg
zdv|{xn0?eJg5kE-$rWtZQ#Z7)zH{uL4`<H9n<eiazTot)*ph!Pwn4(<*<Gf0vNO6I
zjdJeJ48IV}u8{8WR;YHe;t9#mO=pEH4sE=1H(@(V*o9jGo^Ed%mi{pL@nr$4uT9lW
n%?F2Wt)ElQ^XQN654N;jwtR0C_|zB}7#KWV{an^LB{Ts5J=1JH

delta 151
zcmZo*+RQjXrM}A3#WBR<baH|OYY4-C>3@eAPeyfIRrvVdRF2o-<;wq-0Y9!cX2n0c
zz%cb5<7K9&@xS!BiX`-&{!fe&IHg$U7_Rs4zf{Dnm;bdlh_R+Tow4lj6y~M>UpH<2
zqY`8}ga2Za`_Isl%mvf-T1;V9{r=dHcQu==&9Yu5BL;@5yv3^poFn`b85kHCJYD@<
J);T3K0RW2CLR<g<

diff --git a/htdocs/theme/md/img/menus/shop.png b/htdocs/theme/md/img/menus/shop.png
index 8d8da880f0ed080f7cb941c3c0418750a8a19ab2..16b6cd01fbc994d73000f532c9f0c0623d754680 100644
GIT binary patch
literal 403
zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-4i*LmhQHi~JPZtsQJyZ2Ar*{oFY9|V7s?#}
zcwVe6<5GfwR!+JQj}(i1!^vewmC6z$KX7&gevq7TM_wl4Xj)(on`3~B;NHq&4X*sl
z2dCcMw}1EFgv9sxe`VGe{4vS0P`b$~^@LMV;bvF<f~V3At&YqeV<+tozgEqh&9i9w
zy@nl%_2)AWu>D-UjM4SoiR-pYO&s1#SnoT9Z%Tzqb-2hc#zkJ=!UF3Pn#?zax{Eoy
znY=V!D=c9W$M?Poq5|wYzMb5{ZE)B;@2#S^gUsVg!jIP-kg30M+il$ek=!+RgG$)>
zHeO4W+{v{0Pr}O6mfa_0Ef^W(B%H5pX7)akt0?cl&9GzH1NIk847*S8Ur-D#Tkukv
zgX1rw;YEc{3{Q41WO`=#xSP+Hsm0*^o%$k=27|Y69OkC*wq&NW-%{xoST<Ldqt{`E
zsD)}IZ{n?+jYjfE_6EDnC@XUa$q*0>?6%+hzU{4Qe?z^dj(+Ww>1|RB3=9mOu6{1-
HoD!M<El#7y

literal 259
zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4i*Lm2CurW#S9D#r#xL8Lo5W(9^C88R4Bu6
zA)Ynq>~%GfkX<aDVNtIXybkhNHB4OaZUJZ1B!h;qs0jgbHt!d?{A0aW`YZ0p{0jzO
zm&k=mYVs_Ws@3M^o*6ggvcd7r;4@bi_Xw&@EN)Ny<9Gkm?z|@@wI{wLne!I&Jetjz
z_G+S0=+$JAJu6?Ca;*z36=glX%Brhr+tw?+%cgC-5~aPbVq%t?U-T<Wvly?fO3Rf?
z1*Q3x9=m0w7R0`BVcN<wLArGn0nhBVS%yE;*>=->;!V}!Z2f<${Z*#&ofDh8lbeBo
Ofx*+&&t;ucLK6Vb322T0

diff --git a/htdocs/theme/md/img/object_bookmark.png b/htdocs/theme/md/img/object_bookmark.png
index bde60c8877c7ac3d47ebc9c0609ba0f7be711c92..39109ef5ee61c102adfab2c4c7378fd83f76c040 100644
GIT binary patch
literal 201
zcmeAS@N?(olHy`uVBq!ia0y~yVBi5^7G?$ph9%LCR~Q%=SkfJR9T^xl_H+M9WMyDr
z&<gMgasB`Q|Jt={_wL<$?AWm>Q>NUzcklc6@6Vq<zjp1~)~#F5ojdpb{rja$m$tOD
z^i<ED%D}+DSQ6wH%;50sMj8VHgRQ5FV+hCf<b(rk6;q~6DUp<rU}fDp&A_1G&Aolq
z>deg9QLi?sC`^@F%DTu%?Ho&BrfaH0SK!SX5v<Fk85WxHFuPb+Zf0O$VDNPHb6Mw<
G&;$U>G)>X~

literal 131
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3SgczL=whEy;nFJR0_xpBUL
zfw6H9TZ!s1p8p#iltWzkB1A0%7G;E7v~SCG_`$z@kw4F5iI9UfrV6ixmnq4%#jwSt
iFe>PaYj~wHFnIJfH2B!_d}Cl>VDNPHb6Mw<&;$VS_a*88

diff --git a/htdocs/theme/md/img/warning.png b/htdocs/theme/md/img/warning.png
index dc168ba9439b1f04c813c2794c8778dc78b8dcc9..9ec45736b054e87b7c15ec72a3658bc2a6c16040 100644
GIT binary patch
delta 376
zcmZ3<*ugwOvYw5Bfg$W%UpNB;16z`}y9>j8hKUReeCCY?3=9mM1s;*b3=G`DAk4@x
zYmNj10|R@Br>`sfeI6DeDUl1+>RT8X7)3o@978NlpPjtd%h^$&b$|AxQ*Kinn}4xn
z{#hB+u_W+<+r}AI8FO9UvRL;nHCvgyc*1gt51dX1#4pslaoRcOs1@veXBx>}m~dm}
z=FROhH}C!so~D%=tm(f>+wb62Mz;eO{auZPcim(vYl!WC-08EFWe(%!cgy=+%R^ZC
zf_^SczUb1=_(rkoL`Ysks{i{tjA1@YWvwQ&cxW9EHh6zw)%x}O>KJZsz4yU#yK=B5
z!&wo}6JiZ**PrcMT*wu0KH)jzrd|8jJIY<GWs_!H8)7qU5lczq+5E*bPjPOLyHIe>
zcJ=eNl`{2$w?n2i*lm!INUlj<d*Gh*hOpPX_l1K!8?+xhn*RTn)DE3rx^Ecu*E#p7
h9<VDoy??X+I$M*_pF0cE85kHCJYD@<);T3K0RYHGnwtOs

delta 152
zcmeBRUdcE?vYv&3f#J__w>u0B3<aJpjv*C{$qM`%7!(~<w>Ju`H%e<$Y5VUmgC*r5
zLlTd8Bi8|e6GBJVy<i9sV*H*IoWwNM#Ua_p^`%7DB?Hl`$r`H;hg@k`xT3MFOGH90
zL8FR6#FZ^Tb;hZH24=nv(TZjthDjBS$^nh$6I5gw7_5Dh1XuNKp1zWSfq}u()z4*}
HQ$iB}kqk4|

diff --git a/htdocs/theme/md/style.css.php b/htdocs/theme/md/style.css.php
index a7a191f45bb..b40c0f3d6c1 100644
--- a/htdocs/theme/md/style.css.php
+++ b/htdocs/theme/md/style.css.php
@@ -2807,6 +2807,8 @@ td.hidden {
 /* ============================================================================== */
 
 table.cal_month    { border-spacing: 0px; }
+table.cal_month td:first-child  { border-left: 0px; }
+table.cal_month td:last-child   { border-right: 0px; }
 .cal_current_month { border-top: 0; border-left: solid 1px #E0E0E0; border-right: 0; border-bottom: solid 1px #E0E0E0; }
 .cal_current_month_peruserleft { border-top: 0; border-left: solid 3px #6C7C7B; border-right: 0; border-bottom: solid 1px #E0E0E0; }
 .cal_current_month_oneday { border-right: solid 1px #E0E0E0; }
-- 
GitLab


From f640486c8bbd8045d9daa765998472fc17a74c9c Mon Sep 17 00:00:00 2001
From: philippe grand <philippe.grand@atoo-net.com>
Date: Fri, 4 Dec 2015 22:50:03 +0100
Subject: [PATCH 093/197] [Qual] Uniformize code

---
 htdocs/expensereport/payment/card.php | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/htdocs/expensereport/payment/card.php b/htdocs/expensereport/payment/card.php
index eb5314fbd30..19d5b3206f7 100644
--- a/htdocs/expensereport/payment/card.php
+++ b/htdocs/expensereport/payment/card.php
@@ -66,7 +66,7 @@ if ($action == 'confirm_delete' && $confirm == 'yes' && $user->rights->expensere
 	}
 	else
 	{
-		setEventMessage($payment->error, 'errors');
+		setEventMessages($payment->error, $payment->errors, 'errors');
         $db->rollback();
 	}
 }
@@ -104,7 +104,7 @@ if ($action == 'confirm_valide' && $confirm == 'yes' && $user->rights->expensere
 	}
 	else
 	{
-		setEventMessage($payment->error);
+		setEventMessages($payment->error, $payment->errors, 'errors');
 		$db->rollback();
 	}
 }
-- 
GitLab


From 4a2bda3491fe25edc2b6abc1e5df30c3c78b910c Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Fri, 4 Dec 2015 23:25:17 +0100
Subject: [PATCH 094/197] Look enhancement

---
 htdocs/bookmarks/bookmarks.lib.php           |   3 +--
 htdocs/core/lib/usergroups.lib.php           |   2 +-
 htdocs/main.inc.php                          |   8 ++++----
 htdocs/theme/eldy/img/1updownarrow.png       | Bin 278 -> 0 bytes
 htdocs/theme/eldy/img/helpdoc_top.png        | Bin 0 -> 407 bytes
 htdocs/theme/eldy/img/history.png            | Bin 1362 -> 270 bytes
 htdocs/theme/eldy/img/logout_top.png         | Bin 0 -> 293 bytes
 htdocs/theme/eldy/img/object_action_rdv.png  | Bin 675 -> 0 bytes
 htdocs/theme/eldy/img/object_contact_all.png | Bin 810 -> 0 bytes
 htdocs/theme/eldy/img/printer_top.png        | Bin 0 -> 316 bytes
 htdocs/theme/eldy/style.css.php              |   7 +++++--
 htdocs/theme/md/img/1updownarrow.png         | Bin 278 -> 0 bytes
 htdocs/theme/md/img/help.png                 | Bin 657 -> 312 bytes
 htdocs/theme/md/img/helpdoc_top.png          | Bin 0 -> 267 bytes
 htdocs/theme/md/img/logout_top.png           | Bin 0 -> 168 bytes
 htdocs/theme/md/img/object_action_rdv.png    | Bin 118 -> 0 bytes
 htdocs/theme/md/img/object_contact_all.png   | Bin 170 -> 0 bytes
 htdocs/theme/md/img/object_group.png         | Bin 170 -> 655 bytes
 htdocs/theme/md/img/object_phoning.png       | Bin 200 -> 577 bytes
 htdocs/theme/md/img/object_user.png          | Bin 164 -> 581 bytes
 htdocs/theme/md/img/printer_top.png          | Bin 0 -> 167 bytes
 htdocs/theme/md/img/switch_off.png           | Bin 292 -> 1252 bytes
 htdocs/theme/md/img/switch_off_old.png       | Bin 0 -> 292 bytes
 htdocs/theme/md/img/switch_on.png            | Bin 257 -> 1228 bytes
 htdocs/theme/md/img/switch_on_old.png        | Bin 0 -> 257 bytes
 htdocs/theme/md/img/title_generic.png        | Bin 197 -> 138 bytes
 htdocs/theme/md/style.css.php                |  15 +++++++++------
 27 files changed, 20 insertions(+), 15 deletions(-)
 delete mode 100644 htdocs/theme/eldy/img/1updownarrow.png
 create mode 100644 htdocs/theme/eldy/img/helpdoc_top.png
 create mode 100644 htdocs/theme/eldy/img/logout_top.png
 delete mode 100644 htdocs/theme/eldy/img/object_action_rdv.png
 delete mode 100644 htdocs/theme/eldy/img/object_contact_all.png
 create mode 100644 htdocs/theme/eldy/img/printer_top.png
 delete mode 100644 htdocs/theme/md/img/1updownarrow.png
 create mode 100644 htdocs/theme/md/img/helpdoc_top.png
 create mode 100644 htdocs/theme/md/img/logout_top.png
 delete mode 100644 htdocs/theme/md/img/object_action_rdv.png
 delete mode 100644 htdocs/theme/md/img/object_contact_all.png
 create mode 100644 htdocs/theme/md/img/printer_top.png
 create mode 100644 htdocs/theme/md/img/switch_off_old.png
 create mode 100644 htdocs/theme/md/img/switch_on_old.png

diff --git a/htdocs/bookmarks/bookmarks.lib.php b/htdocs/bookmarks/bookmarks.lib.php
index ee6003d0119..4af1815c767 100644
--- a/htdocs/bookmarks/bookmarks.lib.php
+++ b/htdocs/bookmarks/bookmarks.lib.php
@@ -50,8 +50,7 @@ function printBookmarksList($aDb, $aLangs)
 	$ret.= '</td><td align="right">';
 	if ($user->rights->bookmark->creer)
 	{
-		$ret.= '<a class="vsmenu" href="'.DOL_URL_ROOT.'/bookmarks/card.php?action=create&amp;urlsource='.urlencode($url).'&amp;url='.urlencode($url).'">';
-		//$ret.=img_picto($langs->trans('AddThisPageToBookmarks'),'edit_add').' ';
+		$ret.= '<a class="vsmenu addbookmarkpicto" href="'.DOL_URL_ROOT.'/bookmarks/card.php?action=create&amp;urlsource='.urlencode($url).'&amp;url='.urlencode($url).'">';
 		$ret.=img_object($langs->trans('AddThisPageToBookmarks'),'bookmark');
 		$ret.= '</a>';
 	}
diff --git a/htdocs/core/lib/usergroups.lib.php b/htdocs/core/lib/usergroups.lib.php
index 5083ec3b495..56b44845e3b 100644
--- a/htdocs/core/lib/usergroups.lib.php
+++ b/htdocs/core/lib/usergroups.lib.php
@@ -477,7 +477,7 @@ function show_theme($fuser,$edit=0,$foruserprofile=false)
 			if ($color) print '<input type="text" class="colorthumb" disabled="disabled" style="padding: 1px; margin-top: 0; margin-bottom: 0; width: 40px; background-color: #'.$color.'" value="'.$color.'">';
 			else print $langs->trans("Default");
 	   	}
-    	print ' &nbsp; ('.$langs->trans("Default").': <strong>6e7896</strong>, '.$langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis").')';
+    	print ' &nbsp; ('.$langs->trans("Default").': <strong>7882aa</strong>, '.$langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis").')';
 	    print '</td>';
 	}
 	
diff --git a/htdocs/main.inc.php b/htdocs/main.inc.php
index d27df85f4ac..a3c647a5e47 100644
--- a/htdocs/main.inc.php
+++ b/htdocs/main.inc.php
@@ -1461,13 +1461,13 @@ function top_menu($head, $title='', $target='', $disablejs=0, $disablehead=0, $a
 	    	$logouthtmltext.=$langs->trans("Logout").'<br>';
 
 	    	$logouttext .='<a href="'.DOL_URL_ROOT.'/user/logout.php">';
-	        $logouttext .= img_picto($langs->trans('Logout').":".$langs->trans('Logout'), 'logout.png', 'class="login"', 0, 0, 1);
+	        $logouttext .= img_picto($langs->trans('Logout').":".$langs->trans('Logout'), 'logout_top.png', 'class="login"', 0, 0, 1);
 	        $logouttext .='</a>';
 	    }
 	    else
 	    {
 	    	$logouthtmltext.=$langs->trans("NoLogoutProcessWithAuthMode",$_SESSION["dol_authmode"]);
-	        $logouttext .= img_picto($langs->trans('Logout').":".$langs->trans('Logout'), 'logout.png', 'class="login"', 0, 0, 1);
+	        $logouttext .= img_picto($langs->trans('Logout').":".$langs->trans('Logout'), 'logout_top.png', 'class="login"', 0, 0, 1);
 	    }
 
 	    print '<div class="login_block">'."\n";
@@ -1500,7 +1500,7 @@ function top_menu($head, $title='', $target='', $disablejs=0, $disablehead=0, $a
 	        $qs=$_SERVER["QUERY_STRING"];
 	        $qs.=(($qs && $morequerystring)?'&':'').$morequerystring;
 	        $text ='<a href="'.$_SERVER["PHP_SELF"].'?'.$qs.($qs?'&':'').'optioncss=print" target="_blank">';
-	        $text.= img_picto(":".$langs->trans("PrintContentArea"), 'printer.png', 'class="printer"');
+	        $text.= img_picto(":".$langs->trans("PrintContentArea"), 'printer_top.png', 'class="printer"');
 	        $text.='</a>';
 	        $toprightmenu.=Form::textwithtooltip('',$langs->trans("PrintContentArea"),2,1,$text,'login_block_elem',2);
 	    }
@@ -1534,7 +1534,7 @@ function top_menu($head, $title='', $target='', $disablejs=0, $disablehead=0, $a
 	            if ($mode == 'wiki') $text.=sprintf($helpbaseurl,urlencode(html_entity_decode($helppage)));
 	            else $text.=sprintf($helpbaseurl,$helppage);
 	            $text.='">';
-	            $text.=img_picto('', 'helpdoc').' ';
+	            $text.=img_picto('', 'helpdoc_top').' ';
 	            //$toprightmenu.=$langs->trans($mode == 'wiki' ? 'OnlineHelp': 'Help');
 	            //if ($mode == 'wiki') $text.=' ('.dol_trunc(strtr($helppage,'_',' '),8).')';
 	            $text.='</a>';
diff --git a/htdocs/theme/eldy/img/1updownarrow.png b/htdocs/theme/eldy/img/1updownarrow.png
deleted file mode 100644
index 871ac1c1f290dd7098702eba8b5bf707b71b49e8..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 278
zcmeAS@N?(olHy`uVBq!ia0y~yVBln6VBqIqW?*1o6ce>)U|^6eag8Vm&QB{TPb^Ah
za7@WhN>%X8O-xS>N=;0uEIgTN!@$7c9pDq<`v3p`=&XX+oT9{%s`R?H+~)4$2{X$l
z&aRj;zk2F|>X}Pw=B}!pv!Z_9>c(Z8+E;Jy-h8ls*NF)`j!oTndeQOA8!p`5arxe{
zyHC&Ef7V{06%KMjNswPKgTu2MX$%YuA)YRdAsp93`@H!Y6a<{R`<R)O<k@%p_q?jn
zS@!kP7T?DCuNtOZVJ?y|zJI~{!xH`QNBe&DRygrp%Z%%==f1S`>J(w+=@XqLVh<cE
i=Py{|=KVi^&Zj@jV#Ny2uQ4z%FnGH9xvX<aXaWE$zH{yX

diff --git a/htdocs/theme/eldy/img/helpdoc_top.png b/htdocs/theme/eldy/img/helpdoc_top.png
new file mode 100644
index 0000000000000000000000000000000000000000..fc58e0bd174e0896d425fa321f7307b0a010444e
GIT binary patch
literal 407
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3SgFeQ1ryD<E3??1Djfq{Xu
zz$3Dlfq`2Xgc%uT&5>YWU|=ut^mS#w&%+`rBP`3sEW*IRsNw127@~20>LgwNrbLl8
zeVrbi1mzW;E;Ey^uDtq6hwWeE=FAW55_8U-ka%o<V{S@w*mJhV^-GTSGU`7x`f#XQ
z-tm3O{LQZ|&s#pPe8AszmTlRMWWkIA`Rd=TWd~O&t8=ZH@vra6n_J&c@jgCw_sgwD
z+3@{gFK?M}r`deG!ZTxY?(Gnk(6_T$%ipZLRV*D-oKbmeo$`8ynr}yYB;#wDJ{&vn
zM8Yb_oMBIa`~h!f2JTl6C9J|98_Vk5{=#>lrHZZCK5XLSiEPIMlXy%UGHw_%@g>O%
zq`giy$$aqj%Y$7%SME10s1pj2nZaFqHtNMEK3&)A%ii87<2|tGsKCn`T;c*rtGCHk
zBp+<y+`gwY<Mh<`!Ao_d&)5`buKM(KwaU#@&Xu19s-M^YV)?cI^3C$e#itn<7#KWV
L{an^LB{Ts5>u##n

literal 0
HcmV?d00001

diff --git a/htdocs/theme/eldy/img/history.png b/htdocs/theme/eldy/img/history.png
index 0fa4283476b0da9b026b8b26a2226ae30a9abd2f..148928d397d562a0d193a81e4c28c830410d6e9a 100644
GIT binary patch
literal 270
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3SgT=jHu45?t;dU|P+XaYmS
z#pd1Bixc`AcB^UZ*vraUuDfHm%AJLd%+I6?-@V&cpIWr`-sJuMlX^B?SGKP$xTM6n
zHcUa|tM@8D+dOIAV`8$K*0TDP2X3G5)?pCbyI-wii+_PnOYklo29{z*eG|97$bEv+
zk!m;C9CjCTE;4L#Hn<h;D6r)ghtwTo-k!Jpzcz<SGZfndrm|1t-gasJ-i>ifRHr?j
z>h`$P<e1AuKCZrwk0<M2^D-L8UVOa!VbYpO>KdP;+w|_PlT>XCEUSL8yu5FwK4%pp
Yo4@0FcKz9!3=9kmp00i_>zopr00s_eumAu6

literal 1362
zcmeAS@N?(olHy`uVBq!ia0y~yU=Rag4rT@hhR<1ZI2jn2o(A}YxH2#>u(Go7aB~Up
z@(K&`i3$rS$xG>KD(b7KSZc{yYAIN$t6J$OTI(uV>ndC8Dck6&*sAN;8YtTusM;E+
z*=y)J7;Cs18Ms@TdfV#z+S&Tr8~VFjhqyS0I~l|UyCelWC5O0FCPh@md(>q{HKm76
ztk0d>k-cF-=jIt@Ck`Jvxn|PUT~n{`o_6EJw)<C)zrL~k+sn(}AMX18^wjrfr@z0w
z`}589-(TMS`SRk=*Y|%v-TU|X{=eTp{=dKR|I35_-(LRz`NmpLnSp_Ujg6I$hnt^=
zM}U`Ch@VGPR9H+{P(n;ZMnX(MR!T`)SV>+=RY@M^H3f)Y9E?pIjn$oP4P8t$T+Pkh
zEG^v4&D||cJ#0<9?DTzXY<=x){Vgs1?G621&HUZ11Dza#T&;rKT|gf6G>!1Ei12iY
z^mL2#HjnahOAK^`_%|ioCo3wVEH$n?Ev6<bzAiJWAvL(SDrb6g`uvvkCEW$f`iqvg
zW^7o{w0TC^mf6+YmrOmdto7igxrf(HJaPEYnavZ<ZtOX`dFr_n2hMNpzqkz)MA!Du
zy1sYj&Al@o9$WD6_@ajw_ddLS^3n0dk54Usa(da*bIYHfTm9nBxtG^=yu5$q^`#B3
zudaQ4ef#U{J73?}{`$tQ*EjdPxwP)>wRLZw+<yDy?z?N7-(BDG?&kInclUpMc>Lp|
zQ=eYm{(S%7=Z9xLKRW#7@u4q|Pkz0B;Oo<K-=3WM_VV(#m)Ag%^6d2Y=O@0uy!id?
z-S6)n{dj!%$GZnVKEM6>^3=~a*MGi$^z-BMU#~Cz`ta!Y%d@}VUjF^@F(~dn+<`>j
zpYQMgeE;<K!_~i^?*0A#?(g@{e}8@Z`|JC^ch~=YyatNduP^_7d;9Ol`+q+_|NHsn
z-_LLVe*gIQ`{%zuKmWfz|Nq_D|DT_N;{EIG|6jqe|Kr*JA20v^`0)Sd-Tyz|{Qvp>
z|L@QLe}Db|=hy!~zyJUJ{r}&e|NsC0W$@U@z`)>C666=mKq+8(z_(~20|VnNPZ!4!
ziE!3~C-W{lNH9F8w@J2^OE2tvtYab?$-xrHQNW<$*Pyk|hKW6{lR5u@q)OF;hLBJW
zPR>&cw|JOjDy#a<Qrq~rH0S(>+6evbO;c@)el;$7`u_3~GmjE&=eI`{W>+3#+3RRi
z$?jTw@!`JqSXJ4p>rS7(es`MA#A_$Lj!s_J$-O1@v9axoy#{A?#L7MK56dcZyEK>c
zY@<5k<*nhZPn>TYdVg2x9nVwm#dQlyclGXCs%6XkarSvW4(3VT{}=65<KQn`|MHeu
z|96fHva8N`U)XW2BuIoy<w#kko5~C;s}l(;BUm^e?-O6*qZH_HI{6i2!m&t+<rjbc
zE4EORNw|}^+cz{yd{INJX4Y@_=hL19vYeY?IxpqXCGNiq=jS$lp3ESyi)FFUxknZc
z7XGMMaDQWCM;+^rg~jhS2()TUbDVLUL1iru$Lm8ykx82l{1VA1jPv4X+rIO~hjNDO
zB|$QddR&fW1shFgeXHVMwYi~N<Kg`MHlbOM*zSFOzJHG4?!AADHhy@LViTiyGTdO_
zgXNRXE-PQE{MLWRy%n>6oZ4DwJDKUfcE8)@C$lsAE(O0zt7V^_rMIo-#&h?x8uj@<
zRz9>_lV`RfJ$(C}ROys;ii`dkOBD9L@BhzyJ@D<dk2CyUfRc)*tDnm{r-UW|5?H`e

diff --git a/htdocs/theme/eldy/img/logout_top.png b/htdocs/theme/eldy/img/logout_top.png
new file mode 100644
index 0000000000000000000000000000000000000000..0526eef7be48ec3e69dc11a5b82e77df2df90112
GIT binary patch
literal 293
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3SgFeQ1ryD<E3??1Djfq{Xu
zz$3Dlfq`2Xgc%uT&5>YWU|=ut^mS#w&%+`rEBkn*Jjj@Bo-U3d8t2zewB<VFAkey>
z_x7<v#Xp4k1vUtL^m06Xq)OX=vQnG_Q`d2Urq-~&qwDhSED`*)>h8?`N`5&WRaOOK
zu1E9U&h?2^U|OK?)^_41_6rP0u4LUzU6RBy-@8ucq~9^coQ1P){Z-G=+#Qjzaa#Kv
z9kr<;_kEH)qGAp=1%<u(mi>Kwit_mj=k$6czR#*wIdR3SMD6*5%MmXZEETUbZz_{r
ss$0IkWwCyRS0XpZl?f}gnP2giymGSp5mY0|z`(%Z>FVdQ&MBb@0I!~I9{>OV

literal 0
HcmV?d00001

diff --git a/htdocs/theme/eldy/img/object_action_rdv.png b/htdocs/theme/eldy/img/object_action_rdv.png
deleted file mode 100644
index 25edfa85b45b03ac727df4e3f8f93a037a5c6801..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 675
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`4rT@h290TVA2Tp8Fct^7J29*~C-ahlfw4Bg
zC&ZP3frEj;l7YdAfuWdz!-;{zi$TDPL7<vJpoN2@nnS>gL!g>N!iz&9h(jWZL!yO4
zF-kx{LO`HJKte)5qFO+rML=_kfMK$LVYYzfQVEF`38$qJPHQE+)+%cDC>qXDbXuzD
zwN^1`t76nv#i+fC$$K>|Ej7L7Xa+6SjM}Q1yjL^(m|@Ub!{TF>#d|GVjyVMdIYnhV
z6(4hIIp@@K&MRoCS9Y~m&pEH2YeC6tgIbOS&AAsf<yzF7Ystmc$<;l{OYbGGeV$!h
zoLya=-E%H`&f4rb*Rt0>&)#}2``q{9rPqqr-YZ`Fy!hPr>M7@{*WRn%`n>ww`<5w7
zTb5pHIrqNh-1nZn&wI{&@45DU%9J@%mY$okcI%YA$ENH(H|5&*Dfj-*S$l2Hv1@bg
zeP6ou+S0A}mfrim^!fj_Tkows_I&NN=WFkMU;F(3)_dQ#KL5Y>`S-og|L=YO|Jd{I
z$KL-x_x%02=l{>W|9|fL|7-8RUwi-m+V}tW-v7V%{r~gt|DXT=|Nj5~W>L54pjash
z@(X5gcy=QV#7XjYcVXyYmGxj?VBjq9h%9Dc$m;=N#@>fVE-^4Lu$OrHy0YKl<`uWl
z5Wi@5hJk@$lBbJf2*>s01O_HiUteF>Og4@SSIxfheJH;We1Y|I$zJZ)MnS8J?;NPf
zeSc}ztWTdFy>O8>WMd2cJSR&*qs**>_u_-J3q?As7?`Y0uRHkHDqOeKS#NT}^TwIO
z*Kf7VcD#J>w!(G0pokk64qTfv+wtVV0}9sKYR1}E4;<*4-FWc80fr>|8Ho){7g8NX
fdbpPgiZB>`Q*o_X)BKWwfq}u()z4*}Q$iB}n4dOl

diff --git a/htdocs/theme/eldy/img/object_contact_all.png b/htdocs/theme/eldy/img/object_contact_all.png
deleted file mode 100644
index f571504b24677f54c02299d6eb3435fcf1118788..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 810
zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4rT@h1`S>QU<L*T_7YEDSN1C$qP(1}yZ0PP
zU|?Y2EbxddW?<kJ0%68WckBKzFfg#BJNh~@Fl_AS{*%bcz`*Dg;1l9%Z*On!;9&3I
z>fqqu;N<Gy>gV8*;NX$w<mBK40<KQ3-cBBVPTo1LPEM{Key$!tuHHc&9v&Xv;U0c5
z-rnBc;W>WZ-hO`Je&IQOX|w%u_5^vm1_cELrOgh{nG&8eJ0_threaS_#kqupgoK>l
zgw|teIYntjQ_|{>rM2!!Ydx3Kx+kaiTu$%xoGEXLauSNBoGY4gy=cnAiu&G)DSIlW
zoU54qu)e;czP`S`bxQr>uk~yGx7Js*&OX+<=4<Pk|E*j8_x85-E<V@0_<HY_|Gj(u
z_a6H{WlHOmHP@#c`#*b1@9Zg4X0JInd&|SwTi(n*_J8)d|BDwdUcBY{;yqs%pZmXN
z&%-sx{;xUrf6JQ1TaG>4vt`Ymb8q&X`?}})|2=R1A3JvJ+_7Wl&K)~<?%cVD|F54r
zcm4YHhhP7{dHC?n|NmeA|A!L)|MUFY2#TJ(k|4iekTBga!va<tV+IC>m!2+;ArhB;
z&%O0N6d-c^BlFp5PO(MNYBR&cb}l=7yZQR2T{;gRx%CFxP3Sx|N$1wj|M$y|-TU(F
z@Wa#Zk1`&)$^Vb}gYW$}kGj{{KM1-1F34ha_*xNO>91Lhht{$!m-LsCQQ~=<V!JO+
z_4Ui2T9R^m4j=h;_+O#KufKmUyr099@NUbGqw{VT<vyNN+}<S6G=1rd!p-U})(x!_
zF6macRO&yyDqCaW<Jh{H;g;{NB!}|>Vp`5q3yw6|{8i))_1S2Uq{Z!MsGQ{3*Ob2O
zppW?Oi(;+PE1q^PmaS>I#n$@%`crYi<3E1y`E$fx{*>(;{kJA;3=9kmp00i_>zopr
E0H9#Rq5uE@

diff --git a/htdocs/theme/eldy/img/printer_top.png b/htdocs/theme/eldy/img/printer_top.png
new file mode 100644
index 0000000000000000000000000000000000000000..c58d7456dc442e90dea22c1cfa2d79a42bda9034
GIT binary patch
literal 316
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4mJh`hOl#e;S3B6Y)RhkE)4%caKYZ?lNlHo
zI14-?iy0WWg+Z8+Vb&Z81_lQ95>H=O_WL|6qSC5!KQeeRFfg3-ba4!^IDK}~Zr(!<
z0xt7))m@^QQZBHDI^+bYWF24$ap;?Ku}$}uf`O`!TZ<=;Rb=@;50-l`Om5A*J2QGl
zlxwa-5Z4mhJ$KF&iF?@iawptX4%yQ9BmP>A^wWKvYgg@&^z3Tn-oTv3JiUT3{6Rw6
z`}JFOH^?h~V#wo7f1I{OM)IVrh57rb+9JIow@jn|?(lT~tl1#n{!fY_ZQ9QQ&$&*b
z0aomm?>Bxc@mru|U^qFXT}0*Tq)i8}sfZ?D>Sqp*E-N^-V6Nv?c1ckamYEOs^)WCo
OFnGH9xvX<aXaWE=*l@G}

literal 0
HcmV?d00001

diff --git a/htdocs/theme/eldy/style.css.php b/htdocs/theme/eldy/style.css.php
index f82a4feac45..0c778179606 100644
--- a/htdocs/theme/eldy/style.css.php
+++ b/htdocs/theme/eldy/style.css.php
@@ -79,7 +79,7 @@ $dol_use_jmobile=$conf->dol_use_jmobile;
 //var_dump($user->conf->THEME_ELDY_RGB);
 
 // Colors
-$colorbackhmenu1='140,150,180';      // topmenu
+$colorbackhmenu1='120,130,170';      // topmenu
 $colorbackvmenu1='255,255,255';      // vmenu
 $colorbacktitle1='230,230,230';      // title of array
 $colorbacktabcard1='255,255,255';  // card
@@ -101,7 +101,7 @@ $useboldtitle=1;
 
 // Case of option always editable
 if (! isset($conf->global->THEME_ELDY_BACKBODY)) $conf->global->THEME_ELDY_BACKBODY='255,255,255';
-if (! isset($conf->global->THEME_ELDY_TOPMENU_BACK1)) $conf->global->THEME_ELDY_TOPMENU_BACK1='140,150,180';
+if (! isset($conf->global->THEME_ELDY_TOPMENU_BACK1)) $conf->global->THEME_ELDY_TOPMENU_BACK1='120,130,170';
 if (! isset($conf->global->THEME_ELDY_BACKTITLE1)) $conf->global->THEME_ELDY_BACKTITLE1='230,230,230';
 if (! isset($conf->global->THEME_ELDY_USE_HOVER)) $conf->global->THEME_ELDY_USE_HOVER=='238,246,252';
 if (! isset($conf->global->THEME_ELDY_TEXTLINK)) $conf->global->THEME_ELDY_TEXTLINK='0,0,120';
@@ -1184,6 +1184,9 @@ a.help:link, a.help:visited, a.help:hover, a.help:active { font-size:<?php print
 {
     border-top: 1px solid #BBB;
 }
+a.vsmenu.addbookmarkpicto {
+    padding-right: 10px;
+}
 .vmenu div.blockvmenubookmarks, .vmenu div.blockvmenuend, .vmenu div.blockvmenulogo
 {
 	border-bottom: 1px solid #BBB;
diff --git a/htdocs/theme/md/img/1updownarrow.png b/htdocs/theme/md/img/1updownarrow.png
deleted file mode 100644
index 871ac1c1f290dd7098702eba8b5bf707b71b49e8..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 278
zcmeAS@N?(olHy`uVBq!ia0y~yVBln6VBqIqW?*1o6ce>)U|^6eag8Vm&QB{TPb^Ah
za7@WhN>%X8O-xS>N=;0uEIgTN!@$7c9pDq<`v3p`=&XX+oT9{%s`R?H+~)4$2{X$l
z&aRj;zk2F|>X}Pw=B}!pv!Z_9>c(Z8+E;Jy-h8ls*NF)`j!oTndeQOA8!p`5arxe{
zyHC&Ef7V{06%KMjNswPKgTu2MX$%YuA)YRdAsp93`@H!Y6a<{R`<R)O<k@%p_q?jn
zS@!kP7T?DCuNtOZVJ?y|zJI~{!xH`QNBe&DRygrp%Z%%==f1S`>J(w+=@XqLVh<cE
i=Py{|=KVi^&Zj@jV#Ny2uQ4z%FnGH9xvX<aXaWE$zH{yX

diff --git a/htdocs/theme/md/img/help.png b/htdocs/theme/md/img/help.png
index 12e6cd655d6630345cd24c74b5e85bec38524c1a..2c56e645a01cb767febeb54c59743603f8c21d88 100644
GIT binary patch
delta 296
zcmbQpx`SzgWIYQ51H)Fwr%?<H42;D=?oJHr&dI!FU|?WM@^*J&_}|`tW<LW1180Fp
zWHAE+w=f7ZGR&GI!N9=4UgGKN%6^}Xg~OEhFK?$D0|UbzPZ!4!iOaPY4852W1y~>C
zUvr2O-MT?2NaBK@fDVh|hVTzkmW|IlEuD01np({kwbu9cDjn17?K%4XU7BOf)7jsj
z?UnrJ7?59Kkk=vd;YG&B*on@`o&Lg;Ba}X0nBW!IwlsHlS<X)(##Lqy4xc#lwds1>
zDla~_c}uN}HcRr=MT^=z^{ma_|2(Hq^ts-tMb~a7UAuefe9OvA^H)aQ|JMBPWZY@g
zpPYGK_1<32?_t-bD_+?%f!+L{&XnaF*L`F5?a_U8;^>if1_lNOPgg&ebxsLQ0LxE$
A!2kdN

literal 657
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`4rT@h290TVA2Tp8u$OrHy0Ty65Mh*+;T3QB
z&%nUIS>O>_%)r3)0fZTy)|kv-U|?WLcl32+VA$Bt{U?!?fq{`Dz$e62!Z1kDGFj6p
z*~u#?D!V$lx+l4MX>!Y)<d&t`)jiqOQ?h%O7Pm|(p0c&NXKD46rPWjRw)D(tnX<HH
z%G#beOMB*Q?OD2a%ABQB=B%BvbnTR-Tc<4DJ7w*$IZOA>S$l5I-fK(O9$UI~>(af~
zmL9vecI&yd$L_5?_I&H!V_Wy0+q(DK)???k9(%s^+`X;m-fzA3eed35dyk#ld+gfY
zbJzBsySMk;^S#&J@4ff^*tu)Ru020@?fJQT_s-pWe(v7)bI-q@d;b62`~TPOJ->GE
z{k7-MuRZ^M?fL&}@4sJr|Nq+e|M#B1zxV$Cz3=~@fB*md|Nr+O@csSw_wT>|fB*mg
zcM$mh{r~sx|NsC04<ZiikhNi8V2CIQ@(Tuu(Eu}4%s#}yz`(G=)5S4_<9ad&d*gx&
z3nmx{G&6S8HvhR&>+JML@y>z=0nBM94>UN$3tYdhuW%sH<MeIo11H6g@P7DqMeyp!
zFJDRw*o$PDY;2E8+_-xuX02#rjCOu{ez01ed2}>)p~CeG7mxbQoOt-&m16+{DVrAd
zcH1b=o;R1TpQB^-x<n=Q1FKh`I?q|y*0rH$)hr2Z?kk}W#V*x&&ADXY&eYg6#l=F%
h{7yiutP3N<Cl-Szi%eWO85kHCJYD@<);T3K0RZE8h-m--

diff --git a/htdocs/theme/md/img/helpdoc_top.png b/htdocs/theme/md/img/helpdoc_top.png
new file mode 100644
index 0000000000000000000000000000000000000000..1d194e23ec2bf3e3c45233091d06f25c21006610
GIT binary patch
literal 267
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3SgT=H~r45?t8+Gpt3>LB9k
zzx=NLzXopu!v|tZE@yBrEa441V5Q^3p}2$9`~e?NwnKs7;*J!f%9)<W9?g&b@b2-m
zvrkKuyk^C!b}5MS)NGE-tV;Ue`P0Zg+|4fH?4Ah~;W;TvtPf_L{4tXwaYO%|;s>SI
z8`*ciT(YiY=hK@t^DQRlaXFuS_Oe}C@2IGRl>VpF%Fp+7uXkQ3{^0D#&=)(ch0Z^h
z5V;lExBJLK%cPh8dAD*HcCRrunrR<sp>pPgYG+KNze{`Bt}Pl(8eCagMSXKl$$xR1
WUH_2b?@|T^1_n=8KbLh*2~7ZqxNtQ9

literal 0
HcmV?d00001

diff --git a/htdocs/theme/md/img/logout_top.png b/htdocs/theme/md/img/logout_top.png
new file mode 100644
index 0000000000000000000000000000000000000000..e2e2e5d973d4b80a0942b92f9cc079cdf0fb89a9
GIT binary patch
literal 168
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3Sg<a@d}hEy;nFEF~0eB(?3
zgD{h8>4U6>Is7+77+uW|UTt6%VDOcheE3MfVTG31i!2H)JKtF!wq#ReGBeoWI5lxr
z%cDEuJpUa}d4#lZ+DOzjOnFee!_I}%($T@ffYbf7TZ>X`o9_(~#;F;B=BkVgYl|YH
VAKYwM%fP_E;OXk;vd$@?2>{ynI0gU!

literal 0
HcmV?d00001

diff --git a/htdocs/theme/md/img/object_action_rdv.png b/htdocs/theme/md/img/object_action_rdv.png
deleted file mode 100644
index f29c713022cf3ca48e607fc9382921acb2081111..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 118
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3Sg*m}A+hEy;nD~K5wsTi3&
zXy|l^6kss=_qdT$z?HW`)HJ~V;)+EUDX!cbj>XF8ypuZ6_J}<}mZg!2*_46d_M&ZR
VEPoEIWnf@n@O1TaS?83{1OTjKA<+N;

diff --git a/htdocs/theme/md/img/object_contact_all.png b/htdocs/theme/md/img/object_contact_all.png
deleted file mode 100644
index cc204fdcaf1f376df619bf444699ec4123df7d9b..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 170
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3Sg6neTihEy<KJ!Qzp7%0K;
z@Vwv-ac`AH0o}<NF|C_Bn%`9KmSwLnlfL=q<m!?$Cc!=P)0DlXHe7wZCNw2=1MA-#
zk*-|9=4C+_GuWrkKR0RW`$&tOJNe^e&lYm<ev9+^keU9>(A3BK&W;whz|)pr_J3k4
Ykn<?s^|k8~0|Nttr>mdKI;Vst0Q*isLI3~&

diff --git a/htdocs/theme/md/img/object_group.png b/htdocs/theme/md/img/object_group.png
index cc204fdcaf1f376df619bf444699ec4123df7d9b..be0255f7ec2679667491349672d653bfaea6ab89 100644
GIT binary patch
literal 655
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`4mJh`26+$Niwq15Y)RhkE)4%caKYZ?lNlHo
zI14-?iy0WWg+Z8+Vb&Z81_lQ95>H=O_WN9tV$wRNBWgk!7?@-{T^vI+&X-QI&kjzM
zX`TOl@AV}D|Cd}j*`T>LY0ZKrdB<|`^6=JkR%vfiUcLw@C|()ApgHf6+AD=T-iXCF
z?%XkXyZ7Yp_uq@X3NLJyn|HXenCHN?Yu8S_dX=^RZl1l+#5EdS;g?@-*}rq=%OCxp
z=FXkF=l0uu8QX97zuv{R;POkG@T=YjF8^;#%g=wGwE3panyr;yoS~{qTRJ|xyL)^3
zT)*duUXys)n!^u2+^~QD{`U+;@BaoZzIY<Jr-MVusb}KD5A5dVRsN?uI~Uy9S^azG
zsySOXTz**+7kag`V?vP9F^`_cq97wJu05Z3{G9W?{eEP8d^OV?_6?z-mZ5()Gz59g
znHRP~>zw7B?-lPq-b-AQx^wRywuJV>i5-Uf_!S?_S-dX$lTCVvh@;BGy@#v)IT{~7
zPCn)NQ~E$&e*WnSn>tyiAA(K?qPh*!<eV$yYYteS&oNu9qb{;IiR};5iQj+g&PP?p
zhR!u)YnXB=ar4HKi1W`vu5zBUj9M%9c+(y0+Z%7c-6uFvTj>&8K<Fl&-P`tU+xF?}
z?dvb*oZhUX>^igl-<PL1nYOH|;*Jm#WL8k>aZ~p5^PevI$(8&4-^BIhkK^9E<uji+
z^X}a`y`a9nJ_#N^522Omrrn(kYtA~9PD#D_{^p&(XF|6!`Se_rlaZM-+voU9L$*-Y
zuR6jLTMVBSdA%&!T$y)Rr-%Lf`}JG&w%D0XmkR&S_U~tK@(<?UkK<|{e60&$U|?YI
MboFyt=akR{02DMg@Bjb+

literal 170
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3Sg6neTihEy<KJ!Qzp7%0K;
z@Vwv-ac`AH0o}<NF|C_Bn%`9KmSwLnlfL=q<m!?$Cc!=P)0DlXHe7wZCNw2=1MA-#
zk*-|9=4C+_GuWrkKR0RW`$&tOJNe^e&lYm<ev9+^keU9>(A3BK&W;whz|)pr_J3k4
Ykn<?s^|k8~0|Nttr>mdKI;Vst0Q*isLI3~&

diff --git a/htdocs/theme/md/img/object_phoning.png b/htdocs/theme/md/img/object_phoning.png
index 0bfd66d818ed353dae9362de2760565767aa02af..23a4e0b1dbbc3749b03c45864b52f7d12f907520 100644
GIT binary patch
literal 577
zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s77>k44ofy`glX=O&z`&N|
z?e4<x9|RZdT|SwCfq}EYBeIx*fm;}a85w5Hkzin8U@!6Xb!ETDBPXP1dilTtX9fnw
zgPtyqAr_~5gEn>rJBrw*e^Q9tdW*xcJ3;wIYMPw3<AhwDmcPv2($jOV9rE8GkaH)=
zG)X_Ku2CaN^UUn)yEnv|DVQ~>eYhtx`=pTA(el*~@9lhkulSu~<TM6`=XX@!{}p41
z$i8UG!H^nxZ;A<X!<0*tC6ZIuy7qkh&v0(1wu=3vJB$pTzPGn+f3?f*<)%i%V>Ze=
z7t5%0FVe8<IsVvBgr~us;egB}mIucQEWXTTP}zGve{ExsSO4l&T=#zaN$)v(NAqR4
zSLXIrtCZi{I&sWp*yr)fO^BgRI{Dn1t#fBF9%vD$W2j(vP-)j(+I%(ZXm{NYaoNfF
z|6?vGWfxdT@We4$d_Op=ulU`$604(X7T1rSOfk~zQcAN`dHJ<yr_GD+zq<?%S(az?
zR5Cu;k~yooG<JSOcHzFP9>IIRYZ;EK^s0DR86A_^o?E^4`s><rb_<uNEiJJ=7Ew4k
znS=4(@7hW0uT^^9XUt*T;UgriFkj{E%&*7q^avbUlPRVBQir?R)ckc*9n*n(X=!%z
z4@Y(HS|`5v;tSrBVh2hm-L5qF^kuz@e4BvSpWB&czEAevXDgWggxT{u;~5p(wX0sG
dM^5{}%xCl7C413#X$A%c22WQ%mvv4FO#u1h^RWN`

literal 200
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3Sg^n1EEhEy;nFEG+bvtVec
zmMr<8dF$v0d7j{pno*3QS6ci7nL{qd)pX72Fzjr7$Qt0O&a7Pb|0<)Xq#zedUE6b>
zbjcf>nx9!`ZEa}moUkcs!KT)P%My~iB)=JMF<P>iRX<{t)QUGu&6<Z*6nfPIY9!_{
zE*1E|Q0DzpB1>YPvdBYj^Xh~JI?Ts1?Mj1%7>u*bKfV@Q*u=oVz~JfX=d#Wzp$P!?
C7DU7V

diff --git a/htdocs/theme/md/img/object_user.png b/htdocs/theme/md/img/object_user.png
index 599e87b3ab83c621f919b124054165edfe13692a..efd446a1a4c05b50932240855227fec33c4564c2 100644
GIT binary patch
literal 581
zcmeAS@N?(olHy`uVBq!ia0y~yVBiB`4mJh`26+$Niwq15Y)RhkE)4%caKYZ?lNlHo
zI14-?iy0WWg+Z8+Vb&Z81_lQ95>H=O_WN9tVw?<(B?+kv42+jNT^vI+&d;56HZLep
zr1iSp^FvEHrpT}C6<{~XO`kF=%X%}9%uI_wcRnAPm%<jC{V$|{VEn~m(_naU%91jl
zC1HWDmWnTVdau~xc}_a7nNi{SYv-bFT5HRHnD2aDe0I6HxApDY)l<EmuH5QZw)<}R
z-njhrSF=_|&NtVdb#__#`+wK!wnkM7@;O@=m`Qy#Ka(eT;C1Bs8KS+%+-`mU`}|-6
z!&;LNna5vlYlekot!GGi#-^`6S;V;7OH*U*!mVxBxKvoUemdp8Tm84rUd{1wjNas{
zQ3oU0lX=}13m!_WF#DeLK|A2u4E|u-)-b6+5k;PM36^G#1Lt=he0=_Ru(9cT^}wEw
zM<o{DS6&iickb|q2UWj|!Zg-e?4R*}-pRCiE`?Jj2Q?`?@|WkA=WT!ZbkBl_=-6m|
zk?z+orC+w6yU8SYQ0n&C)MEE}UxW@SSg;=mXL$3@?uO>nuKdX>pU7sv%~f={7v;^M
z(84l<S@UV6$ZC1@c)z%9x8JVc6t`agPE_1I|6iTQ8KyDlSUg|Xk(AajA??|w=@U$q
z0^gQcvEK{YIY;e~7=y+0e<xLqn-40ufB1XEnBl{+YaYow)z@}2%wQ1s9G`0}DAAy-
ibo@-6V!iQab{B^mS0X!DXD~1@FnGH9xvX<aXaWFH)AQc|

literal 164
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3SgWP7?ehEy<aJ++bZkb{K7
z!}Uft9hP75Y%xw_-+0y~N?UH4+rykE4iDQ!o>jj!p6sT-`*wCq)ze_1Q>DB7X6iY`
z&fVtJJ9oBD<cyoAjy=dRv65V)Tbo(x_H=psl2F;H3z}bv`uT@;&NlmdRXVUBC2qBw
S?N0^<1_n=8KbLh*2~7Z0u0P%Y

diff --git a/htdocs/theme/md/img/printer_top.png b/htdocs/theme/md/img/printer_top.png
new file mode 100644
index 0000000000000000000000000000000000000000..6e8bcbf98a57f1c6e80aa31b21e15677e3796778
GIT binary patch
literal 167
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3Sg<axR{hEy;nFJSaYuxMZt
zHV`#6_~YKpo1ztzP~gzab>fl_Pq5@Z#?qui?;Rx7Iu>y#h)eG|YryZ(<}7kGIh-YA
z5s%92jTVyAKT8WRadbor3OQ&v@x5l3=#oolt7cxMG)J*drr5x>MR~?61_r&Y4Y^aM
TuXx44z`)??>gTe~DWM4fo&+)k

literal 0
HcmV?d00001

diff --git a/htdocs/theme/md/img/switch_off.png b/htdocs/theme/md/img/switch_off.png
index ad7e703ccac95afb2a7078f244ab47c1a47c26ac..28a4376fb438b41bee3481e229439c14b55f8e1a 100644
GIT binary patch
literal 1252
zcmeAS@N?(olHy`uVBq!ia0y~yU@&B0VBq6mV_;xt+wdiYfq{XsILO_JVcj{ImkbOH
zY)RhkE)4%caKYZ?lNlHoI14-?iy0WWg+Z8+Vb&Z81_lQ95>H=O_S+otf>r`6@A}Fy
zFtDU}x;Tb-9N#+4Hzy=i<aqt_d%y3UDY3fIpSgTXN6pboTvJ%xm>Pq^Sswc>7D#r9
zkX+1NevH-e@HvTVdN*e8xFE4zW7diYR@H4n6Sr_(;c|U*e9!N+d$re(`kem4%+#e`
zd2;XfxyA2(&M$sv>Hh7VtWAWDSp4d+)pwO1WhlJ2{qFSr(DS_yVisLn7i<0bO5@+h
zt%p{19XCIr<?!mYo3Y6Q>3yxgU0l+R>-Ec<+uGheUiR+J&lSb*`i_~*>pt)&%th*7
zW!~nq`b!e^BeEr>q!w)sxn*Q*+xuNkFtR9o@t?VK)s&umt`xCK-nDDjs-sEP*P<N6
zrc}*mYC3-1cj9i1`Rp5J9RGcLfvZB7j-Kz#*|QJpe|xpRt48K{het+KboAq(l`UJ#
zW;!huQ8Vbsu$i|c%X6+k8)MY!S?&Tck3K|QSjFbJaHX2qbd#!c#^&M+rzr6-tzv4@
z*<GBO@{Ub~gULn3G&gsx=gJTjE%%C*m7&?buUfNYiXR^5_VM%GSXF9%dmEpC#BqJ`
z`qZpfYI?o}dZ~Ap`C3FjJKy=*VtRnD?dxm#3zlDr<Ytsp?V5Qra*NQGYuv}~ul^ps
zXjU`p<!kq*m8^ZYEJiQ5UT?;MgvF75d+WP4m43;)cY^;uZ}H#$*)n!T6a4Ld&B&fy
zfBE)q#%$f6&zKI!&rQ#%nY8a-uS=oNjFXqIUJmy6?hkVM7AE|3r_r$)zrX$Q5|L=`
zIP`@3Y+mST=NSeOM+|;lwp3ep_rcoj{hRB2#l_wA3mzS*_VKx=F#Ys~)CBAH_?o^Q
zLX%IXTK;}2`D;60!IKY;Nzsn2Z9ZxXk{(CB4di++YPL$J;m7(EpN62Oi?>uN{GBro
zN}PT2UU*CClovVqX}fHk!~M;5SAX*HiBX-+Eh%Srdg@2-mc(g`*UPBR&wupi`}2zD
zuO!^q_mq4|m3ybBcgZ^bqMS@em6hb$$xAC|s`T}p^IK+Te>(oMV78a5UaVYdRn@e<
zBzEQJy0^FS7QFbG-mzLVii`Es#HSnA{@qjXBJ$A=r{dzejeqZ5zwB;nA@DihDf?~2
z!@}JA8=H-n?|<-QxB5-H3&*$LuQ{t+`#0y^`^T60?H8!t_pEl;HtV_|r6eu*?6!v3
z?T$qqS1h%rzB1bDWxK<JMQufBz}nJHLA4pD#4En`UjO;#OXj+m*$LMlOy+qf?b5xW
zIzxV@lXjs=yZ3?R20QZk9rHx5Ma@}V8Z&>{=`URzi4uBirf)lbOsw*H@q0tH8UFs8
zFH}fHPChd6tm)?e2QIVBWN20D(+<%Nm8(w@cT{T@Qd}9ua`v6Av&UZfC2~Q}r$x+f
zD$h`r$n|LcCGqh6@glKCex~M2i+m@k1PaWk(u~o%sxe<E?aU;-x15_3@4nu8Zd#Rr
zTVtU2C69?`pUhZwPwDy;<&uZB?oGcujP#dJQCfFoqNMciw`Ubj9CMU-@<H>zc&Edx
zB|Sa=be^8@3O3Wue3d<!SAmy#LB0e7YprzSlG1s%DpGP)r6eV7zwy^~a5cDl98Y9m
PU|{fc^>bP0l+XkKMb1O}

literal 292
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3Sgy!Lc)45?sTd)C&AIZ&kG
z;$xL2DaVsWO>?hZ-00)<=7`aPM{GGq=IbbB_PB~Y;BVq+5;J?}JYB(Vwn%3|x8s(M
z*8AFRzb%UA*XIU?-<%RwyMt%j%GZYu%#1nN|0-xhZL)CTo|hl?c8O0;(B<{DUEE;)
zjPcaGBlp)$NzFRJTCC6P$NEu&^|q-?{2i;7RsM!qHw16LS((`x{eIdCucRwmgzmqt
z*b=)S)k0{oTpR0cqc9uylg>TLmRZ}DCa@oSm%_lE$9nntrEfB~(@f7U%y2uNec%zx
x@6fcvoyE+@UlnQIm~u@uHaI%?<Mn+Er&%+X&FZmJVqjok@O1TaS?83{1OTOkeKG(5

diff --git a/htdocs/theme/md/img/switch_off_old.png b/htdocs/theme/md/img/switch_off_old.png
new file mode 100644
index 0000000000000000000000000000000000000000..ad7e703ccac95afb2a7078f244ab47c1a47c26ac
GIT binary patch
literal 292
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3Sgy!Lc)45?sTd)C&AIZ&kG
z;$xL2DaVsWO>?hZ-00)<=7`aPM{GGq=IbbB_PB~Y;BVq+5;J?}JYB(Vwn%3|x8s(M
z*8AFRzb%UA*XIU?-<%RwyMt%j%GZYu%#1nN|0-xhZL)CTo|hl?c8O0;(B<{DUEE;)
zjPcaGBlp)$NzFRJTCC6P$NEu&^|q-?{2i;7RsM!qHw16LS((`x{eIdCucRwmgzmqt
z*b=)S)k0{oTpR0cqc9uylg>TLmRZ}DCa@oSm%_lE$9nntrEfB~(@f7U%y2uNec%zx
x@6fcvoyE+@UlnQIm~u@uHaI%?<Mn+Er&%+X&FZmJVqjok@O1TaS?83{1OTOkeKG(5

literal 0
HcmV?d00001

diff --git a/htdocs/theme/md/img/switch_on.png b/htdocs/theme/md/img/switch_on.png
index 0f72bfaccd50450154b10e9563966bf74a8d68ab..d4e32d98f57ff37c78bdf1e6b4235e7fb4cefc17 100644
GIT binary patch
literal 1228
zcmeAS@N?(olHy`uVBq!ia0y~yU@&4}VBq6mV_;y&ZTC-SU|?V@4sv&5Sa(k5B?AKk
zTavfC3&Vd9T(EcfWCjKX&H|6fVg?3oVGw3ym^DX&fq{X&#M9T6{WgcZptV8wikRsP
z3@kpLE{-7{$Jb8t&IxsuI9`9>y!hPC^>JR&SzHoIp3KKILYnzGs(lI;YKtFR%k7*L
zv9loY(4kf}y_g*zwk8B8-`HWWf>TP!GeBCN)A2x-k8};=*8bbKtIyB;8FMH4*1e{r
z*E#2AdOoxN|Nr}s^Cy1%`0-($ZFS$$%qssLLvcYfBc6g+kDus^yV=dD`MEIc*YYaQ
zB%c3G>UYnczW>xT>}>wdvmGq@Z}+YK-9Eo2P)$wEucxPH&y^fALt`^Nl}A@DPv<TC
z^jmy~h+p6(U5SroPpWU~oqxRQzuZRKZmkPC&phh)zh|DGdb7{wyk=L@VI>Bama?47
z-*Qi7PF=HN(oQXbDv8n)tD6O^SzK8P1-ZLi1Jos0)tZdmd)hcV)^eB&vm8wIx)pzH
zc4Wc1iOXItGg4BT!Ft4DZ_p_tqm#P?<1Q*HwJ1Fhiint@KHoo}FvE2D`g`sXMrmo!
zS6mTV^;B!^(mBuWC`Gsb>d=Zc)Mn&JQt{NR5Ikt<&XE`_`Er%x(TA6(1cj-ozFx_>
zc){6eIqKJ+Evr0We>nN~e7B>Y&we@Xv*ljW2D>vC8^d>6)VG~}Cu03N`Hghdw9Ow`
z!gg$}P-0=6ulnpPPv}w0@Ae#qDox+}f|fc-ojxL`DAZeJbwcmIhPzvT@xG68Yb}mX
zWS_4-yJh~}%wul+Mpo4g=IiGy&tGwF-^AuQe=ll;1|?k))oEP86xk&{aki70EsMy}
zYX6l}CPui$Tz=DJe0cTqhY!_vZ26-3Jnf!aQ{XhI{x>yUGo|kv-rv=@K21idqHq4K
z<((oSo2(u=e$b9!a%`Qk>>{(pd&AA8X&>YNhKp<osF@U?HT~nXuQPfl&YqarnYC@I
z_U7jjZ|=A4YWexC)N88N*HZ#wt?Q%JZ|?r9arBE)<;6wo!xpb)Os~6I=@g>6#M6D=
z_pZ+0?)UdCZqeZA5_g}Z_G8An!y!EBPR{=xth>f|?tX>*Ww!6($0MZn_`MT9vE^7!
z;nb5)l=<%0_L%YdSThD(ojqgjC8MJGB~MlsuPFT!Z5A0Ndp=x7GwbB8Et+!a^YUje
zx7hR6qF;ZX+wK|9@4Zc~+4zHv)zUA>DE#rKOV8ijEo!N|*{hdUaWd@Y`h|D*ebF=Q
zZz!I7$!N20hJXueaQ})$&vrXqORAa@6MaT>f1%o*L+@hSS9lyt@4db=%|2k^{Pj`q
zFHVWvGsVLEKVP$zm(y0^Cp&bONN;EG6aIY8^8H-pV+FINzwo)gxTm_v<I9Sr6(3*c
zXR=Igh;nM)zvIRqmdy@%x?VxY8&-Z$y~riv-~4(@j@)`r_Lbb}mvnUl7ZpF6KFj;^
zIm=V)_UvTqock<WXIp33gdIkDQ}QGwg*A2ywJp3GKKc5mv%9`eTel}JZ2!@!yRM>V
zHq0>jbLGmF-5q@VygXB!c@h^(3W^FBn^~4FGz<P+>b~p2Wt-_8Gwy7fzCq9a@GhNH
s-rw`YU;biNZhGRKX?Nk4;XiYkf_?8jX6meCU|?YIboFyt=akR{0QR*!A^-pY

literal 257
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3SgobYsU45?r|dd}X9IZ&ka
zWBfDIe=E-zO?u-f{C3jKrj8w~f}Jmvj95ez^$sX4Sg=FVwR}O?Mv3-^V*Fdqe>Z)8
z$MVCmUmo9LcV_M}ne=Dj<0I`>pYLw$>&fMR+dkDRGbiopx23+0pM)k0{$i6j_QsQG
z*++-g-DbK0N5Asy+P8SxuU8w=g<g7_%lGnb3Y2_#nQxB!+{BB^qR%|8;!-*P@v-w4
zDa#L+@5zZa>7Jeus^;~1#+};}E*3uVo%{3E1$&WiF+1|++zO2l-ygjxb8+e2%WD}J
P7#KWV{an^LB{Ts5(*1S^

diff --git a/htdocs/theme/md/img/switch_on_old.png b/htdocs/theme/md/img/switch_on_old.png
new file mode 100644
index 0000000000000000000000000000000000000000..0f72bfaccd50450154b10e9563966bf74a8d68ab
GIT binary patch
literal 257
zcmeAS@N?(olHy`uVBq!ia0y~yU=RXf4i*LmhCj#M?l3SgobYsU45?r|dd}X9IZ&ka
zWBfDIe=E-zO?u-f{C3jKrj8w~f}Jmvj95ez^$sX4Sg=FVwR}O?Mv3-^V*Fdqe>Z)8
z$MVCmUmo9LcV_M}ne=Dj<0I`>pYLw$>&fMR+dkDRGbiopx23+0pM)k0{$i6j_QsQG
z*++-g-DbK0N5Asy+P8SxuU8w=g<g7_%lGnb3Y2_#nQxB!+{BB^qR%|8;!-*P@v-w4
zDa#L+@5zZa>7Jeus^;~1#+};}E*3uVo%{3E1$&WiF+1|++zO2l-ygjxb8+e2%WD}J
P7#KWV{an^LB{Ts5(*1S^

literal 0
HcmV?d00001

diff --git a/htdocs/theme/md/img/title_generic.png b/htdocs/theme/md/img/title_generic.png
index ffb07138f9669b5e595a3ec4a405f62a4e3de894..4f90c63104aba086b4dc5c6a69a7720fc5c262b9 100644
GIT binary patch
literal 138
zcmeAS@N?(olHy`uVBq!ia0y~yU{C>J4i*Lm25-&)VFm_<Ku;IPkP61PmpAe@7>F=m
zj23XsIkH2=dxo6GfnQE8pLW*I^$gyA>Ec<lxU!@guN7@UqN>TwVa%OztS^~gWHvIf
qep*<+w?5*`xutIAGg>>n*&8MnYyJGA($B!az~JfX=d#Wzp$P!FtS=Y<

literal 197
zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-4i*LmhQHi~JPZsBJ)SO(Ar*{oFF0~BIr6w%
zwDRrV{)U-T`P^Q&EwQT}UyD7&@4@|b^LqA+Q+76=+m+3~j{8~(?{V)VnwI^Yx~4G-
z^Ee$uA5CQ{Vqs@sY?$$YL4`p;ScZXxfx)pMU+GOR!%Ag_IgHHq4BzS*cq9xG4jfo)
zVxRONh-sRH#jCdG=BAp?YaRqTch6EgQ_G-flXIbIKhpsQ1_lOCS3j3^P6<r_35!67

diff --git a/htdocs/theme/md/style.css.php b/htdocs/theme/md/style.css.php
index b40c0f3d6c1..4695403aeff 100644
--- a/htdocs/theme/md/style.css.php
+++ b/htdocs/theme/md/style.css.php
@@ -568,12 +568,12 @@ td.showDragHandle {
 #id-left {
 	min-height: 100%;
 	position: relative;
-	width: 193px;
+	width: 213px;
 }
 #id-right {	/* This must stay id-right and not be replaced with echo $right */
 	width: 100%;
 <?php if (GETPOST("optioncss") != 'print') { ?>
-	padding-left: 194px;
+	padding-left: 224px;
 	padding-top: 12px;
 <?php } ?>	
 }
@@ -620,7 +620,7 @@ td.showDragHandle {
 <?php } ?>
 }
 .side-nav-vert {
-	margin-left: 194px;
+	margin-left: 228px;
 }
 
 
@@ -1106,7 +1106,7 @@ div.login_block {
 	text-align: center;
 	vertical-align: middle;
 	background: #FFF;
-	width: 193px;
+	width: 228px;
 	height: 42px;
 	<?php if (GETPOST("optioncss") == 'print') { ?>
 	display: none;
@@ -1188,7 +1188,7 @@ div.vmenu, td.vmenu {
     padding: 0px;
     padding-bottom: 0px;
     padding-top: 0px;
-    width: 174px;
+    width: 222px;
 }
 
 .vmenu {
@@ -1199,7 +1199,7 @@ div.vmenu, td.vmenu {
 }
 
 .vmenusearchselectcombo {
-	width: 170px;
+	width: 202px;
 }
 
 .menu_contenu { padding-top: 4px; padding-bottom: 3px;}
@@ -1234,6 +1234,9 @@ div.blockvmenupair, div.blockvmenuimpair, div.blockvmenubookmarks
     padding-bottom: 10px;
     border-bottom: 1px solid #e0e0e0;
 }
+a.vsmenu.addbookmarkpicto {
+    padding-right: 10px;
+}
 
 div.blockvmenusearch
 {
-- 
GitLab


From 1075940e93fd2625ef8f2eb8e8d100910bd0f338 Mon Sep 17 00:00:00 2001
From: yassine belkaid <yassine.belkaid87@gmail.com>
Date: Sat, 5 Dec 2015 00:37:32 +0000
Subject: [PATCH 095/197] ignore conf/conf.php file

---
 htdocs/.gitignore | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/htdocs/.gitignore b/htdocs/.gitignore
index bf0c3b10ffa..bf6a1487ea6 100644
--- a/htdocs/.gitignore
+++ b/htdocs/.gitignore
@@ -19,4 +19,5 @@
 /dolimed*
 /allscreens*
 /ecommerce/
-/cabinetmed*
\ No newline at end of file
+/cabinetmed*
+/conf/conf.php
\ No newline at end of file
-- 
GitLab


From 8c2227430077912eda24e613af52bec65038be83 Mon Sep 17 00:00:00 2001
From: yassine belkaid <yassine.belkaid87@gmail.com>
Date: Sat, 5 Dec 2015 00:41:00 +0000
Subject: [PATCH 096/197] Fixed assigning exceptional leave for a user

---
 htdocs/holiday/define_holiday.php | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/htdocs/holiday/define_holiday.php b/htdocs/holiday/define_holiday.php
index 62ad088a5ef..5147188872a 100644
--- a/htdocs/holiday/define_holiday.php
+++ b/htdocs/holiday/define_holiday.php
@@ -130,10 +130,15 @@ elseif($action == 'add_event')
         $add_holiday = $holiday->getValueEventCp($event);
         $new_holiday = $nb_holiday + $add_holiday;
 
-        // On ajoute la modification dans le LOG
-        $holiday->addLogCP($user->id,$userCP, $holiday->getNameEventCp($event),$new_holiday);
+        // add event to existing types of vacation
+        foreach ($typeleaves as $key => $leave) {
+        	$vacationTypeID = $leave['rowid'];
 
-        $holiday->updateSoldeCP($userCP,$new_holiday);
+	        // On ajoute la modification dans le LOG
+	        $holiday->addLogCP($user->id,$userCP, $holiday->getNameEventCp($event),$new_holiday, $vacationTypeID);
+
+	        $holiday->updateSoldeCP($userCP,$new_holiday, $vacationTypeID);
+        }
 
 		setEventMessages('AddEventToUserOkCP', '', 'mesgs');
     }
-- 
GitLab


From e002021d7dce4a28d31a40c49970be10f545f743 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Sat, 5 Dec 2015 17:49:08 +0100
Subject: [PATCH 097/197] Fix td balance

---
 htdocs/comm/propal.php           | 38 ++++++++++++++++++--------------
 htdocs/langs/en_US/projects.lang |  1 +
 htdocs/theme/md/style.css.php    | 21 +++++++++++-------
 3 files changed, 35 insertions(+), 25 deletions(-)

diff --git a/htdocs/comm/propal.php b/htdocs/comm/propal.php
index 1ef9953a6d9..9ab3a1967f1 100644
--- a/htdocs/comm/propal.php
+++ b/htdocs/comm/propal.php
@@ -1755,7 +1755,7 @@ if ($action == 'create')
 	if ($action != 'editdate' && ! empty($object->brouillon))
 		print '<td align="right"><a href="' . $_SERVER["PHP_SELF"] . '?action=editdate&amp;id=' . $object->id . '">' . img_edit($langs->trans('SetDate'), 1) . '</a></td>';
 	print '</tr></table>';
-	print '</td><td colspan="3">';
+	print '</td><td colspan="5">';
 	if (! empty($object->brouillon) && $action == 'editdate') {
 		print '<form name="editdate" action="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '" method="post">';
 		print '<input type="hidden" name="token" value="' . $_SESSION ['newtoken'] . '">';
@@ -1781,7 +1781,7 @@ if ($action == 'create')
 	if ($action != 'editecheance' && ! empty($object->brouillon))
 		print '<td align="right"><a href="' . $_SERVER["PHP_SELF"] . '?action=editecheance&amp;id=' . $object->id . '">' . img_edit($langs->trans('SetConditions'), 1) . '</a></td>';
 	print '</tr></table>';
-	print '</td><td colspan="3">';
+	print '</td><td colspan="5">';
 	if (! empty($object->brouillon) && $action == 'editecheance') {
 		print '<form name="editecheance" action="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '" method="post">';
 		print '<input type="hidden" name="token" value="' . $_SESSION ['newtoken'] . '">';
@@ -1809,7 +1809,7 @@ if ($action == 'create')
 	if ($action != 'editconditions' && ! empty($object->brouillon))
 		print '<td align="right"><a href="' . $_SERVER["PHP_SELF"] . '?action=editconditions&amp;id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetConditions'), 1) . '</a></td>';
 	print '</tr></table>';
-	print '</td><td colspan="3">';
+	print '</td><td colspan="5">';
 	if ($action == 'editconditions') {
 		$form->form_conditions_reglement($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->cond_reglement_id, 'cond_reglement_id');
 	} else {
@@ -1822,7 +1822,7 @@ if ($action == 'create')
 	$langs->load('deliveries');
 	print '<tr><td>';
 	print $form->editfieldkey($langs->trans('DeliveryDate'), 'date_livraison', $object->date_livraison, $object, $user->rights->propal->creer);
-	print '</td><td colspan="3">';
+	print '</td><td colspan="5">';
 	print $form->editfieldval($langs->trans('DeliveryDate'), 'date_livraison', $object->date_livraison, $object, $user->rights->propal->creer, 'day');
 	print '</td>';
 	print '</tr>';
@@ -1837,7 +1837,7 @@ if ($action == 'create')
 	if ($action != 'editavailability' && ! empty($object->brouillon))
 		print '<td align="right"><a href="' . $_SERVER["PHP_SELF"] . '?action=editavailability&amp;id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetAvailability'), 1) . '</a></td>';
 	print '</tr></table>';
-	print '</td><td colspan="3">';
+	print '</td><td colspan="5">';
 	if ($action == 'editavailability') {
 		$form->form_availability($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->availability_id, 'availability_id', 1);
 	} else {
@@ -1856,7 +1856,7 @@ if ($action == 'create')
         if ($action != 'editshippingmethod' && $user->rights->propal->creer)
             print '<td align="right"><a href="'.$_SERVER["PHP_SELF"].'?action=editshippingmethod&amp;id='.$object->id.'">'.img_edit($langs->trans('SetShippingMode'),1).'</a></td>';
         print '</tr></table>';
-        print '</td><td colspan="3">';
+        print '</td><td colspan="5">';
         if ($action == 'editshippingmethod') {
             $form->formSelectShippingMethod($_SERVER['PHP_SELF'].'?id='.$object->id, $object->shipping_method_id, 'shipping_method_id', 1);
         } else {
@@ -1874,7 +1874,7 @@ if ($action == 'create')
 	if ($action != 'editdemandreason' && ! empty($object->brouillon))
 		print '<td align="right"><a href="' . $_SERVER["PHP_SELF"] . '?action=editdemandreason&amp;id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetDemandReason'), 1) . '</a></td>';
 	print '</tr></table>';
-	print '</td><td colspan="3">';
+	print '</td><td colspan="5">';
 	if ($action == 'editdemandreason') {
 		$form->formInputReason($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->demand_reason_id, 'demand_reason_id', 1);
 	} else {
@@ -1892,7 +1892,7 @@ if ($action == 'create')
 	if ($action != 'editmode' && ! empty($object->brouillon))
 		print '<td align="right"><a href="' . $_SERVER["PHP_SELF"] . '?action=editmode&amp;id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetMode'), 1) . '</a></td>';
 	print '</tr></table>';
-	print '</td><td colspan="3">';
+	print '</td><td colspan="5">';
 	if ($action == 'editmode') {
 		$form->form_modes_reglement($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->mode_reglement_id, 'mode_reglement_id');
 	} else {
@@ -1912,7 +1912,7 @@ if ($action == 'create')
 			if ($action != 'classify')
 				print '<td align="right"><a href="' . $_SERVER['PHP_SELF'] . '?action=classify&amp;id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetProject')) . '</a></td>';
 			print '</tr></table>';
-			print '</td><td colspan="3">';
+			print '</td><td colspan="5">';
 			if ($action == 'classify') {
 				$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1);
 			} else {
@@ -1941,7 +1941,7 @@ if ($action == 'create')
 		// Outstanding Bill
 		print '<tr><td>';
 		print $langs->trans('OutstandingBill');
-		print '</td><td align=right colspan=3>';
+		print '</td><td align="right" colspan="5">';
 		print price($soc->get_OutstandingBill()) . ' / ';
 		print price($soc->outstanding_limit, 0, $langs, 1, - 1, - 1, $conf->currency);
 		print '</td>';
@@ -1958,7 +1958,7 @@ if ($action == 'create')
 	    if ($action != 'editbankaccount' && $user->rights->propal->creer)
 	        print '<td align="right"><a href="'.$_SERVER["PHP_SELF"].'?action=editbankaccount&amp;id='.$object->id.'">'.img_edit($langs->trans('SetBankAccount'),1).'</a></td>';
 	    print '</tr></table>';
-	    print '</td><td colspan="3">';
+	    print '</td><td colspan="5">';
 	    if ($action == 'editbankaccount') {
 	        $form->formSelectAccount($_SERVER['PHP_SELF'].'?id='.$object->id, $object->fk_account, 'fk_account', 1);
 	    } else {
@@ -1979,7 +1979,7 @@ if ($action == 'create')
         else print '&nbsp;';
         print '</td></tr></table>';
         print '</td>';
-        print '<td colspan="3">';
+        print '<td colspan="5">';
 		if ($action != 'editincoterm')
 		{
 			print $form->textwithpicto($object->display_incoterms(), $object->libelle_incoterms, 1);
@@ -1992,16 +1992,20 @@ if ($action == 'create')
 	}
 
 	// Other attributes
-	$cols = 3;
+	$cols = 5;
 	include DOL_DOCUMENT_ROOT . '/core/tpl/extrafields_view.tpl.php';
 
 	// Amount HT
-	print '<tr><td height="10" width="25%">' . $langs->trans('AmountHT') . '</td>';
+	print '<tr><td height="10">' . $langs->trans('AmountHT') . '</td>';
 	print '<td class="nowrap" colspan="2">' . price($object->total_ht, '', $langs, 0, - 1, - 1, $conf->currency) . '</td>';
 
 	// Margin Infos
-	if (! empty($conf->margin->enabled)) {
-		print '<td valign="top" width="50%" rowspan="4">';
+	if (! empty($conf->margin->enabled)) 
+	{
+	    $rowspan=4;
+	    if ($mysoc->localtax1_assuj == "1" || $object->total_localtax1 != 0) $rowspan++;
+	    if ($mysoc->localtax2_assuj == "1" || $object->total_localtax2 != 0) $rowspan++;
+		print '<td valign="top" width="50%" colspan="3" rowspan="'.$rowspan.'">';
 		$formmargin->displayMarginInfos($object);
 		print '</td>';
 	}
@@ -2017,7 +2021,7 @@ if ($action == 'create')
 	{
 		print '<tr><td height="10">' . $langs->transcountry("AmountLT1", $mysoc->country_code) . '</td>';
 		print '<td class="nowrap" colspan="2">' . price($object->total_localtax1, '', $langs, 0, - 1, - 1, $conf->currency) . '</td>';
-		print '<td></td></tr>';
+		print '</tr>';
 	}
 	if ($mysoc->localtax2_assuj == "1" || $object->total_localtax2 != 0) 	// Localtax2
 	{
diff --git a/htdocs/langs/en_US/projects.lang b/htdocs/langs/en_US/projects.lang
index 505f6bce8e5..c82d651a01d 100644
--- a/htdocs/langs/en_US/projects.lang
+++ b/htdocs/langs/en_US/projects.lang
@@ -180,6 +180,7 @@ YouCanCompleteRef=If you want to complete the ref with some information (to use
 OpenedProjectsByThirdparties=Opened projects by thirdparties
 OpportunityTotalAmount=Opportunities total amount
 OpportunityPonderatedAmount=Opportunities weighted amount
+OpportunityPonderatedAmountDesc=Opportunities amount weighted with probability (depending on status of opportunity)
 OppStatusPROSP=Prospection
 OppStatusQUAL=Qualification
 OppStatusPROPO=Proposal
diff --git a/htdocs/theme/md/style.css.php b/htdocs/theme/md/style.css.php
index 4695403aeff..e983a16f3f9 100644
--- a/htdocs/theme/md/style.css.php
+++ b/htdocs/theme/md/style.css.php
@@ -572,8 +572,9 @@ td.showDragHandle {
 }
 #id-right {	/* This must stay id-right and not be replaced with echo $right */
 	width: 100%;
+	padding-bottom: 10px;
 <?php if (GETPOST("optioncss") != 'print') { ?>
-	padding-left: 224px;
+	padding-left: 229px;
 	padding-top: 12px;
 <?php } ?>	
 }
@@ -626,7 +627,7 @@ td.showDragHandle {
 
 div.fiche {
 	margin-<?php print $left; ?>: <?php print (GETPOST("optioncss") == 'print'?6:((empty($conf->global->MAIN_MENU_USE_JQUERY_LAYOUT))?($dol_hide_leftmenu?'4':'20'):'24')); ?>px;
-	margin-<?php print $right; ?>: <?php print (GETPOST("optioncss") == 'print'?8:(empty($conf->dol_optimize_smallscreen)?'12':'4')); ?>px;
+	margin-<?php print $right; ?>: <?php print (GETPOST("optioncss") == 'print'?8:(empty($conf->dol_optimize_smallscreen)?'16':'4')); ?>px;
 	<?php if (! empty($conf->dol_hide_leftmenu) && ! empty($conf->dol_hide_topmenu)) print 'margin-top: 4px;'; ?>
 	margin-bottom: 15px;
 }
@@ -837,14 +838,19 @@ li.tmenu, li.tmenusel {
 	font-weight: normal;
 }
 li.tmenusel, li.tmenu:hover {
+/*
     background-image: -o-linear-gradient(bottom, rgba(250,250,250,0.3) 0%, rgba(0,0,0,0.3) 100%) !important;
     background-image: -moz-linear-gradient(bottom, rgba(0,0,0,0.5) 0%, rgba(250,250,250,0) 100%) !important;
     background-image: -webkit-linear-gradient(bottom, rgba(0,0,0,0.3) 0%, rgba(250,250,250,0) 100%) !important;
     background-image: -ms-linear-gradient(bottom, rgba(250,250,250,0.3) 0%, rgba(0,0,0,0.3) 100%) !important;
     background-image: linear-gradient(bottom, rgba(250,250,250,0.3) 0%, rgba(0,0,0,0.3) 100%) !important;
 	background: rgb(<?php echo $colorbackhmenu1 ?>);
+*/
 	/* background: url(<?php echo dol_buildpath($path.'/theme/'.$theme.'/img/nav-overlay3.png',1); ?>) 50% 0 repeat-x !important; Nicer but problem when menu wrap on 2 lines */
 }
+li.tmenusel, li.tmenu:hover {
+	opacity: .50; /* show only a slight shadow */
+}
 .tmenuend .tmenuleft { width: 0px; }
 /* .tmenuend { display: none; } */
 div.tmenuleft
@@ -2256,7 +2262,6 @@ div.liste_titre_bydiv {
 	border-collapse: collapse;
 	display: table;
 	padding: 2px 0px 2px 0;
-	box-shadow: 2px 2px 4px #CCC;
 	width: calc(100% - 1px);	/* 1px more, i don't know why */
 }
 tr.liste_titre, tr.liste_titre_sel, form.liste_titre, form.liste_titre_sel, table.dataTable.tr
@@ -2723,10 +2728,10 @@ img.datecallink { padding-left: 2px !important; padding-right: 2px !important; }
 table.dp {
     width: 180px;
     background-color: #FFFFFF;
-    border-top: solid 2px #f4f4f4;
+    /*border-top: solid 2px #f4f4f4;
     border-<?php print $left; ?>: solid 2px #f4f4f4;
     border-<?php print $right; ?>: solid 1px #222222;
-    border-bottom: solid 1px #222222;
+    border-bottom: solid 1px #222222; */
     padding: 0px;
 	border-spacing: 0px;
 	border-collapse: collapse;
@@ -2735,7 +2740,7 @@ table.dp {
 /* Barre titre */
 .dpHead,.tpHead,.tpHour td:Hover .tpHead{
 	font-weight:bold;
-	background-color:#b3c5cc;
+	background-color: #888;
 	color:white;
 	font-size:11px;
 	cursor:auto;
@@ -2743,7 +2748,7 @@ table.dp {
 /* Barre navigation */
 .dpButtons,.tpButtons {
 	text-align:center;
-	background-color:#617389;
+	background-color: #888;
 	color:#FFFFFF;
 	font-weight:bold;
 	cursor:pointer;
@@ -2778,7 +2783,7 @@ table.dp {
     padding:0px;
     font-size:9px;
     border-width:0px;
-    color:#0B63A2;
+    color: #eee;
     vertical-align:middle;
     cursor: pointer;
 }
-- 
GitLab


From ff4f1e7a5be7becb0a1de96a8c7cd47cbc942c59 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Sat, 5 Dec 2015 19:20:39 +0100
Subject: [PATCH 098/197] Debug 3.9

---
 htdocs/bookmarks/card.php                     |   6 +-
 htdocs/core/class/html.formfile.class.php     |   8 +-
 htdocs/core/lib/company.lib.php               |   9 +-
 htdocs/core/tpl/resource_view.tpl.php         |   9 +-
 htdocs/expensereport/list.php                 |   4 +-
 htdocs/projet/card.php                        |   8 +-
 htdocs/resource/element_resource.php          | 108 ++++++++++--------
 htdocs/theme/common/gmap.png                  | Bin 675 -> 358 bytes
 htdocs/theme/eldy/style.css.php               |   2 +-
 .../theme/md/img/object_category-expanded.png | Bin 104 -> 198 bytes
 htdocs/theme/md/img/object_category.png       | Bin 99 -> 104 bytes
 htdocs/theme/md/style.css.php                 |  80 ++++---------
 12 files changed, 104 insertions(+), 130 deletions(-)

diff --git a/htdocs/bookmarks/card.php b/htdocs/bookmarks/card.php
index daacc4ca4da..62b4ccddce6 100644
--- a/htdocs/bookmarks/card.php
+++ b/htdocs/bookmarks/card.php
@@ -1,6 +1,6 @@
 <?php
 /* Copyright (C) 2001-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
- * Copyright (C) 2005-2013 Laurent Destailleur  <eldy@users.sourceforge.net>
+ * Copyright (C) 2005-2015 Laurent Destailleur  <eldy@users.sourceforge.net>
  * Copyright (C) 2014      Marcos García        <marcosgdf@gmail.com>
  *
  * This program is free software; you can redistribute it and/or modify
@@ -165,7 +165,7 @@ if ($action == 'create')
 	print '</td><td class="hideonsmartphone">'.$langs->trans("ChooseIfANewWindowMustBeOpenedOnClickOnBookmark").'</td></tr>';
 
 	print '<tr><td>'.$langs->trans("Owner").'</td><td>';
-	$form->select_dolusers(isset($_POST['userid'])?$_POST['userid']:$user->id,'userid',1);
+	print $form->select_dolusers(isset($_POST['userid'])?$_POST['userid']:$user->id,'userid',1);
 	print '</td><td class="hideonsmartphone">&nbsp;</td></tr>';
 
 	// Position
@@ -262,7 +262,7 @@ if ($id > 0 && ! preg_match('/^add/i',$action))
 	print '<tr><td>'.$langs->trans("Owner").'</td><td>';
 	if ($action == 'edit' && $user->admin)
 	{
-		$form->select_dolusers(isset($_POST['userid'])?$_POST['userid']:($bookmark->fk_user?$bookmark->fk_user:''),'userid',1);
+		print $form->select_dolusers(isset($_POST['userid'])?$_POST['userid']:($bookmark->fk_user?$bookmark->fk_user:''),'userid',1);
 	}
 	else
 	{
diff --git a/htdocs/core/class/html.formfile.class.php b/htdocs/core/class/html.formfile.class.php
index c539efa5a9b..1226d3b35ba 100644
--- a/htdocs/core/class/html.formfile.class.php
+++ b/htdocs/core/class/html.formfile.class.php
@@ -176,18 +176,18 @@ class FormFile
 	            $out .= '<input type="hidden" id="'.$htmlname.'_link_section_id"  name="link_section_id" value="'.$sectionid.'">';
 	            $out .= '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
 
-	            $out .= '<div>';
-	            $out .= '<div class="float" style="padding-right: 10px;">';
+	            $out .= '<div class="valignmiddle" >';
+	            $out .= '<div class="inline-block" style="padding-right: 10px;">';
 	            if (! empty($conf->global->OPTIMIZEFORTEXTBROWSER)) $out .= '<label for="link">'.$langs->trans("URLToLink") . ':</label> ';
 	            $out .= '<input type="text" name="link" size="'.$maxlength.'" id="link" placeholder="'.dol_escape_htmltag($langs->trans("URLToLink")).'">';
 	            $out .= '</div>';
-	            $out .= '<div class="float" style="padding-right: 10px;">';
+	            $out .= '<div class="inline-block" style="padding-right: 10px;">';
 	            if (! empty($conf->global->OPTIMIZEFORTEXTBROWSER)) $out .= '<label for="label">'.$langs->trans("Label") . ':</label> ';
 	            $out .= '<input type="text" name="label" id="label" placeholder="'.dol_escape_htmltag($langs->trans("Label")).'">';
 	            $out .= '<input type="hidden" name="objecttype" value="' . $object->element . '">';
 	            $out .= '<input type="hidden" name="objectid" value="' . $object->id . '">';
 	            $out .= '</div>';
-	            $out .= '<div class="float" style="padding-right: 10px;">';
+	            $out .= '<div class="inline-block" style="padding-right: 10px;">';
 	            $out .= '<input type="submit" class="button" name="linkit" value="'.$langs->trans("ToLink").'"';
 	            $out .= (empty($conf->global->MAIN_UPLOAD_DOC) || empty($perm)?' disabled':'');
 	            $out .= '>';
diff --git a/htdocs/core/lib/company.lib.php b/htdocs/core/lib/company.lib.php
index 70988d7e330..c7b370b287f 100644
--- a/htdocs/core/lib/company.lib.php
+++ b/htdocs/core/lib/company.lib.php
@@ -658,6 +658,7 @@ function show_contacts($conf,$langs,$db,$object,$backtopage='')
 	if ($num || (GETPOST('button_search') || GETPOST('button_search.x') || GETPOST('button_search_x')))
     {
         print '<tr class="liste_titre">';
+        
         // Name - Position
         print '<td class="liste_titre">';
         print '<input type="text" class="flat" name="search_name" size="20" value="'.$search_name.'">';
@@ -766,10 +767,8 @@ function show_contacts($conf,$langs,$db,$object,$backtopage='')
 
     print '</form>'."\n";
 
-    print "<br>\n";
-?>
-<div id="dialog" title="<?php echo dol_escape_htmltag($langs->trans('Address')); ?>" style="display: none;"></div>
-<?php
+    // A div for the address popup
+    print '<div id="dialog" title="'.dol_escape_htmltag($langs->trans('Address')).'" style="display: none;"></div>';
 
     return $i;
 }
@@ -1343,7 +1342,7 @@ function show_actions_done($conf,$langs,$db,$object,$objcon='',$noprint=0)
             $i++;
         }
         $out.="</table>\n";
-        $out.="<br>\n";
+        //$out.="<br>\n";
     }
 
     if ($noprint) return $out;
diff --git a/htdocs/core/tpl/resource_view.tpl.php b/htdocs/core/tpl/resource_view.tpl.php
index a5e5ab21919..dd775662db6 100644
--- a/htdocs/core/tpl/resource_view.tpl.php
+++ b/htdocs/core/tpl/resource_view.tpl.php
@@ -37,7 +37,10 @@ if( (array) $linked_resources && count($linked_resources) > 0)
 	{
 		$var=!$var;
 		$object_resource = fetchObjectByElement($linked_resource['resource_id'],$linked_resource['resource_type']);
-		if($mode == 'edit' && $linked_resource['rowid'] == GETPOST('lineid'))
+		
+		//$element_id = $linked_resource['rowid'];
+		
+		if ($mode == 'edit' && $linked_resource['rowid'] == GETPOST('lineid'))
 		{
 
 			print '<form class="tagtr '.($var==true?'pair':'impair').'" action="'.$_SERVER["PHP_SELF"].'?element='.$element.'&element_id='.$element_id.'" method="POST">';
@@ -58,7 +61,7 @@ if( (array) $linked_resources && count($linked_resources) > 0)
 		else
 		{
 			$style='';
-			if($linked_resource['rowid'] == GETPOST('lineid'))
+			if ($linked_resource['rowid'] == GETPOST('lineid'))
 				$style='style="background: orange;"';
 
 			print '<div class="tagtr '.($var==true?"pair":"impair").'" '.$style.'>';
@@ -91,8 +94,6 @@ if( (array) $linked_resources && count($linked_resources) > 0)
 
 			print '</div>';
 		}
-
-
 	}
 
 	print '</div>';
diff --git a/htdocs/expensereport/list.php b/htdocs/expensereport/list.php
index 10b19d66da3..c59a594b5a6 100644
--- a/htdocs/expensereport/list.php
+++ b/htdocs/expensereport/list.php
@@ -79,7 +79,7 @@ $fieldstosearchall = array(
  * View
  */
 
-$html = new Form($db);
+$form = new Form($db);
 $formother = new FormOther($db);
 $expensereporttmp=new ExpenseReport($db);
 
@@ -247,7 +247,7 @@ if ($resql)
 	// User
 	if ($user->rights->expensereport->readall || $user->rights->expensereport->lire_tous){
 		print '<td class="liste_titre" align="left">';
-		$html->select_dolusers($search_user,"search_user",1,"",0,'');
+		print $form->select_dolusers($search_user,"search_user",1,"",0,'');
 		print '</td>';
 	} else {
 		print '<td class="liste_titre">&nbsp;</td>';
diff --git a/htdocs/projet/card.php b/htdocs/projet/card.php
index 51939d8e9fc..463cda3953c 100644
--- a/htdocs/projet/card.php
+++ b/htdocs/projet/card.php
@@ -507,13 +507,13 @@ if ($action == 'create' && $user->rights->projet->creer)
 
 	    // Opportunity amount
 	    print '<tr><td>'.$langs->trans("OpportunityAmount").'</td>';
-	    print '<td><input size="4" type="text" name="opp_amount" value="'.(GETPOST('opp_amount')!=''?price(GETPOST('opp_amount')):'').'"></td>';
+	    print '<td><input size="5" type="text" name="opp_amount" value="'.(GETPOST('opp_amount')!=''?price(GETPOST('opp_amount')):'').'"></td>';
 	    print '</tr>';
     }
 
 	// Budget
 	print '<tr><td>'.$langs->trans("Budget").'</td>';
-	print '<td><input size="6" type="text" name="budget_amount" value="'.(GETPOST('budget_amount')!=''?price(GETPOST('budget_amount')):'').'"></td>';
+	print '<td><input size="5" type="text" name="budget_amount" value="'.(GETPOST('budget_amount')!=''?price(GETPOST('budget_amount')):'').'"></td>';
 	print '</tr>';
 
     // Description
@@ -672,13 +672,13 @@ else
 
 		    // Opportunity amount
 		    print '<tr><td>'.$langs->trans("OpportunityAmount").'</td>';
-		    print '<td><input size="6" type="text" name="opp_amount" value="'.(isset($_POST['opp_amount'])?GETPOST('opp_amount'):(strcmp($object->opp_amount,'')?price($object->opp_amount):'')).'"></td>';
+		    print '<td><input size="5" type="text" name="opp_amount" value="'.(isset($_POST['opp_amount'])?GETPOST('opp_amount'):(strcmp($object->opp_amount,'')?price($object->opp_amount):'')).'"></td>';
 		    print '</tr>';
 	    }
 
 	    // Budget
 	    print '<tr><td>'.$langs->trans("Budget").'</td>';
-	    print '<td><input size="6" type="text" name="budget_amount" value="'.(isset($_POST['budget_amount'])?GETPOST('budget_amount'):(strcmp($object->budget_amount,'')?price($object->budget_amount):'')).'"></td>';
+	    print '<td><input size="5" type="text" name="budget_amount" value="'.(isset($_POST['budget_amount'])?GETPOST('budget_amount'):(strcmp($object->budget_amount,'')?price($object->budget_amount):'')).'"></td>';
 	    print '</tr>';
 
 	    // Description
diff --git a/htdocs/resource/element_resource.php b/htdocs/resource/element_resource.php
index 5c2414d22a2..21dad5afa05 100644
--- a/htdocs/resource/element_resource.php
+++ b/htdocs/resource/element_resource.php
@@ -49,7 +49,7 @@ $hookmanager->initHooks(array('element_resource'));
 $object->available_resources = array('resource');
 
 // Get parameters
-$id			= GETPOST('id','int');
+$id			    = GETPOST('id','int');
 $action			= GETPOST('action','alpha');
 $mode			= GETPOST('mode','alpha');
 $lineid			= GETPOST('lineid','int');
@@ -61,30 +61,40 @@ $busy 			= GETPOST('busy','int');
 $mandatory 		= GETPOST('mandatory','int');
 $cancel			= GETPOST('cancel','alpha');
 $confirm        = GETPOST('confirm','alpha');
+$socid          = GETPOST('socid','int');
 
+if ($socid > 0) 
+{
+    $element_id = $socid;
+    $element = 'societe';
+}
 
+    
+    
 /*
  * Actions
  */
 
 if ($action == 'add_element_resource' && ! $cancel)
 {
-	$objstat = fetchObjectByElement($element_id, $element);
+	$error++;
 	$res = 0;
-	if ($resource_id > 0)
+	if (! ($resource_id > 0))
 	{
-		$res = $objstat->add_element_resource($resource_id, $resource_type, $busy, $mandatory);
+	    $error++;
+        setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Resource")), null, 'errors');
+        $action='';
 	}
-	if ($res > 0)
+	else
 	{
-		setEventMessage($langs->trans('ResourceLinkedWithSuccess'),'mesgs');
-		header("Location: ".$_SERVER['PHP_SELF'].'?element='.$element.'&element_id='.$element_id);
-		exit;
+        $objstat = fetchObjectByElement($element_id, $element);
+	   
+        $res = $objstat->add_element_resource($resource_id, $resource_type, $busy, $mandatory);
 	}
-	else
+	if (! $error && $res > 0)
 	{
-		setEventMessage($langs->trans('ErrorWhenLinkingResource') . " " . $objstat->error, 'errors');
-		header("Location: ".$_SERVER['PHP_SELF'].'?mode=add&resource_type='.$resource_type.'&element='.$element.'&element_id='.$element_id);
+		setEventMessage($langs->trans('ResourceLinkedWithSuccess'),'mesgs');
+		header("Location: ".$_SERVER['PHP_SELF'].'?element='.$element.'&element_id='.$element_id);
 		exit;
 	}
 }
@@ -103,7 +113,7 @@ if ($action == 'update_linked_resource' && $user->rights->resource->write && !GE
 		if ($result >= 0)
 		{
 			setEventMessage($langs->trans('RessourceLineSuccessfullyUpdated'));
-			Header("Location: ".$_SERVER['PHP_SELF']."?element=".$element."&element_id=".$element_id);
+			header("Location: ".$_SERVER['PHP_SELF']."?element=".$element."&element_id=".$element_id);
 			exit;
 		}
 		else {
@@ -115,25 +125,18 @@ if ($action == 'update_linked_resource' && $user->rights->resource->write && !GE
 // Delete a resource linked to an element
 if ($action == 'confirm_delete_linked_resource' && $user->rights->resource->delete && $confirm === 'yes')
 {
-	$res = $object->fetch($id);
-	if($res > 0)
-	{
-            $result = $object->delete_resource($lineid,$element);
-
-            if ($result >= 0)
-            {
-                    setEventMessage($langs->trans('RessourceLineSuccessfullyDeleted'));
-                    Header("Location: ".$_SERVER['PHP_SELF']."?element=".$element."&element_id=".$element_id);
-                    exit;
-            }
-            else {
-                    setEventMessage($object->error,'errors');
-            }
-	}
-	else
-	{
-		setEventMessage($object->error,'errors');
-	}
+    $result = $object->delete_resource($lineid,$element);
+
+    if ($result >= 0)
+    {
+        setEventMessage($langs->trans('RessourceLineSuccessfullyDeleted'));
+        header("Location: ".$_SERVER['PHP_SELF']."?element=".$element."&element_id=".$element_id);
+        exit;
+    }
+    else 
+    {
+        setEventMessage($object->error,'errors');
+    }
 }
 
 $parameters=array('resource_id'=>$resource_id);
@@ -178,12 +181,13 @@ else
 	/*
 	 * Specific to agenda module
 	 */
-	if($element_id && $element == 'action')
+	if ($element_id && $element == 'action')
 	{
 		require_once DOL_DOCUMENT_ROOT.'/core/lib/agenda.lib.php';
 
 		$act = fetchObjectByElement($element_id,$element);
-		if(is_object($act)) {
+		if (is_object($act)) 
+		{
 
 			$head=actions_prepare_head($act);
 
@@ -219,26 +223,36 @@ else
 	if ($element_id && $element == 'societe')
 	{
 		$socstatic = fetchObjectByElement($element_id,$element);
-		if (is_object($socstatic)) {
+		if (is_object($socstatic)) 
+		{
+		    $savobject = $object;
+		    
+		    $object = $socstatic;
+		    
 			require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
 			$head = societe_prepare_head($socstatic);
 
 			dol_fiche_head($head, 'resources', $langs->trans("ThirdParty"),0,'company');
 
-			// Affichage fiche action en mode visu
-			print '<table class="border" width="100%">';
-
-			//$linkback = '<a href="'.DOL_URL_ROOT.'/comm/action/listactions.php">'.$langs->trans("BackToList").'</a>';
-
-			// Name
-	        print '<tr><td width="25%">'.$langs->trans('ThirdPartyName').'</td>';
-	        print '<td colspan="3">';
-	        print $form->showrefnav($socstatic, 'socid', '', ($user->societe_id?0:1), 'rowid', 'nom');
-	        print '</td>';
-	        print '</tr>';
+            dol_banner_tab($socstatic, 'socid', '', ($user->societe_id?0:1), 'rowid', 'nom');
+                
+        	print '<div class="fichecenter">';
+        
+            print '<div class="underbanner clearboth"></div>';
+        	print '<table class="border" width="100%">';
+        
+        	// Alias name (commercial, trademark or alias name)
+        	print '<tr><td class="titelfield">'.$langs->trans('AliasNames').'</td><td colspan="3">';
+        	print $socstatic->name_alias;
+        	print "</td></tr>";
+			
 			print '</table>';
 
+			print '</div>';
+			
 			dol_fiche_end();
+			
+			$object = $savobject;
 		}
 	}
 
@@ -248,7 +262,7 @@ else
 
 
 
-		foreach ($object->available_resources as $modresources => $resources)
+	foreach ($object->available_resources as $modresources => $resources)
 	{
 		$resources=(array) $resources;	// To be sure $resources is an array
 		foreach($resources as $resource_obj)
@@ -273,7 +287,7 @@ else
 			{
 				$res=include DOL_DOCUMENT_ROOT . '/core/tpl/resource_add.tpl.php';
 			}
-
+            //var_dump($element_id);
 
 			if ($mode != 'add' || $resource_obj != $resource_type)
 			{
diff --git a/htdocs/theme/common/gmap.png b/htdocs/theme/common/gmap.png
index 0423a91295654c414c56ff401e1b03257fb2c45e..201577281f048ad530a5ffc90ae5ddcde1ea09cb 100644
GIT binary patch
literal 358
zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7bv<1iLoEE)PHOZ$Y#`wJ
zI)x#DX%l0h5ko4omE&f{RHjRu2`xs98yqDRCYop5Y~Y*FQa-ge<~x&+Qjp5;eed7>
zuTM`q6+Z2$?nCQ;JDX?kdw>1fEw#G5M+_&Wlf2h{u;_ce?)57HYpn-X`#&U{e_SQe
z7G60=#WS_1a)Pl>o|Bq8YuBQTiVELPwsYql@=MU(;J%^UKtET^SR!^h_pX{Y)=xI)
zFPYr+T9bSG{ht5248GiFwa@Boh^qPF>txX=+P2qHc)CjU_xTe8Dl3D7FD!eJ%*`dU
zO!@vvIfqjB?Wa3!e<U#7d?Ls3VC%oki7K6ibB))@9^bs;gq;7TiaqK=GTnzSwXkk^
z8f5#yvrhY|T>m?Few&UdGMc@27TUG%x>^&c%A%uX`S_2U_p}@0AMED|@+a$6GB7YO
Nc)I$ztaD0e0stNsm3;sJ

literal 675
zcmeAS@N?(olHy`uVBq!ia0y~yVBlt8U=ZM7V_;x7u(!32fq{V~-O<;Pfnj4m_n$;o
z1_lPUByV>YhW{YAVDIwD3=9mM1s;*b3=G`DAk4@xYmNj10|R@Br>`sfeJ%lBHQt6r
z>gyO77$i$vBTAg}b8}PkN*J7rQWHy3QxwWGOEMJPJ$(bh8~MZ;7#M$hx;TbtoNqnl
z?;#S%(D3p7+1WS4P9F))$`urE<#SB@(!NPSd5`2luML7Oa!qTzowhtwv{KpHqU3U8
zsq^+1Vmc)+f))lkPE=YnX{G7QTl4SUxtekB%<Stcy9569$<Jqa@$Ow(Mn=cF)8S>?
z-8@3w-aJ{gQSIKzQ|;f^eLa_EB)RFP&Z5POn`88jfBpRY-MkK0{hXB@NjdDAs_WX8
zYdiYq-#>dWM5~oy#|*oh#aj){9(c1qym7;?CEyl^=ER_)^o1o4!u}t~=3a306T6Ln
z<N6s|(<JBoajAPM?v}mfnu+@wL5A+OXK$^Qm>z3;?YI4P?D-6xX(#>8I140fNlR~?
za{SWr)w$EAZ~Y{ac;w(jwxu>U-VY+03_b`pEN6NaW4=YRc7Ely4_B?P&bg7mU9n;H
z#O<r)*tZ`$@ZIph<Ci~=&V2YhmHWZP<44zZ1tizBa@2eab>*Du|3X`4tz@Y<AM=R_
zonz0JF8#P^LVDC|v+D{B%p3v-mQGL3pVzZzmu&y>ja;ov4BwaE`S#MO^FsIxhr}u8
zfAr7ish?rXG~xX7iGQB1PKpy=CbZRktDyvAdi);$`og<`*Sd~BX1MszSvO7TZeHG&
zx8V%FzP^7h&uhz_x$&G?^7SiapX@tbm=;ODE_z#S>R>c8CH89Q?0t+P-ABJZ|MlzF
h<EKTDYu?r~v<BaL{-x!99s>gdgQu&X%Q~loCIGZ|Ftz{y

diff --git a/htdocs/theme/eldy/style.css.php b/htdocs/theme/eldy/style.css.php
index 0c778179606..bb00659f171 100644
--- a/htdocs/theme/eldy/style.css.php
+++ b/htdocs/theme/eldy/style.css.php
@@ -64,7 +64,7 @@ $theme='eldy';	// Value of theme
 if (! empty($conf->global->MAIN_OVERWRITE_THEME_RES)) { $path='/'.$conf->global->MAIN_OVERWRITE_THEME_RES; $theme=$conf->global->MAIN_OVERWRITE_THEME_RES; }
 
 // Define image path files and other constants
-$fontlist='arial,tahoma,verdana,helvetica';    //$fontlist='Helvetica, Verdana, Arial, sans-serif';
+$fontlist='roboto,arial,tahoma,verdana,helvetica';    //$fontlist='helvetica, verdana, arial, sans-serif';
 $img_head='';
 $img_button=dol_buildpath($path.'/theme/'.$theme.'/img/button_bg.png',1);
 $dol_hide_topmenu=$conf->dol_hide_topmenu;
diff --git a/htdocs/theme/md/img/object_category-expanded.png b/htdocs/theme/md/img/object_category-expanded.png
index b0292d92aaec99817b1a0dff1c1c354cd715f10c..0e49c902a096b8a10c90061911198af46c60d266 100644
GIT binary patch
delta 169
zcmc~e#yCNxo+-)O-G$+Qd;gjJ3=9mM1s;*b3=G`DAk4@xYmNj10|R@Br>`sfeI8aJ
zVRqZyyWAKU7{WbW978nDAHC$wbwGi~_2TRct-E(!TIZ!MwCG1v`aYi!J~sOT1%1<1
z8X@gk)*9ED6J%dX#8e9Xj_P6f;F>*q`k(n{GCbW>Je1ugJ-J*P)ABt%a3_DwB(`}^
X)MSkRMrklGFfe$!`njxgN@xNAHnTf~

delta 74
zcmX@cm@z@cMc>oKF{FYqS%RZr(nEV0vj+jplT_BcvG=QJl5qVWD4NK4*j@0Uf<<HS
f$w0PW%nX%cF~|HR)SoagFfe$!`njxgN@xNA%TXC`

diff --git a/htdocs/theme/md/img/object_category.png b/htdocs/theme/md/img/object_category.png
index fb51c4b100c90c3e1bcb801cd16e0226cd598516..b0292d92aaec99817b1a0dff1c1c354cd715f10c 100644
GIT binary patch
delta 73
zcmYe!n4sdK@9E+gQo)!k!BH^jp}maRg8=49Dr?@@`&Beaxc(0mO=LXmF8ENvqA~bn
eAlolyhDx!RWBwBAPZ$^&7(8A5T-G@yGywpv1{n(g

delta 68
zcmc~uo}gl{<>}%WQo)!k!BH^jp}maRg8=49Dr?@@`&Beaxc;9g(yL|F7<@92?H4mc
Z<^365#fR@|GcYhPc)I$ztaD0e0sv8F84v&f

diff --git a/htdocs/theme/md/style.css.php b/htdocs/theme/md/style.css.php
index e983a16f3f9..13b2e4df171 100644
--- a/htdocs/theme/md/style.css.php
+++ b/htdocs/theme/md/style.css.php
@@ -65,7 +65,7 @@ $theme='md';	// Value of theme
 if (! empty($conf->global->MAIN_OVERWRITE_THEME_RES)) { $path='/'.$conf->global->MAIN_OVERWRITE_THEME_RES; $theme=$conf->global->MAIN_OVERWRITE_THEME_RES; }
 
 // Define image path files and other constants
-$fontlist='Open Sans,sans-serif';    //$fontlist='Verdana,Helvetica,Arial,sans-serif';
+$fontlist='roboto,arial,tahoma,verdana,helvetica';    //$fontlist='verdana,helvetica,arial,sans-serif';
 $img_head='';
 $img_button=dol_buildpath($path.'/theme/'.$theme.'/img/button_bg.png',1);
 $dol_hide_topmenu=$conf->dol_hide_topmenu;
@@ -1704,62 +1704,8 @@ span.butAction, span.butActionDelete {
 }
 
 
-/*
-.butAction, .butAction:link, .butAction:visited, .butAction:hover, .butAction:active, .butActionDelete, .butActionDelete:link, .butActionDelete:visited, .butActionDelete:hover, .butActionDelete:active 
-{
-	text-decoration: none;
-	white-space: nowrap;
-	padding: 0.4em <?php echo ($dol_optimize_smallscreen?'0.4':'0.7'); ?>em;
-	margin: 0em <?php echo ($dol_optimize_smallscreen?'0.7':'0.9'); ?>em;
-	font-family: <?php print $fontlist ?>;
-
-	font-weight: bold;
-	background: white;
-	border: 1px solid #8CACBB;
-	color: #434956;
-    -moz-border-radius:0px 2px 0px 2px;
-	-webkit-border-radius:0px 2px 0px 2px;
-	border-radius:0px 2px 0px 2px;
-    -moz-box-shadow: 2px 2px 3px #f4f4f4;
-    -webkit-box-shadow: 2px 2px 3px #f4f4f4;
-    box-shadow: 2px 2px 3px #f4f4f4;  
-}
-
-.butAction:hover   {
-	background: #dee7ec;
-}
-
-.butActionDelete, .butActionDelete:link, .butActionDelete:visited, .butActionDelete:hover, .butActionDelete:active {
-	border: 1px solid #997777;
-}
-
-.butActionDelete:hover {
-	background: #FFe7ec;
-}
-
-.butActionRefused {
-	text-decoration: none !important;
-	white-space: nowrap !important;
-	cursor: not-allowed;
-	padding: 0.4em <?php echo ($dol_optimize_smallscreen?'0.4':'0.7'); ?>em;
-	margin: 0em <?php echo ($dol_optimize_smallscreen?'0.7':'0.9'); ?>em;
-    font-family: <?php print $fontlist ?> !important;
-
-	font-weight: bold !important;
-	background: white !important;
-	border: 1px solid #AAAAAA !important;
-	color: #AAAAAA !important;
-    -moz-border-radius:0px 2px 0px 2px;
-	-webkit-border-radius:0px 2px 0px 2px;
-	border-radius:0px 2px 0px 2px;
-    -moz-box-shadow: 3px 3px 4px #f4f4f4;
-    -webkit-box-shadow: 3px 3px 4px #f4f4f4;
-    box-shadow: 3px 3px 4px #f4f4f4;
-}
-*/
-
 /* Prepare for bootstrap look */
-.butAction, .butActionDelete, .butActionRefused {
+.button, .butAction, .butActionDelete, .butActionRefused {
 	border-color: #c5c5c5;
 	border-color: rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.25);
 	display: inline-block;
@@ -1792,7 +1738,7 @@ span.butAction, span.butActionDelete {
 	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
 }
 
-.butAction {
+.button, .butAction {
 	color: #ffffff !important;
 	text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
 	background-color: #006dcc;
@@ -1807,7 +1753,21 @@ span.butAction, span.butActionDelete {
 	border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
 	filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
 }
-
+.button:disabled, .butAction:disabled {
+    color: #666 !important;
+    text-shadow: none;
+    border-color: #555;
+    cursor: not-allowed;
+    
+    background-color: #f5f5f5;
+    background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6);
+    background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));
+    background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6);
+    background-image: -o-linear-gradient(top, #ffffff, #e6e6e6);
+    background-image: linear-gradient(to bottom, #ffffff, #e6e6e6);
+    background-repeat: repeat-x    
+}
+   
 .butActionDelete {
 	color: #ffffff !important;
 	text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
@@ -1946,7 +1906,7 @@ table.liste, table.noborder, table.formdoc, div.noborder {
 	border-color: #BBB;
 	border-style: solid;
 
-	margin: 0px 0px 2px 0px;
+	margin: 0px 0px 8px 0px;
     /*
 	-moz-box-shadow: 2px 2px 4px #CCC;
 	-webkit-box-shadow: 2px 2px 4px #CCC;
@@ -3465,7 +3425,7 @@ a span.select2-chosen
   line-height: 13px;
   color: #333;
   cursor: default;
-  border: 1px solid #aaaaaa;
+  border: 1px solid #ddd;
   border-radius: 3px;
   -webkit-box-shadow: 0 0 2px #fff inset, 0 1px 0 rgba(0, 0, 0, 0.05);
   box-shadow: 0 0 2px #fff inset, 0 1px 0 rgba(0, 0, 0, 0.05);
-- 
GitLab


From 9d3451b31dd118266d47d8f0449d0dd10a5d0cff Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Sat, 5 Dec 2015 19:31:32 +0100
Subject: [PATCH 099/197] NEW Add thumb of users into thumbs stats on home page

---
 .../class/expensereport.class.php             |  1 -
 htdocs/index.php                              | 73 +++++++++++--------
 htdocs/user/class/user.class.php              | 36 +++++++++
 3 files changed, 77 insertions(+), 33 deletions(-)

diff --git a/htdocs/expensereport/class/expensereport.class.php b/htdocs/expensereport/class/expensereport.class.php
index 8b79d0b5d9f..3063bcde35f 100644
--- a/htdocs/expensereport/class/expensereport.class.php
+++ b/htdocs/expensereport/class/expensereport.class.php
@@ -1503,7 +1503,6 @@ class ExpenseReport extends CommonObject
             $this->error=$this->db->error();
             return -1;
         }
-
     }
 
     /**
diff --git a/htdocs/index.php b/htdocs/index.php
index 1c99fb0c647..c932aad6234 100644
--- a/htdocs/index.php
+++ b/htdocs/index.php
@@ -1,6 +1,6 @@
 <?php
 /* Copyright (C) 2001-2004 Rodolphe Quiedeville	<rodolphe@quiedeville.org>
- * Copyright (C) 2004-2013 Laurent Destailleur	<eldy@users.sourceforge.net>
+ * Copyright (C) 2004-2015 Laurent Destailleur	<eldy@users.sourceforge.net>
  * Copyright (C) 2005-2015 Regis Houssin	<regis.houssin@capnetworks.com>
  * Copyright (C) 2011-2012 Juanjo Menent	<jmenent@2byte.es>
  * Copyright (C) 2015      Marcos García        <marcosgdf@gmail.com>
@@ -146,6 +146,7 @@ if (empty($user->societe_id))
     {
 	    // Condition to be checked for each display line dashboard
 	    $conditions=array(
+	    $user->rights->user->user->lire,
 	    ! empty($conf->societe->enabled) && $user->rights->societe->lire && empty($conf->global->SOCIETE_DISABLE_CUSTOMERS_STATS),
 	    ! empty($conf->societe->enabled) && $user->rights->societe->lire && empty($conf->global->SOCIETE_DISABLE_PROSPECTS_STATS),
 	    ! empty($conf->fournisseur->enabled) && $user->rights->fournisseur->lire && empty($conf->global->SOCIETE_DISABLE_SUPPLIERS_STATS),
@@ -160,21 +161,24 @@ if (empty($user->societe_id))
 		! empty($conf->fournisseur->enabled) && $user->rights->fournisseur->facture->lire,
 		! empty($conf->expensereport->enabled) && $user->rights->expensereport->lire);
 	    // Class file containing the method load_state_board for each line
-	    $includes=array(DOL_DOCUMENT_ROOT."/societe/class/client.class.php",
-	    DOL_DOCUMENT_ROOT."/societe/class/client.class.php",
-	    DOL_DOCUMENT_ROOT."/fourn/class/fournisseur.class.php",
-	    DOL_DOCUMENT_ROOT."/adherents/class/adherent.class.php",
-	    DOL_DOCUMENT_ROOT."/product/class/product.class.php",
-	    DOL_DOCUMENT_ROOT."/product/class/service.class.php",
-	    DOL_DOCUMENT_ROOT."/comm/propal/class/propal.class.php",
-	    DOL_DOCUMENT_ROOT."/commande/class/commande.class.php",
-	    DOL_DOCUMENT_ROOT."/compta/facture/class/facture.class.php",
-	    DOL_DOCUMENT_ROOT."/contrat/class/contrat.class.php",
-	    DOL_DOCUMENT_ROOT."/fourn/class/fournisseur.commande.class.php",
-	    DOL_DOCUMENT_ROOT."/fourn/class/fournisseur.facture.class.php",
-		DOL_DOCUMENT_ROOT."/expensereport/class/expensereport.class.php");
+	    $includes=array(
+	        DOL_DOCUMENT_ROOT."/user/class/user.class.php",
+	        DOL_DOCUMENT_ROOT."/societe/class/client.class.php",
+	        DOL_DOCUMENT_ROOT."/societe/class/client.class.php",
+    	    DOL_DOCUMENT_ROOT."/fourn/class/fournisseur.class.php",
+    	    DOL_DOCUMENT_ROOT."/adherents/class/adherent.class.php",
+    	    DOL_DOCUMENT_ROOT."/product/class/product.class.php",
+    	    DOL_DOCUMENT_ROOT."/product/class/service.class.php",
+    	    DOL_DOCUMENT_ROOT."/comm/propal/class/propal.class.php",
+    	    DOL_DOCUMENT_ROOT."/commande/class/commande.class.php",
+    	    DOL_DOCUMENT_ROOT."/compta/facture/class/facture.class.php",
+    	    DOL_DOCUMENT_ROOT."/contrat/class/contrat.class.php",
+    	    DOL_DOCUMENT_ROOT."/fourn/class/fournisseur.commande.class.php",
+    	    DOL_DOCUMENT_ROOT."/fourn/class/fournisseur.facture.class.php",
+    		DOL_DOCUMENT_ROOT."/expensereport/class/expensereport.class.php");
 	    // Name class containing the method load_state_board for each line
-	    $classes=array('Client',
+	    $classes=array('User',
+	                   'Client',
 	                   'Client',
 	                   'Fournisseur',
 	                   'Adherent',
@@ -188,7 +192,8 @@ if (empty($user->societe_id))
 	                   'FactureFournisseur',
 					   'ExpenseReport');
 	    // Cle array returned by the method load_state_board for each line
-	    $keys=array('customers',
+	    $keys=array('users',
+	                'customers',
 	                'prospects',
 	                'suppliers',
 	                'members',
@@ -202,7 +207,8 @@ if (empty($user->societe_id))
 	                'supplier_invoices',
 					'expensereports');
 	    // Dashboard Icon lines
-	    $icons=array('company',
+	    $icons=array('user',
+	                 'company',
 	                 'company',
 	                 'company',
 	                 'user',
@@ -216,7 +222,8 @@ if (empty($user->societe_id))
 	                 'bill',
 					 'trip');
 	    // Translation keyword
-	    $titres=array("ThirdPartyCustomersStats",
+	    $titres=array("Users",
+	                  "ThirdPartyCustomersStats",
 	                  "ThirdPartyProspectsStats",
 	                  "Suppliers",
 	                  "Members",
@@ -231,21 +238,23 @@ if (empty($user->societe_id))
 					  "ExpenseReports");
 	    // Dashboard Link lines
 	    $links=array(
-	    DOL_URL_ROOT.'/societe/list.php?type=c',
-	    DOL_URL_ROOT.'/societe/list.php?type=p',
-	    DOL_URL_ROOT.'/societe/list.php?type=f',
-	    DOL_URL_ROOT.'/adherents/list.php?statut=1&mainmenu=members',
-	    DOL_URL_ROOT.'/product/list.php?type=0&mainmenu=products',
-	    DOL_URL_ROOT.'/product/list.php?type=1&mainmenu=products',
-	    DOL_URL_ROOT.'/comm/propal/list.php?mainmenu=commercial',
-	    DOL_URL_ROOT.'/commande/list.php?mainmenu=commercial',
-	    DOL_URL_ROOT.'/compta/facture/list.php?mainmenu=accountancy',
-	    DOL_URL_ROOT.'/contrat/list.php',
-	    DOL_URL_ROOT.'/fourn/commande/list.php',
-	    DOL_URL_ROOT.'/fourn/facture/list.php',
-		DOL_URL_ROOT.'/expensereport/list.php?mainmenu=hrm');
+	        DOL_URL_ROOT.'/user/list.php',
+    	    DOL_URL_ROOT.'/societe/list.php?type=c',
+    	    DOL_URL_ROOT.'/societe/list.php?type=p',
+    	    DOL_URL_ROOT.'/societe/list.php?type=f',
+    	    DOL_URL_ROOT.'/adherents/list.php?statut=1&mainmenu=members',
+    	    DOL_URL_ROOT.'/product/list.php?type=0&mainmenu=products',
+    	    DOL_URL_ROOT.'/product/list.php?type=1&mainmenu=products',
+    	    DOL_URL_ROOT.'/comm/propal/list.php?mainmenu=commercial',
+    	    DOL_URL_ROOT.'/commande/list.php?mainmenu=commercial',
+    	    DOL_URL_ROOT.'/compta/facture/list.php?mainmenu=accountancy',
+    	    DOL_URL_ROOT.'/contrat/list.php',
+    	    DOL_URL_ROOT.'/fourn/commande/list.php',
+    	    DOL_URL_ROOT.'/fourn/facture/list.php',
+    		DOL_URL_ROOT.'/expensereport/list.php?mainmenu=hrm');
 	    // Translation lang files
-	    $langfile=array("companies",
+	    $langfile=array("users",
+	                    "companies",
 	                    "prospects",
 	                    "suppliers",
 	                    "members",
diff --git a/htdocs/user/class/user.class.php b/htdocs/user/class/user.class.php
index 06e8250a870..27c2a7d63ce 100644
--- a/htdocs/user/class/user.class.php
+++ b/htdocs/user/class/user.class.php
@@ -2578,5 +2578,41 @@ class User extends CommonObject
 
 		return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables);
 	}
+	
+	
+	/**
+     *      Charge indicateurs this->nb pour le tableau de bord
+     *
+     *      @return     int         <0 if KO, >0 if OK
+     */
+    function load_state_board()
+    {
+        global $conf;
+
+        $this->nb=array();
+
+        $sql = "SELECT count(u.rowid) as nb";
+        $sql.= " FROM ".MAIN_DB_PREFIX."user as u";
+        $sql.= " WHERE u.statut > 0";
+        $sql.= " AND u.entity IN (".getEntity('user', 1).")";
+
+        $resql=$this->db->query($sql);
+        if ($resql)
+        {
+            while ($obj=$this->db->fetch_object($resql))
+            {
+                $this->nb["users"]=$obj->nb;
+            }
+            $this->db->free($resql);
+            return 1;
+        }
+        else
+        {
+            dol_print_error($this->db);
+            $this->error=$this->db->error();
+            return -1;
+        }
+    }
+	
 }
 
-- 
GitLab


From 497c30d994c83c410f37cfed5a190655b5c41b02 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Sat, 5 Dec 2015 19:38:45 +0100
Subject: [PATCH 100/197] NEW Add thumb of users into thumbs stats on home page

---
 htdocs/index.php                 | 2 +-
 htdocs/user/class/user.class.php | 1 +
 htdocs/user/index.php            | 2 +-
 3 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/htdocs/index.php b/htdocs/index.php
index c932aad6234..94445337720 100644
--- a/htdocs/index.php
+++ b/htdocs/index.php
@@ -238,7 +238,7 @@ if (empty($user->societe_id))
 					  "ExpenseReports");
 	    // Dashboard Link lines
 	    $links=array(
-	        DOL_URL_ROOT.'/user/list.php',
+	        DOL_URL_ROOT.'/user/index.php',
     	    DOL_URL_ROOT.'/societe/list.php?type=c',
     	    DOL_URL_ROOT.'/societe/list.php?type=p',
     	    DOL_URL_ROOT.'/societe/list.php?type=f',
diff --git a/htdocs/user/class/user.class.php b/htdocs/user/class/user.class.php
index 27c2a7d63ce..955753a73a3 100644
--- a/htdocs/user/class/user.class.php
+++ b/htdocs/user/class/user.class.php
@@ -2594,6 +2594,7 @@ class User extends CommonObject
         $sql = "SELECT count(u.rowid) as nb";
         $sql.= " FROM ".MAIN_DB_PREFIX."user as u";
         $sql.= " WHERE u.statut > 0";
+        //$sql.= " AND employee != 0";
         $sql.= " AND u.entity IN (".getEntity('user', 1).")";
 
         $resql=$this->db->query($sql);
diff --git a/htdocs/user/index.php b/htdocs/user/index.php
index ce597483d76..c4e769d6ffd 100644
--- a/htdocs/user/index.php
+++ b/htdocs/user/index.php
@@ -191,7 +191,7 @@ else
 {
 	$sql.= " WHERE u.entity IN (".getEntity('user',1).")";
 }
-if ($mode = "employee") $sql.= " AND u.employee = 1";
+if ($mode == "employee") $sql.= " AND u.employee = 1";
 if ($socid > 0) $sql.= " AND u.fk_soc = ".$socid;
 //if ($search_user != '')       $sql.=natural_search(array('u.login', 'u.lastname', 'u.firstname'), $search_user);
 if ($search_supervisor > 0)   $sql.= " AND u.fk_user = ".$search_supervisor;
-- 
GitLab


From 27c7e3cb7e89c7ec97bfbf92719ca584da6dfa00 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Sat, 5 Dec 2015 23:45:08 +0100
Subject: [PATCH 101/197] Try to solve mysql pb with new travis

---
 .travis.yml | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index 1769f2f0504..2a2cde4ee0f 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -76,20 +76,20 @@ before_script:
  # (https://github.com/piwik/piwik/commit/20bd2e1c24e5d673dce3feb256204ad48c29f160)
  # TODO: Remove when mysql 5.6 is provided by travis.
  # Otherwise, our migrations will raise a syntax error.
- - "sudo apt-get remove mysql-common mysql-server-5.5 mysql-server-core-5.5 mysql-client-5.5 mysql-client-core-5.5"
- - "sudo apt-get autoremove"
- - "sudo apt-get install libaio1"
- - "wget -O mysql-5.6.14.deb http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.14-debian6.0-x86_64.deb/from/http://cdn.mysql.com/"
- - "sudo dpkg -i mysql-5.6.14.deb"
- - "sudo cp /opt/mysql/server-5.6/support-files/mysql.server /etc/init.d/mysql.server"
- - "sudo ln -s /opt/mysql/server-5.6/bin/* /usr/bin/"
- - "sudo sed -i'' 's/table_cache/table_open_cache/' /etc/mysql/my.cnf"
- - "sudo sed -i'' 's/log_slow_queries/slow_query_log/' /etc/mysql/my.cnf"
- - "sudo sed -i'' 's/basedir[^=]\\+=.*$/basedir = \\/opt\\/mysql\\/server-5.6/' /etc/mysql/my.cnf"
- - "sudo /etc/init.d/mysql.server start"
+# - "sudo apt-get remove mysql-common mysql-server-5.5 mysql-server-core-5.5 mysql-client-5.5 mysql-client-core-5.5"
+# - "sudo apt-get autoremove"
+# - "sudo apt-get install libaio1"
+# - "wget -O mysql-5.6.14.deb http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.14-debian6.0-x86_64.deb/from/http://cdn.mysql.com/"
+# - "sudo dpkg -i mysql-5.6.14.deb"
+# - "sudo cp /opt/mysql/server-5.6/support-files/mysql.server /etc/init.d/mysql.server"
+# - "sudo ln -s /opt/mysql/server-5.6/bin/* /usr/bin/"
+# - "sudo sed -i'' 's/table_cache/table_open_cache/' /etc/mysql/my.cnf"
+# - "sudo sed -i'' 's/log_slow_queries/slow_query_log/' /etc/mysql/my.cnf"
+# - "sudo sed -i'' 's/basedir[^=]\\+=.*$/basedir = \\/opt\\/mysql\\/server-5.6/' /etc/mysql/my.cnf"
+# - "sudo /etc/init.d/mysql.server start"
+ # /END MYSQL 5.6- mysql --version
  - mysql --version
  - mysql -e "SELECT VERSION();"
- # /END MYSQL 5.6- mysql --version
  - echo Init database
  - sh -c "if [ '$DB' = 'pgsql' ]; then psql -c 'DROP DATABASE IF EXISTS myapp_test;' -U postgres; fi"
  - sh -c "if [ '$DB' = 'pgsql' ]; then psql -c 'CREATE DATABASE myapp_test;' -U postgres; fi"
-- 
GitLab


From 3fb7a9429b8d06e404d7faee625a176d114d61a6 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Sat, 5 Dec 2015 23:55:10 +0100
Subject: [PATCH 102/197] No more need to install mysql 5.6

---
 .travis.yml | 13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index 2a2cde4ee0f..9956d9c58c8 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -17,7 +17,6 @@ services:
 # This will tell travis to run phpunit
 language: php
 php:
-# - "5.2" is not supported because pyrus to install PHP_Codesniffer is not available
  - 5.3
  - 5.4
  - 5.5 
@@ -51,9 +50,9 @@ before_script:
  - composer install
  - phpenv rehash
  - htdocs/includes/squizlabs/php_codesniffer/scripts/phpcs --version
+ - htdocs/includes/squizlabs/php_codesniffer/scripts/phpcs -i
 # - which phpcs
 # - phpcs --version
- - htdocs/includes/squizlabs/php_codesniffer/scripts/phpcs -i
 # - phpcs -i
  - echo Create dir $(pwd)/htdocs/documents
  - sudo mkdir -p $(pwd)/htdocs/documents/admin/temp;
@@ -72,10 +71,10 @@ before_script:
  - sh -c "if [ '$PHPV' = '5.4' ]; then echo 'zend_extension_ts = xdebug.so' >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini; fi"
  - cat ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini
  - echo Mysql version
- # INSTALL MYSQL 5.6
- # (https://github.com/piwik/piwik/commit/20bd2e1c24e5d673dce3feb256204ad48c29f160)
- # TODO: Remove when mysql 5.6 is provided by travis.
- # Otherwise, our migrations will raise a syntax error.
+# INSTALL MYSQL 5.6
+# (https://github.com/piwik/piwik/commit/20bd2e1c24e5d673dce3feb256204ad48c29f160)
+# TODO: Remove when mysql 5.6 is provided by travis.
+# Otherwise, our migrations will raise a syntax error.
 # - "sudo apt-get remove mysql-common mysql-server-5.5 mysql-server-core-5.5 mysql-client-5.5 mysql-client-core-5.5"
 # - "sudo apt-get autoremove"
 # - "sudo apt-get install libaio1"
@@ -87,7 +86,7 @@ before_script:
 # - "sudo sed -i'' 's/log_slow_queries/slow_query_log/' /etc/mysql/my.cnf"
 # - "sudo sed -i'' 's/basedir[^=]\\+=.*$/basedir = \\/opt\\/mysql\\/server-5.6/' /etc/mysql/my.cnf"
 # - "sudo /etc/init.d/mysql.server start"
- # /END MYSQL 5.6- mysql --version
+# /END MYSQL 5.6- mysql --version
  - mysql --version
  - mysql -e "SELECT VERSION();"
  - echo Init database
-- 
GitLab


From 374480043e96b5900b4dde4b420d385f6b45a09c Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Sun, 6 Dec 2015 00:37:58 +0100
Subject: [PATCH 103/197] Add maxwidth300 on combo list for users and sale
 representatives

---
 htdocs/adherents/card.php                     |  2 +-
 htdocs/adherents/stats/index.php              |  2 +-
 htdocs/admin/prelevement.php                  |  2 +-
 htdocs/bookmarks/card.php                     |  4 +-
 htdocs/comm/action/card.php                   |  2 +-
 htdocs/comm/action/document.php               |  2 +-
 htdocs/comm/propal/stats/index.php            |  2 +-
 htdocs/commande/stats/index.php               |  3 +-
 htdocs/compta/deplacement/card.php            |  4 +-
 htdocs/compta/deplacement/stats/index.php     |  2 +-
 htdocs/compta/facture/mergepdftool.php        |  4 +-
 htdocs/compta/facture/stats/index.php         |  2 +-
 htdocs/compta/salaries/card.php               |  2 +-
 htdocs/contact/card.php                       | 62 +------------------
 htdocs/contrat/list.php                       |  2 +-
 htdocs/core/lib/agenda.lib.php                |  2 +-
 htdocs/don/stats/index.php                    |  2 +-
 htdocs/expedition/stats/index.php             |  2 +-
 htdocs/expensereport/list.php                 |  2 +-
 htdocs/expensereport/stats/index.php          |  2 +-
 htdocs/holiday/card.php                       |  2 +-
 htdocs/holiday/define_holiday.php             |  2 +-
 htdocs/margin/agentMargins.php                |  2 +-
 htdocs/projet/tasks.php                       |  2 +-
 .../canvas/actions_card_common.class.php      |  2 +-
 htdocs/societe/list.php                       |  2 +-
 htdocs/supplier_proposal/list.php             |  4 +-
 htdocs/theme/eldy/style.css.php               |  6 +-
 htdocs/theme/md/style.css.php                 |  6 +-
 htdocs/user/card.php                          |  4 +-
 htdocs/user/group/card.php                    |  2 +-
 31 files changed, 43 insertions(+), 98 deletions(-)

diff --git a/htdocs/adherents/card.php b/htdocs/adherents/card.php
index 503eddfbbb7..f17ca46299f 100644
--- a/htdocs/adherents/card.php
+++ b/htdocs/adherents/card.php
@@ -936,7 +936,7 @@ else
 
 		// Login Dolibarr
 		print '<tr><td>'.$langs->trans("LinkedToDolibarrUser").'</td><td class="valeur">';
-		print $form->select_dolusers($object->user_id,'userid',1);
+		print $form->select_dolusers($object->user_id, 'userid', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth300');
 		print '</td></tr>';
 		*/
         print '<tbody>';
diff --git a/htdocs/adherents/stats/index.php b/htdocs/adherents/stats/index.php
index 43b994adafe..dc5bf732103 100644
--- a/htdocs/adherents/stats/index.php
+++ b/htdocs/adherents/stats/index.php
@@ -155,7 +155,7 @@ $filter='s.client in (1,2,3)';
 print $form->select_company($id,'memberid',$filter,1);
 print '</td></tr>';
 print '<tr><td>'.$langs->trans("User").'</td><td>';
-print $form->select_dolusers($userid,'userid',1);
+print $form->select_dolusers($userid, 'userid', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth300');
 print '</td></tr>';
 print '<tr><td align="center" colspan="2"><input type="submit" name="submit" class="button" value="'.$langs->trans("Refresh").'"></td></tr>';
 print '</table>';
diff --git a/htdocs/admin/prelevement.php b/htdocs/admin/prelevement.php
index f2d8c2d84dc..1a3fd19aa1c 100644
--- a/htdocs/admin/prelevement.php
+++ b/htdocs/admin/prelevement.php
@@ -135,7 +135,7 @@ print "</tr>";
 print '<tr class="impair"><td>'.$langs->trans("ResponsibleUser").'</td>';
 print '<td align="left">';
 print '<input type="hidden" name="nom0" value="PRELEVEMENT_USER">';
-print $form->select_dolusers($conf->global->PRELEVEMENT_USER,'value0',1);
+print $form->select_dolusers($conf->global->PRELEVEMENT_USER, 'value0', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth300');
 print '</td>';
 print '</tr>';
 
diff --git a/htdocs/bookmarks/card.php b/htdocs/bookmarks/card.php
index 62b4ccddce6..c7f47649efa 100644
--- a/htdocs/bookmarks/card.php
+++ b/htdocs/bookmarks/card.php
@@ -165,7 +165,7 @@ if ($action == 'create')
 	print '</td><td class="hideonsmartphone">'.$langs->trans("ChooseIfANewWindowMustBeOpenedOnClickOnBookmark").'</td></tr>';
 
 	print '<tr><td>'.$langs->trans("Owner").'</td><td>';
-	print $form->select_dolusers(isset($_POST['userid'])?$_POST['userid']:$user->id,'userid',1);
+	print $form->select_dolusers(isset($_POST['userid'])?$_POST['userid']:$user->id, 'userid', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth300');
 	print '</td><td class="hideonsmartphone">&nbsp;</td></tr>';
 
 	// Position
@@ -262,7 +262,7 @@ if ($id > 0 && ! preg_match('/^add/i',$action))
 	print '<tr><td>'.$langs->trans("Owner").'</td><td>';
 	if ($action == 'edit' && $user->admin)
 	{
-		print $form->select_dolusers(isset($_POST['userid'])?$_POST['userid']:($bookmark->fk_user?$bookmark->fk_user:''),'userid',1);
+		print $form->select_dolusers(isset($_POST['userid'])?$_POST['userid']:($bookmark->fk_user?$bookmark->fk_user:''), 'userid', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth300');
 	}
 	else
 	{
diff --git a/htdocs/comm/action/card.php b/htdocs/comm/action/card.php
index 84a36dec8b9..0f561622bd1 100644
--- a/htdocs/comm/action/card.php
+++ b/htdocs/comm/action/card.php
@@ -1247,7 +1247,7 @@ if ($id > 0)
 			}
 		}
 		print '<div class="assignedtouser">';
-		print $form->select_dolusers_forevent('view','assignedtouser',1);
+		print $form->select_dolusers_forevent('view', 'assignedtouser', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth300');
 		print '</div>';
 		if (in_array($user->id,array_keys($listofuserid))) 
 		{
diff --git a/htdocs/comm/action/document.php b/htdocs/comm/action/document.php
index f3bda0281da..992c2314446 100644
--- a/htdocs/comm/action/document.php
+++ b/htdocs/comm/action/document.php
@@ -196,7 +196,7 @@ if ($object->id > 0)
 		}
 	}
 	print '<div class="assignedtouser">';
-	print $form->select_dolusers_forevent('view','assignedtouser',1);
+	print $form->select_dolusers_forevent('view', 'assignedtouser', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth300');
 	print '</div>';
 	if (in_array($user->id,array_keys($listofuserid))) 
 	{
diff --git a/htdocs/comm/propal/stats/index.php b/htdocs/comm/propal/stats/index.php
index 5b45020b7e1..f757a224266 100644
--- a/htdocs/comm/propal/stats/index.php
+++ b/htdocs/comm/propal/stats/index.php
@@ -243,7 +243,7 @@ print '<div class="fichecenter"><div class="fichethirdleft">';
 	print '</td></tr>';
 	// User
 	print '<tr><td align="left">'.$langs->trans("CreatedBy").'</td><td align="left">';
-	print $form->select_dolusers($userid,'userid',1);
+	print $form->select_dolusers($userid, 'userid', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth300');
 	print '</td></tr>';
 	// Status
 	print '<tr><td align="left">'.$langs->trans("Status").'</td><td align="left">';
diff --git a/htdocs/commande/stats/index.php b/htdocs/commande/stats/index.php
index 04cfad1732d..a6e04121707 100644
--- a/htdocs/commande/stats/index.php
+++ b/htdocs/commande/stats/index.php
@@ -260,8 +260,7 @@ print '<div class="fichecenter"><div class="fichethirdleft">';
 	print '</td></tr>';
 	// User
 	print '<tr><td align="left">'.$langs->trans("CreatedBy").'</td><td align="left">';
-	print $form->select_dolusers($userid,'userid',1);
-	print '</td></tr>';
+	print $form->select_dolusers($userid, 'userid', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth300');
 	// Year
 	print '<tr><td align="left">'.$langs->trans("Year").'</td><td align="left">';
 	if (! in_array($year,$arrayyears)) $arrayyears[$year]=$year;
diff --git a/htdocs/compta/deplacement/card.php b/htdocs/compta/deplacement/card.php
index f2fcd490277..903977da460 100644
--- a/htdocs/compta/deplacement/card.php
+++ b/htdocs/compta/deplacement/card.php
@@ -257,7 +257,7 @@ if ($action == 'create')
 
     print "<tr>";
     print '<td class="fieldrequired">'.$langs->trans("Person").'</td><td>';
-    print $form->select_dolusers(GETPOST('fk_user','int'),'fk_user',1);
+    print $form->select_dolusers(GETPOST('fk_user','int'), 'fk_user', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth300');
     print '</td></tr>';
 
     print "<tr>";
@@ -353,7 +353,7 @@ else if ($id)
             // Who
             print "<tr>";
             print '<td class="fieldrequired">'.$langs->trans("Person").'</td><td>';
-            print $form->select_dolusers(GETPOST('fk_user','int')?GETPOST('fk_user','int'):$object->fk_user,'fk_user',0);
+            print $form->select_dolusers(GETPOST('fk_user','int')?GETPOST('fk_user','int'):$object->fk_user, 'fk_user', 0, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth300');
             print '</td></tr>';
 
             // Date
diff --git a/htdocs/compta/deplacement/stats/index.php b/htdocs/compta/deplacement/stats/index.php
index 1d9f7b70201..531c05401ab 100644
--- a/htdocs/compta/deplacement/stats/index.php
+++ b/htdocs/compta/deplacement/stats/index.php
@@ -242,7 +242,7 @@ print '</td></tr>';
 print '<tr><td>'.$langs->trans("User").'</td><td>';
 $include='';
 if (empty($user->rights->deplacement->readall) && empty($user->rights->deplacement->lire_tous)) $include='hierarchy';
-print $form->select_dolusers($userid,'userid',1,'',0,$include);
+print $form->select_dolusers($userid, 'userid', 1, '', 0, $include, '', 0, 0, 0, '', 0, '', 'maxwidth300');
 print '</td></tr>';
 // Year
 print '<tr><td>'.$langs->trans("Year").'</td><td>';
diff --git a/htdocs/compta/facture/mergepdftool.php b/htdocs/compta/facture/mergepdftool.php
index f79621a4d87..64a823e8e4a 100644
--- a/htdocs/compta/facture/mergepdftool.php
+++ b/htdocs/compta/facture/mergepdftool.php
@@ -637,7 +637,7 @@ if ($resql)
  		$langs->load("commercial");
  		$moreforfilter.='<div class="divsearchfield">';
  		$moreforfilter.=$langs->trans('ThirdPartiesOfSaleRepresentative'). ': ';
-		$moreforfilter.=$formother->select_salesrepresentatives($search_sale,'search_sale',$user);
+		$moreforfilter.=$formother->select_salesrepresentatives($search_sale,'search_sale',$user, 0, 1, 'maxwidth300');
 	 	$moreforfilter.='</div>';
  	}
     // If the user can view prospects other than his'
@@ -645,7 +645,7 @@ if ($resql)
     {
         $moreforfilter.='<div class="divsearchfield">';
         $moreforfilter.=$langs->trans('LinkedToSpecificUsers'). ': ';
-        $moreforfilter.=$form->select_dolusers($search_user,'search_user',1);
+        $moreforfilter.=$form->select_dolusers($search_user, 'search_user', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth300');
         $moreforfilter.='</div>';
     }
     if (! empty($moreforfilter))
diff --git a/htdocs/compta/facture/stats/index.php b/htdocs/compta/facture/stats/index.php
index 2b7e17d9369..bfe3cdc8555 100644
--- a/htdocs/compta/facture/stats/index.php
+++ b/htdocs/compta/facture/stats/index.php
@@ -244,7 +244,7 @@ print '<div class="fichecenter"><div class="fichethirdleft">';
 	print '</td></tr>';
 	// User
 	print '<tr><td>'.$langs->trans("CreatedBy").'</td><td>';
-	print $form->select_dolusers($userid,'userid',1);
+	print $form->select_dolusers($userid, 'userid', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth300');
 	print '</td></tr>';
 	// Year
 	print '<tr><td>'.$langs->trans("Year").'</td><td>';
diff --git a/htdocs/compta/salaries/card.php b/htdocs/compta/salaries/card.php
index 4b5b0edd784..0e8e69b8353 100644
--- a/htdocs/compta/salaries/card.php
+++ b/htdocs/compta/salaries/card.php
@@ -250,7 +250,7 @@ if ($action == 'create')
 	// Employee
 	print '<tr><td>';
 	print fieldLabel('Employee','fk_user',1).'</td><td>';
-	print $form->select_dolusers(GETPOST('fk_user','int'),'fk_user',1);
+	print $form->select_dolusers(GETPOST('fk_user','int'), 'fk_user', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth300');
 	print '</td></tr>';
 
 	// Label
diff --git a/htdocs/contact/card.php b/htdocs/contact/card.php
index 8022c17de67..1da57afc2f6 100644
--- a/htdocs/contact/card.php
+++ b/htdocs/contact/card.php
@@ -1055,17 +1055,6 @@ else
         print '<div class="underbanner clearboth"></div>';
         print '<table class="border tableforfield" width="100%">';
 
-
-        // Ref
-        /*print '<tr><td width="20%">'.$langs->trans("Ref").'</td><td colspan="3">';
-        print $form->showrefnav($object, 'id', $linkback);
-        print '</td></tr>';
-
-        // Name
-        print '<tr><td width="20%">'.$langs->trans("Lastname").' / '.$langs->trans("Label").'</td><td width="30%">'.$object->lastname.'</td>';
-        print '<td width="20%">'.$langs->trans("Firstname").'</td><td width="30%">'.$object->firstname.'</td>';
-		*/
-        
         // Company
         if (empty($conf->global->SOCIETE_DISABLE_CONTACTS))
         {
@@ -1082,20 +1071,6 @@ else
             print '</td>';
         }
 
-        // Photo
-        /*
-        if ($object->photo)
-        {
-            print '<td rowspan="6" style="text-align: center;" width="25%">';
-            print $form->showphoto('contact',$object);
-            print '</td>';
-        } else {
-            print '<td rowspan="6" style="text-align: center;" width="25%">';
-            print '&nbsp;';
-            print '</td>';
-        }
-		*/
-        
         print '</tr>';
 
         // Civility
@@ -1106,46 +1081,11 @@ else
         // Role
         print '<tr><td>'.$langs->trans("PostOrFunction").'</td><td>'.$object->poste.'</td></tr>';
 
-        // Address
-        /*
-        print '<tr><td>'.$langs->trans("Address").'</td><td colspan="2">';
-        dol_print_address($object->address,'gmap','contact',$object->id);
-        print '</td></tr>';
-
-        // Zip/Town
-        print '<tr><td>'.$langs->trans("Zip").' / '.$langs->trans("Town").'</td><td colspan="2">';
-        print $object->zip;
-        if ($object->zip) print '&nbsp;';
-        print $object->town.'</td></tr>';
-
-        // Country
-        print '<tr><td>'.$langs->trans("Country").'</td><td colspan="2">';
-        $img=picto_from_langcode($object->country_code);
-        if ($img) print $img.' ';
-        print $object->country;
-        print '</td></tr>';
-
-        // State
-        if (empty($conf->global->SOCIETE_DISABLE_STATE))
-        {
-            print '<tr><td>'.$langs->trans('State').'</td><td>'.$object->state.'</td></tr>';
-        }*/
-
-        // Phone
-        /*
-        print '<tr><td>'.$langs->trans("PhonePro").'</td><td>'.dol_print_phone($object->phone_pro,$object->country_code,$object->id,$object->socid,'AC_TEL').'</td>';
-        print '<td>'.$langs->trans("PhonePerso").'</td><td>'.dol_print_phone($object->phone_perso,$object->country_code,$object->id,$object->socid,'AC_TEL').'</td></tr>';
-
-        print '<tr><td>'.$langs->trans("PhoneMobile").'</td><td>'.dol_print_phone($object->phone_mobile,$object->country_code,$object->id,$object->socid,'AC_TEL').'</td>';
-        print '<td>'.$langs->trans("Fax").'</td><td>'.dol_print_phone($object->fax,$object->country_code,$object->id,$object->socid,'AC_FAX').'</td></tr>';
-		*/
-        
         // Email
-        //print '<tr><td>'.$langs->trans("EMail").'</td><td>'.dol_print_email($object->email,$object->id,$object->socid,'AC_EMAIL').'</td></tr>';
         if (! empty($conf->mailing->enabled))
         {
             $langs->load("mails");
-            print '<tr><td class="nowrap">'.$langs->trans("NbOfEMailingsSend").'</td>';
+            print '<tr><td>'.$langs->trans("NbOfEMailingsSend").'</td>';
             print '<td><a href="'.DOL_URL_ROOT.'/comm/mailing/list.php?filteremail='.urlencode($object->email).'">'.$object->getNbOfEMailings().'</a></td></tr>';
         }
 
diff --git a/htdocs/contrat/list.php b/htdocs/contrat/list.php
index dbf5803a4c6..ef226d35908 100644
--- a/htdocs/contrat/list.php
+++ b/htdocs/contrat/list.php
@@ -178,7 +178,7 @@ if ($resql)
     	$langs->load("commercial");
     	$moreforfilter.='<div class="divsearchfield">';
     	$moreforfilter.=$langs->trans('ThirdPartiesOfSaleRepresentative'). ': ';
-    	$moreforfilter.=$formother->select_salesrepresentatives($search_sale,'search_sale',$user);
+    	$moreforfilter.=$formother->select_salesrepresentatives($search_sale,'search_sale',$user,0,1,'maxwidth300');
     	$moreforfilter.='</div>';
     }
 	// If the user can view other users
diff --git a/htdocs/core/lib/agenda.lib.php b/htdocs/core/lib/agenda.lib.php
index 42244a11718..165c93fa9a1 100644
--- a/htdocs/core/lib/agenda.lib.php
+++ b/htdocs/core/lib/agenda.lib.php
@@ -75,7 +75,7 @@ function print_actions_filter($form, $canedit, $status, $year, $month, $day, $sh
 		print '<td class="nowrap" style="padding-bottom: 2px; padding-right: 4px;">';
 		print $langs->trans("ActionsToDoBy").' &nbsp; ';
 		print '</td><td class="nowrap maxwidthonsmartphone" style="padding-bottom: 2px; padding-right: 4px;">';
-		print $form->select_dolusers($filtert, 'usertodo', 1, '', ! $canedit);
+		print $form->select_dolusers($filtert, 'usertodo', 1, '', ! $canedit, '', '', 0, 0, 0, '', 0, '', 'maxwidth300');
 		if (empty($conf->dol_optimize_smallscreen)) print ' &nbsp; '.$langs->trans("or") . ' '.$langs->trans("Group").' &nbsp; ';
 		print $form->select_dolgroups($usergroupid, 'usergroup', 1, '', ! $canedit);
 		print '</td></tr>';
diff --git a/htdocs/don/stats/index.php b/htdocs/don/stats/index.php
index c5cd34caf5f..bf773fcab62 100644
--- a/htdocs/don/stats/index.php
+++ b/htdocs/don/stats/index.php
@@ -244,7 +244,7 @@ print '<div class="fichecenter"><div class="fichethirdleft">';
 	print '</td></tr>';
 	// User
 	print '<tr><td align="left">'.$langs->trans("CreatedBy").'</td><td align="left">';
-	print $form->select_dolusers($userid,'userid',1);
+	print $form->select_dolusers($userid, 'userid', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth300');
 	print '</td></tr>';
 	// Year
 	print '<tr><td align="left">'.$langs->trans("Year").'</td><td align="left">';
diff --git a/htdocs/expedition/stats/index.php b/htdocs/expedition/stats/index.php
index 76755360869..f0f5198bee5 100644
--- a/htdocs/expedition/stats/index.php
+++ b/htdocs/expedition/stats/index.php
@@ -243,7 +243,7 @@ print '<div class="fichecenter"><div class="fichethirdleft">';
 	print '</td></tr>';
 	// User
 	print '<tr><td align="left">'.$langs->trans("CreatedBy").'</td><td align="left">';
-	print $form->select_dolusers($userid,'userid',1);
+	print $form->select_dolusers($userid, 'userid', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth300');
 	print '</td></tr>';
 	// Year
 	print '<tr><td align="left">'.$langs->trans("Year").'</td><td align="left">';
diff --git a/htdocs/expensereport/list.php b/htdocs/expensereport/list.php
index c59a594b5a6..78edcea53b0 100644
--- a/htdocs/expensereport/list.php
+++ b/htdocs/expensereport/list.php
@@ -247,7 +247,7 @@ if ($resql)
 	// User
 	if ($user->rights->expensereport->readall || $user->rights->expensereport->lire_tous){
 		print '<td class="liste_titre" align="left">';
-		print $form->select_dolusers($search_user,"search_user",1,"",0,'');
+		print $form->select_dolusers($search_user, 'search_user', 1, '' 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth300');
 		print '</td>';
 	} else {
 		print '<td class="liste_titre">&nbsp;</td>';
diff --git a/htdocs/expensereport/stats/index.php b/htdocs/expensereport/stats/index.php
index d64cbca648f..80965deebfa 100644
--- a/htdocs/expensereport/stats/index.php
+++ b/htdocs/expensereport/stats/index.php
@@ -224,7 +224,7 @@ print '</td></tr>';
 print '<tr><td>'.$langs->trans("User").'</td><td>';
 $include='';
 if (empty($user->rights->expensereport->readall) && empty($user->rights->expensereport->lire_tous)) $include='hierarchy';
-print $form->select_dolusers($userid,'userid',1,'',0,$include);
+print $form->select_dolusers($userid, 'userid', 1, '', 0, $include, '', 0, 0, 0, '', 0, '', 'maxwidth300');
 print '</td></tr>';
 // Year
 print '<tr><td>'.$langs->trans("Year").'</td><td>';
diff --git a/htdocs/holiday/card.php b/htdocs/holiday/card.php
index 8a576250e79..7802e0c32fa 100644
--- a/htdocs/holiday/card.php
+++ b/htdocs/holiday/card.php
@@ -795,7 +795,7 @@ if (empty($id) || $action == 'add' || $action == 'request' || $action == 'create
         print '<td>';
         if (empty($user->rights->holiday->write_all))
         {
-        	print $form->select_dolusers($userid,'useridbis',0,'',1);
+        	print $form->select_dolusers($userid, 'useridbis', 0, '', 1, '', '', 0, 0, 0, '', 0, '', 'maxwidth300');
         	print '<input type="hidden" name="userid" value="'.$userid.'">';
         }
         else print $form->select_dolusers(GETPOST('userid')?GETPOST('userid'):$user->id,'userid',0,'',0);
diff --git a/htdocs/holiday/define_holiday.php b/htdocs/holiday/define_holiday.php
index 62ad088a5ef..afd5c1a05d4 100644
--- a/htdocs/holiday/define_holiday.php
+++ b/htdocs/holiday/define_holiday.php
@@ -178,7 +178,7 @@ if ($cp_events == 1)
 	print $langs->trans('MotifCP').' : ';
 	print $holiday->selectEventCP();
 	print ' &nbsp; '.$langs->trans('UserCP').' : ';
-	print $form->select_dolusers('',"userCP",1,"",0,'');
+	print $form->select_dolusers('', 'userCP', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth300');
 	print ' <input type="submit" value="'.$langs->trans("addEventToUserCP").'" name="bouton" class="button"/>';
 
 	print '</form><br>';
diff --git a/htdocs/margin/agentMargins.php b/htdocs/margin/agentMargins.php
index 83ed0ccfc0f..f9189ed7e97 100644
--- a/htdocs/margin/agentMargins.php
+++ b/htdocs/margin/agentMargins.php
@@ -94,7 +94,7 @@ print '<table class="border" width="100%">';
 if ($user->rights->margins->read->all) {
 	print '<tr><td width="20%">'.$langs->trans('SalesRepresentative').'</td>';
 	print '<td colspan="4">';
-	print $form->select_dolusers($agentid, 'agentid', 1);
+	print $form->select_dolusers($agentid, 'agentid', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth300');
 	print '</td></tr>';
 }
 
diff --git a/htdocs/projet/tasks.php b/htdocs/projet/tasks.php
index 63c2bd72f28..eb95fd33624 100644
--- a/htdocs/projet/tasks.php
+++ b/htdocs/projet/tasks.php
@@ -307,7 +307,7 @@ if ($action == 'create' && $user->rights->projet->creer && (empty($object->third
 	$contactsofproject=(! empty($object->id)?$object->getListContactId('internal'):'');
 	if (count($contactsofproject))
 	{
-		print $form->select_dolusers($user->id,'userid',0,'',0,'',$contactsofproject);
+		print $form->select_dolusers($user->id, 'userid', 0, '', 0, '', $contactsofproject, 0, 0, 0, '', 0, '', 'maxwidth300');
 	}
 	else
 	{
diff --git a/htdocs/societe/canvas/actions_card_common.class.php b/htdocs/societe/canvas/actions_card_common.class.php
index bffff8f3cbe..0dd71b42baa 100644
--- a/htdocs/societe/canvas/actions_card_common.class.php
+++ b/htdocs/societe/canvas/actions_card_common.class.php
@@ -510,7 +510,7 @@ abstract class ActionsCardCommon
             $this->tpl['yn_assujtva'] = $form->selectyesno('assujtva_value',$this->tpl['tva_assuj'],1);	// Assujeti par defaut en creation
 
             // Select users
-            $this->tpl['select_users'] = $form->select_dolusers($this->object->commercial_id,'commercial_id',1);
+            $this->tpl['select_users'] = $form->select_dolusers($this->object->commercial_id, 'commercial_id', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth300');
 
             // Local Tax
             // TODO mettre dans une classe propre au pays
diff --git a/htdocs/societe/list.php b/htdocs/societe/list.php
index ef64761ab6f..0b373ba9d5d 100644
--- a/htdocs/societe/list.php
+++ b/htdocs/societe/list.php
@@ -514,7 +514,7 @@ if ($resql)
 	 	{
 		 	$moreforfilter.='<div class="divsearchfield">';
 		 	$moreforfilter.=$langs->trans('SalesRepresentatives'). ': ';
-			$moreforfilter.=$formother->select_salesrepresentatives($search_sale,'search_sale',$user);
+			$moreforfilter.=$formother->select_salesrepresentatives($search_sale,'search_sale',$user, 0, 1, 'maxwidth300');
 			$moreforfilter.='</div>';
 	 	}
 	}
diff --git a/htdocs/supplier_proposal/list.php b/htdocs/supplier_proposal/list.php
index a1f66e832f0..6aad541c1f9 100644
--- a/htdocs/supplier_proposal/list.php
+++ b/htdocs/supplier_proposal/list.php
@@ -273,7 +273,7 @@ if ($result)
  		$langs->load("commercial");
 	 	$moreforfilter.='<div class="divsearchfield">';
 	 	$moreforfilter.=$langs->trans('ThirdPartiesOfSaleRepresentative'). ': ';
-		$moreforfilter.=$formother->select_salesrepresentatives($search_sale,'search_sale',$user);
+		$moreforfilter.=$formother->select_salesrepresentatives($search_sale,'search_sale',$user, 0, 1, 'maxwidth300');
 	 	$moreforfilter.='</div>';
  	}
 	// If the user can view prospects other than his'
@@ -281,7 +281,7 @@ if ($result)
 	{
 	    $moreforfilter.='<div class="divsearchfield">';
 	    $moreforfilter.=$langs->trans('LinkedToSpecificUsers'). ': ';
-	    $moreforfilter.=$form->select_dolusers($search_user,'search_user',1);
+	    $moreforfilter.=$form->select_dolusers($search_user, 'search_user', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth300');
 	    $moreforfilter.='</div>';
 	}
     if (! empty($moreforfilter))
diff --git a/htdocs/theme/eldy/style.css.php b/htdocs/theme/eldy/style.css.php
index bb00659f171..66d62959e43 100644
--- a/htdocs/theme/eldy/style.css.php
+++ b/htdocs/theme/eldy/style.css.php
@@ -1612,7 +1612,9 @@ div.tabsAction {
     padding: 0em 0em;
     text-align: right;
 }
-
+div.tabsAction > a {
+	margin-bottom: 16px !important;
+}
 
 a.tabTitle {
 /*    background: #657090;
@@ -2364,7 +2366,7 @@ tr.even td, tr.pair td, tr.odd td, tr.impair td, form.odd div.tagtd, form.impair
 tr.even td, tr.pair td, tr.odd td, tr.impair td, form.odd div.tagtd, form.impair div.tagtd, form.pair div.tagtd, div.impair div.tagtd, div.pair div.tagtd, div.liste_titre div.tagtd {
     border-bottom: 1px solid #ddd;
 }
-tr.even:last-child td, tr.pair:last-child td, tr.odd:last-child td, tr.impair:last-child td {
+tr.even:last-of-type td, tr.pair:last-of-type td, tr.odd:last-of-type td, tr.impair:last-of-type td {
     border-bottom: 0px !important;
 }
 tr.even td .nobordernopadding tr td, tr.pair td .nobordernopadding tr td, tr.impair td .nobordernopadding tr td, tr.odd td .nobordernopadding tr td {
diff --git a/htdocs/theme/md/style.css.php b/htdocs/theme/md/style.css.php
index 13b2e4df171..9839959bfb8 100644
--- a/htdocs/theme/md/style.css.php
+++ b/htdocs/theme/md/style.css.php
@@ -1592,6 +1592,10 @@ div.tabsAction {
     padding: 0em 0em;
     text-align: right;
 }
+div.tabsAction > a {
+	margin-bottom: 16px !important;
+}
+
 div.popuptabset {
 	padding: 6px;
 	border: 1px solid #888;
@@ -2187,7 +2191,7 @@ tr.even td, tr.pair td, tr.odd td, tr.impair td, form.odd div.tagtd, form.impair
     padding: 5px 2px 5px 3px;
     border-bottom: 1px solid #eee;
 }
-tr.even:last-child td, tr.pair:last-child td, tr.odd:last-child td, tr.impair:last-child td {
+tr.even:last-of-type td, tr.pair:last-of-type td, tr.odd:last-of-type td, tr.impair:last-of-type td {
     border-bottom: 0px !important;
 }
 tr.even td .nobordernopadding tr td, tr.pair td .nobordernopadding tr td, tr.impair td .nobordernopadding tr td, tr.odd td .nobordernopadding tr td {
diff --git a/htdocs/user/card.php b/htdocs/user/card.php
index c7d745a2c94..9fbd9d20aa7 100644
--- a/htdocs/user/card.php
+++ b/htdocs/user/card.php
@@ -1007,7 +1007,7 @@ if (($action == 'create') || ($action == 'adduserldap'))
     // Hierarchy
     print '<tr><td>'.$langs->trans("HierarchicalResponsible").'</td>';
     print '<td>';
-    print $form->select_dolusers($object->fk_user,'fk_user',1,array($object->id),0,'',0,$conf->entity);
+    print $form->select_dolusers($object->fk_user, 'fk_user', 1, array($object->id), 0, '', 0, $conf->entity, 0, 0, '', 0, '', 'maxwidth300');
     print '</td>';
     print "</tr>\n";
 
@@ -2107,7 +2107,7 @@ else
             print '<td>';
             if ($caneditfield)
             {
-            	print $form->select_dolusers($object->fk_user,'fk_user',1,array($object->id),0,'',0,$object->entity);
+            	print $form->select_dolusers($object->fk_user, 'fk_user', 1, array($object->id), 0, '', 0, $object->entity, 0, 0, '', 0, '', 'maxwidth300');
             }
             else
           {
diff --git a/htdocs/user/group/card.php b/htdocs/user/group/card.php
index 4edb037d8d6..39aca6f2bf4 100644
--- a/htdocs/user/group/card.php
+++ b/htdocs/user/group/card.php
@@ -398,7 +398,7 @@ else
                 print '<table class="noborder" width="100%">'."\n";
                 print '<tr class="liste_titre"><td class="liste_titre" width="25%">'.$langs->trans("NonAffectedUsers").'</td>'."\n";
                 print '<td>';
-                print $form->select_dolusers('','user',1,$exclude,0,'','',$object->entity);
+                print $form->select_dolusers('', 'user', 1, $exclude, 0, '', '', $object->entity, 0, 0, '', 0, '', 'maxwidth300');
                 print ' &nbsp; ';
                 // Multicompany
                 if (! empty($conf->multicompany->enabled) && is_object($mc))
-- 
GitLab


From 745875d21e8487cf8b192702ee875e192283b242 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Sun, 6 Dec 2015 01:19:27 +0100
Subject: [PATCH 104/197] NEW Can choose fields to show on project list

---
 htdocs/projet/list.php | 431 ++++++++++++++++++++++++++---------------
 htdocs/user/index.php  |   4 +-
 2 files changed, 274 insertions(+), 161 deletions(-)

diff --git a/htdocs/projet/list.php b/htdocs/projet/list.php
index 2475074d941..d0a1ac2c599 100644
--- a/htdocs/projet/list.php
+++ b/htdocs/projet/list.php
@@ -33,6 +33,8 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
 require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php';
 
 $langs->load('projects');
+$langs->load('companies');
+$langs->load('commercial');
 
 $title = $langs->trans("Projects");
 
@@ -107,17 +109,17 @@ if (empty($user->socid)) $fieldstosearchall["p.note_private"]="NotePrivate";
 
 $arrayfields=array(
     'p.ref'=>array('label'=>$langs->trans("Ref"), 'checked'=>1),
-    'p.label'=>array('label'=>$langs->trans("Label"), 'checked'=>1),
+    'p.title'=>array('label'=>$langs->trans("Label"), 'checked'=>1),
     's.nom'=>array('label'=>$langs->trans("ThirdParty"), 'checked'=>1),
-    'commerical'=>array('label'=>$langs->trans("SaleRepresentative"), 'checked'=>1),
-	'p.date_start'=>array('label'=>$langs->trans("DateStart"), 'checked'=>1, 'position'=>100),
-    'p.date_end'=>array('label'=>$langs->trans("DateEnd"), 'checked'=>1, 'position'=>101),
-    'p.visibility'=>array('label'=>$langs->trans("Visibility"), 'checked'=>1, 'position'=>102),
-    'p.opportunity_amount'=>array('label'=>$langs->trans("OpportunityAmount"), 'checked'=>1, 'enabled'=>$conf->global->PROJECT_USE_OPPORTUNITIES, 'position'=>103),
-	'p.opportunity_status'=>array('label'=>$langs->trans("OpportunityStatus"), 'checked'=>1, 'enabled'=>$conf->global->PROJECT_USE_OPPORTUNITIES, 'position'=>104),
+    'commercial'=>array('label'=>$langs->trans("SalesRepresentative"), 'checked'=>1),
+	'p.dateo'=>array('label'=>$langs->trans("DateStart"), 'checked'=>1, 'position'=>100),
+    'p.datee'=>array('label'=>$langs->trans("DateEnd"), 'checked'=>1, 'position'=>101),
+    'p.public'=>array('label'=>$langs->trans("Visibility"), 'checked'=>1, 'position'=>102),
+    'p.opp_amount'=>array('label'=>$langs->trans("OpportunityAmount"), 'checked'=>1, 'enabled'=>$conf->global->PROJECT_USE_OPPORTUNITIES, 'position'=>103),
+	'p.fk_opp_status'=>array('label'=>$langs->trans("OpportunityStatus"), 'checked'=>1, 'enabled'=>$conf->global->PROJECT_USE_OPPORTUNITIES, 'position'=>104),
 	'p.datec'=>array('label'=>$langs->trans("DateCreation"), 'checked'=>0, 'position'=>500),
     'p.tms'=>array('label'=>$langs->trans("DateModificationShort"), 'checked'=>0, 'position'=>500),
-    'p.status'=>array('label'=>$langs->trans("Status"), 'checked'=>1, 'position'=>1000),
+    'p.statut'=>array('label'=>$langs->trans("Status"), 'checked'=>1, 'position'=>1000),
 );
 // Extra fields
 if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label))
@@ -175,7 +177,7 @@ llxHeader("",$langs->trans("Projects"),"EN:Module_Projects|FR:Module_Projets|ES:
 $projectsListId = $projectstatic->getProjectsAuthorizedForUser($user,($mine?$mine:($user->rights->projet->all->lire?2:0)),1,$socid);
 
 $sql = "SELECT p.rowid as projectid, p.ref, p.title, p.fk_statut, p.fk_opp_status, p.public, p.fk_user_creat";
-$sql.= ", p.datec as date_create, p.dateo as date_start, p.datee as date_end, p.opp_amount";
+$sql.= ", p.datec as date_creation, p.dateo as date_start, p.datee as date_end, p.opp_amount, p.tms as date_update";
 $sql.= ", s.nom as name, s.rowid as socid";
 $sql.= ", cls.code as opp_status_code";
 // Add fields for extrafields
@@ -260,7 +262,7 @@ if ($resql)
 	$i = 0;
 
 	$param='';
-	if ($mine)				        $param.='&mode=mine';
+	//if ($mine)				        $param.='&mode=mine';
 	if ($month)              		$param.='&month='.$month;
 	if ($year)               		$param.='&year=' .$year;
 	if ($socid)				        $param.='&socid='.$socid;
@@ -274,22 +276,29 @@ if ($resql)
 	if ($search_user > 0)    		$param.='&search_user='.$search_user;
 	if ($search_sale > 0)    		$param.='&search_sale='.$search_sale;
 	if ($optioncss != '') $param.='&optioncss='.$optioncss;
-
-
+	// Add $param from extra fields
+	foreach ($search_array_options as $key => $val)
+	{
+	    $crit=$val;
+	    $tmpkey=preg_replace('/search_options_/','',$key);
+	    if ($val != '') $param.='&search_options_'.$tmpkey.'='.urlencode($val);
+	}
+	
 	$text=$langs->trans("Projects");
-	if ($mine) $text=$langs->trans('MyProjects');
+	if ($search_user == $user->id) $text=$langs->trans('MyProjects');
 	print_barre_liste($text, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, "", $num,'','title_project');
 
-	print '<form method="GET" id="searchFormList" action="'.$_SERVER["PHP_SELF"].'">';
+	print '<form method="POST" id="searchFormList" action="'.$_SERVER["PHP_SELF"].'">';
     if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
 	print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
+	print '<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
 	print '<input type="hidden" name="action" value="list">';
 	print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
 	print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
 	print '<input type="hidden" name="type" value="'.$type.'">';
 
     // Show description of content
-	if ($mine) print $langs->trans("MyProjectsDesc").'<br><br>';
+	if ($search_user == $user->id) print $langs->trans("MyProjectsDesc").'<br><br>';
 	else
 	{
 		if ($user->rights->projet->all->lire && ! $socid) print $langs->trans("ProjectsDesc").'<br><br>';
@@ -302,6 +311,7 @@ if ($resql)
         print $langs->trans("FilterOnInto", $search_all) . join(', ',$fieldstosearchall);
 	}
 
+
 	$colspan=8;
 	if (! empty($conf->global->PROJECT_USE_OPPORTUNITIES)) $colspan+=2;
 	if (empty($conf->global->PROJECT_LIST_HIDE_STARTDATE)) $colspan++;
@@ -328,52 +338,76 @@ if ($resql)
 	if (! empty($moreforfilter))
 	{
 		print '<div class="liste_titre liste_titre_bydiv centpercent">';
-        //print '<tr class="liste_titre">';
-        //print '<td class="liste_titre" colspan="'.$colspan.'">';
 		print $moreforfilter;
     	$parameters=array();
     	$reshook=$hookmanager->executeHooks('printFieldPreListTitle',$parameters);    // Note that $action and $object may have been modified by hook
     	print $hookmanager->resPrint;
     	print '</div>';
-        //print '</td></tr>';
     }
 
-	print '<table class="liste '.($moreforfilter?"listwithfilterbefore":"").'">';
+	$varpage=empty($contextpage)?$_SERVER["PHP_SELF"]:$contextpage;
+	$selectedfields=$form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage);	// This also change content of $arrayfields
+    
+    print '<table class="liste '.($moreforfilter?"listwithfilterbefore":"").'">';
     		
 	print '<tr class="liste_titre">';
-	print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"p.ref","",$param,"",$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("Label"),$_SERVER["PHP_SELF"],"p.title","",$param,"",$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("ThirdParty"),$_SERVER["PHP_SELF"],"s.nom","",$param,"",$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("SalesRepresentative"),$_SERVER["PHP_SELF"],"","",$param,"",$sortfield,$sortorder);
-	if (empty($conf->global->PROJECT_LIST_HIDE_STARTDATE)) print_liste_field_titre($langs->trans("DateStart"),$_SERVER["PHP_SELF"],"p.dateo","",$param,'align="center"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("DateEnd"),$_SERVER["PHP_SELF"],"p.datee","",$param,'align="center"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("Visibility"),$_SERVER["PHP_SELF"],"p.public","",$param,"",$sortfield,$sortorder);
-    if (! empty($conf->global->PROJECT_USE_OPPORTUNITIES))
-    {
-    	print_liste_field_titre($langs->trans("OpportunityAmountShort"),$_SERVER["PHP_SELF"],'p.opp_amount',"",$param,'align="right"',$sortfield,$sortorder);
-    	print_liste_field_titre($langs->trans("OpportunityStatusShort"),$_SERVER["PHP_SELF"],'p.fk_opp_status',"",$param,'align="center"',$sortfield,$sortorder);
-    }
-	$parameters=array();
-    $reshook=$hookmanager->executeHooks('printFieldListTitle',$parameters);    // Note that $action and $object may have been modified by hook
-    print $hookmanager->resPrint;
-    print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],'p.fk_statut',"",$param,'align="right"',$sortfield,$sortorder);
-	print_liste_field_titre('',$_SERVER["PHP_SELF"],"",'','','',$sortfield,$sortorder,'maxwidthsearch ');
+	if (! empty($arrayfields['p.ref']['checked']))           print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"p.ref","",$param,"",$sortfield,$sortorder);
+	if (! empty($arrayfields['p.title']['checked']))         print_liste_field_titre($langs->trans("Label"),$_SERVER["PHP_SELF"],"p.title","",$param,"",$sortfield,$sortorder);
+	if (! empty($arrayfields['s.nom']['checked']))           print_liste_field_titre($langs->trans("ThirdParty"),$_SERVER["PHP_SELF"],"s.nom","",$param,"",$sortfield,$sortorder);
+	if (! empty($arrayfields['commercial']['checked']))      print_liste_field_titre($langs->trans("SalesRepresentative"),$_SERVER["PHP_SELF"],"","",$param,"",$sortfield,$sortorder);
+	if (! empty($arrayfields['p.dateo']['checked']))         print_liste_field_titre($langs->trans("DateStart"),$_SERVER["PHP_SELF"],"p.dateo","",$param,'align="center"',$sortfield,$sortorder);
+	if (! empty($arrayfields['p.datee']['checked']))         print_liste_field_titre($langs->trans("DateEnd"),$_SERVER["PHP_SELF"],"p.datee","",$param,'align="center"',$sortfield,$sortorder);
+	if (! empty($arrayfields['p.public']['checked']))        print_liste_field_titre($langs->trans("Visibility"),$_SERVER["PHP_SELF"],"p.public","",$param,"",$sortfield,$sortorder);
+    if (! empty($arrayfields['p.opp_amount']['checked']))    print_liste_field_titre($langs->trans("OpportunityAmountShort"),$_SERVER["PHP_SELF"],'p.opp_amount',"",$param,'align="right"',$sortfield,$sortorder);
+    if (! empty($arrayfields['p.fk_opp_status']['checked'])) print_liste_field_titre($langs->trans("OpportunityStatusShort"),$_SERVER["PHP_SELF"],'p.fk_opp_status',"",$param,'align="center"',$sortfield,$sortorder);
+	// Extra fields
+	if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label))
+	{
+	   foreach($extrafields->attribute_label as $key => $val) 
+	   {
+           if (! empty($arrayfields["ef.".$key]['checked'])) 
+           {
+				$align=$extrafields->getAlignFlag($key);
+				print_liste_field_titre($extralabels[$key],$_SERVER["PHP_SELF"],"ef.".$key,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder);
+           }
+	   }
+	}
+	// Hook fields
+	$parameters=array('arrayfields'=>$arrayfields);
+	$reshook=$hookmanager->executeHooks('printFieldListTitle',$parameters);    // Note that $action and $object may have been modified by hook
+	print $hookmanager->resPrint;
+	if (! empty($arrayfields['p.datec']['checked']))  print_liste_field_titre($langs->trans("DateCreationShort"),$_SERVER["PHP_SELF"],"p.datec","",$param,'align="center" class="nowrap"',$sortfield,$sortorder);
+	if (! empty($arrayfields['p.tms']['checked']))    print_liste_field_titre($langs->trans("DateModificationShort"),$_SERVER["PHP_SELF"],"p.tms","",$param,'align="center" class="nowrap"',$sortfield,$sortorder);
+	if (! empty($arrayfields['p.statut']['checked'])) print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"p.fk_statut","",$param,'align="center"',$sortfield,$sortorder);
+	print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"],"",'','','align="right"',$sortfield,$sortorder,'maxwidthsearch ');
 	print "</tr>\n";
 
 	print '<tr class="liste_titre">';
-	print '<td class="liste_titre">';
-	print '<input type="text" class="flat" name="search_ref" value="'.$search_ref.'" size="6">';
-	print '</td>';
-	print '<td class="liste_titre">';
-	print '<input type="text" class="flat" name="search_label" size="8" value="'.$search_label.'">';
-	print '</td>';
-	print '<td class="liste_titre">';
-	print '<input type="text" class="flat" name="search_societe" size="8" value="'.$search_societe.'">';
-	print '</td>';
+	if (! empty($arrayfields['p.ref']['checked']))
+	{
+    	print '<td class="liste_titre">';
+    	print '<input type="text" class="flat" name="search_ref" value="'.$search_ref.'" size="6">';
+    	print '</td>';
+	}
+	if (! empty($arrayfields['p.title']['checked']))
+	{
+    	print '<td class="liste_titre">';
+    	print '<input type="text" class="flat" name="search_label" size="8" value="'.$search_label.'">';
+    	print '</td>';
+	}
+	if (! empty($arrayfields['s.nom']['checked']))
+	{
+    	print '<td class="liste_titre">';
+    	print '<input type="text" class="flat" name="search_societe" size="8" value="'.$search_societe.'">';
+    	print '</td>';
+	}
 	// Sale representative
-	print '<td class="liste_titre">&nbsp;</td>';
+	if (! empty($arrayfields['commercial']['checked']))
+	{
+    	print '<td class="liste_titre">&nbsp;</td>';
+	}
 	// Start date
-	if (empty($conf->global->PROJECT_LIST_HIDE_STARTDATE))
+	if (! empty($arrayfields['p.dateo']['checked']))
 	{
 		print '<td class="liste_titre center">';
 		if (! empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) print '<input class="flat" type="text" size="1" maxlength="2" name="sday" value="'.$sday.'">';
@@ -382,48 +416,78 @@ if ($resql)
 		print '</td>';
 	}
 	// End date
-	print '<td class="liste_titre center">';
-	if (! empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) print '<input class="flat" type="text" size="1" maxlength="2" name="day" value="'.$day.'">';
-	print '<input class="flat" type="text" size="1" maxlength="2" name="month" value="'.$month.'">';
-	$formother->select_year($year?$year:-1,'year',1, 20, 5);
-	print '</td>';
-
-	print '<td class="liste_titre">';
-	$array=array(''=>'',0 => $langs->trans("PrivateProject"),1 => $langs->trans("SharedProject"));
-    print $form->selectarray('search_public',$array,$search_public);
-    print '</td>';
-
-    $parameters=array();
-    $reshook=$hookmanager->executeHooks('printFieldListOption',$parameters);    // Note that $action and $object may have been modified by hook
-    print $hookmanager->resPrint;
-
-    if (! empty($conf->global->PROJECT_USE_OPPORTUNITIES))
-    {
+	if (! empty($arrayfields['p.datee']['checked']))
+	{
+    	print '<td class="liste_titre center">';
+    	if (! empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) print '<input class="flat" type="text" size="1" maxlength="2" name="day" value="'.$day.'">';
+    	print '<input class="flat" type="text" size="1" maxlength="2" name="month" value="'.$month.'">';
+    	$formother->select_year($year?$year:-1,'year',1, 20, 5);
+    	print '</td>';
+	}
+	if (! empty($arrayfields['p.public']['checked']))
+	{
+    	print '<td class="liste_titre">';
+    	$array=array(''=>'',0 => $langs->trans("PrivateProject"),1 => $langs->trans("SharedProject"));
+        print $form->selectarray('search_public',$array,$search_public);
+        print '</td>';
+	}
+	if (! empty($arrayfields['p.opp_amount']['checked']))
+	{
 		print '<td class="liste_titre nowrap">';
 	    print '</td>';
+	}
+	if (! empty($arrayfields['p.fk_opp_status']['checked']))
+	{
     	print '<td class="liste_titre nowrap center">';
 		print $formproject->selectOpportunityStatus('search_opp_status',$search_opp_status,1,1,1);
 	    print '</td>';
     }
-
-	print '<td class="liste_titre nowrap" align="right">';
-	print $form->selectarray('search_status', array('-1'=>'', '0'=>$langs->trans('Draft'),'1'=>$langs->trans('Opened'),'2'=>$langs->trans('Closed')),$search_status);
-    print '</td>';
-    print '<td>';
-    print '<input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
-    print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("RemoveFilter"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">';
-    print '</td>';
+    // Extra fields
+    if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label))
+    {
+        foreach($extrafields->attribute_label as $key => $val)
+        {
+            if (! empty($arrayfields["ef.".$key]['checked'])) print '<td class="liste_titre"></td>';
+        }
+    }
+    // Fields from hook
+    $parameters=array('arrayfields'=>$arrayfields);
+    $reshook=$hookmanager->executeHooks('printFieldListOption',$parameters);    // Note that $action and $object may have been modified by hook
+    print $hookmanager->resPrint;
+    if (! empty($arrayfields['p.datec']['checked']))
+    {
+        // Date creation
+        print '<td class="liste_titre">';
+        print '</td>';
+    }
+    if (! empty($arrayfields['p.tms']['checked']))
+    {
+        // Date modification
+        print '<td class="liste_titre">';
+        print '</td>';
+    }
+    if (! empty($arrayfields['p.statut']['checked']))
+    {
+    	print '<td class="liste_titre nowrap" align="right">';
+    	print $form->selectarray('search_status', array('-1'=>'', '0'=>$langs->trans('Draft'),'1'=>$langs->trans('Opened'),'2'=>$langs->trans('Closed')),$search_status);
+        print '</td>';
+    }
+    // Action column
+	print '<td class="liste_titre" align="right">';
+	print '<input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
+	print '<input type="image" class="liste_titre" name="button_removefilter" src="'.img_picto($langs->trans("Search"),'searchclear.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'" title="'.dol_escape_htmltag($langs->trans("RemoveFilter")).'">';
+	print '</td>';
 
     print '</tr>'."\n";
 
 
     while ($i < $num)
     {
-    	$objp = $db->fetch_object($resql);
+    	$obj = $db->fetch_object($resql);
 
-    	$projectstatic->id = $objp->projectid;
-    	$projectstatic->user_author_id = $objp->fk_user_creat;
-    	$projectstatic->public = $objp->public;
+    	$projectstatic->id = $obj->projectid;
+    	$projectstatic->user_author_id = $obj->fk_user_creat;
+    	$projectstatic->public = $obj->public;
 
     	$userAccess = $projectstatic->restrictedProjectArea($user);
 
@@ -433,104 +497,151 @@ if ($resql)
     		print "<tr ".$bc[$var].">";
 
     		// Project url
-    		print '<td class="nowrap">';
-    		$projectstatic->ref = $objp->ref;
-    		print $projectstatic->getNomUrl(1);
-    		print '</td>';
-
+        	if (! empty($arrayfields['p.ref']['checked']))
+        	{
+        		print '<td class="nowrap">';
+        		$projectstatic->ref = $obj->ref;
+        		print $projectstatic->getNomUrl(1);
+        		print '</td>';
+        	}
     		// Title
-    		print '<td>';
-    		print dol_trunc($objp->title,80);
-    		print '</td>';
-
+        	if (! empty($arrayfields['p.title']['checked']))
+        	{
+            	print '<td>';
+        		print dol_trunc($obj->title,80);
+        		print '</td>';
+        	}
     		// Company
-    		print '<td>';
-    		if ($objp->socid)
-    		{
-    			$socstatic->id=$objp->socid;
-    			$socstatic->name=$objp->name;
-    			print $socstatic->getNomUrl(1);
-    		}
-    		else
-    		{
-    			print '&nbsp;';
-    		}
-    		print '</td>';
-
-
+        	if (! empty($arrayfields['s.nom']['checked']))
+        	{
+            	print '<td>';
+        		if ($obj->socid)
+        		{
+        			$socstatic->id=$obj->socid;
+        			$socstatic->name=$obj->name;
+        			print $socstatic->getNomUrl(1);
+        		}
+        		else
+        		{
+        			print '&nbsp;';
+        		}
+        		print '</td>';
+        	}
     		// Sales Rapresentatives
-    		print '<td>';
-    		if($objp->socid)
-    		{
-    			$listsalesrepresentatives=$socstatic->getSalesRepresentatives($user);
-    			$nbofsalesrepresentative=count($listsalesrepresentatives);
-    			if ($nbofsalesrepresentative > 3)   // We print only number
-    			{
-    				print '<a href="'.DOL_URL_ROOT.'/societe/commerciaux.php?socid='.$socstatic->id.'">';
-    				print $nbofsalesrepresentative;
-    				print '</a>';
-    			}
-    			else if ($nbofsalesrepresentative > 0)
-    			{
-    				$userstatic=new User($db);
-    				$j=0;
-    				foreach($listsalesrepresentatives as $val)
-    				{
-    					$userstatic->id=$val['id'];
-    					$userstatic->lastname=$val['lastname'];
-    					$userstatic->firstname=$val['firstname'];
-    					$userstatic->email=$val['email'];
-    					print $userstatic->getNomUrl(1);
-    					$j++;
-    					if ($j < $nbofsalesrepresentative) print ', ';
-    				}
-    			}
-    			//else print $langs->trans("NoSalesRepresentativeAffected");
-    		}
-    		else
-    		{
-    			print '&nbsp';
-    		}
-    		print '</td>';
-
+        	if (! empty($arrayfields['commercial']['checked']))
+        	{
+            	print '<td>';
+        		if ($obj->socid)
+        		{
+        			$socstatic->id=$obj->socid;
+        			$socstatic->name=$obj->name;
+        		    $listsalesrepresentatives=$socstatic->getSalesRepresentatives($user);
+        			$nbofsalesrepresentative=count($listsalesrepresentatives);
+        			if ($nbofsalesrepresentative > 3)   // We print only number
+        			{
+        				print '<a href="'.DOL_URL_ROOT.'/societe/commerciaux.php?socid='.$socstatic->id.'">';
+        				print $nbofsalesrepresentative;
+        				print '</a>';
+        			}
+        			else if ($nbofsalesrepresentative > 0)
+        			{
+        				$userstatic=new User($db);
+        				$j=0;
+        				foreach($listsalesrepresentatives as $val)
+        				{
+        					$userstatic->id=$val['id'];
+        					$userstatic->lastname=$val['lastname'];
+        					$userstatic->firstname=$val['firstname'];
+        					$userstatic->email=$val['email'];
+        					print $userstatic->getNomUrl(1);
+        					$j++;
+        					if ($j < $nbofsalesrepresentative) print ', ';
+        				}
+        			}
+        			//else print $langs->trans("NoSalesRepresentativeAffected");
+        		}
+        		else
+        		{
+        			print '&nbsp';
+        		}
+        		print '</td>';
+        	}
     		// Date start
-			if (empty($conf->global->PROJECT_LIST_HIDE_STARTDATE))
-			{
+        	if (! empty($arrayfields['p.dateo']['checked']))
+        	{
 				print '<td class="center">';
-	    		print dol_print_date($db->jdate($objp->date_start),'day');
+	    		print dol_print_date($db->jdate($obj->date_start),'day');
 	    		print '</td>';
 			}
-
     		// Date end
-    		print '<td class="center">';
-    		print dol_print_date($db->jdate($objp->date_end),'day');
-    		print '</td>';
-
+        	if (! empty($arrayfields['p.datee']['checked']))
+        	{
+    			print '<td class="center">';
+        		print dol_print_date($db->jdate($obj->date_end),'day');
+        		print '</td>';
+        	}
     		// Visibility
-    		print '<td align="left">';
-    		if ($objp->public) print $langs->trans('SharedProject');
-    		else print $langs->trans('PrivateProject');
-    		print '</td>';
-
-        	$parameters=array('obj' => $objp);
-        	$reshook=$hookmanager->executeHooks('printFieldListValue',$parameters);    // Note that $action and $object may have been modified by hook
-		    print $hookmanager->resPrint;
-
-		    if (! empty($conf->global->PROJECT_USE_OPPORTUNITIES))
-    		{
+        	if (! empty($arrayfields['p.public']['checked']))
+        	{
+        		print '<td align="left">';
+        		if ($obj->public) print $langs->trans('SharedProject');
+        		else print $langs->trans('PrivateProject');
+        		print '</td>';
+        	}
+        	if (! empty($arrayfields['p.opp_amount']['checked']))
+        	{
     			print '<td align="right">';
-    			if ($objp->opp_status_code) print price($objp->opp_amount, 1, '', 1, - 1, - 1, $conf->currency);
+    			if ($obj->opp_status_code) print price($obj->opp_amount, 1, '', 1, - 1, - 1, $conf->currency);
     			print '</td>';
-
-    			print '<td align="middle">';
-    			if ($objp->opp_status_code) print $langs->trans("OppStatusShort".$objp->opp_status_code);
+        	}
+        	if (! empty($arrayfields['p.fk_opp_status']['checked']))
+        	{
+                print '<td align="middle">';
+    			if ($obj->opp_status_code) print $langs->trans("OppStatusShort".$obj->opp_status_code);
     			print '</td>';
     		}
-
+    		// Extra fields
+    		if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label))
+    		{
+    		    foreach($extrafields->attribute_label as $key => $val)
+    		    {
+    		        if (! empty($arrayfields["ef.".$key]['checked']))
+    		        {
+    		            print '<td';
+    		            $align=$extrafields->getAlignFlag($key);
+    		            if ($align) print ' align="'.$align.'"';
+    		            print '>';
+    		            $tmpkey='options_'.$key;
+    		            print $extrafields->showOutputField($key, $obj->$tmpkey, '', 1);
+    		            print '</td>';
+    		        }
+    		    }
+    		}
+    		// Fields from hook
+    		$parameters=array('arrayfields'=>$arrayfields, 'obj'=>$obj);
+    		$reshook=$hookmanager->executeHooks('printFieldListValue',$parameters);    // Note that $action and $object may have been modified by hook
+    		print $hookmanager->resPrint;
+    		// Date creation
+    		if (! empty($arrayfields['p.datec']['checked']))
+    		{
+    		    print '<td align="center">';
+    		    print dol_print_date($db->jdate($obj->date_creation), 'dayhour');
+    		    print '</td>';
+    		}
+    		// Date modification
+    		if (! empty($arrayfields['p.tms']['checked']))
+    		{
+    		    print '<td align="center">';
+    		    print dol_print_date($db->jdate($obj->date_update), 'dayhour');
+    		    print '</td>';
+    		}
     		// Status
-    		$projectstatic->statut = $objp->fk_statut;
-    		print '<td align="right">'.$projectstatic->getLibStatut(5).'</td>';
-
+    		if (! empty($arrayfields['p.statut']['checked']))
+    		{
+        		$projectstatic->statut = $obj->fk_statut;
+        		print '<td align="right">'.$projectstatic->getLibStatut(5).'</td>';
+    		}
+    		// Action column
     		print '<td></td>';
 
     		print "</tr>\n";
diff --git a/htdocs/user/index.php b/htdocs/user/index.php
index c4e769d6ffd..43812be515c 100644
--- a/htdocs/user/index.php
+++ b/htdocs/user/index.php
@@ -266,10 +266,12 @@ if ($result)
         print $langs->trans("FilterOnInto", $sall) . join(', ',$fieldstosearchall);
     }
 	
+    $moreforfilter='';
+    
 	$varpage=empty($contextpage)?$_SERVER["PHP_SELF"]:$contextpage;
 	$selectedfields=$form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage);	// This also change content of $arrayfields
     
-	print '<table class="liste">';
+    print '<table class="liste '.($moreforfilter?"listwithfilterbefore":"").'">';
     print '<tr class="liste_titre">';
     if (! empty($arrayfields['u.login']['checked']))          print_liste_field_titre($langs->trans("Login"),$_SERVER['PHP_SELF'],"u.login",$param,"","",$sortfield,$sortorder);
     if (! empty($arrayfields['u.lastname']['checked']))       print_liste_field_titre($langs->trans("Lastname"),$_SERVER['PHP_SELF'],"u.lastname",$param,"","",$sortfield,$sortorder);
-- 
GitLab


From 50cf96bd1638d33a76abc01cac5727cdac3ec2fb Mon Sep 17 00:00:00 2001
From: AlainRnet <alainrihs@sunrise.ch>
Date: Sun, 6 Dec 2015 12:01:59 +0100
Subject: [PATCH 105/197] Update const.php

link to help file
---
 htdocs/admin/const.php | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/htdocs/admin/const.php b/htdocs/admin/const.php
index 06e3279fa54..5749fbbb4fb 100644
--- a/htdocs/admin/const.php
+++ b/htdocs/admin/const.php
@@ -146,7 +146,8 @@ if ($action == 'delete')
 
 $form = new Form($db);
 
-llxHeader('',$langs->trans("OtherSetup"));
+$wikihelp='EN:Setup_Other|FR:Paramétrage_Divers|ES:Configuración_Varios';
+llxHeader('',$langs->trans("Setup"),$wikihelp);
 
 // Add logic to show/hide buttons
 if ($conf->use_javascript_ajax)
-- 
GitLab


From 0279e99b0a8b7018cbb37876b382e2acba010793 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Sun, 6 Dec 2015 12:04:34 +0100
Subject: [PATCH 106/197] Update warning for mysql 5.5.4* bug

---
 ChangeLog                       | 3 ++-
 htdocs/langs/en_US/install.lang | 2 +-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 9cb28633bfd..09e216e93fc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -6,7 +6,8 @@ WARNING:
 
 Do not try to make any Dolibarr upgrade if you are running Mysql version 5.5.40.
 Mysql version 5.5.40 has a very critical bug making your data beeing definitely lost.
-You may also experience troubles with Mysql 5.5.41 with error "Lost connection" during migration.
+You may also experience troubles with Mysql 5.5.41/42/43 with error "Lost connection"
+during migration.
 Upgrading to any other version or any other database system is abolutely required BEFORE trying
 make a Dolibarr upgrade.
 
diff --git a/htdocs/langs/en_US/install.lang b/htdocs/langs/en_US/install.lang
index 6ec3ca2d14a..f21af4e072e 100644
--- a/htdocs/langs/en_US/install.lang
+++ b/htdocs/langs/en_US/install.lang
@@ -155,7 +155,7 @@ MigrationFinished=Migration finished
 LastStepDesc=<strong>Last step</strong>: Define here login and password you plan to use to connect to software. Do not loose this as it is the account to administer all others.
 ActivateModule=Activate module %s
 ShowEditTechnicalParameters=Click here to show/edit advanced parameters (expert mode)
-WarningUpgrade=Warning:\nDid your run a database backup first ?\nThis is highly recommanded: for example, due to some bugs into databases systems (for example mysql version 5.5.40), some data or tables may be lost during this process, so it is highly recommanded to have a complete dump of your database before starting migration.\n\nClick OK to start migration process...
+WarningUpgrade=Warning:\nDid your run a database backup first ?\nThis is highly recommanded: for example, due to some bugs into databases systems (for example mysql version 5.5.40/41/42/43), some data or tables may be lost during this process, so it is highly recommanded to have a complete dump of your database before starting migration.\n\nClick OK to start migration process...
 ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug making data loss if you make structure change on your database, like it is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a higher fixed version (list of known bugged version: %s) 
 
 #########
-- 
GitLab


From d4268c079f8040eb5e9121cee228a36691d8d546 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Sun, 6 Dec 2015 12:23:49 +0100
Subject: [PATCH 107/197] Fix syntax error

---
 htdocs/expensereport/list.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/htdocs/expensereport/list.php b/htdocs/expensereport/list.php
index 78edcea53b0..502125faf61 100644
--- a/htdocs/expensereport/list.php
+++ b/htdocs/expensereport/list.php
@@ -247,7 +247,7 @@ if ($resql)
 	// User
 	if ($user->rights->expensereport->readall || $user->rights->expensereport->lire_tous){
 		print '<td class="liste_titre" align="left">';
-		print $form->select_dolusers($search_user, 'search_user', 1, '' 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth300');
+		print $form->select_dolusers($search_user, 'search_user', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth300');
 		print '</td>';
 	} else {
 		print '<td class="liste_titre">&nbsp;</td>';
-- 
GitLab


From 7f3531a04c621aa2ee94c94a9e56d0572669b778 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Sun, 6 Dec 2015 13:34:57 +0100
Subject: [PATCH 108/197] Enhance script to track duplicate translation string
 and use it to remove around 50 duplicates.

---
 dev/translation/sanity_check_en_langfiles.php | 273 ++++++++++++------
 htdocs/compta/facture.php                     |   2 +-
 .../core/triggers/dolibarrtriggers.class.php  |   4 +-
 htdocs/install/fileconf.php                   |   6 +-
 htdocs/langs/en_US/accountancy.lang           |  20 +-
 htdocs/langs/en_US/admin.lang                 |   8 -
 htdocs/langs/en_US/bills.lang                 |   4 -
 htdocs/langs/en_US/companies.lang             |   1 -
 htdocs/langs/en_US/compta.lang                |   2 -
 htdocs/langs/en_US/ecm.lang                   |   1 -
 htdocs/langs/en_US/errors.lang                |   2 -
 htdocs/langs/en_US/hrm.lang                   |   1 -
 htdocs/langs/en_US/install.lang               |   7 -
 htdocs/langs/en_US/main.lang                  |   3 +-
 htdocs/langs/en_US/members.lang               |   1 -
 htdocs/langs/en_US/orders.lang                |   1 -
 htdocs/langs/en_US/other.lang                 |  14 +-
 htdocs/langs/en_US/products.lang              |   2 -
 htdocs/langs/en_US/projects.lang              |   1 -
 htdocs/langs/en_US/supplier_proposal.lang     |   1 -
 htdocs/langs/en_US/trips.lang                 |   2 -
 htdocs/langs/en_US/users.lang                 |   1 -
 htdocs/langs/en_US/withdrawals.lang           |   1 -
 htdocs/product/admin/product.php              |   5 +-
 24 files changed, 202 insertions(+), 161 deletions(-)
 mode change 100644 => 100755 dev/translation/sanity_check_en_langfiles.php

diff --git a/dev/translation/sanity_check_en_langfiles.php b/dev/translation/sanity_check_en_langfiles.php
old mode 100644
new mode 100755
index a3b3911c77f..f54c179ac09
--- a/dev/translation/sanity_check_en_langfiles.php
+++ b/dev/translation/sanity_check_en_langfiles.php
@@ -1,82 +1,102 @@
+#!/usr/bin/php
 <?php
-/* Copyright (c) 2015 Tommaso Basilici <t.basilici@19.coop>
-*
-* This program is free software; you can redistribute it and/or modify
-* it under the terms of the GNU General Public License as published by
-* the Free Software Foundation; either version 2 of the License, or
-* (at your option) any later version.
-*
-* This program is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-* GNU General Public License for more details.
-*
-* You should have received a copy of the GNU General Public License
-* along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-echo "<html>";
-echo "<head>";
-
-echo "<STYLE type=\"text/css\">
-
-table {
-	background: #f5f5f5;
-	border-collapse: separate;
-	box-shadow: inset 0 1px 0 #fff;
-	font-size: 12px;
-	line-height: 24px;
-	margin: 30px auto;
-	text-align: left;
-	width: 800px;
-}
-
-th {
-	background-color: #777;
-	border-left: 1px solid #555;
-	border-right: 1px solid #777;
-	border-top: 1px solid #555;
-	border-bottom: 1px solid #333;
-	color: #fff;
-  	font-weight: bold;
-	padding: 10px 15px;
-	position: relative;
-	text-shadow: 0 1px 0 #000;
-}
-
-td {
-	border-right: 1px solid #fff;
-	border-left: 1px solid #e8e8e8;
-	border-top: 1px solid #fff;
-	border-bottom: 1px solid #e8e8e8;
-	padding: 10px 15px;
-	position: relative;
-}
+/* Copyright (c) 2015 Tommaso Basilici    <t.basilici@19.coop>
+ * Copyright (c) 2015 Laurent Destailleur <eldy@destailleur.fr>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
 
+$sapi_type = php_sapi_name();
+$script_file = basename(__FILE__);
+$path=dirname(__FILE__).'/';
 
-tr {
-	background-color: #f1f1f1;
+$web=0;
 
+// Test if batch mode
+if (substr($sapi_type, 0, 3) == 'cgi') 
+{
+    $web=1;
 }
 
-tr:nth-child(odd) td {
-	background-color: #f1f1f1;
-}
 
-</STYLE>";
+if ($web)
+{
+    echo "<html>";
+    echo "<head>";
+    
+    echo "<STYLE type=\"text/css\">
+    
+    table {
+    	background: #f5f5f5;
+    	border-collapse: separate;
+    	box-shadow: inset 0 1px 0 #fff;
+    	font-size: 12px;
+    	line-height: 24px;
+    	margin: 30px auto;
+    	text-align: left;
+    	width: 800px;
+    }
+    
+    th {
+    	background-color: #777;
+    	border-left: 1px solid #555;
+    	border-right: 1px solid #777;
+    	border-top: 1px solid #555;
+    	border-bottom: 1px solid #333;
+    	color: #fff;
+      	font-weight: bold;
+    	padding: 10px 15px;
+    	position: relative;
+    	text-shadow: 0 1px 0 #000;
+    }
+    
+    td {
+    	border-right: 1px solid #fff;
+    	border-left: 1px solid #e8e8e8;
+    	border-top: 1px solid #fff;
+    	border-bottom: 1px solid #e8e8e8;
+    	padding: 10px 15px;
+    	position: relative;
+    }
+    
+    
+    tr {
+    	background-color: #f1f1f1;
+    
+    }
+    
+    tr:nth-child(odd) td {
+    	background-color: #f1f1f1;
+    }
+    
+    </STYLE>";
+    
+    echo "<body>";
+}
 
-echo "<body>";
+echo "If you call this file with the argument \"?unused=true\" it searches for the translation strings that exist in en_US but are never used.\n";
+if ($web) print "<br>";
+echo "IMPORTANT: that can take quite a lot of time (up to 10 minutes), you need to tune the max_execution_time on your php.ini accordingly.\n";
+if ($web) print "<br>";
 
-echo "If you call this file with the argument \"?unused=true\" it searches for the translation strings that exist in en_US but are never used.<br>";
-echo "IMPORTANT: that can take quite a lot of time (up to 10 minutes), you need to tune the max_execution_time on your php.ini accordingly.<br>";
-echo "Happy translating :)<br>";
 
 
 // STEP 1 - Search duplicates keys
 
 
 // directory containing the php and lang files
-$htdocs 	= "../../htdocs/";
+$htdocs 	= $path."/../../htdocs/";
 
 // directory containing the english lang files
 $workdir 	= $htdocs."langs/en_US/";
@@ -114,8 +134,10 @@ foreach ($files AS $file) {
 	}
 }
 
-foreach ($langstrings_3d AS $filename => $file) {
-	foreach ($file AS $linenum => $value) {
+foreach ($langstrings_3d AS $filename => $file) 
+{
+	foreach ($file AS $linenum => $value) 
+	{
 		$keys = array_keys($langstrings_full, $value);
 		if (count($keys)>1)
 		{
@@ -126,30 +148,95 @@ foreach ($langstrings_3d AS $filename => $file) {
 	}
 }
 
-echo "<h2>Duplicate strings in lang files in $workdir - ".count($dups)." found</h2>";
+if ($web) print "<h2>";
+print "Duplicate strings in lang files in $workdir - ".count($dups)." found\n";
+if ($web) print "</h2>";
+
+if ($web)
+{
+    echo '<table border_bottom="1">'."\n";
+    echo "<thead><tr><th align=\"center\">#</th><th>String</th><th>File and lines</th></thead>\n";
+    echo "<tbody>\n";
+}
+
+$sduplicateinsamefile='';
+$sinmainandother='';
+$sininstallandadmin='';
+$sother='';
 
-echo "<table border_bottom=1> ";
-echo "<thead><tr><th align=\"center\">#</th><th>String</th><th>File and lines</th></thead>";
-echo "<tbody>";
 $count = 0;
-foreach ($dups as $string => $pages) {
+foreach ($dups as $string => $pages) 
+{
 	$count++;
-	echo "<tr>";
-	echo "<td align=\"center\">$count</td>";
-	echo "<td>$string</td>";
-	echo "<td>";
-	foreach ($pages AS $page => $lines ) {
-		echo "$page ";
-		foreach ($lines as $line => $translatedvalue) {
-			//echo "($line - ".(substr($translatedvalue,0,20)).") ";
-			echo "($line - ".htmlentities($translatedvalue).") ";
+	$s='';
+	
+	// Keyword $string
+	if ($web) $s.="<tr>";
+	if ($web) $s.="<td align=\"center\">";
+	if ($web) $s.=$count;
+	if ($web) $s.="</td>";
+	if ($web) $s.="<td>";
+	$s.=$string;
+	if ($web) $s.="</td>";
+	if ($web) $s.="<td>";
+	if (! $web) $s.= ' : ';
+	
+	// Loop on each files keyword was found
+    $duplicateinsamefile=0;
+	$inmain=0;
+    $inadmin=0;
+	foreach ($pages AS $file => $lines) 
+	{
+        if ($file == 'main.lang') { $inmain=1; $inadmin=0; }
+        if ($file == 'admin.lang' && ! $inmain) { $inadmin=1; }
+        
+	    $s.=$file." ";
+	    
+	    // Loop on each line keword was found into file.
+	    $listoffilesforthisentry=array();
+	    foreach ($lines as $line => $translatedvalue) 
+		{
+            if (! empty($listoffilesforthisentry[$file])) $duplicateinsamefile=1;
+            $listoffilesforthisentry[$file]=1;
+        
+			$s.= "(".$line." - ".htmlentities($translatedvalue).") ";
 		}
-		echo "<br>";
+		if ($web) $s.="<br>";
 	}
-	echo "</td></tr>\n";
+	if ($web) $s.="</td></tr>";
+	$s.="\n";
+	
+	if ($duplicateinsamefile) $sduplicateinsamefile .= $s;
+	else if ($inmain) $sinmainandother .= $s;
+	else if ($inadmin) $sininstallandadmin .= $s;
+	else $sother .= $s;
+}
+
+if (! $web) print "\n***** Entries duplicated in same file\n";
+print $sduplicateinsamefile;
+if (! $web && empty($sduplicateinsamefile)) print "None\n";
+if (! $web) print "\n";
+
+if (! $web) print "***** Entries in main and another (keep only entry in main)\n";
+print $sinmainandother;
+if (! $web && empty($sinmainandother)) print "None\n";
+if (! $web) print "\n";
+
+if (! $web) print "***** Entries in admin and another\n";
+print $sininstallandadmin;
+if (! $web && empty($sininstallandadmin)) print "None\n";
+if (! $web) print "\n";
+
+if (! $web) print "***** Other\n";
+print $sother;
+if (! $web && empty($sother)) print "None\n";
+if (! $web) print "\n";
+
+if ($web)
+{
+    echo "</tbody>\n";
+    echo "</table>\n";
 }
-echo "</tbody>";
-echo "</table>";
 
 
 // STEP 2 - Search key not used
@@ -168,12 +255,20 @@ if (! empty($_REQUEST['unused']) && $_REQUEST['unused'] == 'true')
 		}
 	}
 
-	echo "<h2>Strings in en_US that are never used</h2>";
-	echo "<pre>";
+	if ($web) print "<h2>\n";
+	print "Strings in en_US that are never used\n";
+	if ($web) print "</h2>\n";
+	if ($web) echo "<pre>";
 	print_r($unused);
-	echo "</pre>";
+	if ($web) echo "</pre>\n";
 }
 
 echo "\n";
-echo "</body>";
-echo "</html>";
+if ($web)
+{
+    echo "</body>\n";
+    echo "</html>\n";
+}
+
+exit;
+
diff --git a/htdocs/compta/facture.php b/htdocs/compta/facture.php
index d5e99af0df6..9ce11ee5abf 100644
--- a/htdocs/compta/facture.php
+++ b/htdocs/compta/facture.php
@@ -2833,7 +2833,7 @@ else if ($id > 0 || ! empty($ref))
 	print '<tr><td>' . $langs->trans('Company') . '</td>';
 	print '</td><td colspan="5">';
 	if (! empty($conf->global->FACTURE_CHANGE_THIRDPARTY) && $action != 'editthirdparty' && $object->brouillon && $user->rights->facture->creer)
-		print '<td align="right"><a href="' . $_SERVER["PHP_SELF"] . '?action=editthirdparty&amp;facid=' . $object->id . '">' . img_edit($langs->trans('SetLinkToThirdParty'), 1) . '</a></td>';
+		print '<td align="right"><a href="' . $_SERVER["PHP_SELF"] . '?action=editthirdparty&amp;facid=' . $object->id . '">' . img_edit($langs->trans('SetLinkToAnotherThirdParty'), 1) . '</a></td>';
 	print '</tr></table>';
 	print '</td><td colspan="5">';
 	if ($action == 'editthirdparty') {
diff --git a/htdocs/core/triggers/dolibarrtriggers.class.php b/htdocs/core/triggers/dolibarrtriggers.class.php
index d4cffc24a01..61a89b083f8 100644
--- a/htdocs/core/triggers/dolibarrtriggers.class.php
+++ b/htdocs/core/triggers/dolibarrtriggers.class.php
@@ -121,9 +121,9 @@ abstract class DolibarrTriggers
 		$langs->load("admin");
 
 		if ($this->version == self::VERSION_DEVELOPMENT) {
-			return $langs->trans("Development");
+			return $langs->trans("VersionDevelopment");
 		} elseif ($this->version == self::VERSION_EXPERIMENTAL) {
-			return $langs->trans("Experimental");
+			return $langs->trans("VersionExperimental");
 		} elseif ($this->version == self::VERSION_DOLIBARR) {
 			return DOL_VERSION;
 		} elseif ($this->version) {
diff --git a/htdocs/install/fileconf.php b/htdocs/install/fileconf.php
index 21e975f8b29..8d040e06ed4 100644
--- a/htdocs/install/fileconf.php
+++ b/htdocs/install/fileconf.php
@@ -333,9 +333,9 @@ if (! empty($force_install_message))
 		            if ($note) $option.=' '.$note;
 		            // Deprecated and experimental
 					if ($type=='mysql') $option.=' ' . $langs->trans("Deprecated");
-		            elseif ($type=='mssql')  $option.=' '.$langs->trans("Experimental");
-		            elseif ($type=='sqlite') $option.=' '.$langs->trans("Experimental");
-		            elseif ($type=='sqlite3') $option.=' '.$langs->trans("Experimental");
+		            elseif ($type=='mssql')  $option.=' '.$langs->trans("VersionExperimental");
+		            elseif ($type=='sqlite') $option.=' '.$langs->trans("VersionExperimental");
+		            elseif ($type=='sqlite3') $option.=' '.$langs->trans("VersionExperimental");
 		            // No available
 		            elseif (! function_exists($testfunction)) $option.=' - '.$langs->trans("FunctionNotAvailableInThisPHP");
 		            $option.='</option>';
diff --git a/htdocs/langs/en_US/accountancy.lang b/htdocs/langs/en_US/accountancy.lang
index edc0a8d512d..a9451deb151 100644
--- a/htdocs/langs/en_US/accountancy.lang
+++ b/htdocs/langs/en_US/accountancy.lang
@@ -1,5 +1,4 @@
 # Dolibarr language file - en_US - Accounting Expert
-CHARSET=UTF-8
 ACCOUNTING_EXPORT_SEPARATORCSV=Column separator for export file
 ACCOUNTING_EXPORT_DATE=Date format for export file
 ACCOUNTING_EXPORT_PIECE=Export the number of piece
@@ -12,8 +11,6 @@ ACCOUNTING_EXPORT_PREFIX_SPEC=Specify the prefix for the file name
  
 Accounting=Accounting
 Globalparameters=Global parameters
-Chartofaccounts=Chart of accounts
-Fiscalyear=Fiscal years
 Menuaccount=Accounting accounts
 Menuthirdpartyaccount=Thirdparty accounts
 MenuTools=Tools
@@ -33,23 +30,17 @@ Back=Return
 
 Definechartofaccounts=Define a chart of accounts
 Selectchartofaccounts=Select a chart of accounts
-Validate=Validate
 Addanaccount=Add an accounting account
 AccountAccounting=Accounting account
 AccountAccountingSuggest=Accounting account suggest
 Ventilation=Breakdown
-ToDispatch=To dispatch
-Dispatched=Dispatched
 
 CustomersVentilation=Breakdown customers
 SuppliersVentilation=Breakdown suppliers
 TradeMargin=Trade margin
 Reports=Reports
 ByCustomerInvoice=By invoices customers
-ByMonth=By Month
 NewAccount=New accounting account
-Update=Update
-List=List
 Create=Create
 CreateMvts=Create movement
 UpdateAccount=Modification of an accounting account
@@ -61,7 +52,6 @@ AccountBalanceByMonth=Account balance by month
 AccountingVentilation=Breakdown accounting
 AccountingVentilationSupplier=Breakdown accounting supplier
 AccountingVentilationCustomer=Breakdown accounting customer
-Line=Line
 
 CAHTF=Total purchase supplier before tax
 InvoiceLines=Lines of invoice to be ventilated
@@ -112,17 +102,12 @@ Docref=Reference
 Numerocompte=Account
 Code_tiers=Thirdparty
 Labelcompte=Label account
-Debit=Debit
-Credit=Credit
-Amount=Amount
 Sens=Sens
 Codejournal=Journal
 
 DelBookKeeping=Delete the records of the general ledger
 
-SellsJournal=Sells journal
-PurchasesJournal=Purchases journal
-DescSellsJournal=Sells journal
+DescSellsJournal=Sales journal
 DescPurchasesJournal=Purchases journal
 BankJournal=Bank journal
 DescBankJournal=Bank journal including all the types of payments other than cash
@@ -150,9 +135,6 @@ Pcgversion=Version of the plan
 Pcgtype=Class of account
 Pcgsubtype=Under class of account
 Accountparent=Root of the account
-Active=Statement
-
-NewFiscalYear=New fiscal year
 
 DescVentilCustomer=Consult here the annual breakdown accounting of your invoices customers
 TotalVente=Total turnover before tax
diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang
index 232eb3e573f..5bac55fddc0 100755
--- a/htdocs/langs/en_US/admin.lang
+++ b/htdocs/langs/en_US/admin.lang
@@ -105,7 +105,6 @@ DetailPosition=Sort number to define menu position
 PersonalizedMenusNotSupported=Personalized menus not supported
 AllMenus=All
 NotConfigured=Module not configured
-Setup=Setup
 Activation=Activation
 Active=Active
 SetupShort=Setup
@@ -193,15 +192,12 @@ ExportOptions=Export Options
 AddDropDatabase=Add DROP DATABASE command
 AddDropTable=Add DROP TABLE command
 ExportStructure=Structure
-Datas=Data
 NameColumn=Name columns
 ExtendedInsert=Extended INSERT
 NoLockBeforeInsert=No lock commands around INSERT 
 DelayedInsert=Delayed insert
 EncodeBinariesInHexa=Encode binary data in hexadecimal
 IgnoreDuplicateRecords=Ignore errors of duplicate records (INSERT IGNORE)
-Yes=Yes
-No=No
 AutoDetectLang=Autodetect (browser language)
 FeatureDisabledInDemo=Feature disabled in demo
 Rights=Permissions
@@ -926,7 +922,6 @@ MenuCompanySetup=Company/Foundation
 MenuNewUser=New user
 MenuTopManager=Top menu manager
 MenuLeftManager=Left menu manager
-MenuManager=Menu manager
 MenuSmartphoneManager=Smartphone menu manager
 DefaultMenuTopManager=Top menu manager
 DefaultMenuLeftManager=Left menu manager
@@ -1110,7 +1105,6 @@ XDebugInstalled=XDebug is loaded.
 XCacheInstalled=XCache is loaded.
 AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink. Third parties will appears with name "CC12345 - SC45678 - The big company coorp", instead of "The big company coorp".
 FieldEdition=Edition of field %s
-FixTZ=TimeZone fix
 FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are experienced)
 GetBarCode=Get barcode
 EmptyNumRefModelDesc=The code is free. This code can be modified at any time.
@@ -1644,8 +1638,6 @@ OpenFiscalYear=Open fiscal year
 CloseFiscalYear=Close fiscal year
 DeleteFiscalYear=Delete fiscal year
 ConfirmDeleteFiscalYear=Are you sure to delete this fiscal year ?
-Opened=Open
-Closed=Closed
 AlwaysEditable=Can always be edited
 MAIN_APPLICATION_TITLE=Force visible name of application (warning: setting your own name here may break autofill login feature when using DoliDroid mobile application)
 NbMajMin=Minimum number of uppercase characters
diff --git a/htdocs/langs/en_US/bills.lang b/htdocs/langs/en_US/bills.lang
index a567fd4f062..db2b9ea4b62 100644
--- a/htdocs/langs/en_US/bills.lang
+++ b/htdocs/langs/en_US/bills.lang
@@ -59,7 +59,6 @@ PaymentBack=Payment back
 Payments=Payments
 PaymentsBack=Payments back
 PaidBack=Paid back
-DatePayment=Payment date
 DeletePayment=Delete payment
 ConfirmDeletePayment=Are you sure you want to delete this payment ?
 ConfirmConvertToReduc=Do you want to convert this credit note or deposit into an absolute discount ?<br>The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer.
@@ -103,7 +102,6 @@ ConvertToReduc=Convert into future discount
 EnterPaymentReceivedFromCustomer=Enter payment received from customer
 EnterPaymentDueToCustomer=Make payment due to customer
 DisabledBecauseRemainderToPayIsZero=Disabled because remaining unpaid is zero
-Amount=Amount
 PriceBase=Price base
 BillStatus=Invoice status
 BillStatusDraft=Draft (needs to be validated)
@@ -187,7 +185,6 @@ ShowInvoiceReplace=Show replacing invoice
 ShowInvoiceAvoir=Show credit note
 ShowInvoiceDeposit=Show deposit invoice
 ShowPayment=Show payment
-File=File
 AlreadyPaid=Already paid
 AlreadyPaidBack=Already paid back
 AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and deposits)
@@ -240,7 +237,6 @@ Reduction=Reduction
 ReductionShort=Reduc.
 Reductions=Reductions
 ReductionsShort=Reduc.
-Discount=Discount
 Discounts=Discounts
 AddDiscount=Create discount
 AddRelativeDiscount=Create relative discount
diff --git a/htdocs/langs/en_US/companies.lang b/htdocs/langs/en_US/companies.lang
index 297556d6533..e31c347605e 100644
--- a/htdocs/langs/en_US/companies.lang
+++ b/htdocs/langs/en_US/companies.lang
@@ -56,7 +56,6 @@ ReportByCustomers=Report by customers
 ReportByQuarter=Report by rate
 CivilityCode=Civility code
 RegisteredOffice=Registered office
-Name=Name
 Lastname=Last name
 Firstname=First name
 PostOrFunction=Post/Function
diff --git a/htdocs/langs/en_US/compta.lang b/htdocs/langs/en_US/compta.lang
index c7cbb6d0a9b..c71b18adc6f 100644
--- a/htdocs/langs/en_US/compta.lang
+++ b/htdocs/langs/en_US/compta.lang
@@ -79,7 +79,6 @@ ListPayment=List of payments
 ListOfPayments=List of payments
 ListOfCustomerPayments=List of customer payments
 ListOfSupplierPayments=List of supplier payments
-DatePayment=Payment date
 DateStartPeriod=Date start period
 DateEndPeriod=Date end period
 NewVATPayment=New VAT payment
@@ -200,7 +199,6 @@ ByProductsAndServices=By products and services
 RefExt=External ref
 ToCreateAPredefinedInvoice=To create a predefined invoice, create a standard invoice then, without validating it, click onto button "Convert to predefined invoice".
 LinkedOrder=Link to order
-ReCalculate=Recalculate
 Mode1=Method 1
 Mode2=Method 2
 CalculationRuleDesc=To calculate total VAT, there is two methods:<br>Method 1 is rounding vat on each line, then summing them.<br>Method 2 is summing all vat on each line, then rounding result.<br>Final result may differs from few cents. Default mode is mode <b>%s</b>.
diff --git a/htdocs/langs/en_US/ecm.lang b/htdocs/langs/en_US/ecm.lang
index 96995adc8ac..d5d69daa7cf 100644
--- a/htdocs/langs/en_US/ecm.lang
+++ b/htdocs/langs/en_US/ecm.lang
@@ -1,5 +1,4 @@
 # Dolibarr language file - Source file is en_US - ecm
-MenuECM=Documents
 DocsMine=My documents
 DocsGenerated=Generated documents
 DocsElements=Elements documents
diff --git a/htdocs/langs/en_US/errors.lang b/htdocs/langs/en_US/errors.lang
index 858e76af447..f3efba10999 100755
--- a/htdocs/langs/en_US/errors.lang
+++ b/htdocs/langs/en_US/errors.lang
@@ -3,8 +3,6 @@
 # No errors
 NoErrorCommitIsDone=No error, we commit
 # Errors
-Error=Error
-Errors=Errors
 ErrorButCommitIsDone=Errors found but we validate despite this
 ErrorBadEMail=EMail %s is wrong
 ErrorBadUrl=Url %s is wrong
diff --git a/htdocs/langs/en_US/hrm.lang b/htdocs/langs/en_US/hrm.lang
index 1ea8d970a3f..1d03a8ebbf9 100644
--- a/htdocs/langs/en_US/hrm.lang
+++ b/htdocs/langs/en_US/hrm.lang
@@ -1,5 +1,4 @@
 # Dolibarr language file - en_US - hrm
-CHARSET=UTF-8
 # Admin
 HRM_EMAIL_EXTERNAL_SERVICE=Email to prevent HRM external service
 Establishments=Establishments
diff --git a/htdocs/langs/en_US/install.lang b/htdocs/langs/en_US/install.lang
index f21af4e072e..ed692c07424 100644
--- a/htdocs/langs/en_US/install.lang
+++ b/htdocs/langs/en_US/install.lang
@@ -52,9 +52,7 @@ ServerPortDescription=Database server port. Keep empty if unknown.
 DatabaseServer=Database server
 DatabaseName=Database name
 DatabasePrefix=Database prefix table
-Login=Login
 AdminLogin=Login for Dolibarr database owner.
-Password=Password
 PasswordAgain=Retype password a second time
 AdminPassword=Password for Dolibarr database owner.
 CreateDatabase=Create database
@@ -62,14 +60,11 @@ CreateUser=Create owner
 DatabaseSuperUserAccess=Database server - Superuser access
 CheckToCreateDatabase=Check box if database does not exist and must be created.<br>In this case, you must fill the login/password for superuser account at the bottom of this page.
 CheckToCreateUser=Check box if database owner does not exist and must be created.<br>In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists.
-Experimental=(experimental)
-Deprecated=(deprecated)
 DatabaseRootLoginDescription=Login of the user allowed to create new databases or new users, mandatory if your database or its owner does not already exists.
 KeepEmptyIfNoPassword=Leave empty if user has no password (avoid this)
 SaveConfigurationFile=Save values
 ConfigurationSaving=Saving configuration file
 ServerConnection=Server connection
-DatabaseConnection=Database connection
 DatabaseCreation=Database creation
 UserCreation=User creation
 CreateDatabaseObjects=Database objects creation
@@ -92,7 +87,6 @@ GoToDolibarr=Go to Dolibarr
 GoToSetupArea=Go to Dolibarr (setup area)
 MigrationNotFinished=Version of your database is not completely up to date, so you'll have to run the upgrade process again. 
 GoToUpgradePage=Go to upgrade page again
-Examples=Examples
 WithNoSlashAtTheEnd=Without the slash "/" at the end
 DirectoryRecommendation=It is recommanded to use a directory outside of your directory of your web pages.
 LoginAlreadyExists=Already exists
@@ -113,7 +107,6 @@ Upgrade=Upgrade
 UpgradeDesc=Use this mode if you have replaced old Dolibarr files with files from a newer version. This will upgrade your database and data.
 Start=Start
 InstallNotAllowed=Setup not allowed by <b>conf.php</b> permissions
-NotAvailable=Not available
 YouMustCreateWithPermission=You must create file %s and set write permissions on it for the web server during install process.
 CorrectProblemAndReloadPage=Please fix the problem and press F5 to reload page.
 AlreadyDone=Already migrated
diff --git a/htdocs/langs/en_US/main.lang b/htdocs/langs/en_US/main.lang
index db1cebac45d..9e27d6cb881 100644
--- a/htdocs/langs/en_US/main.lang
+++ b/htdocs/langs/en_US/main.lang
@@ -28,6 +28,7 @@ NoTranslation=No translation
 NoRecordFound=No record found
 NoError=No error
 Error=Error
+Errors=Errors
 ErrorFieldRequired=Field '%s' is required
 ErrorFieldFormat=Field '%s' has a bad value
 ErrorFileDoesNotExists=File %s does not exist
@@ -671,7 +672,7 @@ NewAttribute=New attribute
 AttributeCode=Attribute code
 OptionalFieldsSetup=Extra attributes setup
 URLPhoto=URL of photo/logo
-SetLinkToThirdParty=Link to another third party
+SetLinkToAnotherThirdParty=Link to another third party
 CreateDraft=Create draft
 SetToDraft=Back to draft
 ClickToEdit=Click to edit
diff --git a/htdocs/langs/en_US/members.lang b/htdocs/langs/en_US/members.lang
index daab8dcc3e5..1844a22c227 100644
--- a/htdocs/langs/en_US/members.lang
+++ b/htdocs/langs/en_US/members.lang
@@ -121,7 +121,6 @@ AttributeName=Attribute name
 String=String
 Text=Text
 Int=Int
-Date=Date
 DateAndTime=Date and time
 PublicMemberCard=Member public card
 MemberNotOrNoMoreExpectedToSubscribe=Member not or no more expected to subscribe
diff --git a/htdocs/langs/en_US/orders.lang b/htdocs/langs/en_US/orders.lang
index 513fb091918..802fb02e6ef 100644
--- a/htdocs/langs/en_US/orders.lang
+++ b/htdocs/langs/en_US/orders.lang
@@ -64,7 +64,6 @@ SearchOrder=Search order
 SearchACustomerOrder=Search a customer order
 SearchASupplierOrder=Search a supplier order
 ShipProduct=Ship product
-Discount=Discount
 CreateOrder=Create Order
 RefuseOrder=Refuse order
 ApproveOrder=Approve order
diff --git a/htdocs/langs/en_US/other.lang b/htdocs/langs/en_US/other.lang
index d2faa9baae5..fe618aa58c4 100644
--- a/htdocs/langs/en_US/other.lang
+++ b/htdocs/langs/en_US/other.lang
@@ -10,27 +10,26 @@ BirthdayAlertOn= birthday alert active
 BirthdayAlertOff= birthday alert inactive
 Notify_FICHINTER_VALIDATE=Intervention validated
 Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail
-Notify_BILL_VALIDATE=Customer invoice validated
-Notify_BILL_UNVALIDATE=Customer invoice unvalidated
+Notify_ORDER_VALIDATE=Customer order validated
+Notify_ORDER_SENTBYMAIL=Customer order sent by mail
+Notify_ORDER_SUPPLIER_SENTBYMAIL=Supplier order sent by mail
 Notify_ORDER_SUPPLIER_VALIDATE=Supplier order recorded
 Notify_ORDER_SUPPLIER_APPROVE=Supplier order approved
 Notify_ORDER_SUPPLIER_REFUSE=Supplier order refused
-Notify_ORDER_VALIDATE=Customer order validated
 Notify_PROPAL_VALIDATE=Customer proposal validated
 Notify_PROPAL_CLOSE_SIGNED=Customer propal closed signed
 Notify_PROPAL_CLOSE_REFUSED=Customer propal closed refused
+Notify_PROPAL_SENTBYMAIL=Commercial proposal sent by mail
 Notify_WITHDRAW_TRANSMIT=Transmission withdrawal
 Notify_WITHDRAW_CREDIT=Credit withdrawal
 Notify_WITHDRAW_EMIT=Perform withdrawal
-Notify_ORDER_SENTBYMAIL=Customer order sent by mail
 Notify_COMPANY_CREATE=Third party created
 Notify_COMPANY_SENTBYMAIL=Mails sent from third party card
-Notify_PROPAL_SENTBYMAIL=Commercial proposal sent by mail
+Notify_BILL_VALIDATE=Customer invoice validated
+Notify_BILL_UNVALIDATE=Customer invoice unvalidated
 Notify_BILL_PAYED=Customer invoice payed
 Notify_BILL_CANCEL=Customer invoice canceled
 Notify_BILL_SENTBYMAIL=Customer invoice sent by mail
-Notify_ORDER_SUPPLIER_VALIDATE=Supplier order validated
-Notify_ORDER_SUPPLIER_SENTBYMAIL=Supplier order sent by mail
 Notify_BILL_SUPPLIER_VALIDATE=Supplier invoice validated
 Notify_BILL_SUPPLIER_PAYED=Supplier invoice payed
 Notify_BILL_SUPPLIER_SENTBYMAIL=Supplier invoice sent by mail
@@ -138,7 +137,6 @@ VolumeUnitinch3=in³
 VolumeUnitounce=ounce
 VolumeUnitlitre=litre
 VolumeUnitgallon=gallon
-Size=size
 SizeUnitm=m
 SizeUnitdm=dm
 SizeUnitcm=cm
diff --git a/htdocs/langs/en_US/products.lang b/htdocs/langs/en_US/products.lang
index 0d3f83d49a9..f345e59891a 100644
--- a/htdocs/langs/en_US/products.lang
+++ b/htdocs/langs/en_US/products.lang
@@ -106,7 +106,6 @@ AddToOtherProposals=Add to other proposals
 AddToMyBills=Add to my bills
 AddToOtherBills=Add to other bills
 CorrectStock=Correct stock
-AddPhoto=Add photo
 ListOfStockMovements=List of stock movements
 BuyingPrice=Buying price
 PriceForEachProduct=Products with specific prices
@@ -139,7 +138,6 @@ KeywordFilter=Keyword filter
 CategoryFilter=Category filter
 ProductToAddSearch=Search product to add
 AddDel=Add/Delete
-Quantity=Quantity
 NoMatchFound=No match found
 ProductAssociationList=List of products/services that are component of this virtual product/package
 ProductParentList=List of package products/services with this product as a component
diff --git a/htdocs/langs/en_US/projects.lang b/htdocs/langs/en_US/projects.lang
index c82d651a01d..4bb6a52af8b 100644
--- a/htdocs/langs/en_US/projects.lang
+++ b/htdocs/langs/en_US/projects.lang
@@ -99,7 +99,6 @@ ReOpenAProject=Open project
 ConfirmReOpenAProject=Are you sure you want to re-open this project ?
 ProjectContact=Project contacts
 ActionsOnProject=Events on project
-OpenedProjects=Opened projects
 YouAreNotContactOfProject=You are not a contact of this private project
 DeleteATimeSpent=Delete time spent
 ConfirmDeleteATimeSpent=Are you sure you want to delete this time spent ?
diff --git a/htdocs/langs/en_US/supplier_proposal.lang b/htdocs/langs/en_US/supplier_proposal.lang
index 7bd743881c1..c90b7abeba2 100644
--- a/htdocs/langs/en_US/supplier_proposal.lang
+++ b/htdocs/langs/en_US/supplier_proposal.lang
@@ -11,7 +11,6 @@ DraftRequests=Draft requests
 LastModifiedRequests=Last %s modified price requests
 RequestsOpened=Open price requests
 SupplierProposalArea=Supplier proposals area
-SupplierProposal=Supplier proposal
 SupplierProposalShort=Supplier proposal
 SupplierProposals=Supplier proposals
 NewAskPrice=New price request
diff --git a/htdocs/langs/en_US/trips.lang b/htdocs/langs/en_US/trips.lang
index c6f4f316a04..ccf89b73c79 100644
--- a/htdocs/langs/en_US/trips.lang
+++ b/htdocs/langs/en_US/trips.lang
@@ -53,8 +53,6 @@ AddLineMini=Add
 Date_DEBUT=Period date start
 Date_FIN=Period date end
 ModePaiement=Payment mode
-Note=Note
-Project=Project
 
 VALIDATOR=User responsible for approval
 VALIDOR=Approved by
diff --git a/htdocs/langs/en_US/users.lang b/htdocs/langs/en_US/users.lang
index 81e1d48d46c..c202fa13002 100644
--- a/htdocs/langs/en_US/users.lang
+++ b/htdocs/langs/en_US/users.lang
@@ -41,7 +41,6 @@ SearchAUser=Search a user
 LoginNotDefined=Login is not defined.
 NameNotDefined=Name is not defined.
 ListOfUsers=List of users
-Administrator=Administrator
 SuperAdministrator=Super Administrator
 SuperAdministratorDesc=Global administrator
 AdministratorDesc=Administrator
diff --git a/htdocs/langs/en_US/withdrawals.lang b/htdocs/langs/en_US/withdrawals.lang
index 47b8863cf25..8248042d10c 100644
--- a/htdocs/langs/en_US/withdrawals.lang
+++ b/htdocs/langs/en_US/withdrawals.lang
@@ -48,7 +48,6 @@ RefusedReason=Reason for rejection
 RefusedInvoicing=Billing the rejection
 NoInvoiceRefused=Do not charge the rejection
 InvoiceRefused=Invoice refused (Charge the rejection to customer)
-Status=Status
 StatusUnknown=Unknown
 StatusWaiting=Waiting
 StatusTrans=Sent
diff --git a/htdocs/product/admin/product.php b/htdocs/product/admin/product.php
index 9c979862933..b3d17646db5 100644
--- a/htdocs/product/admin/product.php
+++ b/htdocs/product/admin/product.php
@@ -51,8 +51,9 @@ $select_pricing_rules=array(
 );
 if ($conf->global->MAIN_FEATURES_LEVEL >= 2)
 {
-	$select_pricing_rules['PRODUIT_CUSTOMER_PRICES_BY_QTY'] = $langs->trans('PriceByQuantity').' ('.$langs->trans("Experimental").')';	// TODO If this is enabled, price must be hidden when price by qty is enabled, also price for quantity must be used when adding product into order/propal/invoice
-	$select_pricing_rules['PRODUIT_CUSTOMER_PRICES_BY_QTY&PRODUIT_MULTIPRICES'] = $langs->trans('MultiPricesAbility') . '+' . $langs->trans('PriceByQuantity').' ('.$langs->trans("Experimental").')';
+    $langs->load("admin");
+	$select_pricing_rules['PRODUIT_CUSTOMER_PRICES_BY_QTY'] = $langs->trans('PriceByQuantity').' ('.$langs->trans("VersionExperimental").')';	// TODO If this is enabled, price must be hidden when price by qty is enabled, also price for quantity must be used when adding product into order/propal/invoice
+	$select_pricing_rules['PRODUIT_CUSTOMER_PRICES_BY_QTY&PRODUIT_MULTIPRICES'] = $langs->trans('MultiPricesAbility') . '+' . $langs->trans('PriceByQuantity').' ('.$langs->trans("VersionExperimental").')';
 }
 
 // Clean param
-- 
GitLab


From 9c227d154e846a192c68902f00f12fe0cd79e08a Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Sun, 6 Dec 2015 13:37:48 +0100
Subject: [PATCH 109/197] Clean duplicate translation key

---
 htdocs/langs/en_US/admin.lang | 2 --
 htdocs/langs/en_US/main.lang  | 3 +++
 htdocs/langs/en_US/trips.lang | 2 --
 3 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang
index 5bac55fddc0..2df962ee15f 100755
--- a/htdocs/langs/en_US/admin.lang
+++ b/htdocs/langs/en_US/admin.lang
@@ -1529,8 +1529,6 @@ DetailLevel=Level (-1:top menu, 0:header menu, >0 menu and sub menu)
 ModifMenu=Menu change
 DeleteMenu=Delete menu entry
 ConfirmDeleteMenu=Are you sure you want to delete menu entry <b>%s</b> ?
-DeleteLine=Delete line
-ConfirmDeleteLine=Are you sure you want to delete this line ?
 FailedToInitializeMenu=Failed to initialize menu
 ##### Tax #####
 TaxSetup=Taxes, social or fiscal taxes and dividends module setup
diff --git a/htdocs/langs/en_US/main.lang b/htdocs/langs/en_US/main.lang
index 9e27d6cb881..3593c844add 100644
--- a/htdocs/langs/en_US/main.lang
+++ b/htdocs/langs/en_US/main.lang
@@ -724,6 +724,9 @@ ViewList=List view
 Mandatory=Mandatory
 Hello=Hello
 Sincerely=Sincerely
+DeleteLine=Delete line
+ConfirmDeleteLine=Are you sure you want to delete this line ?
+
 # Week day
 Monday=Monday
 Tuesday=Tuesday
diff --git a/htdocs/langs/en_US/trips.lang b/htdocs/langs/en_US/trips.lang
index ccf89b73c79..b0c2014a104 100644
--- a/htdocs/langs/en_US/trips.lang
+++ b/htdocs/langs/en_US/trips.lang
@@ -28,8 +28,6 @@ AnyOtherInThisListCanValidate=Person to inform for validation.
 TripSociete=Information company
 TripSalarie=Informations user
 TripNDF=Informations expense report
-DeleteLine=Delete a line of the expense report
-ConfirmDeleteLine=Are you sure you want to delete this line ?
 PDFStandardExpenseReports=Standard template to generate a PDF document for expense report
 ExpenseReportLine=Expense report line
 TF_OTHER=Other
-- 
GitLab


From 2aca50f7f850a2318174b2f6305575fa705df3c1 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Sun, 6 Dec 2015 13:56:15 +0100
Subject: [PATCH 110/197] Removed useless string

---
 htdocs/langs/en_US/oauth.lang | 123 ----------------------------------
 1 file changed, 123 deletions(-)

diff --git a/htdocs/langs/en_US/oauth.lang b/htdocs/langs/en_US/oauth.lang
index b902ff27098..4cc08b058c6 100644
--- a/htdocs/langs/en_US/oauth.lang
+++ b/htdocs/langs/en_US/oauth.lang
@@ -9,129 +9,6 @@ RequestAccess=Click here to request/renew access and receive a new token to save
 DeleteAccess=Click here to delete token
 UseTheFollowingUrlAsRedirectURI=Use the following URL as the Redirect URI when creating your credential on your OAuth provider:
 ListOfSupportedOauthProviders=Enter here credential provided by your OAuth2 provider. Only supported OAuth2 providers are visible here. This setup may be used by other modules than need OAuth2 authentication.
-OAUTH_AMAZON_NAME=Api Amazon
-OAUTH_AMAZON_ID=Api Amazon Id
-OAUTH_AMAZON_SECRET=Api Amazon Secret
-OAUTH_BITBUCKET_NAME=Api Bitbucket
-OAUTH_BITBUCKET_ID=Api Bitbucket Id
-OAUTH_BITBUCKET_SECRET=Api Bitbucket Secret
-OAUTH_BITLY_NAME=Api Bitly
-OAUTH_BITLY_ID=Api Bitly Id
-OAUTH_BITLY_SECRET=Api Bitly Secret
-OAUTH_BITRIX24_NAME=Api Bitrix24
-OAUTH_BITRIX24_ID=Api Bitrix24 Id
-OAUTH_BITRIX24_SECRET=Api Bitrix24 Secret
-OAUTH_BOX_NAME=Api Box
-OAUTH_BOX_ID=Api Box Id
-OAUTH_BOX_SECRET=Api Box Secret
-OAUTH_BUFFER_NAME=Api Buffer
-OAUTH_BUFFER_ID=Api Buffer Id
-OAUTH_BUFFER_SECRET=Api Buffer Secret
-OAUTH_DAILYMOTION_NAME=Api Daylymotion
-OAUTH_DAILYMOTION_ID=Api Daylymotion Id
-OAUTH_DAILYMOTION_SECRET=Api Daylymotion Secret
-OAUTH_DEVIANTART_NAME=Api DeviantArt
-OAUTH_DEVIANTART_ID=Api DeviantArt Id
-OAUTH_DEVIANTART_SECRET=Api DeviantArt Secret
-OAUTH_DROPBOX_NAME=Api Dropbox
-OAUTH_DROPBOX_ID=Api Dropbox Id
-OAUTH_DROPBOX_SECRET=Api Dropbox Secret
-OAUTH_ETSY_NAME=Api Etsy
-OAUTH_ETSY_ID=Api Etsy Id
-OAUTH_ETSY_SECRET=Api Etsy Secret
-OAUTH_EVEONLINE_NAME=Api EveOnline
-OAUTH_EVEONLINE_ID=Api EveOnline Id
-OAUTH_EVEONLINE_SECRET=Api EveOnline Secret
-OAUTH_FACEBOOK_NAME=Api Facebook
-OAUTH_FACEBOOK_ID=Api Facebook Id
-OAUTH_FACEBOOK_SECRET=Api Facebook Secret
-OAUTH_FITBIT_NAME=Api FitBit
-OAUTH_FITBIT_ID=Api FitBit Id
-OAUTH_FITBIT_SECRET=Api FitBit Secret
-OAUTH_FIVEHUNDREDPX_NAME=Api 500px
-OAUTH_FIVEHUNDREDPX_ID=Api 500px Id
-OAUTH_FIVEHUNDREDPX_SECRET=Api 500px Secret
-OAUTH_FLICKR_NAME=Api Flickr
-OAUTH_FLICKR_ID=Api Flickr Id
-OAUTH_FLICKR_SECRET=Api Flickr Secret
-OAUTH_FOURSQUARE_NAME=Api Foursquare
-OAUTH_FOURSQUARE_ID=Api Foursquare Id
-OAUTH_FOURSQUARE_SECRET=Api Foursquare Secret
-OAUTH_GITHUB_NAME=Api Github
-OAUTH_GITHUB_ID=Api Github Id
-OAUTH_GITHUB_SECRET=Api Github Secret
 OAUTH_GOOGLE_NAME=Api Google
 OAUTH_GOOGLE_ID=Api Google Id
 OAUTH_GOOGLE_SECRET=Api Google Secret
-OAUTH_HUBIC_NAME=Api Hubic
-OAUTH_HUBIC_ID=Api Hubic Id
-OAUTH_HUBIC_SECRET=Api Hubic Secret
-OAUTH_INSTAGRAM_NAME=Api Instagram
-OAUTH_INSTAGRAM_ID=Api Instagram Id
-OAUTH_INSTAGRAM_SECRET=Api Instagram Secret
-OAUTH_LINKEDIN_NAME=Api Linkedin
-OAUTH_LINKEDIN_ID=Api Linkedin Id
-OAUTH_LINKEDIN_SECRET=Api Linkedin Secret
-OAUTH_MAILCHIMP_NAME=Api Mailchimp
-OAUTH_MAILCHIMP_ID=Api Mailchimp Id
-OAUTH_MAILCHIMP_SECRET=Api Mailchimp Secret
-OAUTH_MICROSOFT_NAME=Api Microsoft
-OAUTH_MICROSOFT_ID=Api Microsoft Id
-OAUTH_MICROSOFT_SECRET=Api Microsoft Secret
-OAUTH_NEST_NAME=Api Nest
-OAUTH_NEST_ID=Api Nest Id
-OAUTH_NEST_SECRET=Api Nest Secret
-OAUTH_NETATMO_NAME=Api Netatmo
-OAUTH_NETATMO_ID=Api Netatmo Id
-OAUTH_NETATMO_SECRET=Api Netatmo Secret
-OAUTH_PARROTFLOWERPOWER_NAME=Api Parrot Flower Power
-OAUTH_PARROTFLOWERPOWER_ID=Api Parrot Flower Power Id
-OAUTH_PARROTFLOWERPOWER_SECRET=Api Parrot Flower Power Secret
-OAUTH_PAYPAL_NAME=Api Paypal
-OAUTH_PAYPAL_ID=Api Paypal Id
-OAUTH_PAYPAL_SECRET=Api Paypal Secret
-OAUTH_POCKET_NAME=Api Pocket
-OAUTH_POCKET_ID=Api Pocket Id
-OAUTH_POCKET_SECRET=Api Pocket Secret
-OAUTH_QUICKBOOKS_NAME=Api Quickbooks
-OAUTH_QUICKBOOKS_ID=Api Quickbooks Id
-OAUTH_QUICKBOOKS_SECRET=Api Quickbooks Secret
-OAUTH_REDDIT_NAME=Api Reddit
-OAUTH_REDDIT_ID=Api Reddit Id
-OAUTH_REDDIT_SECRET=Api Reddit Secret
-OAUTH_REDMINE_NAME=Api Redmine
-OAUTH_REDMINE_ID=Api Redmine Id
-OAUTH_REDMINE_SECRET=Api Redmine Secret
-OAUTH_RUNKEEPER_NAME=Api Runkeeper
-OAUTH_RUNKEEPER_ID=Api Runkeeper Id
-OAUTH_RUNKEEPER_SECRET=Api Runkeeper Secret
-OAUTH_SCOOPIT_NAME=Api Scoopit
-OAUTH_SCOOPIT_ID=Api Scoopit Id
-OAUTH_SCOOPIT_SECRET=Api Scoopit Secret
-OAUTH_SOUNDCLOUD_NAME=Api Soundcloud
-OAUTH_SOUNDCLOUD_ID=Api Soundcloud Id
-OAUTH_SOUNDCLOUD_SECRET=Api Soundcloud Secret
-OAUTH_SPOTIFY_NAME=Api Spotify
-OAUTH_SPOTIFY_ID=Api Spotify id
-OAUTH_SPOTIFY_SECRET=Api Spotify Secret
-OAUTH_STRAVA_NAME=Api Strava
-OAUTH_STRAVA_ID=Api Strava Id
-OAUTH_STRAVA_SECRET=Api Strava Secret
-OAUTH_TUMBLR_NAME=Api Tumblr
-OAUTH_TUMBLR_ID=Api Tumblr Id
-OAUTH_TUMBLR_SECRET=Api Tumblr Secret
-OAUTH_TWITTER_NAME=Api Twitter
-OAUTH_TWITTER_ID=Api Twitter Id
-OAUTH_TWITTER_SECRET=Api Twitter Secret
-OAUTH_USTREAM_NAME=Api Ustream
-OAUTH_USTREAM_ID=Api Ustream Id
-OAUTH_USTREAM_SECRET=Api Ustream Secret
-OAUTH_VIMEO_NAME=Api Vimeo
-OAUTH_VIMEO_ID=Api Vimeo Id
-OAUTH_VIMEO_SECRET=Api Vimeo Secret
-OAUTH_YAHOO_NAME=Api Yahoo
-OAUTH_YAHOO_ID=Api Yahoo Id
-OAUTH_YAHOO_SECRET=Api Yahoo Secret
-OAUTH_YAMMER_NAME=Api Yammer
-OAUTH_YAMMER_ID=Api Yammer Id
-OAUTH_YAMMER_SECRET=Api Yammer Secret
-- 
GitLab


From 3df097f4bf969a611e466a7dd9972658c38f0e8d Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Sun, 6 Dec 2015 14:06:37 +0100
Subject: [PATCH 111/197] Update doc

---
 build/makepack-howto.txt | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/build/makepack-howto.txt b/build/makepack-howto.txt
index 2bf516dfe88..b4a13badbf4 100644
--- a/build/makepack-howto.txt
+++ b/build/makepack-howto.txt
@@ -9,7 +9,7 @@ beta version of Dolibarr, step by step.
 
 - Check all files are commited.
 - Update version/info in ChangeLog. 
-To generate a changelog of a major new version x.y.0, you can do "cd ~/git/dolibarr_x.y; git log `git rev-list --boundary x.y..origin/develop | grep ^- | cut -c2- | head -n`.. --no-merges --pretty=short --oneline | sed -e "s/^[0-9a-z]* //" | grep -e '^FIX\|NEW' | sort -u | sed 's/FIXED:/FIX:/g' | sed 's/FIXED :/FIX:/g' | sed 's/FIX :/FIX:/g' | sed 's/FIX /FIX: /g' | sed 's/NEW :/NEW:/g' | sed 's/NEW /NEW: /g' > /tmp/aaa"
+To generate a changelog of a major new version x.y.0, you can do "cd ~/git/dolibarr_x.y; git log `git rev-list --boundary x.y..origin/develop | grep ^- | cut -c2- | head -n 1`.. --no-merges --pretty=short --oneline | sed -e "s/^[0-9a-z]* //" | grep -e '^FIX\|NEW' | sort -u | sed 's/FIXED:/FIX:/g' | sed 's/FIXED :/FIX:/g' | sed 's/FIX :/FIX:/g' | sed 's/FIX /FIX: /g' | sed 's/NEW :/NEW:/g' | sed 's/NEW /NEW: /g' > /tmp/aaa"
 To generate a changelog of a maintenance version x.y.z, you can do "cd ~/git/dolibarr_x.y; git log x.y.z-1.. --no-merges --pretty=short --oneline | sed -e "s/^[0-9a-z]* //" | grep -e '^FIX\|NEW' | sort -u | sed 's/FIXED:/FIX:/g' | sed 's/FIXED :/FIX:/g' | sed 's/FIX :/FIX:/g' | sed 's/FIX /FIX: /g' | sed 's/NEW :/NEW:/g' | sed 's/NEW /NEW: /g' > /tmp/aaa"
 - Update version number with x.y.z-w in htdocs/filefunc.inc.php
 - Commit all changes.
@@ -31,7 +31,7 @@ complete release of Dolibarr, step by step.
 
 - Check all files are commited.
 - Update version/info in ChangeLog. 
-To generate a changelog of a major new version x.y.0, you can do "cd ~/git/dolibarr_x.y; git log `git rev-list --boundary x.y..origin/develop | grep ^- | cut -c2- | head -n`.. --no-merges --pretty=short --oneline | sed -e "s/^[0-9a-z]* //" | grep -e '^FIX\|NEW' | sort -u | sed 's/FIXED:/FIX:/g' | sed 's/FIXED :/FIX:/g' | sed 's/FIX :/FIX:/g' | sed 's/FIX /FIX: /g' | sed 's/NEW :/NEW:/g' | sed 's/NEW /NEW: /g' > /tmp/aaa"
+To generate a changelog of a major new version x.y.0, you can do "cd ~/git/dolibarr_x.y; git log `git rev-list --boundary x.y..origin/develop | grep ^- | cut -c2- | head -n 1`.. --no-merges --pretty=short --oneline | sed -e "s/^[0-9a-z]* //" | grep -e '^FIX\|NEW' | sort -u | sed 's/FIXED:/FIX:/g' | sed 's/FIXED :/FIX:/g' | sed 's/FIX :/FIX:/g' | sed 's/FIX /FIX: /g' | sed 's/NEW :/NEW:/g' | sed 's/NEW /NEW: /g' > /tmp/aaa"
 To generate a changelog of a maintenance version x.y.z, you can do "cd ~/git/dolibarr_x.y; git log x.y.z-1.. --no-merges --pretty=short --oneline | sed -e "s/^[0-9a-z]* //" | grep -e '^FIX\|NEW' | sort -u | sed 's/FIXED:/FIX:/g' | sed 's/FIXED :/FIX:/g' | sed 's/FIX :/FIX:/g' | sed 's/FIX /FIX: /g' | sed 's/NEW :/NEW:/g' | sed 's/NEW /NEW: /g' > /tmp/aaa"
 - Update version number with x.y.z in htdocs/filefunc.inc.php
 - Commit all changes.
-- 
GitLab


From d9533e90011da0f38050b18f15f65cf67b006b78 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Sun, 6 Dec 2015 14:27:52 +0100
Subject: [PATCH 112/197] Prepare 3.9

---
 ChangeLog | 138 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 138 insertions(+)

diff --git a/ChangeLog b/ChangeLog
index 09e216e93fc..e24ed014b2b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -13,11 +13,147 @@ make a Dolibarr upgrade.
 
 
 ***** ChangeLog for 3.9 compared to 3.8.* *****
+For users:
+NEW: #3767 Allow changing multiple prices of a product at once
+NEW: Add a button to purge criteria in user list
+NEW: Add a filter field to restrict list of member when doing a LDAP list request. Use also this filter into ldap command line script making sync from ldap to dolibarr.
+NEW: Add all assigned users and all extrafields data in new event when we createFromClone
+NEW: Add hidden option to use standard position address in crabe model For electronic sending solutions
+NEW: Add a refresh button on page list of direct print jobs.
+NEW: Add a tab document in donation card
+NEW: Add cancel button on thirdparty create page
+NEW: Add chart of product statistics
+NEW: Add color on categories
+NEW: Add css on column of detail lines to allow module to easily manipulate fields.
+NEW: Add date value filter on account records list
+NEW: Added __PROJECT_NAME__ tag for customer invoice emails
+NEW: Add exemple of setup for multitail to render dolibarr log files
+NEW: Add experimental option PDF_ALLOW_HTML_FOR_FREE_TEXT to be able to enter pdf footer text with wysiwyg editor.
+NEW: Add fields into llx_cronjobs to be able to use job table to queue one shot jobs.
+NEW: Add filter on status on invoice list
+NEW: Add filter on status on shipments
+NEW: Add gender property managed on user card FIX: Better error messages when uploading photo of user when permission to write are not granted
+NEW: Add help tooltips on fields of dictionary edit pages. Fix: visible list of tasks are for opened project only.
+NEW: Add hidden option MAIN_MAILFORM_DISABLE_ENTERKEY to disable the key enter into the form to send email.
+NEW: add hook in send mail
+NEW: Add hooks on list of members to allow an external module to add more fields into list view.
+NEW: Add hooks to allow an external module to complete list of events into calendar views.
+NEW: add $ID$ into extrafields management to allow use current object id on filter for select list from table and checkbox list from table
+NEW: add info page on product card
+NEW: Add into about page, a sample text to use to promote new version release (visible only if version is last stable)
+NEW: Add none/all selection into list of files for FTP browser module
+NEW: Add opportunity amount on project card.
+NEW: Add option THEME_ELDY_DISABLE_IMAGE to disable images into menu eldy.
+NEW: Add parameter to add a link to use "date of invoice" in one click when fille a payment card.
+NEW: Add planned workload and declared progress on project summary list on project home page (data aggregated from tasks of project)
+NEW: add "productpricecard" hook and uniformize code
+NEW: Add ref and label of project into export
+NEW: add restler framework First step to build REST API into Dolibarr
+NEW: Add status into filters of graph
+NEW: Add tab document on salaries payment
+NEW: Add thumb of users into thumbs stats on home page
+NEW: A link to the bugtracker can be enabled in the GUI
+NEW: Better look for POS. More responsive design.
+NEW: Can add project search on left menu search area
+NEW: Can assign a task to yourself to have it appear on timesheet
+NEW: Can choose fields to show on project list
+NEW: Can close a project that has draft status with no need to switch it to validate status before.
+NEW: Can edit Background color for Top menu and Background color for table title line.
+NEW: Can edit email template using WYSIWYG editor
+NEW: Can edit list of prospect status for customers/prospects. Add a new entry into dictionary table to manage list fo status. Removed deprecated files.
+NEW: Can filter on contact status in prospect list. Removed deprecated menu entry.
+NEW: Can filter proposal on a tag of a product Enhance also the prototype test_arrays to include select form before table.
+NEW: Can filter proposal, orders or invoices with criteria "contain at least one product with following tag"
+NEW: Can select fields to show in product list. Extrafields are also supported.
+NEW: Can select fields to show into the contact list. Extrafields are also supported.
+NEW: Can select which field to show into list of users. Extrafields are also supported.
+NEW: Can set default value of event type when creating an event (if type of event option is used).
+NEW: Can upload files on leave requests. Use more standard permissions.
+NEW: Can use a "|" to make a OR search on several different criterias into text filters of tables.
+NEW: Can use the * as a joker characters into search boxes of lists
+NEW: Clean code into salary module, debug and add indexes NEW: Can filter on user list and salary payments on user with naural search.
+NEW: clone action on agenda events
+NEW: Color category is visible onto the thumb of tags on thirdparty, or products cards.
+NEW: conf to use next product/service ref when we clone a product/service
+NEW: Contract module can be used to follow both sold and bought contracts/recurring subscriptions.
+NEW: Enhance prototype, project list and proposal list with new hooks to have an external module able to add more fields.
+NEW: Enhance style engine. Add option to set color of links.
+NEW: Enter amount for withdraws requests
+NEW: FEATURE PROPOSAL: on proposal, order or invoice creation from scratch, reload page after customer selection so its informations can be loaded
+NEW: Filter "active" by default on user list. Fix label of permission of project module.
+NEW: Forms are using the tab look, even in creation mode.
+NEW: Free text for cheque deposit receipt can be HTML content.
+NEW: Hidden option THEME_ELDY_USE_HOVER is stable enough to become officialy visible into setup.
+NEW: If module salaries is on, you can set a hourly value for time consumed by users. Each time a user enter its time consumed on a project, a calculation is done to provide the cost for human services. This value appears into the "Transversal view" of project.
+NEW: Import Sales representatives of third parties
+NEW: Increase length of bank code to 128 char #3704
+NEW: info function for product card
+NEW: Into the overview of projects, the name of thirdparty appears into combo lists of elements to link to project.
+NEW: Introduce a "code" into fiels to describe vat. This will allow to suggest different vat lines with same value with ability to differentiate them.
+NEW: Introduce cost price on product.
+NEW: Introduce hidden option MAIN_LANDING_PAGE to decide the home page visible just after login.
+NEW: Introduce hidden option MAIN_REPLACE_TRANS_xx_XX to allow simple replacement of translated string on the fly.
+NEW: Introduce table llx_overwrite_trans to be able to overwrite translations by simple database edition.
+NEW: Introduce use of cache for thumbs images of users
+NEW: Experimental level multiprice generator based on per cent variations over base price
+NEW: List of projects of a thirdparty are visible on a project tab
+NEW: Merge all left menu search boxes into one.
+NEW: Merge all search fields of an area page into one search box
+NEW: next ref on clone doesn't need conf, it's used if mask exists
+NEW: ODT generators can set meta properties of ODT file
+NEW: On list of thirdparties, user can select fields to show. Make phpunit test working again localy. Add missing columns into llx_expedition.
+NEW: Only arrow of current sorted field is visible into table views. This save a lot of spaces. You can click on the column title to sort. This make clickable area larger and click to sort is easier.
+NEW: On page to see/edit contact of an ojbect, the status of contact is visible (for both external and internal users).
+NEW: Option encrypt password into databae is set to on by default on first install.
+NEW: print event type on third party card tab agenda list (only if AGENDA_USE_EVENT_TYPE = 1)
+NEW: Provide an easier way to understand if an order can be shipped.
+NEW: Quick searh filter works on invoice, proposal, order, intervention, contract
+NEW: Rename install "etape" into english "step"
+NEW: Replace category edition page on members with new select2 component.
+NEW: Show photo of logged user into login top right block. NEW: If no photo is available for user, we show a generic photo depending on gender
+NEW: Show photo of user into user list. A new function getImageFileNameForSize was also introduced to choose image best size according to usage to save bandwith.
+NEW: Show which fields are used for search when doing a generic search from the quick search form.
+NEW: Statistic graphs on products offer a filter on product type (product / service or both)
+NEW: Support logging to a Sentry server
+NEW: Syslog displays configuration errors
+NEW: [ task 1191 ] AJAX selector for projects
+NEW: [ task #3768 ] Improve product multiprices view
+NEW: [ task #851 ] Add a new field: Commercial name
+NEW: The clicktodial module is now able to provide link "tel:" on phone numbers. So it is also possible to use clicktodial with a client solution like the "xivo" local client.
+NEW: The conditional IF into ODT templates works also on not defined var so we can show data only if defined. Close #3819
+NEW: The free text in PDF footer can now be a HTML content. So the WYSIWYG editor is on by default to edit it into module setup.
+NEW: The line where mouse is over can be highlight with option THEME_ELDY_USE_HOVER (on by default)
+NEW: The quick search box on left menu can also search into expense reports.
+NEW: The search box and the bookmarks are now rendered by the menu manager.
+NEW: The thirdparties tabs, the contacts tabs and the members tabs are now presented using a new top banner, saving space and using a same way to show address, status and navigation arrows.
+NEW: Thumbs for statistics on main page are fully clicable (not only link inside the thumb)
+NEW: Translate extrafield's labels
+NEW: Uniformize way of working for search filters. One filter per object.
+NEW: Used matching icons for Material Design theme
+NEW: Use new select2 component for juridical status, country and state selection.
+NEW: When creating order, proposal or invoice from thirdparty card, the project is asked during creation. A link to create project if it does not exists is also available. NEW: Uniformize form creation of proposal to add public and private notes during creation like done for order and invoice.
+
+For developers:
+NEW: Add a new widget $form->selectArrayAjax() to use combo list with content coming from an Ajax URL.
+NEW: Add doActions hook method call in contract card
+NEW: Added doActions hooks to user cards
+NEW: Add a new component to select categories/tags from the main edit page of product. The dedicated tab is also removed.
+NEW: upgrade jQuery Component Datable (and extras) to 1.10.7
+NEW: script to build API class from existing class
+NEW: Prepare database to store information per files (for example to define if an image can be used as a cover or not)
+NEW: log hooks loading
+NEW: Introduce property module_position so a module can decide where it appears into list of modules.
+NEW: Introduce function dolGetFirstLineOfText
+NEW: Introduce a method getDefaultCreateValueForField for developers to get a default value to use for a form in create mode. Implement it for public and private notes.
+NEW: A module can add its entries into cron module.
+NEW: Framework feature. To have a page being loaded at same scrollbar level after a click on a href link, just add the class "reposition" on this link.
+
 
 WARNING: 
 
 Following changes may create regression for some external modules, but were necessary to make
 Dolibarr better:
+- Deprecated Product::setPriceExpression. Use Product::update instead
 - Deprecated hidden option MAIN_USE_CUSTOM_TRANSLATION has been removed. Use table llx_overwrite_trans instead.
 - Trigger LINECONTRACT_INSERT has been renamed into LINECONTRACT_CREATE to match common denomination.
 - A lot hooks used into PDF generation were not correctly implemented. We had to fix this. The result si that
@@ -27,6 +163,8 @@ This is list of hooks modified:
 'pdf_getlinenum', 'pdf_getlineref', 'pdf_getlineref_supplier', 'pdf_getlinevatrate', 'pdf_getlineupexcltax',
 'pdf_getlineupwithtax', 'pdf_getlineqty', 'pdf_getlineqty_asked', 'pdf_getlineqty_shipped', 'pdf_getlineqty_keeptoship',
 'pdf_getlineunit', 'pdf_getlineremisepercent', 'pdf_getlineprogress', 'pdf_getlinetotalexcltax', 'pdf_getlinetotalwithtax'
+- Renamed Product::isservice and Product::isproduct to match PSR-2
+- Remove deprecated Product::hidden property
 
 
  
-- 
GitLab


From e470869afe4502abf69fa7f39c6e7979154e9649 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Sun, 6 Dec 2015 14:35:36 +0100
Subject: [PATCH 113/197] Prepare 3.9

---
 ChangeLog | 29 +++++++++++++----------------
 1 file changed, 13 insertions(+), 16 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index e24ed014b2b..d2b0d63216a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -14,41 +14,40 @@ make a Dolibarr upgrade.
 
 ***** ChangeLog for 3.9 compared to 3.8.* *****
 For users:
+NEW: A new and more modern look for "eldy" theme.
+NEW: Introduce a new theme called "Material Design". 
 NEW: #3767 Allow changing multiple prices of a product at once
 NEW: Add a button to purge criteria in user list
 NEW: Add a filter field to restrict list of member when doing a LDAP list request. Use also this filter into ldap command line script making sync from ldap to dolibarr.
 NEW: Add all assigned users and all extrafields data in new event when we createFromClone
 NEW: Add hidden option to use standard position address in crabe model For electronic sending solutions
 NEW: Add a refresh button on page list of direct print jobs.
-NEW: Add a tab document in donation card
+NEW: Add a tab "document" in donation card
 NEW: Add cancel button on thirdparty create page
 NEW: Add chart of product statistics
 NEW: Add color on categories
-NEW: Add css on column of detail lines to allow module to easily manipulate fields.
+NEW: Add css class and ids on column of detail lines to allow module to easily manipulate fields.
 NEW: Add date value filter on account records list
-NEW: Added __PROJECT_NAME__ tag for customer invoice emails
-NEW: Add exemple of setup for multitail to render dolibarr log files
-NEW: Add experimental option PDF_ALLOW_HTML_FOR_FREE_TEXT to be able to enter pdf footer text with wysiwyg editor.
+NEW: Add __PROJECT_NAME__ tag for customer invoice emails
+NEW: Add option PDF_ALLOW_HTML_FOR_FREE_TEXT to be able to enter pdf footer text with wysiwyg editor.
 NEW: Add fields into llx_cronjobs to be able to use job table to queue one shot jobs.
 NEW: Add filter on status on invoice list
 NEW: Add filter on status on shipments
 NEW: Add gender property managed on user card FIX: Better error messages when uploading photo of user when permission to write are not granted
-NEW: Add help tooltips on fields of dictionary edit pages. Fix: visible list of tasks are for opened project only.
+NEW: Add help tooltips on fields of dictionary edit pages.
 NEW: Add hidden option MAIN_MAILFORM_DISABLE_ENTERKEY to disable the key enter into the form to send email.
-NEW: add hook in send mail
+NEW: Add hook in send mail
 NEW: Add hooks on list of members to allow an external module to add more fields into list view.
 NEW: Add hooks to allow an external module to complete list of events into calendar views.
-NEW: add $ID$ into extrafields management to allow use current object id on filter for select list from table and checkbox list from table
-NEW: add info page on product card
+NEW: Add $ID$ into extrafields management to allow use of current object id on filter for select list from table and checkbox list from table
+NEW: Add info page on product card
 NEW: Add into about page, a sample text to use to promote new version release (visible only if version is last stable)
 NEW: Add none/all selection into list of files for FTP browser module
 NEW: Add opportunity amount on project card.
-NEW: Add option THEME_ELDY_DISABLE_IMAGE to disable images into menu eldy.
 NEW: Add parameter to add a link to use "date of invoice" in one click when fille a payment card.
 NEW: Add planned workload and declared progress on project summary list on project home page (data aggregated from tasks of project)
-NEW: add "productpricecard" hook and uniformize code
+NEW: Add "productpricecard" hook and uniformize code
 NEW: Add ref and label of project into export
-NEW: add restler framework First step to build REST API into Dolibarr
 NEW: Add status into filters of graph
 NEW: Add tab document on salaries payment
 NEW: Add thumb of users into thumbs stats on home page
@@ -116,13 +115,9 @@ NEW: Show which fields are used for search when doing a generic search from the
 NEW: Statistic graphs on products offer a filter on product type (product / service or both)
 NEW: Support logging to a Sentry server
 NEW: Syslog displays configuration errors
-NEW: [ task 1191 ] AJAX selector for projects
-NEW: [ task #3768 ] Improve product multiprices view
-NEW: [ task #851 ] Add a new field: Commercial name
 NEW: The clicktodial module is now able to provide link "tel:" on phone numbers. So it is also possible to use clicktodial with a client solution like the "xivo" local client.
 NEW: The conditional IF into ODT templates works also on not defined var so we can show data only if defined. Close #3819
 NEW: The free text in PDF footer can now be a HTML content. So the WYSIWYG editor is on by default to edit it into module setup.
-NEW: The line where mouse is over can be highlight with option THEME_ELDY_USE_HOVER (on by default)
 NEW: The quick search box on left menu can also search into expense reports.
 NEW: The search box and the bookmarks are now rendered by the menu manager.
 NEW: The thirdparties tabs, the contacts tabs and the members tabs are now presented using a new top banner, saving space and using a same way to show address, status and navigation arrows.
@@ -147,6 +142,8 @@ NEW: Introduce function dolGetFirstLineOfText
 NEW: Introduce a method getDefaultCreateValueForField for developers to get a default value to use for a form in create mode. Implement it for public and private notes.
 NEW: A module can add its entries into cron module.
 NEW: Framework feature. To have a page being loaded at same scrollbar level after a click on a href link, just add the class "reposition" on this link.
+NEW: Add exemple of setup for multitail to render dolibarr log files
+NEW: Add restler framework. First step to build REST API into Dolibarr.
 
 
 WARNING: 
-- 
GitLab


From 984068c136addf80da93678f1b8568413290ba4b Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Sun, 6 Dec 2015 19:17:39 +0100
Subject: [PATCH 114/197] Fix length of password too low (password was
 truncated making them inoperent)

---
 htdocs/install/mysql/migration/3.8.0-3.9.0.sql | 2 ++
 htdocs/install/mysql/tables/llx_user.sql       | 4 ++--
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/htdocs/install/mysql/migration/3.8.0-3.9.0.sql b/htdocs/install/mysql/migration/3.8.0-3.9.0.sql
index 767a7dd0e7a..d29b87ddf61 100755
--- a/htdocs/install/mysql/migration/3.8.0-3.9.0.sql
+++ b/htdocs/install/mysql/migration/3.8.0-3.9.0.sql
@@ -29,6 +29,8 @@ ALTER TABLE llx_don ADD COLUMN fk_country integer NOT NULL DEFAULT 0 after count
 UPDATE llx_commande_fourn set billed=1 where statut = 8;
 UPDATE llx_commande_fourn set statut=5 where statut = 8 and billed=1;
 
+ALTER TABLE llx_user MODIFY COLUMN pass varchar(128);
+ALTER TABLE llx_user MODIFY COLUMN pass_temp varchar(128); 
 
 ALTER TABLE llx_askpricesupplier RENAME TO llx_supplier_proposal;
 ALTER TABLE llx_askpricesupplierdet RENAME TO llx_supplier_proposaldet;
diff --git a/htdocs/install/mysql/tables/llx_user.sql b/htdocs/install/mysql/tables/llx_user.sql
index 7263803feb6..e334ae1f802 100644
--- a/htdocs/install/mysql/tables/llx_user.sql
+++ b/htdocs/install/mysql/tables/llx_user.sql
@@ -34,9 +34,9 @@ create table llx_user
   fk_user_creat     integer,
   fk_user_modif     integer,
   login             varchar(24) NOT NULL,
-  pass              varchar(32),
+  pass              varchar(128),
   pass_crypted      varchar(128),
-  pass_temp         varchar(32),			    -- temporary password when asked for forget password
+  pass_temp         varchar(128),			    -- temporary password when asked for forget password
   api_key           varchar(128),				-- key to use REST API by this user
   gender            varchar(10),
   civility          varchar(6),
-- 
GitLab


From a209d1864984e26b39cbfd13f2634d513ef466ec Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Sun, 6 Dec 2015 19:51:28 +0100
Subject: [PATCH 115/197] FIX Can use formated float number on old expense
 report module.

---
 htdocs/compta/deplacement/card.php | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/htdocs/compta/deplacement/card.php b/htdocs/compta/deplacement/card.php
index 3676a87567d..939c50e68d9 100644
--- a/htdocs/compta/deplacement/card.php
+++ b/htdocs/compta/deplacement/card.php
@@ -115,7 +115,7 @@ else if ($action == 'add' && $user->rights->deplacement->creer)
         $error=0;
 
         $object->date			= dol_mktime(12, 0, 0, GETPOST('remonth','int'), GETPOST('reday','int'), GETPOST('reyear','int'));
-        $object->km				= GETPOST('km','int');
+        $object->km				= price2num(GETPOST('km','alpha'), 'MU'); // Not 'int', it may be a formated amount
         $object->type			= GETPOST('type','alpha');
         $object->socid			= GETPOST('socid','int');
         $object->fk_user		= GETPOST('fk_user','int');
@@ -174,7 +174,7 @@ else if ($action == 'update' && $user->rights->deplacement->creer)
         $result = $object->fetch($id);
 
         $object->date			= dol_mktime(12, 0, 0, GETPOST('remonth','int'), GETPOST('reday','int'), GETPOST('reyear','int'));
-        $object->km				= GETPOST('km','int');
+        $object->km				= price2num(GETPOST('km','alpha'), 'MU'); // Not 'int', it may be a formated amount
         $object->type			= GETPOST('type','alpha');
         $object->socid			= GETPOST('socid','int');
         $object->fk_user		= GETPOST('fk_user','int');
-- 
GitLab


From 7e31c8f38f221b3a8bb78b319467f0cd5adae57b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Laurent=20L=C3=A9onard?= <laurent@openthink.be>
Date: Mon, 7 Dec 2015 01:27:08 +0100
Subject: [PATCH 116/197] Fix decimals in payments of supplier invoices

---
 htdocs/fourn/class/paiementfourn.class.php | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/htdocs/fourn/class/paiementfourn.class.php b/htdocs/fourn/class/paiementfourn.class.php
index 98876ab2519..5326bbde85e 100644
--- a/htdocs/fourn/class/paiementfourn.class.php
+++ b/htdocs/fourn/class/paiementfourn.class.php
@@ -128,10 +128,9 @@ class PaiementFourn extends Paiement
 		$this->total = 0;
 		foreach ($this->amounts as $key => $value)
 		{
-			$value = price2num($value);
-			$val = round($value, 2);
-			$this->amounts[$key] = $val;
-			$this->total += $val;
+			$newvalue = price2num($value, 'MT');
+			$this->amounts[$key] = $newvalue;
+			$this->total += $newvalue;
 		}
 		$this->total = price2num($this->total);
 
-- 
GitLab


From 05234390f287b484f366b12edfbcfe99ccdd60e2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Laurent=20L=C3=A9onard?= <laurent@openthink.be>
Date: Mon, 7 Dec 2015 02:02:03 +0100
Subject: [PATCH 117/197] Fix uniqueness of objects reference

---
 htdocs/core/class/commonobject.class.php | 1 +
 1 file changed, 1 insertion(+)

diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php
index bba17f50d11..659ff4d3c5a 100644
--- a/htdocs/core/class/commonobject.class.php
+++ b/htdocs/core/class/commonobject.class.php
@@ -364,6 +364,7 @@ abstract class CommonObject
 			dol_print_error(get_class()."::isExistingObject ".$error, LOG_ERR);
 			return -1;
 		}
+		if ($ref || $ref_ext) $sql.= " AND entity = ".$conf->entity;
 
 		dol_syslog(get_class()."::isExistingObject", LOG_DEBUG);
 		$resql = $db->query($sql);
-- 
GitLab


From 1dc58545351476d5587024f97887135c1a462562 Mon Sep 17 00:00:00 2001
From: Ion Agorria <ion@agorria.com>
Date: Mon, 7 Dec 2015 03:59:03 +0100
Subject: [PATCH 118/197] Fix date handling for hours/mins in some pages

---
 htdocs/comm/propal.php         |  8 ++++----
 htdocs/commande/card.php       |  8 ++++----
 htdocs/fourn/commande/card.php | 11 ++++-------
 htdocs/fourn/facture/card.php  | 11 +++++++----
 4 files changed, 19 insertions(+), 19 deletions(-)

diff --git a/htdocs/comm/propal.php b/htdocs/comm/propal.php
index 9ab3a1967f1..e039342dd38 100644
--- a/htdocs/comm/propal.php
+++ b/htdocs/comm/propal.php
@@ -862,8 +862,8 @@ if (empty($reshook))
 			$fournprice = price2num(GETPOST('fournprice' . $predef) ? GETPOST('fournprice' . $predef) : '');
 			$buyingprice = price2num(GETPOST('buying_price' . $predef) != '' ? GETPOST('buying_price' . $predef) : '');    // If buying_price is '0', we muste keep this value
 
-			$date_start = dol_mktime(0, 0, 0, GETPOST('date_start' . $predef . 'month'), GETPOST('date_start' . $predef . 'day'), GETPOST('date_start' . $predef . 'year'));
-			$date_end = dol_mktime(0, 0, 0, GETPOST('date_end' . $predef . 'month'), GETPOST('date_end' . $predef . 'day'), GETPOST('date_end' . $predef . 'year'));
+			$date_start = dol_mktime(GETPOST('date_start' . $predef . 'hour'), GETPOST('date_start' . $predef . 'min'), GETPOST('date_start' . $predef . 'sec'), GETPOST('date_start' . $predef . 'month'), GETPOST('date_start' . $predef . 'day'), GETPOST('date_start' . $predef . 'year'));
+			$date_end = dol_mktime(GETPOST('date_end' . $predef . 'hour'), GETPOST('date_end' . $predef . 'min'), GETPOST('date_end' . $predef . 'sec'), GETPOST('date_end' . $predef . 'month'), GETPOST('date_end' . $predef . 'day'), GETPOST('date_end' . $predef . 'year'));
 
 			// Local Taxes
 			$localtax1_tx = get_localtax($tva_tx, 1, $object->thirdparty);
@@ -957,8 +957,8 @@ if (empty($reshook))
 		$fournprice = price2num(GETPOST('fournprice') ? GETPOST('fournprice') : '');
 		$buyingprice = price2num(GETPOST('buying_price') != '' ? GETPOST('buying_price') : '');    // If buying_price is '0', we muste keep this value 
 
-		$date_start = dol_mktime(0, 0, 0, GETPOST('date_startmonth'), GETPOST('date_startday'), GETPOST('date_startyear'));
-		$date_end = dol_mktime(0, 0, 0, GETPOST('date_endmonth'), GETPOST('date_endday'), GETPOST('date_endyear'));
+		$date_start = dol_mktime(GETPOST('date_starthour'), GETPOST('date_startmin'), GETPOST('date_startsec'), GETPOST('date_startmonth'), GETPOST('date_startday'), GETPOST('date_startyear'));
+		$date_end = dol_mktime(GETPOST('date_endhour'), GETPOST('date_endmin'), GETPOST('date_endsec'), GETPOST('date_endmonth'), GETPOST('date_endday'), GETPOST('date_endyear'));
 
 		// Extrafields
 		$extrafieldsline = new ExtraFields($db);
diff --git a/htdocs/commande/card.php b/htdocs/commande/card.php
index 7da702dea23..8352a20797c 100644
--- a/htdocs/commande/card.php
+++ b/htdocs/commande/card.php
@@ -626,8 +626,8 @@ if (empty($reshook))
 
 		if (! $error && ($qty >= 0) && (! empty($product_desc) || ! empty($idprod))) {
 			// Clean parameters
-			$date_start=dol_mktime(GETPOST('date_start'.$predef.'hour'), GETPOST('date_start'.$predef.'min'), 0, GETPOST('date_start'.$predef.'month'), GETPOST('date_start'.$predef.'day'), GETPOST('date_start'.$predef.'year'));
-			$date_end=dol_mktime(GETPOST('date_start'.$predef.'hour'), GETPOST('date_start'.$predef.'min'), 0, GETPOST('date_end'.$predef.'month'), GETPOST('date_end'.$predef.'day'), GETPOST('date_end'.$predef.'year'));
+			$date_start=dol_mktime(GETPOST('date_start'.$predef.'hour'), GETPOST('date_start'.$predef.'min'), GETPOST('date_start'.$predef.'sec'), GETPOST('date_start'.$predef.'month'), GETPOST('date_start'.$predef.'day'), GETPOST('date_start'.$predef.'year'));
+			$date_end=dol_mktime(GETPOST('date_end'.$predef.'hour'), GETPOST('date_end'.$predef.'min'), GETPOST('date_end'.$predef.'sec'), GETPOST('date_end'.$predef.'month'), GETPOST('date_end'.$predef.'day'), GETPOST('date_end'.$predef.'year'));
 			$price_base_type = (GETPOST('price_base_type', 'alpha')?GETPOST('price_base_type', 'alpha'):'HT');
 
 			// Ecrase $pu par celui du produit
@@ -833,8 +833,8 @@ if (empty($reshook))
 		// Clean parameters
 		$date_start='';
 		$date_end='';
-		$date_start=dol_mktime(GETPOST('date_starthour'), GETPOST('date_startmin'), 0, GETPOST('date_startmonth'), GETPOST('date_startday'), GETPOST('date_startyear'));
-		$date_end=dol_mktime(GETPOST('date_starthour'), GETPOST('date_startmin'), 0, GETPOST('date_endmonth'), GETPOST('date_endday'), GETPOST('date_endyear'));
+		$date_start=dol_mktime(GETPOST('date_starthour'), GETPOST('date_startmin'), GETPOST('date_startsec'), GETPOST('date_startmonth'), GETPOST('date_startday'), GETPOST('date_startyear'));
+		$date_end=dol_mktime(GETPOST('date_endhour'), GETPOST('date_endmin'), GETPOST('date_endsec'), GETPOST('date_endmonth'), GETPOST('date_endday'), GETPOST('date_endyear'));
 		$description=dol_htmlcleanlastbr(GETPOST('product_desc'));
 		$pu_ht=GETPOST('price_ht');
 		$vat_rate=(GETPOST('tva_tx')?GETPOST('tva_tx'):0);
diff --git a/htdocs/fourn/commande/card.php b/htdocs/fourn/commande/card.php
index baa11ed9c07..7f8aca2fa55 100644
--- a/htdocs/fourn/commande/card.php
+++ b/htdocs/fourn/commande/card.php
@@ -95,9 +95,6 @@ $extrafields = new ExtraFields($db);
 // fetch optionals attributes and labels
 $extralabels=$extrafields->fetch_name_optionals_label($object->table_element);
 
-//Date prefix
-$date_pf = '';
-
 // Load object
 if ($id > 0 || ! empty($ref))
 {
@@ -263,8 +260,8 @@ if (empty($reshook))
 		// Set if we used free entry or predefined product
 		$predef='';
 		$product_desc=(GETPOST('dp_desc')?GETPOST('dp_desc'):'');
-		$date_start=dol_mktime(GETPOST('date_start'.$date_pf.'hour'), GETPOST('date_start'.$date_pf.'min'), 0, GETPOST('date_start'.$date_pf.'month'), GETPOST('date_start'.$date_pf.'day'), GETPOST('date_start'.$date_pf.'year'));
-		$date_end=dol_mktime(GETPOST('date_end'.$date_pf.'hour'), GETPOST('date_end'.$date_pf.'min'), 0, GETPOST('date_end'.$date_pf.'month'), GETPOST('date_end'.$date_pf.'day'), GETPOST('date_end'.$date_pf.'year'));
+		$date_start=dol_mktime(GETPOST('date_start'.$predef.'hour'), GETPOST('date_start'.$predef.'min'), GETPOST('date_start' . $predef . 'sec'), GETPOST('date_start'.$predef.'month'), GETPOST('date_start'.$predef.'day'), GETPOST('date_start'.$predef.'year'));
+		$date_end=dol_mktime(GETPOST('date_end'.$predef.'hour'), GETPOST('date_end'.$predef.'min'), GETPOST('date_end' . $predef . 'sec'), GETPOST('date_end'.$predef.'month'), GETPOST('date_end'.$predef.'day'), GETPOST('date_end'.$predef.'year'));
 		if (GETPOST('prod_entry_mode') == 'free')
 		{
 			$idprod=0;
@@ -506,8 +503,8 @@ if (empty($reshook))
 	        if (!$res) dol_print_error($db);
 	    }
 
-	    $date_start=dol_mktime(GETPOST('date_start'.$date_pf.'hour'), GETPOST('date_start'.$date_pf.'min'), 0, GETPOST('date_start'.$date_pf.'month'), GETPOST('date_start'.$date_pf.'day'), GETPOST('date_start'.$date_pf.'year'));
-	    $date_end=dol_mktime(GETPOST('date_end'.$date_pf.'hour'), GETPOST('date_end'.$date_pf.'min'), 0, GETPOST('date_end'.$date_pf.'month'), GETPOST('date_end'.$date_pf.'day'), GETPOST('date_end'.$date_pf.'year'));
+	    $date_start=dol_mktime(GETPOST('date_starthour'), GETPOST('date_startmin'), GETPOST('date_startsec'), GETPOST('date_startmonth'), GETPOST('date_startday'), GETPOST('date_startyear'));
+	    $date_end=dol_mktime(GETPOST('date_endhour'), GETPOST('date_endmin'), GETPOST('date_endsec'), GETPOST('date_endmonth'), GETPOST('date_endday'), GETPOST('date_endyear'));
 
 	    $localtax1_tx=get_localtax($tva_tx,1,$mysoc,$object->thirdparty);
 	    $localtax2_tx=get_localtax($tva_tx,2,$mysoc,$object->thirdparty);
diff --git a/htdocs/fourn/facture/card.php b/htdocs/fourn/facture/card.php
index 82cdbe03b64..1c25e863683 100644
--- a/htdocs/fourn/facture/card.php
+++ b/htdocs/fourn/facture/card.php
@@ -575,8 +575,8 @@ if (empty($reshook))
 	            $type = $_POST["type"]?$_POST["type"]:0;
 	        }
 
-	    	$date_start=dol_mktime(GETPOST('date_start'.$date_pf.'hour'), GETPOST('date_start'.$date_pf.'min'), 0, GETPOST('date_start'.$date_pf.'month'), GETPOST('date_start'.$date_pf.'day'), GETPOST('date_start'.$date_pf.'year'));
-	    	$date_end=dol_mktime(GETPOST('date_end'.$date_pf.'hour'), GETPOST('date_end'.$date_pf.'min'), 0, GETPOST('date_end'.$date_pf.'month'), GETPOST('date_end'.$date_pf.'day'), GETPOST('date_end'.$date_pf.'year'));
+		    $date_start=dol_mktime(GETPOST('date_starthour'), GETPOST('date_startmin'), GETPOST('date_startsec'), GETPOST('date_startmonth'), GETPOST('date_startday'), GETPOST('date_startyear'));
+		    $date_end=dol_mktime(GETPOST('date_endhour'), GETPOST('date_endmin'), GETPOST('date_endsec'), GETPOST('date_endmonth'), GETPOST('date_endday'), GETPOST('date_endyear'));
 
 	        $localtax1_tx= get_localtax($_POST['tauxtva'], 1, $mysoc,$object->thirdparty);
 	        $localtax2_tx= get_localtax($_POST['tauxtva'], 2, $mysoc,$object->thirdparty);
@@ -640,6 +640,9 @@ if (empty($reshook))
 		$qty = GETPOST('qty'.$predef);
 		$remise_percent=GETPOST('remise_percent'.$predef);
 
+		$date_start=dol_mktime(GETPOST('date_start'.$predef.'hour'), GETPOST('date_start'.$predef.'min'), GETPOST('date_start' . $predef . 'sec'), GETPOST('date_start'.$predef.'month'), GETPOST('date_start'.$predef.'day'), GETPOST('date_start'.$predef.'year'));
+		$date_end=dol_mktime(GETPOST('date_end'.$predef.'hour'), GETPOST('date_end'.$predef.'min'), GETPOST('date_end' . $predef . 'sec'), GETPOST('date_end'.$predef.'month'), GETPOST('date_end'.$predef.'day'), GETPOST('date_end'.$predef.'year'));
+
 	    // Extrafields
 	    $extrafieldsline = new ExtraFields($db);
 	    $extralabelsline = $extrafieldsline->fetch_name_optionals_label($object->table_element_line);
@@ -710,7 +713,7 @@ if (empty($reshook))
 	            $price_base_type = 'HT';
 
 	            // TODO Save the product supplier ref into database into field ref_supplier (must rename field ref into ref_supplier first)
-	            $result=$object->addline($desc, $productsupplier->fourn_pu, $tvatx, $localtax1_tx, $localtax2_tx, $qty, $idprod, $remise_percent, '', '', 0, $npr, $price_base_type, $type, -1, 0, $array_options, $productsupplier->fk_unit);
+	            $result=$object->addline($desc, $productsupplier->fourn_pu, $tvatx, $localtax1_tx, $localtax2_tx, $qty, $idprod, $remise_percent, $date_start, $date_end, 0, $npr, $price_base_type, $type, -1, 0, $array_options, $productsupplier->fk_unit);
 	        }
 	    	if ($idprod == -2 || $idprod == 0)
 	        {
@@ -757,7 +760,7 @@ if (empty($reshook))
 	            $price_base_type = 'HT';
 	        }
 
-			$result=$object->addline($product_desc, $ht, $tva_tx, $localtax1_tx, $localtax2_tx, $qty, 0, $remise_percent, $datestart, $dateend, 0, $npr, $price_base_type, $type, -1, 0, $array_options, $fk_unit);
+			$result=$object->addline($product_desc, $ht, $tva_tx, $localtax1_tx, $localtax2_tx, $qty, 0, $remise_percent, $date_start, $date_end, 0, $npr, $price_base_type, $type, -1, 0, $array_options, $fk_unit);
 	    }
 
 	    //print "xx".$tva_tx; exit;
-- 
GitLab


From 771f7183d4697040467e663481680548fc67fd0c Mon Sep 17 00:00:00 2001
From: BENKE Charlie <charles.fr@benke.fr>
Date: Mon, 7 Dec 2015 10:56:37 +0100
Subject: [PATCH 119/197] db close must do AFTER llxFooter() call

---
 htdocs/admin/fichinter.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/htdocs/admin/fichinter.php b/htdocs/admin/fichinter.php
index 103ba462607..50d2bf3cead 100644
--- a/htdocs/admin/fichinter.php
+++ b/htdocs/admin/fichinter.php
@@ -576,6 +576,6 @@ print '</table>';
 
 print '<br>';
 
+llxFooter();
 $db->close();
 
-llxFooter();
-- 
GitLab


From c60178c95f77914f6b1f71ae9eea960460aac8a1 Mon Sep 17 00:00:00 2001
From: BENKE Charlie <charles.fr@benke.fr>
Date: Mon, 7 Dec 2015 11:00:26 +0100
Subject: [PATCH 120/197] db close must do AFTER llxFooter() call

---
 htdocs/admin/supplier_proposal.php | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/htdocs/admin/supplier_proposal.php b/htdocs/admin/supplier_proposal.php
index 64122636a08..c10592487da 100644
--- a/htdocs/admin/supplier_proposal.php
+++ b/htdocs/admin/supplier_proposal.php
@@ -603,7 +603,6 @@ print "  <td>".$langs->trans("Value")."</td>\n";
 print "</tr>\n";
 print "<tr ".$bc[false].">\n  <td width=\"140\">".$langs->trans("PathDirectory")."</td>\n  <td>".$conf->supplier_proposal->dir_output."</td>\n</tr>\n";
 print "</table>\n<br>";
-
+llxFooter();
 $db->close();
 
-llxFooter();
-- 
GitLab


From 63fd4cd6c0223d2321041bb4832f177439180827 Mon Sep 17 00:00:00 2001
From: BENKE Charlie <charles.fr@benke.fr>
Date: Mon, 7 Dec 2015 11:01:48 +0100
Subject: [PATCH 121/197] db close must do AFTER llxFooter() call

---
 htdocs/bookmarks/list.php | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/htdocs/bookmarks/list.php b/htdocs/bookmarks/list.php
index 425ae0079b6..66b94896424 100644
--- a/htdocs/bookmarks/list.php
+++ b/htdocs/bookmarks/list.php
@@ -218,7 +218,7 @@ if ($user->rights->bookmark->creer)
 
 print '</div>';
 
-
+llxFooter();
 $db->close();
 
-llxFooter();
+
-- 
GitLab


From bcf6c1243c5d4caa0d00737739008f70f6191f2c Mon Sep 17 00:00:00 2001
From: BENKE Charlie <charles.fr@benke.fr>
Date: Mon, 7 Dec 2015 11:03:27 +0100
Subject: [PATCH 122/197] db close must do AFTER llxFooter() call

---
 htdocs/admin/livraison.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/htdocs/admin/livraison.php b/htdocs/admin/livraison.php
index ec00cc7233c..f9cee8a75f3 100644
--- a/htdocs/admin/livraison.php
+++ b/htdocs/admin/livraison.php
@@ -521,6 +521,6 @@ print '</form>';
 
 print '</table>';
 
+llxFooter();
 $db->close();
 
-llxFooter();
-- 
GitLab


From 9d0f096e475b69789cd6f4370efa5d727fc48b4d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= <frederic.france@free.fr>
Date: Mon, 7 Dec 2015 11:46:47 +0100
Subject: [PATCH 123/197] Update paypal.lib.php

---
 htdocs/paypal/lib/paypal.lib.php | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/htdocs/paypal/lib/paypal.lib.php b/htdocs/paypal/lib/paypal.lib.php
index 824f312a9af..045863c2c4f 100644
--- a/htdocs/paypal/lib/paypal.lib.php
+++ b/htdocs/paypal/lib/paypal.lib.php
@@ -702,8 +702,10 @@ function hash_call($methodName,$nvpStr)
      exit;*/
     curl_setopt($ch, CURLOPT_URL, $API_Endpoint);
     curl_setopt($ch, CURLOPT_VERBOSE, 1);
-	//curl_setopt($ch, CURLOPT_SSLVERSION, 3); // Force SSLv3
+	//curl_setopt($ch, CURLOPT_SSLVERSION, 3); // unsecure, no more accepted
     curl_setopt($ch, CURLOPT_SSLVERSION, 1); // Force TLSv1
+    // After 14 january 2016 paypal will accept tls v1.2 and no more tls v1
+    //curl_setopt($ch, CURLOPT_SSLVERSION, 6); // Force TLSv1.2
 
     //turning off the server and peer verification(TrustManager Concept).
     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
-- 
GitLab


From 5dfa9ba3699057e48cbb53b4eb4ab556bdcc3cef Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rapha=C3=ABl=20Doursenaud?= <rdoursenaud@gpcsolutions.fr>
Date: Mon, 7 Dec 2015 13:39:45 +0100
Subject: [PATCH 124/197] Updated TCPDF to 6.2.12

---
 COPYRIGHT                                     |    2 +-
 composer.json                                 |    2 +-
 composer.lock                                 |   21 +-
 .../includes/tecnickcom/tcpdf/CHANGELOG.TXT   |   21 +
 htdocs/includes/tecnickcom/tcpdf/README.TXT   |    8 +-
 .../includes/tecnickcom/tcpdf/composer.json   |    4 +-
 .../tcpdf/include/barcodes/qrcode.php         |    1 +
 .../tecnickcom/tcpdf/include/tcpdf_fonts.php  |  274 +--
 .../tecnickcom/tcpdf/include/tcpdf_images.php |   11 +-
 .../tecnickcom/tcpdf/include/tcpdf_static.php | 1718 +++++++++--------
 htdocs/includes/tecnickcom/tcpdf/tcpdf.php    |   37 +-
 .../tecnickcom/tcpdf/tcpdf_parser.php         |    7 +-
 12 files changed, 1140 insertions(+), 966 deletions(-)

diff --git a/COPYRIGHT b/COPYRIGHT
index 9b848744a69..a0cf842b885 100644
--- a/COPYRIGHT
+++ b/COPYRIGHT
@@ -28,7 +28,7 @@ php-iban               1.4.7         LGPL-3+                     Yes
 PHPoAuthLib            0.8.2         MIT License                 Yes             Library to provide oauth1 and oauth2 to different service
 PHPPrintIPP            1.3           GPL-2+                      Yes             Library to send print IPP requests
 Restler                3.0           LGPL-3+                     Yes             Library to develop REST Web services
-TCPDF                  6.2.6         LGPL-3+                     Yes             PDF generation
+TCPDF                  6.2.12        LGPL-3+                     Yes             PDF generation
 TCPDI                  1.0.0         LGPL-3+ / Apache 2.0        Yes             FPDI replacement
 
 JS libraries:
diff --git a/composer.json b/composer.json
index 9061efb3bfe..afd53001f71 100644
--- a/composer.json
+++ b/composer.json
@@ -21,7 +21,7 @@
         "mobiledetect/mobiledetectlib": "2.8.3",
         "phpoffice/phpexcel": "1.8.1",
         "restler/framework": "^3.0",
-        "tecnickcom/tcpdf": "6.2.6",
+        "tecnickcom/tcpdf": "6.2.12",
         "raven/raven": "^0.12.0",
         "firephp/firephp-core": "^0.4.0"
     },
diff --git a/composer.lock b/composer.lock
index 99bf8d6fa10..fc8df3719ac 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,8 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
         "This file is @generated automatically"
     ],
-    "hash": "335eb7bd5c2eb116fd2da80b4f48e857",
+    "hash": "e4ff9778aef8c35c239457e96b32ee5c",
+    "content-hash": "e98d327da132b265127ad23d79a49578",
     "packages": [
         {
             "name": "ccampbell/chromephp",
@@ -132,12 +133,12 @@
             "source": {
                 "type": "git",
                 "url": "https://github.com/mike42/escpos-php.git",
-                "reference": "0564ff94de45564221eca99c4cd5ab24492894c2"
+                "reference": "63648d03d47b81e8f6c1020ac92f051a3f3b5793"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/mike42/escpos-php/zipball/0564ff94de45564221eca99c4cd5ab24492894c2",
-                "reference": "0564ff94de45564221eca99c4cd5ab24492894c2",
+                "url": "https://api.github.com/repos/mike42/escpos-php/zipball/63648d03d47b81e8f6c1020ac92f051a3f3b5793",
+                "reference": "63648d03d47b81e8f6c1020ac92f051a3f3b5793",
                 "shasum": ""
             },
             "require": {
@@ -182,7 +183,7 @@
                 "print",
                 "receipt"
             ],
-            "time": "2015-11-02 10:50:46"
+            "time": "2015-12-04 10:23:55"
         },
         {
             "name": "mobiledetect/mobiledetectlib",
@@ -423,16 +424,16 @@
         },
         {
             "name": "tecnickcom/tcpdf",
-            "version": "6.2.6",
+            "version": "6.2.12",
             "source": {
                 "type": "git",
                 "url": "https://github.com/tecnickcom/TCPDF.git",
-                "reference": "a2e8f5b505a7a14a4ed960313c4baf699fd1f4bb"
+                "reference": "2f732eaa91b5665274689b1d40b285a7bacdc37f"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/tecnickcom/TCPDF/zipball/a2e8f5b505a7a14a4ed960313c4baf699fd1f4bb",
-                "reference": "a2e8f5b505a7a14a4ed960313c4baf699fd1f4bb",
+                "url": "https://api.github.com/repos/tecnickcom/TCPDF/zipball/2f732eaa91b5665274689b1d40b285a7bacdc37f",
+                "reference": "2f732eaa91b5665274689b1d40b285a7bacdc37f",
                 "shasum": ""
             },
             "require": {
@@ -482,7 +483,7 @@
                 "pdf417",
                 "qrcode"
             ],
-            "time": "2015-01-28 18:51:40"
+            "time": "2015-09-12 10:08:34"
         }
     ],
     "packages-dev": [],
diff --git a/htdocs/includes/tecnickcom/tcpdf/CHANGELOG.TXT b/htdocs/includes/tecnickcom/tcpdf/CHANGELOG.TXT
index 2cfb85ae6ab..31b587b2842 100644
--- a/htdocs/includes/tecnickcom/tcpdf/CHANGELOG.TXT
+++ b/htdocs/includes/tecnickcom/tcpdf/CHANGELOG.TXT
@@ -1,3 +1,24 @@
+6.2.12 (2015-09-12)
+	- fix composer package name to tecnickcom/tcpdf
+
+6.2.11 (2015-08-02)
+	- Bug #1070 "PNG regression in 6.2.9 (they appear as their alpha channel)" was fixed.
+	- Bug #1069 "Encoded SRC URLs in <img> tags don't work anymore" was fixed.
+
+6.2.10 (2015-07-28)
+	- Minor mod to PNG parsing.
+	- Make dependency on mcrypt optional.
+
+6.2.8 (2015-04-29)
+	- Removed unwanted file.
+
+6.2.7 (2015-04-28)
+	- Merged PR 17: Avoid warning when iterating a non-array variable.
+	- Merged PR 16: Improve MuliCell param definition.
+	- Improved column check (PR 15).
+	- Merged PR 11: Use stream_is_local instead of limit to file://.
+	- Merged PR 10: ImageMagick link on README.txt.
+
 6.2.6 (2015-01-28)
 	- Bug #1008 "UTC offset sing breaks PDF/A-1b compliance" was fixed.
 
diff --git a/htdocs/includes/tecnickcom/tcpdf/README.TXT b/htdocs/includes/tecnickcom/tcpdf/README.TXT
index d051393caa2..2061fa7a16b 100644
--- a/htdocs/includes/tecnickcom/tcpdf/README.TXT
+++ b/htdocs/includes/tecnickcom/tcpdf/README.TXT
@@ -4,12 +4,13 @@ TCPDF - README
 I WISH TO IMPROVE AND EXPAND TCPDF BUT I NEED YOUR SUPPORT.
 PLEASE MAKE A DONATION:
 http://sourceforge.net/donate/index.php?group_id=128076
+or via PayPal at paypal@tecnick.com
 
 ------------------------------------------------------------
 
 Name: TCPDF
-Version: 6.2.6
-Release date: 2015-01-28
+Version: 6.2.12
+Release date: 2015-09-12
 Author:	Nicola Asuni
 
 Copyright (c) 2002-2015:
@@ -20,6 +21,7 @@ Copyright (c) 2002-2015:
 URLs:
 	http://www.tcpdf.org
 	http://www.sourceforge.net/projects/tcpdf
+	https://github.com/tecnickcom/TCPDF
 
 Description:
 	TCPDF is a PHP class for generating PDF files on-the-fly without requiring external extensions.
@@ -34,7 +36,7 @@ Main Features:
     * font subsetting;
     * methods to publish some XHTML + CSS code, Javascript and Forms;
     * images, graphic (geometric figures) and transformation methods;
-    * supports JPEG, PNG and SVG images natively, all images supported by GD (GD, GD2, GD2PART, GIF, JPEG, PNG, BMP, XBM, XPM) and all images supported via ImagMagick (http:  www.imagemagick.org/www/formats.html)
+    * supports JPEG, PNG and SVG images natively, all images supported by GD (GD, GD2, GD2PART, GIF, JPEG, PNG, BMP, XBM, XPM) and all images supported via ImagMagick (http://www.imagemagick.org/script/formats.php)
     * 1D and 2D barcodes: CODE 39, ANSI MH10.8M-1983, USD-3, 3 of 9, CODE 93, USS-93, Standard 2 of 5, Interleaved 2 of 5, CODE 128 A/B/C, 2 and 5 Digits UPC-Based Extension, EAN 8, EAN 13, UPC-A, UPC-E, MSI, POSTNET, PLANET, RMS4CC (Royal Mail 4-state Customer Code), CBC (Customer Bar Code), KIX (Klant index - Customer index), Intelligent Mail Barcode, Onecode, USPS-B-3200, CODABAR, CODE 11, PHARMACODE, PHARMACODE TWO-TRACKS, Datamatrix, QR-Code, PDF417;
     * JPEG and PNG ICC profiles, Grayscale, RGB, CMYK, Spot Colors and Transparencies;
     * automatic page header and footer management;
diff --git a/htdocs/includes/tecnickcom/tcpdf/composer.json b/htdocs/includes/tecnickcom/tcpdf/composer.json
index ba0520d19da..beab50943a6 100644
--- a/htdocs/includes/tecnickcom/tcpdf/composer.json
+++ b/htdocs/includes/tecnickcom/tcpdf/composer.json
@@ -1,6 +1,6 @@
 {
-	"name": "tecnick.com/tcpdf",
-	"version": "6.2.6",
+	"name": "tecnickcom/tcpdf",
+	"version": "6.2.12",
 	"homepage": "http://www.tcpdf.org/",
 	"type": "library",
 	"description": "TCPDF is a PHP class for generating PDF documents and barcodes.",
diff --git a/htdocs/includes/tecnickcom/tcpdf/include/barcodes/qrcode.php b/htdocs/includes/tecnickcom/tcpdf/include/barcodes/qrcode.php
index 3127fe68739..7ef2759fd6f 100644
--- a/htdocs/includes/tecnickcom/tcpdf/include/barcodes/qrcode.php
+++ b/htdocs/includes/tecnickcom/tcpdf/include/barcodes/qrcode.php
@@ -720,6 +720,7 @@ class QRcode {
 	protected function encodeMask($mask) {
 		$spec = array(0, 0, 0, 0, 0);
 		$this->datacode = $this->getByteStream($this->items);
+
 		if (is_null($this->datacode)) {
 			return NULL;
 		}
diff --git a/htdocs/includes/tecnickcom/tcpdf/include/tcpdf_fonts.php b/htdocs/includes/tecnickcom/tcpdf/include/tcpdf_fonts.php
index 0a19f330149..70ca89393d9 100644
--- a/htdocs/includes/tecnickcom/tcpdf/include/tcpdf_fonts.php
+++ b/htdocs/includes/tecnickcom/tcpdf/include/tcpdf_fonts.php
@@ -154,7 +154,7 @@ class TCPDF_FONTS {
 				$enc_target = TCPDF_FONT_DATA::$encmap[$enc];
 				$last = 0;
 				for ($i = 32; $i <= 255; ++$i) {
-					if ($enc_target != $enc_ref[$i]) {
+					if ($enc_target[$i] != $enc_ref[$i]) {
 						if ($i != ($last + 1)) {
 							$fmetric['diff'] .= $i.' ';
 						}
@@ -1490,6 +1490,171 @@ class TCPDF_FONTS {
 		return '/W ['.$w.' ]';
 	}
 
+
+
+
+	/**
+	 * Update the CIDToGIDMap string with a new value.
+	 * @param $map (string) CIDToGIDMap.
+	 * @param $cid (int) CID value.
+	 * @param $gid (int) GID value.
+	 * @return (string) CIDToGIDMap.
+	 * @author Nicola Asuni
+	 * @since 5.9.123 (2011-09-29)
+	 * @public static
+	 */
+	public static function updateCIDtoGIDmap($map, $cid, $gid) {
+		if (($cid >= 0) AND ($cid <= 0xFFFF) AND ($gid >= 0)) {
+			if ($gid > 0xFFFF) {
+				$gid -= 0x10000;
+			}
+			$map[($cid * 2)] = chr($gid >> 8);
+			$map[(($cid * 2) + 1)] = chr($gid & 0xFF);
+		}
+		return $map;
+	}
+
+	/**
+	 * Return fonts path
+	 * @return string
+	 * @public static
+	 */
+	public static function _getfontpath() {
+		if (!defined('K_PATH_FONTS') AND is_dir($fdir = realpath(dirname(__FILE__).'/../fonts'))) {
+			if (substr($fdir, -1) != '/') {
+				$fdir .= '/';
+			}
+			define('K_PATH_FONTS', $fdir);
+		}
+		return defined('K_PATH_FONTS') ? K_PATH_FONTS : '';
+	}
+
+
+
+	/**
+	 * Return font full path
+	 * @param $file (string) Font file name.
+	 * @param $fontdir (string) Font directory (set to false fto search on default directories)
+	 * @return string Font full path or empty string
+	 * @author Nicola Asuni
+	 * @since 6.0.025
+	 * @public static
+	 */
+	public static function getFontFullPath($file, $fontdir=false) {
+		$fontfile = '';
+		// search files on various directories
+		if (($fontdir !== false) AND @file_exists($fontdir.$file)) {
+			$fontfile = $fontdir.$file;
+		} elseif (@file_exists(self::_getfontpath().$file)) {
+			$fontfile = self::_getfontpath().$file;
+		} elseif (@file_exists($file)) {
+			$fontfile = $file;
+		}
+		return $fontfile;
+	}
+
+
+
+
+	/**
+	 * Get a reference font size.
+	 * @param $size (string) String containing font size value.
+	 * @param $refsize (float) Reference font size in points.
+	 * @return float value in points
+	 * @public static
+	 */
+	public static function getFontRefSize($size, $refsize=12) {
+		switch ($size) {
+			case 'xx-small': {
+				$size = ($refsize - 4);
+				break;
+			}
+			case 'x-small': {
+				$size = ($refsize - 3);
+				break;
+			}
+			case 'small': {
+				$size = ($refsize - 2);
+				break;
+			}
+			case 'medium': {
+				$size = $refsize;
+				break;
+			}
+			case 'large': {
+				$size = ($refsize + 2);
+				break;
+			}
+			case 'x-large': {
+				$size = ($refsize + 4);
+				break;
+			}
+			case 'xx-large': {
+				$size = ($refsize + 6);
+				break;
+			}
+			case 'smaller': {
+				$size = ($refsize - 3);
+				break;
+			}
+			case 'larger': {
+				$size = ($refsize + 3);
+				break;
+			}
+		}
+		return $size;
+	}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+// ====================================================================================================================
+// REIMPLEMENTED
+// ====================================================================================================================
+
+
+
+
+
+
+
+
 	/**
 	 * Returns the unicode caracter specified by the value
 	 * @param $c (int) UTF-8 value
@@ -1663,64 +1828,6 @@ class TCPDF_FONTS {
 		return $string;
 	}
 
-	/**
-	 * Update the CIDToGIDMap string with a new value.
-	 * @param $map (string) CIDToGIDMap.
-	 * @param $cid (int) CID value.
-	 * @param $gid (int) GID value.
-	 * @return (string) CIDToGIDMap.
-	 * @author Nicola Asuni
-	 * @since 5.9.123 (2011-09-29)
-	 * @public static
-	 */
-	public static function updateCIDtoGIDmap($map, $cid, $gid) {
-		if (($cid >= 0) AND ($cid <= 0xFFFF) AND ($gid >= 0)) {
-			if ($gid > 0xFFFF) {
-				$gid -= 0x10000;
-			}
-			$map[($cid * 2)] = chr($gid >> 8);
-			$map[(($cid * 2) + 1)] = chr($gid & 0xFF);
-		}
-		return $map;
-	}
-
-	/**
-	 * Return fonts path
-	 * @return string
-	 * @public static
-	 */
-	public static function _getfontpath() {
-		if (!defined('K_PATH_FONTS') AND is_dir($fdir = realpath(dirname(__FILE__).'/../fonts'))) {
-			if (substr($fdir, -1) != '/') {
-				$fdir .= '/';
-			}
-			define('K_PATH_FONTS', $fdir);
-		}
-		return defined('K_PATH_FONTS') ? K_PATH_FONTS : '';
-	}
-
-	/**
-	 * Return font full path
-	 * @param $file (string) Font file name.
-	 * @param $fontdir (string) Font directory (set to false fto search on default directories)
-	 * @return string Font full path or empty string
-	 * @author Nicola Asuni
-	 * @since 6.0.025
-	 * @public static
-	 */
-	public static function getFontFullPath($file, $fontdir=false) {
-		$fontfile = '';
-		// search files on various directories
-		if (($fontdir !== false) AND @file_exists($fontdir.$file)) {
-			$fontfile = $fontdir.$file;
-		} elseif (@file_exists(self::_getfontpath().$file)) {
-			$fontfile = self::_getfontpath().$file;
-		} elseif (@file_exists($file)) {
-			$fontfile = $file;
-		}
-		return $fontfile;
-	}
-
 	/**
 	 * Converts UTF-8 characters array to array of Latin1 characters array<br>
 	 * @param $unicode (array) array containing UTF-8 unicode values
@@ -2535,55 +2642,6 @@ class TCPDF_FONTS {
 		return $ordarray;
 	}
 
-	/**
-	 * Get a reference font size.
-	 * @param $size (string) String containing font size value.
-	 * @param $refsize (float) Reference font size in points.
-	 * @return float value in points
-	 * @public static
-	 */
-	public static function getFontRefSize($size, $refsize=12) {
-		switch ($size) {
-			case 'xx-small': {
-				$size = ($refsize - 4);
-				break;
-			}
-			case 'x-small': {
-				$size = ($refsize - 3);
-				break;
-			}
-			case 'small': {
-				$size = ($refsize - 2);
-				break;
-			}
-			case 'medium': {
-				$size = $refsize;
-				break;
-			}
-			case 'large': {
-				$size = ($refsize + 2);
-				break;
-			}
-			case 'x-large': {
-				$size = ($refsize + 4);
-				break;
-			}
-			case 'xx-large': {
-				$size = ($refsize + 6);
-				break;
-			}
-			case 'smaller': {
-				$size = ($refsize - 3);
-				break;
-			}
-			case 'larger': {
-				$size = ($refsize + 3);
-				break;
-			}
-		}
-		return $size;
-	}
-
 } // END OF TCPDF_FONTS CLASS
 
 //============================================================+
diff --git a/htdocs/includes/tecnickcom/tcpdf/include/tcpdf_images.php b/htdocs/includes/tecnickcom/tcpdf/include/tcpdf_images.php
index c7ae9bd9677..c2e3c36f930 100644
--- a/htdocs/includes/tecnickcom/tcpdf/include/tcpdf_images.php
+++ b/htdocs/includes/tecnickcom/tcpdf/include/tcpdf_images.php
@@ -160,6 +160,14 @@ class TCPDF_IMAGES {
 	 * @public static
 	 */
 	public static function _parsejpeg($file) {
+		// check if is a local file
+		if (!@file_exists($file)) {
+			// try to encode spaces on filename
+			$tfile = str_replace(' ', '%20', $file);
+			if (@file_exists($tfile)) {
+				$file = $tfile;
+			}
+		}
 		$a = getimagesize($file);
 		if (empty($a)) {
 			//Missing or incorrect image file
@@ -289,8 +297,8 @@ class TCPDF_IMAGES {
 		$trns = '';
 		$data = '';
 		$icc = false;
+		$n = TCPDF_STATIC::_freadint($f);
 		do {
-			$n = TCPDF_STATIC::_freadint($f);
 			$type = fread($f, 4);
 			if ($type == 'PLTE') {
 				// read palette
@@ -338,6 +346,7 @@ class TCPDF_IMAGES {
 			} else {
 				TCPDF_STATIC::rfread($f, $n + 4);
 			}
+			$n = TCPDF_STATIC::_freadint($f);
 		} while ($n);
 		if (($colspace == 'Indexed') AND (empty($pal))) {
 			// Missing palette
diff --git a/htdocs/includes/tecnickcom/tcpdf/include/tcpdf_static.php b/htdocs/includes/tecnickcom/tcpdf/include/tcpdf_static.php
index e947832d24a..f6d4d2b9eb4 100644
--- a/htdocs/includes/tecnickcom/tcpdf/include/tcpdf_static.php
+++ b/htdocs/includes/tecnickcom/tcpdf/include/tcpdf_static.php
@@ -1,9 +1,9 @@
 <?php
 //============================================================+
 // File name   : tcpdf_static.php
-// Version     : 1.1.2
+// Version     : 1.1.3
 // Begin       : 2002-08-03
-// Last Update : 2015-01-24
+// Last Update : 2015-04-28
 // Author      : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com
 // License     : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html)
 // -------------------------------------------------------------------
@@ -55,7 +55,7 @@ class TCPDF_STATIC {
 	 * Current TCPDF version.
 	 * @private static
 	 */
-	private static $tcpdf_version = '6.2.6';
+	private static $tcpdf_version = '6.2.12';
 
 	/**
 	 * String alias for total number of pages.
@@ -105,369 +105,13 @@ class TCPDF_STATIC {
 	 * @public static
 	 */
 	public static $pageboxes = array('MediaBox', 'CropBox', 'BleedBox', 'TrimBox', 'ArtBox');
-	
+
+	// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
 	/**
-	 * Array of page formats
-	 * measures are calculated in this way: (inches * 72) or (millimeters * 72 / 25.4)
-	 * @public static
-	 */
-	public static $page_formats = array(
-		// ISO 216 A Series + 2 SIS 014711 extensions
-		'A0'                     => array( 2383.937,  3370.394), // = (  841 x 1189 ) mm  = ( 33.11 x 46.81 ) in
-		'A1'                     => array( 1683.780,  2383.937), // = (  594 x 841  ) mm  = ( 23.39 x 33.11 ) in
-		'A2'                     => array( 1190.551,  1683.780), // = (  420 x 594  ) mm  = ( 16.54 x 23.39 ) in
-		'A3'                     => array(  841.890,  1190.551), // = (  297 x 420  ) mm  = ( 11.69 x 16.54 ) in
-		'A4'                     => array(  595.276,   841.890), // = (  210 x 297  ) mm  = (  8.27 x 11.69 ) in
-		'A5'                     => array(  419.528,   595.276), // = (  148 x 210  ) mm  = (  5.83 x 8.27  ) in
-		'A6'                     => array(  297.638,   419.528), // = (  105 x 148  ) mm  = (  4.13 x 5.83  ) in
-		'A7'                     => array(  209.764,   297.638), // = (   74 x 105  ) mm  = (  2.91 x 4.13  ) in
-		'A8'                     => array(  147.402,   209.764), // = (   52 x 74   ) mm  = (  2.05 x 2.91  ) in
-		'A9'                     => array(  104.882,   147.402), // = (   37 x 52   ) mm  = (  1.46 x 2.05  ) in
-		'A10'                    => array(   73.701,   104.882), // = (   26 x 37   ) mm  = (  1.02 x 1.46  ) in
-		'A11'                    => array(   51.024,    73.701), // = (   18 x 26   ) mm  = (  0.71 x 1.02  ) in
-		'A12'                    => array(   36.850,    51.024), // = (   13 x 18   ) mm  = (  0.51 x 0.71  ) in
-		// ISO 216 B Series + 2 SIS 014711 extensions
-		'B0'                     => array( 2834.646,  4008.189), // = ( 1000 x 1414 ) mm  = ( 39.37 x 55.67 ) in
-		'B1'                     => array( 2004.094,  2834.646), // = (  707 x 1000 ) mm  = ( 27.83 x 39.37 ) in
-		'B2'                     => array( 1417.323,  2004.094), // = (  500 x 707  ) mm  = ( 19.69 x 27.83 ) in
-		'B3'                     => array( 1000.630,  1417.323), // = (  353 x 500  ) mm  = ( 13.90 x 19.69 ) in
-		'B4'                     => array(  708.661,  1000.630), // = (  250 x 353  ) mm  = (  9.84 x 13.90 ) in
-		'B5'                     => array(  498.898,   708.661), // = (  176 x 250  ) mm  = (  6.93 x 9.84  ) in
-		'B6'                     => array(  354.331,   498.898), // = (  125 x 176  ) mm  = (  4.92 x 6.93  ) in
-		'B7'                     => array(  249.449,   354.331), // = (   88 x 125  ) mm  = (  3.46 x 4.92  ) in
-		'B8'                     => array(  175.748,   249.449), // = (   62 x 88   ) mm  = (  2.44 x 3.46  ) in
-		'B9'                     => array(  124.724,   175.748), // = (   44 x 62   ) mm  = (  1.73 x 2.44  ) in
-		'B10'                    => array(   87.874,   124.724), // = (   31 x 44   ) mm  = (  1.22 x 1.73  ) in
-		'B11'                    => array(   62.362,    87.874), // = (   22 x 31   ) mm  = (  0.87 x 1.22  ) in
-		'B12'                    => array(   42.520,    62.362), // = (   15 x 22   ) mm  = (  0.59 x 0.87  ) in
-		// ISO 216 C Series + 2 SIS 014711 extensions + 5 EXTENSION
-		'C0'                     => array( 2599.370,  3676.535), // = (  917 x 1297 ) mm  = ( 36.10 x 51.06 ) in
-		'C1'                     => array( 1836.850,  2599.370), // = (  648 x 917  ) mm  = ( 25.51 x 36.10 ) in
-		'C2'                     => array( 1298.268,  1836.850), // = (  458 x 648  ) mm  = ( 18.03 x 25.51 ) in
-		'C3'                     => array(  918.425,  1298.268), // = (  324 x 458  ) mm  = ( 12.76 x 18.03 ) in
-		'C4'                     => array(  649.134,   918.425), // = (  229 x 324  ) mm  = (  9.02 x 12.76 ) in
-		'C5'                     => array(  459.213,   649.134), // = (  162 x 229  ) mm  = (  6.38 x 9.02  ) in
-		'C6'                     => array(  323.150,   459.213), // = (  114 x 162  ) mm  = (  4.49 x 6.38  ) in
-		'C7'                     => array(  229.606,   323.150), // = (   81 x 114  ) mm  = (  3.19 x 4.49  ) in
-		'C8'                     => array(  161.575,   229.606), // = (   57 x 81   ) mm  = (  2.24 x 3.19  ) in
-		'C9'                     => array(  113.386,   161.575), // = (   40 x 57   ) mm  = (  1.57 x 2.24  ) in
-		'C10'                    => array(   79.370,   113.386), // = (   28 x 40   ) mm  = (  1.10 x 1.57  ) in
-		'C11'                    => array(   56.693,    79.370), // = (   20 x 28   ) mm  = (  0.79 x 1.10  ) in
-		'C12'                    => array(   39.685,    56.693), // = (   14 x 20   ) mm  = (  0.55 x 0.79  ) in
-		'C76'                    => array(  229.606,   459.213), // = (   81 x 162  ) mm  = (  3.19 x 6.38  ) in
-		'DL'                     => array(  311.811,   623.622), // = (  110 x 220  ) mm  = (  4.33 x 8.66  ) in
-		'DLE'                    => array(  323.150,   637.795), // = (  114 x 225  ) mm  = (  4.49 x 8.86  ) in
-		'DLX'                    => array(  340.158,   666.142), // = (  120 x 235  ) mm  = (  4.72 x 9.25  ) in
-		'DLP'                    => array(  280.630,   595.276), // = (   99 x 210  ) mm  = (  3.90 x 8.27  ) in (1/3 A4)
-		// SIS 014711 E Series
-		'E0'                     => array( 2491.654,  3517.795), // = (  879 x 1241 ) mm  = ( 34.61 x 48.86 ) in
-		'E1'                     => array( 1757.480,  2491.654), // = (  620 x 879  ) mm  = ( 24.41 x 34.61 ) in
-		'E2'                     => array( 1247.244,  1757.480), // = (  440 x 620  ) mm  = ( 17.32 x 24.41 ) in
-		'E3'                     => array(  878.740,  1247.244), // = (  310 x 440  ) mm  = ( 12.20 x 17.32 ) in
-		'E4'                     => array(  623.622,   878.740), // = (  220 x 310  ) mm  = (  8.66 x 12.20 ) in
-		'E5'                     => array(  439.370,   623.622), // = (  155 x 220  ) mm  = (  6.10 x 8.66  ) in
-		'E6'                     => array(  311.811,   439.370), // = (  110 x 155  ) mm  = (  4.33 x 6.10  ) in
-		'E7'                     => array(  221.102,   311.811), // = (   78 x 110  ) mm  = (  3.07 x 4.33  ) in
-		'E8'                     => array(  155.906,   221.102), // = (   55 x 78   ) mm  = (  2.17 x 3.07  ) in
-		'E9'                     => array(  110.551,   155.906), // = (   39 x 55   ) mm  = (  1.54 x 2.17  ) in
-		'E10'                    => array(   76.535,   110.551), // = (   27 x 39   ) mm  = (  1.06 x 1.54  ) in
-		'E11'                    => array(   53.858,    76.535), // = (   19 x 27   ) mm  = (  0.75 x 1.06  ) in
-		'E12'                    => array(   36.850,    53.858), // = (   13 x 19   ) mm  = (  0.51 x 0.75  ) in
-		// SIS 014711 G Series
-		'G0'                     => array( 2715.591,  3838.110), // = (  958 x 1354 ) mm  = ( 37.72 x 53.31 ) in
-		'G1'                     => array( 1919.055,  2715.591), // = (  677 x 958  ) mm  = ( 26.65 x 37.72 ) in
-		'G2'                     => array( 1357.795,  1919.055), // = (  479 x 677  ) mm  = ( 18.86 x 26.65 ) in
-		'G3'                     => array(  958.110,  1357.795), // = (  338 x 479  ) mm  = ( 13.31 x 18.86 ) in
-		'G4'                     => array(  677.480,   958.110), // = (  239 x 338  ) mm  = (  9.41 x 13.31 ) in
-		'G5'                     => array(  479.055,   677.480), // = (  169 x 239  ) mm  = (  6.65 x 9.41  ) in
-		'G6'                     => array(  337.323,   479.055), // = (  119 x 169  ) mm  = (  4.69 x 6.65  ) in
-		'G7'                     => array(  238.110,   337.323), // = (   84 x 119  ) mm  = (  3.31 x 4.69  ) in
-		'G8'                     => array(  167.244,   238.110), // = (   59 x 84   ) mm  = (  2.32 x 3.31  ) in
-		'G9'                     => array(  119.055,   167.244), // = (   42 x 59   ) mm  = (  1.65 x 2.32  ) in
-		'G10'                    => array(   82.205,   119.055), // = (   29 x 42   ) mm  = (  1.14 x 1.65  ) in
-		'G11'                    => array(   59.528,    82.205), // = (   21 x 29   ) mm  = (  0.83 x 1.14  ) in
-		'G12'                    => array(   39.685,    59.528), // = (   14 x 21   ) mm  = (  0.55 x 0.83  ) in
-		// ISO Press
-		'RA0'                    => array( 2437.795,  3458.268), // = (  860 x 1220 ) mm  = ( 33.86 x 48.03 ) in
-		'RA1'                    => array( 1729.134,  2437.795), // = (  610 x 860  ) mm  = ( 24.02 x 33.86 ) in
-		'RA2'                    => array( 1218.898,  1729.134), // = (  430 x 610  ) mm  = ( 16.93 x 24.02 ) in
-		'RA3'                    => array(  864.567,  1218.898), // = (  305 x 430  ) mm  = ( 12.01 x 16.93 ) in
-		'RA4'                    => array(  609.449,   864.567), // = (  215 x 305  ) mm  = (  8.46 x 12.01 ) in
-		'SRA0'                   => array( 2551.181,  3628.346), // = (  900 x 1280 ) mm  = ( 35.43 x 50.39 ) in
-		'SRA1'                   => array( 1814.173,  2551.181), // = (  640 x 900  ) mm  = ( 25.20 x 35.43 ) in
-		'SRA2'                   => array( 1275.591,  1814.173), // = (  450 x 640  ) mm  = ( 17.72 x 25.20 ) in
-		'SRA3'                   => array(  907.087,  1275.591), // = (  320 x 450  ) mm  = ( 12.60 x 17.72 ) in
-		'SRA4'                   => array(  637.795,   907.087), // = (  225 x 320  ) mm  = (  8.86 x 12.60 ) in
-		// German DIN 476
-		'4A0'                    => array( 4767.874,  6740.787), // = ( 1682 x 2378 ) mm  = ( 66.22 x 93.62 ) in
-		'2A0'                    => array( 3370.394,  4767.874), // = ( 1189 x 1682 ) mm  = ( 46.81 x 66.22 ) in
-		// Variations on the ISO Standard
-		'A2_EXTRA'               => array( 1261.417,  1754.646), // = (  445 x 619  ) mm  = ( 17.52 x 24.37 ) in
-		'A3+'                    => array(  932.598,  1369.134), // = (  329 x 483  ) mm  = ( 12.95 x 19.02 ) in
-		'A3_EXTRA'               => array(  912.756,  1261.417), // = (  322 x 445  ) mm  = ( 12.68 x 17.52 ) in
-		'A3_SUPER'               => array(  864.567,  1440.000), // = (  305 x 508  ) mm  = ( 12.01 x 20.00 ) in
-		'SUPER_A3'               => array(  864.567,  1380.472), // = (  305 x 487  ) mm  = ( 12.01 x 19.17 ) in
-		'A4_EXTRA'               => array(  666.142,   912.756), // = (  235 x 322  ) mm  = (  9.25 x 12.68 ) in
-		'A4_SUPER'               => array(  649.134,   912.756), // = (  229 x 322  ) mm  = (  9.02 x 12.68 ) in
-		'SUPER_A4'               => array(  643.465,  1009.134), // = (  227 x 356  ) mm  = (  8.94 x 14.02 ) in
-		'A4_LONG'                => array(  595.276,   986.457), // = (  210 x 348  ) mm  = (  8.27 x 13.70 ) in
-		'F4'                     => array(  595.276,   935.433), // = (  210 x 330  ) mm  = (  8.27 x 12.99 ) in
-		'SO_B5_EXTRA'            => array(  572.598,   782.362), // = (  202 x 276  ) mm  = (  7.95 x 10.87 ) in
-		'A5_EXTRA'               => array(  490.394,   666.142), // = (  173 x 235  ) mm  = (  6.81 x 9.25  ) in
-		// ANSI Series
-		'ANSI_E'                 => array( 2448.000,  3168.000), // = (  864 x 1118 ) mm  = ( 34.00 x 44.00 ) in
-		'ANSI_D'                 => array( 1584.000,  2448.000), // = (  559 x 864  ) mm  = ( 22.00 x 34.00 ) in
-		'ANSI_C'                 => array( 1224.000,  1584.000), // = (  432 x 559  ) mm  = ( 17.00 x 22.00 ) in
-		'ANSI_B'                 => array(  792.000,  1224.000), // = (  279 x 432  ) mm  = ( 11.00 x 17.00 ) in
-		'ANSI_A'                 => array(  612.000,   792.000), // = (  216 x 279  ) mm  = (  8.50 x 11.00 ) in
-		// Traditional 'Loose' North American Paper Sizes
-		'USLEDGER'               => array( 1224.000,   792.000), // = (  432 x 279  ) mm  = ( 17.00 x 11.00 ) in
-		'LEDGER'                 => array( 1224.000,   792.000), // = (  432 x 279  ) mm  = ( 17.00 x 11.00 ) in
-		'ORGANIZERK'             => array(  792.000,  1224.000), // = (  279 x 432  ) mm  = ( 11.00 x 17.00 ) in
-		'BIBLE'                  => array(  792.000,  1224.000), // = (  279 x 432  ) mm  = ( 11.00 x 17.00 ) in
-		'USTABLOID'              => array(  792.000,  1224.000), // = (  279 x 432  ) mm  = ( 11.00 x 17.00 ) in
-		'TABLOID'                => array(  792.000,  1224.000), // = (  279 x 432  ) mm  = ( 11.00 x 17.00 ) in
-		'ORGANIZERM'             => array(  612.000,   792.000), // = (  216 x 279  ) mm  = (  8.50 x 11.00 ) in
-		'USLETTER'               => array(  612.000,   792.000), // = (  216 x 279  ) mm  = (  8.50 x 11.00 ) in
-		'LETTER'                 => array(  612.000,   792.000), // = (  216 x 279  ) mm  = (  8.50 x 11.00 ) in
-		'USLEGAL'                => array(  612.000,  1008.000), // = (  216 x 356  ) mm  = (  8.50 x 14.00 ) in
-		'LEGAL'                  => array(  612.000,  1008.000), // = (  216 x 356  ) mm  = (  8.50 x 14.00 ) in
-		'GOVERNMENTLETTER'       => array(  576.000,   756.000), // = (  203 x 267  ) mm  = (  8.00 x 10.50 ) in
-		'GLETTER'                => array(  576.000,   756.000), // = (  203 x 267  ) mm  = (  8.00 x 10.50 ) in
-		'JUNIORLEGAL'            => array(  576.000,   360.000), // = (  203 x 127  ) mm  = (  8.00 x 5.00  ) in
-		'JLEGAL'                 => array(  576.000,   360.000), // = (  203 x 127  ) mm  = (  8.00 x 5.00  ) in
-		// Other North American Paper Sizes
-		'QUADDEMY'               => array( 2520.000,  3240.000), // = (  889 x 1143 ) mm  = ( 35.00 x 45.00 ) in
-		'SUPER_B'                => array(  936.000,  1368.000), // = (  330 x 483  ) mm  = ( 13.00 x 19.00 ) in
-		'QUARTO'                 => array(  648.000,   792.000), // = (  229 x 279  ) mm  = (  9.00 x 11.00 ) in
-		'GOVERNMENTLEGAL'        => array(  612.000,   936.000), // = (  216 x 330  ) mm  = (  8.50 x 13.00 ) in
-		'FOLIO'                  => array(  612.000,   936.000), // = (  216 x 330  ) mm  = (  8.50 x 13.00 ) in
-		'MONARCH'                => array(  522.000,   756.000), // = (  184 x 267  ) mm  = (  7.25 x 10.50 ) in
-		'EXECUTIVE'              => array(  522.000,   756.000), // = (  184 x 267  ) mm  = (  7.25 x 10.50 ) in
-		'ORGANIZERL'             => array(  396.000,   612.000), // = (  140 x 216  ) mm  = (  5.50 x 8.50  ) in
-		'STATEMENT'              => array(  396.000,   612.000), // = (  140 x 216  ) mm  = (  5.50 x 8.50  ) in
-		'MEMO'                   => array(  396.000,   612.000), // = (  140 x 216  ) mm  = (  5.50 x 8.50  ) in
-		'FOOLSCAP'               => array(  595.440,   936.000), // = (  210 x 330  ) mm  = (  8.27 x 13.00 ) in
-		'COMPACT'                => array(  306.000,   486.000), // = (  108 x 171  ) mm  = (  4.25 x 6.75  ) in
-		'ORGANIZERJ'             => array(  198.000,   360.000), // = (   70 x 127  ) mm  = (  2.75 x 5.00  ) in
-		// Canadian standard CAN 2-9.60M
-		'P1'                     => array( 1587.402,  2437.795), // = (  560 x 860  ) mm  = ( 22.05 x 33.86 ) in
-		'P2'                     => array( 1218.898,  1587.402), // = (  430 x 560  ) mm  = ( 16.93 x 22.05 ) in
-		'P3'                     => array(  793.701,  1218.898), // = (  280 x 430  ) mm  = ( 11.02 x 16.93 ) in
-		'P4'                     => array(  609.449,   793.701), // = (  215 x 280  ) mm  = (  8.46 x 11.02 ) in
-		'P5'                     => array(  396.850,   609.449), // = (  140 x 215  ) mm  = (  5.51 x 8.46  ) in
-		'P6'                     => array(  303.307,   396.850), // = (  107 x 140  ) mm  = (  4.21 x 5.51  ) in
-		// North American Architectural Sizes
-		'ARCH_E'                 => array( 2592.000,  3456.000), // = (  914 x 1219 ) mm  = ( 36.00 x 48.00 ) in
-		'ARCH_E1'                => array( 2160.000,  3024.000), // = (  762 x 1067 ) mm  = ( 30.00 x 42.00 ) in
-		'ARCH_D'                 => array( 1728.000,  2592.000), // = (  610 x 914  ) mm  = ( 24.00 x 36.00 ) in
-		'BROADSHEET'             => array( 1296.000,  1728.000), // = (  457 x 610  ) mm  = ( 18.00 x 24.00 ) in
-		'ARCH_C'                 => array( 1296.000,  1728.000), // = (  457 x 610  ) mm  = ( 18.00 x 24.00 ) in
-		'ARCH_B'                 => array(  864.000,  1296.000), // = (  305 x 457  ) mm  = ( 12.00 x 18.00 ) in
-		'ARCH_A'                 => array(  648.000,   864.000), // = (  229 x 305  ) mm  = (  9.00 x 12.00 ) in
-		// -- North American Envelope Sizes
-		// - Announcement Envelopes
-		'ANNENV_A2'              => array(  314.640,   414.000), // = (  111 x 146  ) mm  = (  4.37 x 5.75  ) in
-		'ANNENV_A6'              => array(  342.000,   468.000), // = (  121 x 165  ) mm  = (  4.75 x 6.50  ) in
-		'ANNENV_A7'              => array(  378.000,   522.000), // = (  133 x 184  ) mm  = (  5.25 x 7.25  ) in
-		'ANNENV_A8'              => array(  396.000,   584.640), // = (  140 x 206  ) mm  = (  5.50 x 8.12  ) in
-		'ANNENV_A10'             => array(  450.000,   692.640), // = (  159 x 244  ) mm  = (  6.25 x 9.62  ) in
-		'ANNENV_SLIM'            => array(  278.640,   638.640), // = (   98 x 225  ) mm  = (  3.87 x 8.87  ) in
-		// - Commercial Envelopes
-		'COMMENV_N6_1/4'         => array(  252.000,   432.000), // = (   89 x 152  ) mm  = (  3.50 x 6.00  ) in
-		'COMMENV_N6_3/4'         => array(  260.640,   468.000), // = (   92 x 165  ) mm  = (  3.62 x 6.50  ) in
-		'COMMENV_N8'             => array(  278.640,   540.000), // = (   98 x 191  ) mm  = (  3.87 x 7.50  ) in
-		'COMMENV_N9'             => array(  278.640,   638.640), // = (   98 x 225  ) mm  = (  3.87 x 8.87  ) in
-		'COMMENV_N10'            => array(  296.640,   684.000), // = (  105 x 241  ) mm  = (  4.12 x 9.50  ) in
-		'COMMENV_N11'            => array(  324.000,   746.640), // = (  114 x 263  ) mm  = (  4.50 x 10.37 ) in
-		'COMMENV_N12'            => array(  342.000,   792.000), // = (  121 x 279  ) mm  = (  4.75 x 11.00 ) in
-		'COMMENV_N14'            => array(  360.000,   828.000), // = (  127 x 292  ) mm  = (  5.00 x 11.50 ) in
-		// - Catalogue Envelopes
-		'CATENV_N1'              => array(  432.000,   648.000), // = (  152 x 229  ) mm  = (  6.00 x 9.00  ) in
-		'CATENV_N1_3/4'          => array(  468.000,   684.000), // = (  165 x 241  ) mm  = (  6.50 x 9.50  ) in
-		'CATENV_N2'              => array(  468.000,   720.000), // = (  165 x 254  ) mm  = (  6.50 x 10.00 ) in
-		'CATENV_N3'              => array(  504.000,   720.000), // = (  178 x 254  ) mm  = (  7.00 x 10.00 ) in
-		'CATENV_N6'              => array(  540.000,   756.000), // = (  191 x 267  ) mm  = (  7.50 x 10.50 ) in
-		'CATENV_N7'              => array(  576.000,   792.000), // = (  203 x 279  ) mm  = (  8.00 x 11.00 ) in
-		'CATENV_N8'              => array(  594.000,   810.000), // = (  210 x 286  ) mm  = (  8.25 x 11.25 ) in
-		'CATENV_N9_1/2'          => array(  612.000,   756.000), // = (  216 x 267  ) mm  = (  8.50 x 10.50 ) in
-		'CATENV_N9_3/4'          => array(  630.000,   810.000), // = (  222 x 286  ) mm  = (  8.75 x 11.25 ) in
-		'CATENV_N10_1/2'         => array(  648.000,   864.000), // = (  229 x 305  ) mm  = (  9.00 x 12.00 ) in
-		'CATENV_N12_1/2'         => array(  684.000,   900.000), // = (  241 x 318  ) mm  = (  9.50 x 12.50 ) in
-		'CATENV_N13_1/2'         => array(  720.000,   936.000), // = (  254 x 330  ) mm  = ( 10.00 x 13.00 ) in
-		'CATENV_N14_1/4'         => array(  810.000,   882.000), // = (  286 x 311  ) mm  = ( 11.25 x 12.25 ) in
-		'CATENV_N14_1/2'         => array(  828.000,  1044.000), // = (  292 x 368  ) mm  = ( 11.50 x 14.50 ) in
-		// Japanese (JIS P 0138-61) Standard B-Series
-		'JIS_B0'                 => array( 2919.685,  4127.244), // = ( 1030 x 1456 ) mm  = ( 40.55 x 57.32 ) in
-		'JIS_B1'                 => array( 2063.622,  2919.685), // = (  728 x 1030 ) mm  = ( 28.66 x 40.55 ) in
-		'JIS_B2'                 => array( 1459.843,  2063.622), // = (  515 x 728  ) mm  = ( 20.28 x 28.66 ) in
-		'JIS_B3'                 => array( 1031.811,  1459.843), // = (  364 x 515  ) mm  = ( 14.33 x 20.28 ) in
-		'JIS_B4'                 => array(  728.504,  1031.811), // = (  257 x 364  ) mm  = ( 10.12 x 14.33 ) in
-		'JIS_B5'                 => array(  515.906,   728.504), // = (  182 x 257  ) mm  = (  7.17 x 10.12 ) in
-		'JIS_B6'                 => array(  362.835,   515.906), // = (  128 x 182  ) mm  = (  5.04 x 7.17  ) in
-		'JIS_B7'                 => array(  257.953,   362.835), // = (   91 x 128  ) mm  = (  3.58 x 5.04  ) in
-		'JIS_B8'                 => array(  181.417,   257.953), // = (   64 x 91   ) mm  = (  2.52 x 3.58  ) in
-		'JIS_B9'                 => array(  127.559,   181.417), // = (   45 x 64   ) mm  = (  1.77 x 2.52  ) in
-		'JIS_B10'                => array(   90.709,   127.559), // = (   32 x 45   ) mm  = (  1.26 x 1.77  ) in
-		'JIS_B11'                => array(   62.362,    90.709), // = (   22 x 32   ) mm  = (  0.87 x 1.26  ) in
-		'JIS_B12'                => array(   45.354,    62.362), // = (   16 x 22   ) mm  = (  0.63 x 0.87  ) in
-		// PA Series
-		'PA0'                    => array( 2381.102,  3174.803), // = (  840 x 1120 ) mm  = ( 33.07 x 44.09 ) in
-		'PA1'                    => array( 1587.402,  2381.102), // = (  560 x 840  ) mm  = ( 22.05 x 33.07 ) in
-		'PA2'                    => array( 1190.551,  1587.402), // = (  420 x 560  ) mm  = ( 16.54 x 22.05 ) in
-		'PA3'                    => array(  793.701,  1190.551), // = (  280 x 420  ) mm  = ( 11.02 x 16.54 ) in
-		'PA4'                    => array(  595.276,   793.701), // = (  210 x 280  ) mm  = (  8.27 x 11.02 ) in
-		'PA5'                    => array(  396.850,   595.276), // = (  140 x 210  ) mm  = (  5.51 x 8.27  ) in
-		'PA6'                    => array(  297.638,   396.850), // = (  105 x 140  ) mm  = (  4.13 x 5.51  ) in
-		'PA7'                    => array(  198.425,   297.638), // = (   70 x 105  ) mm  = (  2.76 x 4.13  ) in
-		'PA8'                    => array(  147.402,   198.425), // = (   52 x 70   ) mm  = (  2.05 x 2.76  ) in
-		'PA9'                    => array(   99.213,   147.402), // = (   35 x 52   ) mm  = (  1.38 x 2.05  ) in
-		'PA10'                   => array(   73.701,    99.213), // = (   26 x 35   ) mm  = (  1.02 x 1.38  ) in
-		// Standard Photographic Print Sizes
-		'PASSPORT_PHOTO'         => array(   99.213,   127.559), // = (   35 x 45   ) mm  = (  1.38 x 1.77  ) in
-		'E'                      => array(  233.858,   340.157), // = (   82 x 120  ) mm  = (  3.25 x 4.72  ) in
-		'L'                      => array(  252.283,   360.000), // = (   89 x 127  ) mm  = (  3.50 x 5.00  ) in
-		'3R'                     => array(  252.283,   360.000), // = (   89 x 127  ) mm  = (  3.50 x 5.00  ) in
-		'KG'                     => array(  289.134,   430.866), // = (  102 x 152  ) mm  = (  4.02 x 5.98  ) in
-		'4R'                     => array(  289.134,   430.866), // = (  102 x 152  ) mm  = (  4.02 x 5.98  ) in
-		'4D'                     => array(  340.157,   430.866), // = (  120 x 152  ) mm  = (  4.72 x 5.98  ) in
-		'2L'                     => array(  360.000,   504.567), // = (  127 x 178  ) mm  = (  5.00 x 7.01  ) in
-		'5R'                     => array(  360.000,   504.567), // = (  127 x 178  ) mm  = (  5.00 x 7.01  ) in
-		'8P'                     => array(  430.866,   575.433), // = (  152 x 203  ) mm  = (  5.98 x 7.99  ) in
-		'6R'                     => array(  430.866,   575.433), // = (  152 x 203  ) mm  = (  5.98 x 7.99  ) in
-		'6P'                     => array(  575.433,   720.000), // = (  203 x 254  ) mm  = (  7.99 x 10.00 ) in
-		'8R'                     => array(  575.433,   720.000), // = (  203 x 254  ) mm  = (  7.99 x 10.00 ) in
-		'6PW'                    => array(  575.433,   864.567), // = (  203 x 305  ) mm  = (  7.99 x 12.01 ) in
-		'S8R'                    => array(  575.433,   864.567), // = (  203 x 305  ) mm  = (  7.99 x 12.01 ) in
-		'4P'                     => array(  720.000,   864.567), // = (  254 x 305  ) mm  = ( 10.00 x 12.01 ) in
-		'10R'                    => array(  720.000,   864.567), // = (  254 x 305  ) mm  = ( 10.00 x 12.01 ) in
-		'4PW'                    => array(  720.000,  1080.000), // = (  254 x 381  ) mm  = ( 10.00 x 15.00 ) in
-		'S10R'                   => array(  720.000,  1080.000), // = (  254 x 381  ) mm  = ( 10.00 x 15.00 ) in
-		'11R'                    => array(  790.866,  1009.134), // = (  279 x 356  ) mm  = ( 10.98 x 14.02 ) in
-		'S11R'                   => array(  790.866,  1224.567), // = (  279 x 432  ) mm  = ( 10.98 x 17.01 ) in
-		'12R'                    => array(  864.567,  1080.000), // = (  305 x 381  ) mm  = ( 12.01 x 15.00 ) in
-		'S12R'                   => array(  864.567,  1292.598), // = (  305 x 456  ) mm  = ( 12.01 x 17.95 ) in
-		// Common Newspaper Sizes
-		'NEWSPAPER_BROADSHEET'   => array( 2125.984,  1700.787), // = (  750 x 600  ) mm  = ( 29.53 x 23.62 ) in
-		'NEWSPAPER_BERLINER'     => array( 1332.283,   892.913), // = (  470 x 315  ) mm  = ( 18.50 x 12.40 ) in
-		'NEWSPAPER_TABLOID'      => array( 1218.898,   793.701), // = (  430 x 280  ) mm  = ( 16.93 x 11.02 ) in
-		'NEWSPAPER_COMPACT'      => array( 1218.898,   793.701), // = (  430 x 280  ) mm  = ( 16.93 x 11.02 ) in
-		// Business Cards
-		'CREDIT_CARD'            => array(  153.014,   242.646), // = (   54 x 86   ) mm  = (  2.13 x 3.37  ) in
-		'BUSINESS_CARD'          => array(  153.014,   242.646), // = (   54 x 86   ) mm  = (  2.13 x 3.37  ) in
-		'BUSINESS_CARD_ISO7810'  => array(  153.014,   242.646), // = (   54 x 86   ) mm  = (  2.13 x 3.37  ) in
-		'BUSINESS_CARD_ISO216'   => array(  147.402,   209.764), // = (   52 x 74   ) mm  = (  2.05 x 2.91  ) in
-		'BUSINESS_CARD_IT'       => array(  155.906,   240.945), // = (   55 x 85   ) mm  = (  2.17 x 3.35  ) in
-		'BUSINESS_CARD_UK'       => array(  155.906,   240.945), // = (   55 x 85   ) mm  = (  2.17 x 3.35  ) in
-		'BUSINESS_CARD_FR'       => array(  155.906,   240.945), // = (   55 x 85   ) mm  = (  2.17 x 3.35  ) in
-		'BUSINESS_CARD_DE'       => array(  155.906,   240.945), // = (   55 x 85   ) mm  = (  2.17 x 3.35  ) in
-		'BUSINESS_CARD_ES'       => array(  155.906,   240.945), // = (   55 x 85   ) mm  = (  2.17 x 3.35  ) in
-		'BUSINESS_CARD_CA'       => array(  144.567,   252.283), // = (   51 x 89   ) mm  = (  2.01 x 3.50  ) in
-		'BUSINESS_CARD_US'       => array(  144.567,   252.283), // = (   51 x 89   ) mm  = (  2.01 x 3.50  ) in
-		'BUSINESS_CARD_JP'       => array(  155.906,   257.953), // = (   55 x 91   ) mm  = (  2.17 x 3.58  ) in
-		'BUSINESS_CARD_HK'       => array(  153.071,   255.118), // = (   54 x 90   ) mm  = (  2.13 x 3.54  ) in
-		'BUSINESS_CARD_AU'       => array(  155.906,   255.118), // = (   55 x 90   ) mm  = (  2.17 x 3.54  ) in
-		'BUSINESS_CARD_DK'       => array(  155.906,   255.118), // = (   55 x 90   ) mm  = (  2.17 x 3.54  ) in
-		'BUSINESS_CARD_SE'       => array(  155.906,   255.118), // = (   55 x 90   ) mm  = (  2.17 x 3.54  ) in
-		'BUSINESS_CARD_RU'       => array(  141.732,   255.118), // = (   50 x 90   ) mm  = (  1.97 x 3.54  ) in
-		'BUSINESS_CARD_CZ'       => array(  141.732,   255.118), // = (   50 x 90   ) mm  = (  1.97 x 3.54  ) in
-		'BUSINESS_CARD_FI'       => array(  141.732,   255.118), // = (   50 x 90   ) mm  = (  1.97 x 3.54  ) in
-		'BUSINESS_CARD_HU'       => array(  141.732,   255.118), // = (   50 x 90   ) mm  = (  1.97 x 3.54  ) in
-		'BUSINESS_CARD_IL'       => array(  141.732,   255.118), // = (   50 x 90   ) mm  = (  1.97 x 3.54  ) in
-		// Billboards
-		'4SHEET'                 => array( 2880.000,  4320.000), // = ( 1016 x 1524 ) mm  = ( 40.00 x 60.00 ) in
-		'6SHEET'                 => array( 3401.575,  5102.362), // = ( 1200 x 1800 ) mm  = ( 47.24 x 70.87 ) in
-		'12SHEET'                => array( 8640.000,  4320.000), // = ( 3048 x 1524 ) mm  = (120.00 x 60.00 ) in
-		'16SHEET'                => array( 5760.000,  8640.000), // = ( 2032 x 3048 ) mm  = ( 80.00 x 120.00) in
-		'32SHEET'                => array(11520.000,  8640.000), // = ( 4064 x 3048 ) mm  = (160.00 x 120.00) in
-		'48SHEET'                => array(17280.000,  8640.000), // = ( 6096 x 3048 ) mm  = (240.00 x 120.00) in
-		'64SHEET'                => array(23040.000,  8640.000), // = ( 8128 x 3048 ) mm  = (320.00 x 120.00) in
-		'96SHEET'                => array(34560.000,  8640.000), // = (12192 x 3048 ) mm  = (480.00 x 120.00) in
-		// -- Old European Sizes
-		// - Old Imperial English Sizes
-		'EN_EMPEROR'             => array( 3456.000,  5184.000), // = ( 1219 x 1829 ) mm  = ( 48.00 x 72.00 ) in
-		'EN_ANTIQUARIAN'         => array( 2232.000,  3816.000), // = (  787 x 1346 ) mm  = ( 31.00 x 53.00 ) in
-		'EN_GRAND_EAGLE'         => array( 2070.000,  3024.000), // = (  730 x 1067 ) mm  = ( 28.75 x 42.00 ) in
-		'EN_DOUBLE_ELEPHANT'     => array( 1926.000,  2880.000), // = (  679 x 1016 ) mm  = ( 26.75 x 40.00 ) in
-		'EN_ATLAS'               => array( 1872.000,  2448.000), // = (  660 x 864  ) mm  = ( 26.00 x 34.00 ) in
-		'EN_COLOMBIER'           => array( 1692.000,  2484.000), // = (  597 x 876  ) mm  = ( 23.50 x 34.50 ) in
-		'EN_ELEPHANT'            => array( 1656.000,  2016.000), // = (  584 x 711  ) mm  = ( 23.00 x 28.00 ) in
-		'EN_DOUBLE_DEMY'         => array( 1620.000,  2556.000), // = (  572 x 902  ) mm  = ( 22.50 x 35.50 ) in
-		'EN_IMPERIAL'            => array( 1584.000,  2160.000), // = (  559 x 762  ) mm  = ( 22.00 x 30.00 ) in
-		'EN_PRINCESS'            => array( 1548.000,  2016.000), // = (  546 x 711  ) mm  = ( 21.50 x 28.00 ) in
-		'EN_CARTRIDGE'           => array( 1512.000,  1872.000), // = (  533 x 660  ) mm  = ( 21.00 x 26.00 ) in
-		'EN_DOUBLE_LARGE_POST'   => array( 1512.000,  2376.000), // = (  533 x 838  ) mm  = ( 21.00 x 33.00 ) in
-		'EN_ROYAL'               => array( 1440.000,  1800.000), // = (  508 x 635  ) mm  = ( 20.00 x 25.00 ) in
-		'EN_SHEET'               => array( 1404.000,  1692.000), // = (  495 x 597  ) mm  = ( 19.50 x 23.50 ) in
-		'EN_HALF_POST'           => array( 1404.000,  1692.000), // = (  495 x 597  ) mm  = ( 19.50 x 23.50 ) in
-		'EN_SUPER_ROYAL'         => array( 1368.000,  1944.000), // = (  483 x 686  ) mm  = ( 19.00 x 27.00 ) in
-		'EN_DOUBLE_POST'         => array( 1368.000,  2196.000), // = (  483 x 775  ) mm  = ( 19.00 x 30.50 ) in
-		'EN_MEDIUM'              => array( 1260.000,  1656.000), // = (  445 x 584  ) mm  = ( 17.50 x 23.00 ) in
-		'EN_DEMY'                => array( 1260.000,  1620.000), // = (  445 x 572  ) mm  = ( 17.50 x 22.50 ) in
-		'EN_LARGE_POST'          => array( 1188.000,  1512.000), // = (  419 x 533  ) mm  = ( 16.50 x 21.00 ) in
-		'EN_COPY_DRAUGHT'        => array( 1152.000,  1440.000), // = (  406 x 508  ) mm  = ( 16.00 x 20.00 ) in
-		'EN_POST'                => array( 1116.000,  1386.000), // = (  394 x 489  ) mm  = ( 15.50 x 19.25 ) in
-		'EN_CROWN'               => array( 1080.000,  1440.000), // = (  381 x 508  ) mm  = ( 15.00 x 20.00 ) in
-		'EN_PINCHED_POST'        => array( 1062.000,  1332.000), // = (  375 x 470  ) mm  = ( 14.75 x 18.50 ) in
-		'EN_BRIEF'               => array(  972.000,  1152.000), // = (  343 x 406  ) mm  = ( 13.50 x 16.00 ) in
-		'EN_FOOLSCAP'            => array(  972.000,  1224.000), // = (  343 x 432  ) mm  = ( 13.50 x 17.00 ) in
-		'EN_SMALL_FOOLSCAP'      => array(  954.000,  1188.000), // = (  337 x 419  ) mm  = ( 13.25 x 16.50 ) in
-		'EN_POTT'                => array(  900.000,  1080.000), // = (  318 x 381  ) mm  = ( 12.50 x 15.00 ) in
-		// - Old Imperial Belgian Sizes
-		'BE_GRAND_AIGLE'         => array( 1984.252,  2948.031), // = (  700 x 1040 ) mm  = ( 27.56 x 40.94 ) in
-		'BE_COLOMBIER'           => array( 1757.480,  2409.449), // = (  620 x 850  ) mm  = ( 24.41 x 33.46 ) in
-		'BE_DOUBLE_CARRE'        => array( 1757.480,  2607.874), // = (  620 x 920  ) mm  = ( 24.41 x 36.22 ) in
-		'BE_ELEPHANT'            => array( 1746.142,  2182.677), // = (  616 x 770  ) mm  = ( 24.25 x 30.31 ) in
-		'BE_PETIT_AIGLE'         => array( 1700.787,  2381.102), // = (  600 x 840  ) mm  = ( 23.62 x 33.07 ) in
-		'BE_GRAND_JESUS'         => array( 1559.055,  2069.291), // = (  550 x 730  ) mm  = ( 21.65 x 28.74 ) in
-		'BE_JESUS'               => array( 1530.709,  2069.291), // = (  540 x 730  ) mm  = ( 21.26 x 28.74 ) in
-		'BE_RAISIN'              => array( 1417.323,  1842.520), // = (  500 x 650  ) mm  = ( 19.69 x 25.59 ) in
-		'BE_GRAND_MEDIAN'        => array( 1303.937,  1714.961), // = (  460 x 605  ) mm  = ( 18.11 x 23.82 ) in
-		'BE_DOUBLE_POSTE'        => array( 1233.071,  1601.575), // = (  435 x 565  ) mm  = ( 17.13 x 22.24 ) in
-		'BE_COQUILLE'            => array( 1218.898,  1587.402), // = (  430 x 560  ) mm  = ( 16.93 x 22.05 ) in
-		'BE_PETIT_MEDIAN'        => array( 1176.378,  1502.362), // = (  415 x 530  ) mm  = ( 16.34 x 20.87 ) in
-		'BE_RUCHE'               => array( 1020.472,  1303.937), // = (  360 x 460  ) mm  = ( 14.17 x 18.11 ) in
-		'BE_PROPATRIA'           => array(  977.953,  1218.898), // = (  345 x 430  ) mm  = ( 13.58 x 16.93 ) in
-		'BE_LYS'                 => array(  898.583,  1125.354), // = (  317 x 397  ) mm  = ( 12.48 x 15.63 ) in
-		'BE_POT'                 => array(  870.236,  1088.504), // = (  307 x 384  ) mm  = ( 12.09 x 15.12 ) in
-		'BE_ROSETTE'             => array(  765.354,   983.622), // = (  270 x 347  ) mm  = ( 10.63 x 13.66 ) in
-		// - Old Imperial French Sizes
-		'FR_UNIVERS'             => array( 2834.646,  3685.039), // = ( 1000 x 1300 ) mm  = ( 39.37 x 51.18 ) in
-		'FR_DOUBLE_COLOMBIER'    => array( 2551.181,  3571.654), // = (  900 x 1260 ) mm  = ( 35.43 x 49.61 ) in
-		'FR_GRANDE_MONDE'        => array( 2551.181,  3571.654), // = (  900 x 1260 ) mm  = ( 35.43 x 49.61 ) in
-		'FR_DOUBLE_SOLEIL'       => array( 2267.717,  3401.575), // = (  800 x 1200 ) mm  = ( 31.50 x 47.24 ) in
-		'FR_DOUBLE_JESUS'        => array( 2154.331,  3174.803), // = (  760 x 1120 ) mm  = ( 29.92 x 44.09 ) in
-		'FR_GRAND_AIGLE'         => array( 2125.984,  3004.724), // = (  750 x 1060 ) mm  = ( 29.53 x 41.73 ) in
-		'FR_PETIT_AIGLE'         => array( 1984.252,  2664.567), // = (  700 x 940  ) mm  = ( 27.56 x 37.01 ) in
-		'FR_DOUBLE_RAISIN'       => array( 1842.520,  2834.646), // = (  650 x 1000 ) mm  = ( 25.59 x 39.37 ) in
-		'FR_JOURNAL'             => array( 1842.520,  2664.567), // = (  650 x 940  ) mm  = ( 25.59 x 37.01 ) in
-		'FR_COLOMBIER_AFFICHE'   => array( 1785.827,  2551.181), // = (  630 x 900  ) mm  = ( 24.80 x 35.43 ) in
-		'FR_DOUBLE_CAVALIER'     => array( 1757.480,  2607.874), // = (  620 x 920  ) mm  = ( 24.41 x 36.22 ) in
-		'FR_CLOCHE'              => array( 1700.787,  2267.717), // = (  600 x 800  ) mm  = ( 23.62 x 31.50 ) in
-		'FR_SOLEIL'              => array( 1700.787,  2267.717), // = (  600 x 800  ) mm  = ( 23.62 x 31.50 ) in
-		'FR_DOUBLE_CARRE'        => array( 1587.402,  2551.181), // = (  560 x 900  ) mm  = ( 22.05 x 35.43 ) in
-		'FR_DOUBLE_COQUILLE'     => array( 1587.402,  2494.488), // = (  560 x 880  ) mm  = ( 22.05 x 34.65 ) in
-		'FR_JESUS'               => array( 1587.402,  2154.331), // = (  560 x 760  ) mm  = ( 22.05 x 29.92 ) in
-		'FR_RAISIN'              => array( 1417.323,  1842.520), // = (  500 x 650  ) mm  = ( 19.69 x 25.59 ) in
-		'FR_CAVALIER'            => array( 1303.937,  1757.480), // = (  460 x 620  ) mm  = ( 18.11 x 24.41 ) in
-		'FR_DOUBLE_COURONNE'     => array( 1303.937,  2040.945), // = (  460 x 720  ) mm  = ( 18.11 x 28.35 ) in
-		'FR_CARRE'               => array( 1275.591,  1587.402), // = (  450 x 560  ) mm  = ( 17.72 x 22.05 ) in
-		'FR_COQUILLE'            => array( 1247.244,  1587.402), // = (  440 x 560  ) mm  = ( 17.32 x 22.05 ) in
-		'FR_DOUBLE_TELLIERE'     => array( 1247.244,  1927.559), // = (  440 x 680  ) mm  = ( 17.32 x 26.77 ) in
-		'FR_DOUBLE_CLOCHE'       => array( 1133.858,  1700.787), // = (  400 x 600  ) mm  = ( 15.75 x 23.62 ) in
-		'FR_DOUBLE_POT'          => array( 1133.858,  1757.480), // = (  400 x 620  ) mm  = ( 15.75 x 24.41 ) in
-		'FR_ECU'                 => array( 1133.858,  1474.016), // = (  400 x 520  ) mm  = ( 15.75 x 20.47 ) in
-		'FR_COURONNE'            => array( 1020.472,  1303.937), // = (  360 x 460  ) mm  = ( 14.17 x 18.11 ) in
-		'FR_TELLIERE'            => array(  963.780,  1247.244), // = (  340 x 440  ) mm  = ( 13.39 x 17.32 ) in
-		'FR_POT'                 => array(  878.740,  1133.858), // = (  310 x 400  ) mm  = ( 12.20 x 15.75 ) in
-	);
-
-	// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-	/**
-	 * Return the current TCPDF version.
-	 * @return TCPDF version string
-	 * @since 5.9.012 (2010-11-10)
+	 * Return the current TCPDF version.
+	 * @return TCPDF version string
+	 * @since 5.9.012 (2010-11-10)
 	 * @public static
 	 */
 	public static function getTCPDFVersion() {
@@ -518,219 +162,67 @@ class TCPDF_STATIC {
 	}
 
 	/**
-	 * Get page dimensions from format name.
-	 * @param $format (mixed) The format name @see self::$page_format<ul>
-	 * @return array containing page width and height in points
-	 * @since 5.0.010 (2010-05-17)
+	 * Check if the URL exist.
+	 * @param $url (string) URL to check.
+	 * @return Boolean true if the URl exist, false otherwise.
+	 * @since 5.9.204 (2013-01-28)
 	 * @public static
 	 */
-	public static function getPageSizeFromFormat($format) {
-		if (isset(self::$page_formats[$format])) {
-			return self::$page_formats[$format];
-		}
-		return self::$page_formats['A4'];
+	public static function isValidURL($url) {
+		$headers = @get_headers($url);
+    	return (strpos($headers[0], '200') !== false);
 	}
 
 	/**
-	 * Set page boundaries.
-	 * @param $page (int) page number
-	 * @param $type (string) valid values are: <ul><li>'MediaBox' : the boundaries of the physical medium on which the page shall be displayed or printed;</li><li>'CropBox' : the visible region of default user space;</li><li>'BleedBox' : the region to which the contents of the page shall be clipped when output in a production environment;</li><li>'TrimBox' : the intended dimensions of the finished page after trimming;</li><li>'ArtBox' : the page's meaningful content (including potential white space).</li></ul>
-	 * @param $llx (float) lower-left x coordinate in user units.
-	 * @param $lly (float) lower-left y coordinate in user units.
-	 * @param $urx (float) upper-right x coordinate in user units.
-	 * @param $ury (float) upper-right y coordinate in user units.
-	 * @param $points (boolean) If true uses user units as unit of measure, otherwise uses PDF points.
-	 * @param $k (float) Scale factor (number of points in user unit).
-	 * @param $pagedim (array) Array of page dimensions.
-	 * @return pagedim array of page dimensions.
-	 * @since 5.0.010 (2010-05-17)
+	 * Removes SHY characters from text.
+	 * Unicode Data:<ul>
+	 * <li>Name : SOFT HYPHEN, commonly abbreviated as SHY</li>
+	 * <li>HTML Entity (decimal): "&amp;#173;"</li>
+	 * <li>HTML Entity (hex): "&amp;#xad;"</li>
+	 * <li>HTML Entity (named): "&amp;shy;"</li>
+	 * <li>How to type in Microsoft Windows: [Alt +00AD] or [Alt 0173]</li>
+	 * <li>UTF-8 (hex): 0xC2 0xAD (c2ad)</li>
+	 * <li>UTF-8 character: chr(194).chr(173)</li>
+	 * </ul>
+	 * @param $txt (string) input string
+	 * @param $unicode (boolean) True if we are in unicode mode, false otherwise.
+	 * @return string without SHY characters.
+	 * @since (4.5.019) 2009-02-28
 	 * @public static
 	 */
-	public static function setPageBoxes($page, $type, $llx, $lly, $urx, $ury, $points=false, $k, $pagedim=array()) {
-		if (!isset($pagedim[$page])) {
-			// initialize array
-			$pagedim[$page] = array();
-		}
-		if (!in_array($type, self::$pageboxes)) {
-			return;
-		}
-		if ($points) {
-			$k = 1;
+	public static function removeSHY($txt='', $unicode=true) {
+		$txt = preg_replace('/([\\xc2]{1}[\\xad]{1})/', '', $txt);
+		if (!$unicode) {
+			$txt = preg_replace('/([\\xad]{1})/', '', $txt);
 		}
-		$pagedim[$page][$type]['llx'] = ($llx * $k);
-		$pagedim[$page][$type]['lly'] = ($lly * $k);
-		$pagedim[$page][$type]['urx'] = ($urx * $k);
-		$pagedim[$page][$type]['ury'] = ($ury * $k);
-		return $pagedim;
+		return $txt;
 	}
 
-	/**
-	 * Swap X and Y coordinates of page boxes (change page boxes orientation).
-	 * @param $page (int) page number
-	 * @param $pagedim (array) Array of page dimensions.
-	 * @return pagedim array of page dimensions.
-	 * @since 5.0.010 (2010-05-17)
-	 * @public static
-	 */
-	public static function swapPageBoxCoordinates($page, $pagedim) {
-		foreach (self::$pageboxes as $type) {
-			// swap X and Y coordinates
-			if (isset($pagedim[$page][$type])) {
-				$tmp = $pagedim[$page][$type]['llx'];
-				$pagedim[$page][$type]['llx'] = $pagedim[$page][$type]['lly'];
-				$pagedim[$page][$type]['lly'] = $tmp;
-				$tmp = $pagedim[$page][$type]['urx'];
-				$pagedim[$page][$type]['urx'] = $pagedim[$page][$type]['ury'];
-				$pagedim[$page][$type]['ury'] = $tmp;
-			}
-		}
-		return $pagedim;
-	}
 
 	/**
-	 * Get the canonical page layout mode.
-	 * @param $layout (string) The page layout. Possible values are:<ul><li>SinglePage Display one page at a time</li><li>OneColumn Display the pages in one column</li><li>TwoColumnLeft Display the pages in two columns, with odd-numbered pages on the left</li><li>TwoColumnRight Display the pages in two columns, with odd-numbered pages on the right</li><li>TwoPageLeft (PDF 1.5) Display the pages two at a time, with odd-numbered pages on the left</li><li>TwoPageRight (PDF 1.5) Display the pages two at a time, with odd-numbered pages on the right</li></ul>
-	 * @return (string) Canonical page layout name.
+	 * Get the border mode accounting for multicell position (opens bottom side of multicell crossing pages)
+	 * @param $brd (mixed) Indicates if borders must be drawn around the cell block. The value can be a number:<ul><li>0: no border (default)</li><li>1: frame</li></ul>or a string containing some or all of the following characters (in any order):<ul><li>L: left</li><li>T: top</li><li>R: right</li><li>B: bottom</li></ul> or an array of line styles for each border group: array('LTRB' => array('width' => 2, 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => array(0, 0, 0)))
+	 * @param $position (string) multicell position: 'start', 'middle', 'end'
+	 * @param $opencell (boolean) True when the cell is left open at the page bottom, false otherwise.
+	 * @return border mode array
+	 * @since 4.4.002 (2008-12-09)
 	 * @public static
 	 */
-	public static function getPageLayoutMode($layout='SinglePage') {
-		switch ($layout) {
-			case 'default':
-			case 'single':
-			case 'SinglePage': {
-				$layout_mode = 'SinglePage';
-				break;
-			}
-			case 'continuous':
-			case 'OneColumn': {
-				$layout_mode = 'OneColumn';
-				break;
-			}
-			case 'two':
-			case 'TwoColumnLeft': {
-				$layout_mode = 'TwoColumnLeft';
-				break;
-			}
-			case 'TwoColumnRight': {
-				$layout_mode = 'TwoColumnRight';
-				break;
-			}
-			case 'TwoPageLeft': {
-				$layout_mode = 'TwoPageLeft';
-				break;
-			}
-			case 'TwoPageRight': {
-				$layout_mode = 'TwoPageRight';
-				break;
-			}
-			default: {
-				$layout_mode = 'SinglePage';
+	public static function getBorderMode($brd, $position='start', $opencell=true) {
+		if ((!$opencell) OR empty($brd)) {
+			return $brd;
+		}
+		if ($brd == 1) {
+			$brd = 'LTRB';
+		}
+		if (is_string($brd)) {
+			// convert string to array
+			$slen = strlen($brd);
+			$newbrd = array();
+			for ($i = 0; $i < $slen; ++$i) {
+				$newbrd[$brd[$i]] = array('cap' => 'square', 'join' => 'miter');
 			}
-		}
-		return $layout_mode;
-	}
-
-	/**
-	 * Get the canonical page layout mode.
-	 * @param $mode (string) A name object specifying how the document should be displayed when opened:<ul><li>UseNone Neither document outline nor thumbnail images visible</li><li>UseOutlines Document outline visible</li><li>UseThumbs Thumbnail images visible</li><li>FullScreen Full-screen mode, with no menu bar, window controls, or any other window visible</li><li>UseOC (PDF 1.5) Optional content group panel visible</li><li>UseAttachments (PDF 1.6) Attachments panel visible</li></ul>
-	 * @return (string) Canonical page mode name.
-	 * @public static
-	 */
-	public static function getPageMode($mode='UseNone') {
-		switch ($mode) {
-			case 'UseNone': {
-				$page_mode = 'UseNone';
-				break;
-			}
-			case 'UseOutlines': {
-				$page_mode = 'UseOutlines';
-				break;
-			}
-			case 'UseThumbs': {
-				$page_mode = 'UseThumbs';
-				break;
-			}
-			case 'FullScreen': {
-				$page_mode = 'FullScreen';
-				break;
-			}
-			case 'UseOC': {
-				$page_mode = 'UseOC';
-				break;
-			}
-			case '': {
-				$page_mode = 'UseAttachments';
-				break;
-			}
-			default: {
-				$page_mode = 'UseNone';
-			}
-		}
-		return $page_mode;
-	}
-
-	/**
-	 * Check if the URL exist.
-	 * @param $url (string) URL to check.
-	 * @return Boolean true if the URl exist, false otherwise.
-	 * @since 5.9.204 (2013-01-28)
-	 * @public static
-	 */
-	public static function isValidURL($url) {
-		$headers = @get_headers($url);
-    	return (strpos($headers[0], '200') !== false);
-	}
-
-	/**
-	 * Removes SHY characters from text.
-	 * Unicode Data:<ul>
-	 * <li>Name : SOFT HYPHEN, commonly abbreviated as SHY</li>
-	 * <li>HTML Entity (decimal): "&amp;#173;"</li>
-	 * <li>HTML Entity (hex): "&amp;#xad;"</li>
-	 * <li>HTML Entity (named): "&amp;shy;"</li>
-	 * <li>How to type in Microsoft Windows: [Alt +00AD] or [Alt 0173]</li>
-	 * <li>UTF-8 (hex): 0xC2 0xAD (c2ad)</li>
-	 * <li>UTF-8 character: chr(194).chr(173)</li>
-	 * </ul>
-	 * @param $txt (string) input string
-	 * @param $unicode (boolean) True if we are in unicode mode, false otherwise.
-	 * @return string without SHY characters.
-	 * @since (4.5.019) 2009-02-28
-	 * @public static
-	 */
-	public static function removeSHY($txt='', $unicode=true) {
-		$txt = preg_replace('/([\\xc2]{1}[\\xad]{1})/', '', $txt);
-		if (!$unicode) {
-			$txt = preg_replace('/([\\xad]{1})/', '', $txt);
-		}
-		return $txt;
-	}
-
-
-	/**
-	 * Get the border mode accounting for multicell position (opens bottom side of multicell crossing pages)
-	 * @param $brd (mixed) Indicates if borders must be drawn around the cell block. The value can be a number:<ul><li>0: no border (default)</li><li>1: frame</li></ul>or a string containing some or all of the following characters (in any order):<ul><li>L: left</li><li>T: top</li><li>R: right</li><li>B: bottom</li></ul> or an array of line styles for each border group: array('LTRB' => array('width' => 2, 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => array(0, 0, 0)))
-	 * @param $position (string) multicell position: 'start', 'middle', 'end'
-	 * @param $opencell (boolean) True when the cell is left open at the page bottom, false otherwise.
-	 * @return border mode array
-	 * @since 4.4.002 (2008-12-09)
-	 * @public static
-	 */
-	public static function getBorderMode($brd, $position='start', $opencell=true) {
-		if ((!$opencell) OR empty($brd)) {
-			return $brd;
-		}
-		if ($brd == 1) {
-			$brd = 'LTRB';
-		}
-		if (is_string($brd)) {
-			// convert string to array
-			$slen = strlen($brd);
-			$newbrd = array();
-			for ($i = 0; $i < $slen; ++$i) {
-				$newbrd[$brd[$i]] = array('cap' => 'square', 'join' => 'miter');
-			}
-			$brd = $newbrd;
+			$brd = $newbrd;
 		}
 		foreach ($brd as $border => $style) {
 			switch ($position) {
@@ -904,143 +396,6 @@ class TCPDF_STATIC {
 		return substr_replace(date('YmdHisO', intval($time)), '\'', (0 - 2), 0).'\'';
 	}
 
-	/**
-	 * Get ULONG from string (Big Endian 32-bit unsigned integer).
-	 * @param $str (string) string from where to extract value
-	 * @param $offset (int) point from where to read the data
-	 * @return int 32 bit value
-	 * @author Nicola Asuni
-	 * @since 5.2.000 (2010-06-02)
-	 * @public static
-	 */
-	public static function _getULONG($str, $offset) {
-		$v = unpack('Ni', substr($str, $offset, 4));
-		return $v['i'];
-	}
-
-	/**
-	 * Get USHORT from string (Big Endian 16-bit unsigned integer).
-	 * @param $str (string) string from where to extract value
-	 * @param $offset (int) point from where to read the data
-	 * @return int 16 bit value
-	 * @author Nicola Asuni
-	 * @since 5.2.000 (2010-06-02)
-	 * @public static
-	 */
-	public static function _getUSHORT($str, $offset) {
-		$v = unpack('ni', substr($str, $offset, 2));
-		return $v['i'];
-	}
-
-	/**
-	 * Get SHORT from string (Big Endian 16-bit signed integer).
-	 * @param $str (string) String from where to extract value.
-	 * @param $offset (int) Point from where to read the data.
-	 * @return int 16 bit value
-	 * @author Nicola Asuni
-	 * @since 5.2.000 (2010-06-02)
-	 * @public static
-	 */
-	public static function _getSHORT($str, $offset) {
-		$v = unpack('si', substr($str, $offset, 2));
-		return $v['i'];
-	}
-
-	/**
-	 * Get FWORD from string (Big Endian 16-bit signed integer).
-	 * @param $str (string) String from where to extract value.
-	 * @param $offset (int) Point from where to read the data.
-	 * @return int 16 bit value
-	 * @author Nicola Asuni
-	 * @since 5.9.123 (2011-09-30)
-	 * @public static
-	 */
-	public static function _getFWORD($str, $offset) {
-		$v = self::_getUSHORT($str, $offset);
-		if ($v > 0x7fff) {
-			$v -= 0x10000;
-		}
-		return $v;
-	}
-
-	/**
-	 * Get UFWORD from string (Big Endian 16-bit unsigned integer).
-	 * @param $str (string) string from where to extract value
-	 * @param $offset (int) point from where to read the data
-	 * @return int 16 bit value
-	 * @author Nicola Asuni
-	 * @since 5.9.123 (2011-09-30)
-	 * @public static
-	 */
-	public static function _getUFWORD($str, $offset) {
-		$v = self::_getUSHORT($str, $offset);
-		return $v;
-	}
-
-	/**
-	 * Get FIXED from string (32-bit signed fixed-point number (16.16).
-	 * @param $str (string) string from where to extract value
-	 * @param $offset (int) point from where to read the data
-	 * @return int 16 bit value
-	 * @author Nicola Asuni
-	 * @since 5.9.123 (2011-09-30)
-	 * @public static
-	 */
-	public static function _getFIXED($str, $offset) {
-		// mantissa
-		$m = self::_getFWORD($str, $offset);
-		// fraction
-		$f = self::_getUSHORT($str, ($offset + 2));
-		$v = floatval(''.$m.'.'.$f.'');
-		return $v;
-	}
-
-	/**
-	 * Get BYTE from string (8-bit unsigned integer).
-	 * @param $str (string) String from where to extract value.
-	 * @param $offset (int) Point from where to read the data.
-	 * @return int 8 bit value
-	 * @author Nicola Asuni
-	 * @since 5.2.000 (2010-06-02)
-	 * @public static
-	 */
-	public static function _getBYTE($str, $offset) {
-		$v = unpack('Ci', substr($str, $offset, 1));
-		return $v['i'];
-	}
-	/**
-	 * Binary-safe and URL-safe file read.
-	 * Reads up to length bytes from the file pointer referenced by handle. Reading stops as soon as one of the following conditions is met: length bytes have been read; EOF (end of file) is reached.
-	 * @param $handle (resource)
-	 * @param $length (int)
-	 * @return Returns the read string or FALSE in case of error.
-	 * @author Nicola Asuni
-	 * @since 4.5.027 (2009-03-16)
-	 * @public static
-	 */
-	public static function rfread($handle, $length) {
-		$data = fread($handle, $length);
-		if ($data === false) {
-			return false;
-		}
-		$rest = ($length - strlen($data));
-		if ($rest > 0) {
-			$data .= self::rfread($handle, $rest);
-		}
-		return $data;
-	}
-
-	/**
-	 * Read a 4-byte (32 bit) integer from file.
-	 * @param $f (string) file name.
-	 * @return 4-byte integer
-	 * @public static
-	 */
-	public static function _freadint($f) {
-		$a = unpack('Ni', fread($f, 4));
-		return $a['i'];
-	}
-
 	/**
 	 * Returns a string containing random data to be used as a seed for encryption methods.
 	 * @param $seed (string) starting seed value
@@ -1078,7 +433,7 @@ class TCPDF_STATIC {
 
 	/**
 	 * Returns the input text exrypted using AES algorithm and the specified key.
-	 * This method requires mcrypt.
+	 * This method requires openssl or mcrypt. Text is padded to 16bytes blocks
 	 * @param $key (string) encryption key
 	 * @param $text (String) input text to be encrypted
 	 * @return String encrypted text
@@ -1090,12 +445,38 @@ class TCPDF_STATIC {
 		// padding (RFC 2898, PKCS #5: Password-Based Cryptography Specification Version 2.0)
 		$padding = 16 - (strlen($text) % 16);
 		$text .= str_repeat(chr($padding), $padding);
+		if (extension_loaded('openssl')) {
+			$iv = openssl_random_pseudo_bytes (openssl_cipher_iv_length('aes-256-cbc'));
+			$text = openssl_encrypt($text, 'aes-256-cbc', $key, OPENSSL_RAW_DATA, $iv);
+			return $iv.substr($text, 0, -16);
+		}
 		$iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC), MCRYPT_RAND);
 		$text = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $text, MCRYPT_MODE_CBC, $iv);
 		$text = $iv.$text;
 		return $text;
 	}
 
+	/**
+	 * Returns the input text exrypted using AES algorithm and the specified key.
+	 * This method requires openssl or mcrypt. Text is not padded
+	 * @param $key (string) encryption key
+	 * @param $text (String) input text to be encrypted
+	 * @return String encrypted text
+	 * @author Nicola Asuni
+	 * @since TODO
+	 * @public static
+	 */
+	public static function _AESnopad($key, $text) {
+		if (extension_loaded('openssl')) {
+			$iv = str_repeat("\x00", openssl_cipher_iv_length('aes-256-cbc'));
+			$text = openssl_encrypt($text, 'aes-256-cbc', $key, OPENSSL_RAW_DATA, $iv);
+			return substr($text, 0, -16);
+		}
+		$iv = str_repeat("\x00", mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC));
+		$text = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $text, MCRYPT_MODE_CBC, $iv);
+		return $text;
+	}
+
 	/**
 	 * Returns the input text encrypted using RC4 algorithm and the specified key.
 	 * RC4 is the standard encryption algorithm used in PDF format
@@ -2370,157 +1751,854 @@ class TCPDF_STATIC {
 	}
 
 	/**
-	 * Returns the angle in radiants between two vectors
-	 * @param $x1 (int) X coordinate of first vector point
-	 * @param $y1 (int) Y coordinate of first vector point
-	 * @param $x2 (int) X coordinate of second vector point
-	 * @param $y2 (int) Y coordinate of second vector point
-	 * @author Nicola Asuni
-	 * @since 5.0.000 (2010-05-04)
+	 * Returns the angle in radiants between two vectors
+	 * @param $x1 (int) X coordinate of first vector point
+	 * @param $y1 (int) Y coordinate of first vector point
+	 * @param $x2 (int) X coordinate of second vector point
+	 * @param $y2 (int) Y coordinate of second vector point
+	 * @author Nicola Asuni
+	 * @since 5.0.000 (2010-05-04)
+	 * @public static
+	 */
+	public static function getVectorsAngle($x1, $y1, $x2, $y2) {
+		$dprod = ($x1 * $x2) + ($y1 * $y2);
+		$dist1 = sqrt(($x1 * $x1) + ($y1 * $y1));
+		$dist2 = sqrt(($x2 * $x2) + ($y2 * $y2));
+		$angle = acos($dprod / ($dist1 * $dist2));
+		if (is_nan($angle)) {
+			$angle = M_PI;
+		}
+		if ((($x1 * $y2) - ($x2 * $y1)) < 0) {
+			$angle *= -1;
+		}
+		return $angle;
+	}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+// ====================================================================================================================
+// REIMPLEMENTED
+// ====================================================================================================================
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+	/**
+	 * Split string by a regular expression.
+	 * This is a wrapper for the preg_split function to avoid the bug: https://bugs.php.net/bug.php?id=45850
+	 * @param $pattern (string) The regular expression pattern to search for without the modifiers, as a string.
+	 * @param $modifiers (string) The modifiers part of the pattern,
+	 * @param $subject (string) The input string.
+	 * @param $limit (int) If specified, then only substrings up to limit are returned with the rest of the string being placed in the last substring. A limit of -1, 0 or NULL means "no limit" and, as is standard across PHP, you can use NULL to skip to the flags parameter.
+	 * @param $flags (int) The flags as specified on the preg_split PHP function.
+	 * @return Returns an array containing substrings of subject split along boundaries matched by pattern.modifier
+	 * @author Nicola Asuni
+	 * @since 6.0.023
+	 * @public static
+	 */
+	public static function pregSplit($pattern, $modifiers, $subject, $limit=NULL, $flags=NULL) {
+		// the bug only happens on PHP 5.2 when using the u modifier
+		if ((strpos($modifiers, 'u') === FALSE) OR (count(preg_split('//u', "\n\t", -1, PREG_SPLIT_NO_EMPTY)) == 2)) {
+			return preg_split($pattern.$modifiers, $subject, $limit, $flags);
+		}
+		// preg_split is bugged - try alternative solution
+		$ret = array();
+		while (($nl = strpos($subject, "\n")) !== FALSE) {
+			$ret = array_merge($ret, preg_split($pattern.$modifiers, substr($subject, 0, $nl), $limit, $flags));
+			$ret[] = "\n";
+			$subject = substr($subject, ($nl + 1));
+		}
+		if (strlen($subject) > 0) {
+			$ret = array_merge($ret, preg_split($pattern.$modifiers, $subject, $limit, $flags));
+		}
+		return $ret;
+	}
+
+	/**
+	 * Wrapper to use fopen only with local files
+	 * @param filename (string) Name of the file to open
+	 * @param $mode (string) 
+	 * @return Returns a file pointer resource on success, or FALSE on error.  
+	 * @public static
+	 */
+	public static function fopenLocal($filename, $mode) {
+		if (strpos($filename, '://') === false) {
+			$filename = 'file://'.$filename;
+		} elseif (stream_is_local($filename) !== true) {
+			return false;
+		}
+		return fopen($filename, $mode);
+	}
+
+	/**
+	 * Reads entire file into a string.
+	 * The file can be also an URL.
+	 * @param $file (string) Name of the file or URL to read.
+	 * @return The function returns the read data or FALSE on failure. 
+	 * @author Nicola Asuni
+	 * @since 6.0.025
+	 * @public static
+	 */
+	public static function fileGetContents($file) {
+		$alt = array($file);
+		//
+		if ((strlen($file) > 1)
+		    && ($file[0] === '/')
+		    && ($file[1] !== '/')
+		    && !empty($_SERVER['DOCUMENT_ROOT'])
+		    && ($_SERVER['DOCUMENT_ROOT'] !== '/')
+		) {
+		    $findroot = strpos($file, $_SERVER['DOCUMENT_ROOT']);
+		    if (($findroot === false) || ($findroot > 1)) {
+			$alt[] = htmlspecialchars_decode(urldecode($_SERVER['DOCUMENT_ROOT'].$file));
+		    }
+		}
+		//
+		$protocol = 'http';
+		if (!empty($_SERVER['HTTPS']) && (strtolower($_SERVER['HTTPS']) != 'off')) {
+		    $protocol .= 's';
+		}
+		//
+		$url = $file;
+		if (preg_match('%^//%', $url) && !empty($_SERVER['HTTP_HOST'])) {
+			$url = $protocol.':'.str_replace(' ', '%20', $url);
+		}
+		$url = htmlspecialchars_decode($url);
+		$alt[] = $url;
+		//
+		if (preg_match('%^(https?)://%', $url)
+		    && empty($_SERVER['HTTP_HOST'])
+		    && empty($_SERVER['DOCUMENT_ROOT'])
+		) {
+			$urldata = parse_url($url);
+			if (empty($urldata['query'])) {
+				$host = $protocol.'://'.$_SERVER['HTTP_HOST'];
+				if (strpos($url, $host) === 0) {
+				    // convert URL to full server path
+				    $tmp = str_replace($host, $_SERVER['DOCUMENT_ROOT'], $url);
+				    $alt[] = htmlspecialchars_decode(urldecode($tmp));
+				}
+			}
+		}
+		//
+		if (isset($_SERVER['SCRIPT_URI'])
+		    && !preg_match('%^(https?|ftp)://%', $file)
+		    && !preg_match('%^//%', $file)
+		) {
+		    $urldata = @parse_url($_SERVER['SCRIPT_URI']);
+		    return $urldata['scheme'].'://'.$urldata['host'].(($file[0] == '/') ? '' : '/').$file;
+		}
+		//
+		$alt = array_unique($alt);
+		//var_dump($alt);exit;//DEBUG
+		foreach ($alt as $path) {
+			$ret = @file_get_contents($path);
+			if ($ret !== false) {
+			    return $ret;
+			}
+			// try to use CURL for URLs
+			if (!ini_get('allow_url_fopen')
+				&& function_exists('curl_init')
+				&& preg_match('%^(https?|ftp)://%', $path)
+			) {
+				// try to get remote file data using cURL
+				$crs = curl_init();
+				curl_setopt($crs, CURLOPT_URL, $path);
+				curl_setopt($crs, CURLOPT_BINARYTRANSFER, true);
+				curl_setopt($crs, CURLOPT_FAILONERROR, true);
+				curl_setopt($crs, CURLOPT_RETURNTRANSFER, true);
+				if ((ini_get('open_basedir') == '') && (!ini_get('safe_mode'))) {
+				    curl_setopt($crs, CURLOPT_FOLLOWLOCATION, true);
+				}
+				curl_setopt($crs, CURLOPT_CONNECTTIMEOUT, 5);
+				curl_setopt($crs, CURLOPT_TIMEOUT, 30);
+				curl_setopt($crs, CURLOPT_SSL_VERIFYPEER, false);
+				curl_setopt($crs, CURLOPT_SSL_VERIFYHOST, false);
+				curl_setopt($crs, CURLOPT_USERAGENT, 'tc-lib-file');
+				$ret = curl_exec($crs);
+				curl_close($crs);
+				if ($ret !== false) {
+					return $ret;
+				}
+			}
+		}
+		return false;
+	}
+
+    
+
+	/**
+	 * Get ULONG from string (Big Endian 32-bit unsigned integer).
+	 * @param $str (string) string from where to extract value
+	 * @param $offset (int) point from where to read the data
+	 * @return int 32 bit value
+	 * @author Nicola Asuni
+	 * @since 5.2.000 (2010-06-02)
+	 * @public static
+	 */
+	public static function _getULONG($str, $offset) {
+		$v = unpack('Ni', substr($str, $offset, 4));
+		return $v['i'];
+	}
+
+	/**
+	 * Get USHORT from string (Big Endian 16-bit unsigned integer).
+	 * @param $str (string) string from where to extract value
+	 * @param $offset (int) point from where to read the data
+	 * @return int 16 bit value
+	 * @author Nicola Asuni
+	 * @since 5.2.000 (2010-06-02)
+	 * @public static
+	 */
+	public static function _getUSHORT($str, $offset) {
+		$v = unpack('ni', substr($str, $offset, 2));
+		return $v['i'];
+	}
+
+	/**
+	 * Get SHORT from string (Big Endian 16-bit signed integer).
+	 * @param $str (string) String from where to extract value.
+	 * @param $offset (int) Point from where to read the data.
+	 * @return int 16 bit value
+	 * @author Nicola Asuni
+	 * @since 5.2.000 (2010-06-02)
+	 * @public static
+	 */
+	public static function _getSHORT($str, $offset) {
+		$v = unpack('si', substr($str, $offset, 2));
+		return $v['i'];
+	}
+
+	/**
+	 * Get FWORD from string (Big Endian 16-bit signed integer).
+	 * @param $str (string) String from where to extract value.
+	 * @param $offset (int) Point from where to read the data.
+	 * @return int 16 bit value
+	 * @author Nicola Asuni
+	 * @since 5.9.123 (2011-09-30)
+	 * @public static
+	 */
+	public static function _getFWORD($str, $offset) {
+		$v = self::_getUSHORT($str, $offset);
+		if ($v > 0x7fff) {
+			$v -= 0x10000;
+		}
+		return $v;
+	}
+
+	/**
+	 * Get UFWORD from string (Big Endian 16-bit unsigned integer).
+	 * @param $str (string) string from where to extract value
+	 * @param $offset (int) point from where to read the data
+	 * @return int 16 bit value
+	 * @author Nicola Asuni
+	 * @since 5.9.123 (2011-09-30)
+	 * @public static
+	 */
+	public static function _getUFWORD($str, $offset) {
+		$v = self::_getUSHORT($str, $offset);
+		return $v;
+	}
+
+	/**
+	 * Get FIXED from string (32-bit signed fixed-point number (16.16).
+	 * @param $str (string) string from where to extract value
+	 * @param $offset (int) point from where to read the data
+	 * @return int 16 bit value
+	 * @author Nicola Asuni
+	 * @since 5.9.123 (2011-09-30)
+	 * @public static
+	 */
+	public static function _getFIXED($str, $offset) {
+		// mantissa
+		$m = self::_getFWORD($str, $offset);
+		// fraction
+		$f = self::_getUSHORT($str, ($offset + 2));
+		$v = floatval(''.$m.'.'.$f.'');
+		return $v;
+	}
+
+	/**
+	 * Get BYTE from string (8-bit unsigned integer).
+	 * @param $str (string) String from where to extract value.
+	 * @param $offset (int) Point from where to read the data.
+	 * @return int 8 bit value
+	 * @author Nicola Asuni
+	 * @since 5.2.000 (2010-06-02)
+	 * @public static
+	 */
+	public static function _getBYTE($str, $offset) {
+		$v = unpack('Ci', substr($str, $offset, 1));
+		return $v['i'];
+	}
+	/**
+	 * Binary-safe and URL-safe file read.
+	 * Reads up to length bytes from the file pointer referenced by handle. Reading stops as soon as one of the following conditions is met: length bytes have been read; EOF (end of file) is reached.
+	 * @param $handle (resource)
+	 * @param $length (int)
+	 * @return Returns the read string or FALSE in case of error.
+	 * @author Nicola Asuni
+	 * @since 4.5.027 (2009-03-16)
+	 * @public static
+	 */
+	public static function rfread($handle, $length) {
+		$data = fread($handle, $length);
+		if ($data === false) {
+			return false;
+		}
+		$rest = ($length - strlen($data));
+		if (($rest > 0) && !feof($handle)) {
+			$data .= self::rfread($handle, $rest);
+		}
+		return $data;
+	}
+
+	/**
+	 * Read a 4-byte (32 bit) integer from file.
+	 * @param $f (string) file name.
+	 * @return 4-byte integer
+	 * @public static
+	 */
+	public static function _freadint($f) {
+		$a = unpack('Ni', fread($f, 4));
+		return $a['i'];
+	}
+
+	
+	/**
+	 * Array of page formats
+	 * measures are calculated in this way: (inches * 72) or (millimeters * 72 / 25.4)
+	 * @public static
+	 */
+	public static $page_formats = array(
+		// ISO 216 A Series + 2 SIS 014711 extensions
+		'A0'                     => array( 2383.937,  3370.394), // = (  841 x 1189 ) mm  = ( 33.11 x 46.81 ) in
+		'A1'                     => array( 1683.780,  2383.937), // = (  594 x 841  ) mm  = ( 23.39 x 33.11 ) in
+		'A2'                     => array( 1190.551,  1683.780), // = (  420 x 594  ) mm  = ( 16.54 x 23.39 ) in
+		'A3'                     => array(  841.890,  1190.551), // = (  297 x 420  ) mm  = ( 11.69 x 16.54 ) in
+		'A4'                     => array(  595.276,   841.890), // = (  210 x 297  ) mm  = (  8.27 x 11.69 ) in
+		'A5'                     => array(  419.528,   595.276), // = (  148 x 210  ) mm  = (  5.83 x 8.27  ) in
+		'A6'                     => array(  297.638,   419.528), // = (  105 x 148  ) mm  = (  4.13 x 5.83  ) in
+		'A7'                     => array(  209.764,   297.638), // = (   74 x 105  ) mm  = (  2.91 x 4.13  ) in
+		'A8'                     => array(  147.402,   209.764), // = (   52 x 74   ) mm  = (  2.05 x 2.91  ) in
+		'A9'                     => array(  104.882,   147.402), // = (   37 x 52   ) mm  = (  1.46 x 2.05  ) in
+		'A10'                    => array(   73.701,   104.882), // = (   26 x 37   ) mm  = (  1.02 x 1.46  ) in
+		'A11'                    => array(   51.024,    73.701), // = (   18 x 26   ) mm  = (  0.71 x 1.02  ) in
+		'A12'                    => array(   36.850,    51.024), // = (   13 x 18   ) mm  = (  0.51 x 0.71  ) in
+		// ISO 216 B Series + 2 SIS 014711 extensions
+		'B0'                     => array( 2834.646,  4008.189), // = ( 1000 x 1414 ) mm  = ( 39.37 x 55.67 ) in
+		'B1'                     => array( 2004.094,  2834.646), // = (  707 x 1000 ) mm  = ( 27.83 x 39.37 ) in
+		'B2'                     => array( 1417.323,  2004.094), // = (  500 x 707  ) mm  = ( 19.69 x 27.83 ) in
+		'B3'                     => array( 1000.630,  1417.323), // = (  353 x 500  ) mm  = ( 13.90 x 19.69 ) in
+		'B4'                     => array(  708.661,  1000.630), // = (  250 x 353  ) mm  = (  9.84 x 13.90 ) in
+		'B5'                     => array(  498.898,   708.661), // = (  176 x 250  ) mm  = (  6.93 x 9.84  ) in
+		'B6'                     => array(  354.331,   498.898), // = (  125 x 176  ) mm  = (  4.92 x 6.93  ) in
+		'B7'                     => array(  249.449,   354.331), // = (   88 x 125  ) mm  = (  3.46 x 4.92  ) in
+		'B8'                     => array(  175.748,   249.449), // = (   62 x 88   ) mm  = (  2.44 x 3.46  ) in
+		'B9'                     => array(  124.724,   175.748), // = (   44 x 62   ) mm  = (  1.73 x 2.44  ) in
+		'B10'                    => array(   87.874,   124.724), // = (   31 x 44   ) mm  = (  1.22 x 1.73  ) in
+		'B11'                    => array(   62.362,    87.874), // = (   22 x 31   ) mm  = (  0.87 x 1.22  ) in
+		'B12'                    => array(   42.520,    62.362), // = (   15 x 22   ) mm  = (  0.59 x 0.87  ) in
+		// ISO 216 C Series + 2 SIS 014711 extensions + 5 EXTENSION
+		'C0'                     => array( 2599.370,  3676.535), // = (  917 x 1297 ) mm  = ( 36.10 x 51.06 ) in
+		'C1'                     => array( 1836.850,  2599.370), // = (  648 x 917  ) mm  = ( 25.51 x 36.10 ) in
+		'C2'                     => array( 1298.268,  1836.850), // = (  458 x 648  ) mm  = ( 18.03 x 25.51 ) in
+		'C3'                     => array(  918.425,  1298.268), // = (  324 x 458  ) mm  = ( 12.76 x 18.03 ) in
+		'C4'                     => array(  649.134,   918.425), // = (  229 x 324  ) mm  = (  9.02 x 12.76 ) in
+		'C5'                     => array(  459.213,   649.134), // = (  162 x 229  ) mm  = (  6.38 x 9.02  ) in
+		'C6'                     => array(  323.150,   459.213), // = (  114 x 162  ) mm  = (  4.49 x 6.38  ) in
+		'C7'                     => array(  229.606,   323.150), // = (   81 x 114  ) mm  = (  3.19 x 4.49  ) in
+		'C8'                     => array(  161.575,   229.606), // = (   57 x 81   ) mm  = (  2.24 x 3.19  ) in
+		'C9'                     => array(  113.386,   161.575), // = (   40 x 57   ) mm  = (  1.57 x 2.24  ) in
+		'C10'                    => array(   79.370,   113.386), // = (   28 x 40   ) mm  = (  1.10 x 1.57  ) in
+		'C11'                    => array(   56.693,    79.370), // = (   20 x 28   ) mm  = (  0.79 x 1.10  ) in
+		'C12'                    => array(   39.685,    56.693), // = (   14 x 20   ) mm  = (  0.55 x 0.79  ) in
+		'C76'                    => array(  229.606,   459.213), // = (   81 x 162  ) mm  = (  3.19 x 6.38  ) in
+		'DL'                     => array(  311.811,   623.622), // = (  110 x 220  ) mm  = (  4.33 x 8.66  ) in
+		'DLE'                    => array(  323.150,   637.795), // = (  114 x 225  ) mm  = (  4.49 x 8.86  ) in
+		'DLX'                    => array(  340.158,   666.142), // = (  120 x 235  ) mm  = (  4.72 x 9.25  ) in
+		'DLP'                    => array(  280.630,   595.276), // = (   99 x 210  ) mm  = (  3.90 x 8.27  ) in (1/3 A4)
+		// SIS 014711 E Series
+		'E0'                     => array( 2491.654,  3517.795), // = (  879 x 1241 ) mm  = ( 34.61 x 48.86 ) in
+		'E1'                     => array( 1757.480,  2491.654), // = (  620 x 879  ) mm  = ( 24.41 x 34.61 ) in
+		'E2'                     => array( 1247.244,  1757.480), // = (  440 x 620  ) mm  = ( 17.32 x 24.41 ) in
+		'E3'                     => array(  878.740,  1247.244), // = (  310 x 440  ) mm  = ( 12.20 x 17.32 ) in
+		'E4'                     => array(  623.622,   878.740), // = (  220 x 310  ) mm  = (  8.66 x 12.20 ) in
+		'E5'                     => array(  439.370,   623.622), // = (  155 x 220  ) mm  = (  6.10 x 8.66  ) in
+		'E6'                     => array(  311.811,   439.370), // = (  110 x 155  ) mm  = (  4.33 x 6.10  ) in
+		'E7'                     => array(  221.102,   311.811), // = (   78 x 110  ) mm  = (  3.07 x 4.33  ) in
+		'E8'                     => array(  155.906,   221.102), // = (   55 x 78   ) mm  = (  2.17 x 3.07  ) in
+		'E9'                     => array(  110.551,   155.906), // = (   39 x 55   ) mm  = (  1.54 x 2.17  ) in
+		'E10'                    => array(   76.535,   110.551), // = (   27 x 39   ) mm  = (  1.06 x 1.54  ) in
+		'E11'                    => array(   53.858,    76.535), // = (   19 x 27   ) mm  = (  0.75 x 1.06  ) in
+		'E12'                    => array(   36.850,    53.858), // = (   13 x 19   ) mm  = (  0.51 x 0.75  ) in
+		// SIS 014711 G Series
+		'G0'                     => array( 2715.591,  3838.110), // = (  958 x 1354 ) mm  = ( 37.72 x 53.31 ) in
+		'G1'                     => array( 1919.055,  2715.591), // = (  677 x 958  ) mm  = ( 26.65 x 37.72 ) in
+		'G2'                     => array( 1357.795,  1919.055), // = (  479 x 677  ) mm  = ( 18.86 x 26.65 ) in
+		'G3'                     => array(  958.110,  1357.795), // = (  338 x 479  ) mm  = ( 13.31 x 18.86 ) in
+		'G4'                     => array(  677.480,   958.110), // = (  239 x 338  ) mm  = (  9.41 x 13.31 ) in
+		'G5'                     => array(  479.055,   677.480), // = (  169 x 239  ) mm  = (  6.65 x 9.41  ) in
+		'G6'                     => array(  337.323,   479.055), // = (  119 x 169  ) mm  = (  4.69 x 6.65  ) in
+		'G7'                     => array(  238.110,   337.323), // = (   84 x 119  ) mm  = (  3.31 x 4.69  ) in
+		'G8'                     => array(  167.244,   238.110), // = (   59 x 84   ) mm  = (  2.32 x 3.31  ) in
+		'G9'                     => array(  119.055,   167.244), // = (   42 x 59   ) mm  = (  1.65 x 2.32  ) in
+		'G10'                    => array(   82.205,   119.055), // = (   29 x 42   ) mm  = (  1.14 x 1.65  ) in
+		'G11'                    => array(   59.528,    82.205), // = (   21 x 29   ) mm  = (  0.83 x 1.14  ) in
+		'G12'                    => array(   39.685,    59.528), // = (   14 x 21   ) mm  = (  0.55 x 0.83  ) in
+		// ISO Press
+		'RA0'                    => array( 2437.795,  3458.268), // = (  860 x 1220 ) mm  = ( 33.86 x 48.03 ) in
+		'RA1'                    => array( 1729.134,  2437.795), // = (  610 x 860  ) mm  = ( 24.02 x 33.86 ) in
+		'RA2'                    => array( 1218.898,  1729.134), // = (  430 x 610  ) mm  = ( 16.93 x 24.02 ) in
+		'RA3'                    => array(  864.567,  1218.898), // = (  305 x 430  ) mm  = ( 12.01 x 16.93 ) in
+		'RA4'                    => array(  609.449,   864.567), // = (  215 x 305  ) mm  = (  8.46 x 12.01 ) in
+		'SRA0'                   => array( 2551.181,  3628.346), // = (  900 x 1280 ) mm  = ( 35.43 x 50.39 ) in
+		'SRA1'                   => array( 1814.173,  2551.181), // = (  640 x 900  ) mm  = ( 25.20 x 35.43 ) in
+		'SRA2'                   => array( 1275.591,  1814.173), // = (  450 x 640  ) mm  = ( 17.72 x 25.20 ) in
+		'SRA3'                   => array(  907.087,  1275.591), // = (  320 x 450  ) mm  = ( 12.60 x 17.72 ) in
+		'SRA4'                   => array(  637.795,   907.087), // = (  225 x 320  ) mm  = (  8.86 x 12.60 ) in
+		// German DIN 476
+		'4A0'                    => array( 4767.874,  6740.787), // = ( 1682 x 2378 ) mm  = ( 66.22 x 93.62 ) in
+		'2A0'                    => array( 3370.394,  4767.874), // = ( 1189 x 1682 ) mm  = ( 46.81 x 66.22 ) in
+		// Variations on the ISO Standard
+		'A2_EXTRA'               => array( 1261.417,  1754.646), // = (  445 x 619  ) mm  = ( 17.52 x 24.37 ) in
+		'A3+'                    => array(  932.598,  1369.134), // = (  329 x 483  ) mm  = ( 12.95 x 19.02 ) in
+		'A3_EXTRA'               => array(  912.756,  1261.417), // = (  322 x 445  ) mm  = ( 12.68 x 17.52 ) in
+		'A3_SUPER'               => array(  864.567,  1440.000), // = (  305 x 508  ) mm  = ( 12.01 x 20.00 ) in
+		'SUPER_A3'               => array(  864.567,  1380.472), // = (  305 x 487  ) mm  = ( 12.01 x 19.17 ) in
+		'A4_EXTRA'               => array(  666.142,   912.756), // = (  235 x 322  ) mm  = (  9.25 x 12.68 ) in
+		'A4_SUPER'               => array(  649.134,   912.756), // = (  229 x 322  ) mm  = (  9.02 x 12.68 ) in
+		'SUPER_A4'               => array(  643.465,  1009.134), // = (  227 x 356  ) mm  = (  8.94 x 14.02 ) in
+		'A4_LONG'                => array(  595.276,   986.457), // = (  210 x 348  ) mm  = (  8.27 x 13.70 ) in
+		'F4'                     => array(  595.276,   935.433), // = (  210 x 330  ) mm  = (  8.27 x 12.99 ) in
+		'SO_B5_EXTRA'            => array(  572.598,   782.362), // = (  202 x 276  ) mm  = (  7.95 x 10.87 ) in
+		'A5_EXTRA'               => array(  490.394,   666.142), // = (  173 x 235  ) mm  = (  6.81 x 9.25  ) in
+		// ANSI Series
+		'ANSI_E'                 => array( 2448.000,  3168.000), // = (  864 x 1118 ) mm  = ( 34.00 x 44.00 ) in
+		'ANSI_D'                 => array( 1584.000,  2448.000), // = (  559 x 864  ) mm  = ( 22.00 x 34.00 ) in
+		'ANSI_C'                 => array( 1224.000,  1584.000), // = (  432 x 559  ) mm  = ( 17.00 x 22.00 ) in
+		'ANSI_B'                 => array(  792.000,  1224.000), // = (  279 x 432  ) mm  = ( 11.00 x 17.00 ) in
+		'ANSI_A'                 => array(  612.000,   792.000), // = (  216 x 279  ) mm  = (  8.50 x 11.00 ) in
+		// Traditional 'Loose' North American Paper Sizes
+		'USLEDGER'               => array( 1224.000,   792.000), // = (  432 x 279  ) mm  = ( 17.00 x 11.00 ) in
+		'LEDGER'                 => array( 1224.000,   792.000), // = (  432 x 279  ) mm  = ( 17.00 x 11.00 ) in
+		'ORGANIZERK'             => array(  792.000,  1224.000), // = (  279 x 432  ) mm  = ( 11.00 x 17.00 ) in
+		'BIBLE'                  => array(  792.000,  1224.000), // = (  279 x 432  ) mm  = ( 11.00 x 17.00 ) in
+		'USTABLOID'              => array(  792.000,  1224.000), // = (  279 x 432  ) mm  = ( 11.00 x 17.00 ) in
+		'TABLOID'                => array(  792.000,  1224.000), // = (  279 x 432  ) mm  = ( 11.00 x 17.00 ) in
+		'ORGANIZERM'             => array(  612.000,   792.000), // = (  216 x 279  ) mm  = (  8.50 x 11.00 ) in
+		'USLETTER'               => array(  612.000,   792.000), // = (  216 x 279  ) mm  = (  8.50 x 11.00 ) in
+		'LETTER'                 => array(  612.000,   792.000), // = (  216 x 279  ) mm  = (  8.50 x 11.00 ) in
+		'USLEGAL'                => array(  612.000,  1008.000), // = (  216 x 356  ) mm  = (  8.50 x 14.00 ) in
+		'LEGAL'                  => array(  612.000,  1008.000), // = (  216 x 356  ) mm  = (  8.50 x 14.00 ) in
+		'GOVERNMENTLETTER'       => array(  576.000,   756.000), // = (  203 x 267  ) mm  = (  8.00 x 10.50 ) in
+		'GLETTER'                => array(  576.000,   756.000), // = (  203 x 267  ) mm  = (  8.00 x 10.50 ) in
+		'JUNIORLEGAL'            => array(  576.000,   360.000), // = (  203 x 127  ) mm  = (  8.00 x 5.00  ) in
+		'JLEGAL'                 => array(  576.000,   360.000), // = (  203 x 127  ) mm  = (  8.00 x 5.00  ) in
+		// Other North American Paper Sizes
+		'QUADDEMY'               => array( 2520.000,  3240.000), // = (  889 x 1143 ) mm  = ( 35.00 x 45.00 ) in
+		'SUPER_B'                => array(  936.000,  1368.000), // = (  330 x 483  ) mm  = ( 13.00 x 19.00 ) in
+		'QUARTO'                 => array(  648.000,   792.000), // = (  229 x 279  ) mm  = (  9.00 x 11.00 ) in
+		'GOVERNMENTLEGAL'        => array(  612.000,   936.000), // = (  216 x 330  ) mm  = (  8.50 x 13.00 ) in
+		'FOLIO'                  => array(  612.000,   936.000), // = (  216 x 330  ) mm  = (  8.50 x 13.00 ) in
+		'MONARCH'                => array(  522.000,   756.000), // = (  184 x 267  ) mm  = (  7.25 x 10.50 ) in
+		'EXECUTIVE'              => array(  522.000,   756.000), // = (  184 x 267  ) mm  = (  7.25 x 10.50 ) in
+		'ORGANIZERL'             => array(  396.000,   612.000), // = (  140 x 216  ) mm  = (  5.50 x 8.50  ) in
+		'STATEMENT'              => array(  396.000,   612.000), // = (  140 x 216  ) mm  = (  5.50 x 8.50  ) in
+		'MEMO'                   => array(  396.000,   612.000), // = (  140 x 216  ) mm  = (  5.50 x 8.50  ) in
+		'FOOLSCAP'               => array(  595.440,   936.000), // = (  210 x 330  ) mm  = (  8.27 x 13.00 ) in
+		'COMPACT'                => array(  306.000,   486.000), // = (  108 x 171  ) mm  = (  4.25 x 6.75  ) in
+		'ORGANIZERJ'             => array(  198.000,   360.000), // = (   70 x 127  ) mm  = (  2.75 x 5.00  ) in
+		// Canadian standard CAN 2-9.60M
+		'P1'                     => array( 1587.402,  2437.795), // = (  560 x 860  ) mm  = ( 22.05 x 33.86 ) in
+		'P2'                     => array( 1218.898,  1587.402), // = (  430 x 560  ) mm  = ( 16.93 x 22.05 ) in
+		'P3'                     => array(  793.701,  1218.898), // = (  280 x 430  ) mm  = ( 11.02 x 16.93 ) in
+		'P4'                     => array(  609.449,   793.701), // = (  215 x 280  ) mm  = (  8.46 x 11.02 ) in
+		'P5'                     => array(  396.850,   609.449), // = (  140 x 215  ) mm  = (  5.51 x 8.46  ) in
+		'P6'                     => array(  303.307,   396.850), // = (  107 x 140  ) mm  = (  4.21 x 5.51  ) in
+		// North American Architectural Sizes
+		'ARCH_E'                 => array( 2592.000,  3456.000), // = (  914 x 1219 ) mm  = ( 36.00 x 48.00 ) in
+		'ARCH_E1'                => array( 2160.000,  3024.000), // = (  762 x 1067 ) mm  = ( 30.00 x 42.00 ) in
+		'ARCH_D'                 => array( 1728.000,  2592.000), // = (  610 x 914  ) mm  = ( 24.00 x 36.00 ) in
+		'BROADSHEET'             => array( 1296.000,  1728.000), // = (  457 x 610  ) mm  = ( 18.00 x 24.00 ) in
+		'ARCH_C'                 => array( 1296.000,  1728.000), // = (  457 x 610  ) mm  = ( 18.00 x 24.00 ) in
+		'ARCH_B'                 => array(  864.000,  1296.000), // = (  305 x 457  ) mm  = ( 12.00 x 18.00 ) in
+		'ARCH_A'                 => array(  648.000,   864.000), // = (  229 x 305  ) mm  = (  9.00 x 12.00 ) in
+		// -- North American Envelope Sizes
+		// - Announcement Envelopes
+		'ANNENV_A2'              => array(  314.640,   414.000), // = (  111 x 146  ) mm  = (  4.37 x 5.75  ) in
+		'ANNENV_A6'              => array(  342.000,   468.000), // = (  121 x 165  ) mm  = (  4.75 x 6.50  ) in
+		'ANNENV_A7'              => array(  378.000,   522.000), // = (  133 x 184  ) mm  = (  5.25 x 7.25  ) in
+		'ANNENV_A8'              => array(  396.000,   584.640), // = (  140 x 206  ) mm  = (  5.50 x 8.12  ) in
+		'ANNENV_A10'             => array(  450.000,   692.640), // = (  159 x 244  ) mm  = (  6.25 x 9.62  ) in
+		'ANNENV_SLIM'            => array(  278.640,   638.640), // = (   98 x 225  ) mm  = (  3.87 x 8.87  ) in
+		// - Commercial Envelopes
+		'COMMENV_N6_1/4'         => array(  252.000,   432.000), // = (   89 x 152  ) mm  = (  3.50 x 6.00  ) in
+		'COMMENV_N6_3/4'         => array(  260.640,   468.000), // = (   92 x 165  ) mm  = (  3.62 x 6.50  ) in
+		'COMMENV_N8'             => array(  278.640,   540.000), // = (   98 x 191  ) mm  = (  3.87 x 7.50  ) in
+		'COMMENV_N9'             => array(  278.640,   638.640), // = (   98 x 225  ) mm  = (  3.87 x 8.87  ) in
+		'COMMENV_N10'            => array(  296.640,   684.000), // = (  105 x 241  ) mm  = (  4.12 x 9.50  ) in
+		'COMMENV_N11'            => array(  324.000,   746.640), // = (  114 x 263  ) mm  = (  4.50 x 10.37 ) in
+		'COMMENV_N12'            => array(  342.000,   792.000), // = (  121 x 279  ) mm  = (  4.75 x 11.00 ) in
+		'COMMENV_N14'            => array(  360.000,   828.000), // = (  127 x 292  ) mm  = (  5.00 x 11.50 ) in
+		// - Catalogue Envelopes
+		'CATENV_N1'              => array(  432.000,   648.000), // = (  152 x 229  ) mm  = (  6.00 x 9.00  ) in
+		'CATENV_N1_3/4'          => array(  468.000,   684.000), // = (  165 x 241  ) mm  = (  6.50 x 9.50  ) in
+		'CATENV_N2'              => array(  468.000,   720.000), // = (  165 x 254  ) mm  = (  6.50 x 10.00 ) in
+		'CATENV_N3'              => array(  504.000,   720.000), // = (  178 x 254  ) mm  = (  7.00 x 10.00 ) in
+		'CATENV_N6'              => array(  540.000,   756.000), // = (  191 x 267  ) mm  = (  7.50 x 10.50 ) in
+		'CATENV_N7'              => array(  576.000,   792.000), // = (  203 x 279  ) mm  = (  8.00 x 11.00 ) in
+		'CATENV_N8'              => array(  594.000,   810.000), // = (  210 x 286  ) mm  = (  8.25 x 11.25 ) in
+		'CATENV_N9_1/2'          => array(  612.000,   756.000), // = (  216 x 267  ) mm  = (  8.50 x 10.50 ) in
+		'CATENV_N9_3/4'          => array(  630.000,   810.000), // = (  222 x 286  ) mm  = (  8.75 x 11.25 ) in
+		'CATENV_N10_1/2'         => array(  648.000,   864.000), // = (  229 x 305  ) mm  = (  9.00 x 12.00 ) in
+		'CATENV_N12_1/2'         => array(  684.000,   900.000), // = (  241 x 318  ) mm  = (  9.50 x 12.50 ) in
+		'CATENV_N13_1/2'         => array(  720.000,   936.000), // = (  254 x 330  ) mm  = ( 10.00 x 13.00 ) in
+		'CATENV_N14_1/4'         => array(  810.000,   882.000), // = (  286 x 311  ) mm  = ( 11.25 x 12.25 ) in
+		'CATENV_N14_1/2'         => array(  828.000,  1044.000), // = (  292 x 368  ) mm  = ( 11.50 x 14.50 ) in
+		// Japanese (JIS P 0138-61) Standard B-Series
+		'JIS_B0'                 => array( 2919.685,  4127.244), // = ( 1030 x 1456 ) mm  = ( 40.55 x 57.32 ) in
+		'JIS_B1'                 => array( 2063.622,  2919.685), // = (  728 x 1030 ) mm  = ( 28.66 x 40.55 ) in
+		'JIS_B2'                 => array( 1459.843,  2063.622), // = (  515 x 728  ) mm  = ( 20.28 x 28.66 ) in
+		'JIS_B3'                 => array( 1031.811,  1459.843), // = (  364 x 515  ) mm  = ( 14.33 x 20.28 ) in
+		'JIS_B4'                 => array(  728.504,  1031.811), // = (  257 x 364  ) mm  = ( 10.12 x 14.33 ) in
+		'JIS_B5'                 => array(  515.906,   728.504), // = (  182 x 257  ) mm  = (  7.17 x 10.12 ) in
+		'JIS_B6'                 => array(  362.835,   515.906), // = (  128 x 182  ) mm  = (  5.04 x 7.17  ) in
+		'JIS_B7'                 => array(  257.953,   362.835), // = (   91 x 128  ) mm  = (  3.58 x 5.04  ) in
+		'JIS_B8'                 => array(  181.417,   257.953), // = (   64 x 91   ) mm  = (  2.52 x 3.58  ) in
+		'JIS_B9'                 => array(  127.559,   181.417), // = (   45 x 64   ) mm  = (  1.77 x 2.52  ) in
+		'JIS_B10'                => array(   90.709,   127.559), // = (   32 x 45   ) mm  = (  1.26 x 1.77  ) in
+		'JIS_B11'                => array(   62.362,    90.709), // = (   22 x 32   ) mm  = (  0.87 x 1.26  ) in
+		'JIS_B12'                => array(   45.354,    62.362), // = (   16 x 22   ) mm  = (  0.63 x 0.87  ) in
+		// PA Series
+		'PA0'                    => array( 2381.102,  3174.803), // = (  840 x 1120 ) mm  = ( 33.07 x 44.09 ) in
+		'PA1'                    => array( 1587.402,  2381.102), // = (  560 x 840  ) mm  = ( 22.05 x 33.07 ) in
+		'PA2'                    => array( 1190.551,  1587.402), // = (  420 x 560  ) mm  = ( 16.54 x 22.05 ) in
+		'PA3'                    => array(  793.701,  1190.551), // = (  280 x 420  ) mm  = ( 11.02 x 16.54 ) in
+		'PA4'                    => array(  595.276,   793.701), // = (  210 x 280  ) mm  = (  8.27 x 11.02 ) in
+		'PA5'                    => array(  396.850,   595.276), // = (  140 x 210  ) mm  = (  5.51 x 8.27  ) in
+		'PA6'                    => array(  297.638,   396.850), // = (  105 x 140  ) mm  = (  4.13 x 5.51  ) in
+		'PA7'                    => array(  198.425,   297.638), // = (   70 x 105  ) mm  = (  2.76 x 4.13  ) in
+		'PA8'                    => array(  147.402,   198.425), // = (   52 x 70   ) mm  = (  2.05 x 2.76  ) in
+		'PA9'                    => array(   99.213,   147.402), // = (   35 x 52   ) mm  = (  1.38 x 2.05  ) in
+		'PA10'                   => array(   73.701,    99.213), // = (   26 x 35   ) mm  = (  1.02 x 1.38  ) in
+		// Standard Photographic Print Sizes
+		'PASSPORT_PHOTO'         => array(   99.213,   127.559), // = (   35 x 45   ) mm  = (  1.38 x 1.77  ) in
+		'E'                      => array(  233.858,   340.157), // = (   82 x 120  ) mm  = (  3.25 x 4.72  ) in
+		'L'                      => array(  252.283,   360.000), // = (   89 x 127  ) mm  = (  3.50 x 5.00  ) in
+		'3R'                     => array(  252.283,   360.000), // = (   89 x 127  ) mm  = (  3.50 x 5.00  ) in
+		'KG'                     => array(  289.134,   430.866), // = (  102 x 152  ) mm  = (  4.02 x 5.98  ) in
+		'4R'                     => array(  289.134,   430.866), // = (  102 x 152  ) mm  = (  4.02 x 5.98  ) in
+		'4D'                     => array(  340.157,   430.866), // = (  120 x 152  ) mm  = (  4.72 x 5.98  ) in
+		'2L'                     => array(  360.000,   504.567), // = (  127 x 178  ) mm  = (  5.00 x 7.01  ) in
+		'5R'                     => array(  360.000,   504.567), // = (  127 x 178  ) mm  = (  5.00 x 7.01  ) in
+		'8P'                     => array(  430.866,   575.433), // = (  152 x 203  ) mm  = (  5.98 x 7.99  ) in
+		'6R'                     => array(  430.866,   575.433), // = (  152 x 203  ) mm  = (  5.98 x 7.99  ) in
+		'6P'                     => array(  575.433,   720.000), // = (  203 x 254  ) mm  = (  7.99 x 10.00 ) in
+		'8R'                     => array(  575.433,   720.000), // = (  203 x 254  ) mm  = (  7.99 x 10.00 ) in
+		'6PW'                    => array(  575.433,   864.567), // = (  203 x 305  ) mm  = (  7.99 x 12.01 ) in
+		'S8R'                    => array(  575.433,   864.567), // = (  203 x 305  ) mm  = (  7.99 x 12.01 ) in
+		'4P'                     => array(  720.000,   864.567), // = (  254 x 305  ) mm  = ( 10.00 x 12.01 ) in
+		'10R'                    => array(  720.000,   864.567), // = (  254 x 305  ) mm  = ( 10.00 x 12.01 ) in
+		'4PW'                    => array(  720.000,  1080.000), // = (  254 x 381  ) mm  = ( 10.00 x 15.00 ) in
+		'S10R'                   => array(  720.000,  1080.000), // = (  254 x 381  ) mm  = ( 10.00 x 15.00 ) in
+		'11R'                    => array(  790.866,  1009.134), // = (  279 x 356  ) mm  = ( 10.98 x 14.02 ) in
+		'S11R'                   => array(  790.866,  1224.567), // = (  279 x 432  ) mm  = ( 10.98 x 17.01 ) in
+		'12R'                    => array(  864.567,  1080.000), // = (  305 x 381  ) mm  = ( 12.01 x 15.00 ) in
+		'S12R'                   => array(  864.567,  1292.598), // = (  305 x 456  ) mm  = ( 12.01 x 17.95 ) in
+		// Common Newspaper Sizes
+		'NEWSPAPER_BROADSHEET'   => array( 2125.984,  1700.787), // = (  750 x 600  ) mm  = ( 29.53 x 23.62 ) in
+		'NEWSPAPER_BERLINER'     => array( 1332.283,   892.913), // = (  470 x 315  ) mm  = ( 18.50 x 12.40 ) in
+		'NEWSPAPER_TABLOID'      => array( 1218.898,   793.701), // = (  430 x 280  ) mm  = ( 16.93 x 11.02 ) in
+		'NEWSPAPER_COMPACT'      => array( 1218.898,   793.701), // = (  430 x 280  ) mm  = ( 16.93 x 11.02 ) in
+		// Business Cards
+		'CREDIT_CARD'            => array(  153.014,   242.646), // = (   54 x 86   ) mm  = (  2.13 x 3.37  ) in
+		'BUSINESS_CARD'          => array(  153.014,   242.646), // = (   54 x 86   ) mm  = (  2.13 x 3.37  ) in
+		'BUSINESS_CARD_ISO7810'  => array(  153.014,   242.646), // = (   54 x 86   ) mm  = (  2.13 x 3.37  ) in
+		'BUSINESS_CARD_ISO216'   => array(  147.402,   209.764), // = (   52 x 74   ) mm  = (  2.05 x 2.91  ) in
+		'BUSINESS_CARD_IT'       => array(  155.906,   240.945), // = (   55 x 85   ) mm  = (  2.17 x 3.35  ) in
+		'BUSINESS_CARD_UK'       => array(  155.906,   240.945), // = (   55 x 85   ) mm  = (  2.17 x 3.35  ) in
+		'BUSINESS_CARD_FR'       => array(  155.906,   240.945), // = (   55 x 85   ) mm  = (  2.17 x 3.35  ) in
+		'BUSINESS_CARD_DE'       => array(  155.906,   240.945), // = (   55 x 85   ) mm  = (  2.17 x 3.35  ) in
+		'BUSINESS_CARD_ES'       => array(  155.906,   240.945), // = (   55 x 85   ) mm  = (  2.17 x 3.35  ) in
+		'BUSINESS_CARD_CA'       => array(  144.567,   252.283), // = (   51 x 89   ) mm  = (  2.01 x 3.50  ) in
+		'BUSINESS_CARD_US'       => array(  144.567,   252.283), // = (   51 x 89   ) mm  = (  2.01 x 3.50  ) in
+		'BUSINESS_CARD_JP'       => array(  155.906,   257.953), // = (   55 x 91   ) mm  = (  2.17 x 3.58  ) in
+		'BUSINESS_CARD_HK'       => array(  153.071,   255.118), // = (   54 x 90   ) mm  = (  2.13 x 3.54  ) in
+		'BUSINESS_CARD_AU'       => array(  155.906,   255.118), // = (   55 x 90   ) mm  = (  2.17 x 3.54  ) in
+		'BUSINESS_CARD_DK'       => array(  155.906,   255.118), // = (   55 x 90   ) mm  = (  2.17 x 3.54  ) in
+		'BUSINESS_CARD_SE'       => array(  155.906,   255.118), // = (   55 x 90   ) mm  = (  2.17 x 3.54  ) in
+		'BUSINESS_CARD_RU'       => array(  141.732,   255.118), // = (   50 x 90   ) mm  = (  1.97 x 3.54  ) in
+		'BUSINESS_CARD_CZ'       => array(  141.732,   255.118), // = (   50 x 90   ) mm  = (  1.97 x 3.54  ) in
+		'BUSINESS_CARD_FI'       => array(  141.732,   255.118), // = (   50 x 90   ) mm  = (  1.97 x 3.54  ) in
+		'BUSINESS_CARD_HU'       => array(  141.732,   255.118), // = (   50 x 90   ) mm  = (  1.97 x 3.54  ) in
+		'BUSINESS_CARD_IL'       => array(  141.732,   255.118), // = (   50 x 90   ) mm  = (  1.97 x 3.54  ) in
+		// Billboards
+		'4SHEET'                 => array( 2880.000,  4320.000), // = ( 1016 x 1524 ) mm  = ( 40.00 x 60.00 ) in
+		'6SHEET'                 => array( 3401.575,  5102.362), // = ( 1200 x 1800 ) mm  = ( 47.24 x 70.87 ) in
+		'12SHEET'                => array( 8640.000,  4320.000), // = ( 3048 x 1524 ) mm  = (120.00 x 60.00 ) in
+		'16SHEET'                => array( 5760.000,  8640.000), // = ( 2032 x 3048 ) mm  = ( 80.00 x 120.00) in
+		'32SHEET'                => array(11520.000,  8640.000), // = ( 4064 x 3048 ) mm  = (160.00 x 120.00) in
+		'48SHEET'                => array(17280.000,  8640.000), // = ( 6096 x 3048 ) mm  = (240.00 x 120.00) in
+		'64SHEET'                => array(23040.000,  8640.000), // = ( 8128 x 3048 ) mm  = (320.00 x 120.00) in
+		'96SHEET'                => array(34560.000,  8640.000), // = (12192 x 3048 ) mm  = (480.00 x 120.00) in
+		// -- Old European Sizes
+		// - Old Imperial English Sizes
+		'EN_EMPEROR'             => array( 3456.000,  5184.000), // = ( 1219 x 1829 ) mm  = ( 48.00 x 72.00 ) in
+		'EN_ANTIQUARIAN'         => array( 2232.000,  3816.000), // = (  787 x 1346 ) mm  = ( 31.00 x 53.00 ) in
+		'EN_GRAND_EAGLE'         => array( 2070.000,  3024.000), // = (  730 x 1067 ) mm  = ( 28.75 x 42.00 ) in
+		'EN_DOUBLE_ELEPHANT'     => array( 1926.000,  2880.000), // = (  679 x 1016 ) mm  = ( 26.75 x 40.00 ) in
+		'EN_ATLAS'               => array( 1872.000,  2448.000), // = (  660 x 864  ) mm  = ( 26.00 x 34.00 ) in
+		'EN_COLOMBIER'           => array( 1692.000,  2484.000), // = (  597 x 876  ) mm  = ( 23.50 x 34.50 ) in
+		'EN_ELEPHANT'            => array( 1656.000,  2016.000), // = (  584 x 711  ) mm  = ( 23.00 x 28.00 ) in
+		'EN_DOUBLE_DEMY'         => array( 1620.000,  2556.000), // = (  572 x 902  ) mm  = ( 22.50 x 35.50 ) in
+		'EN_IMPERIAL'            => array( 1584.000,  2160.000), // = (  559 x 762  ) mm  = ( 22.00 x 30.00 ) in
+		'EN_PRINCESS'            => array( 1548.000,  2016.000), // = (  546 x 711  ) mm  = ( 21.50 x 28.00 ) in
+		'EN_CARTRIDGE'           => array( 1512.000,  1872.000), // = (  533 x 660  ) mm  = ( 21.00 x 26.00 ) in
+		'EN_DOUBLE_LARGE_POST'   => array( 1512.000,  2376.000), // = (  533 x 838  ) mm  = ( 21.00 x 33.00 ) in
+		'EN_ROYAL'               => array( 1440.000,  1800.000), // = (  508 x 635  ) mm  = ( 20.00 x 25.00 ) in
+		'EN_SHEET'               => array( 1404.000,  1692.000), // = (  495 x 597  ) mm  = ( 19.50 x 23.50 ) in
+		'EN_HALF_POST'           => array( 1404.000,  1692.000), // = (  495 x 597  ) mm  = ( 19.50 x 23.50 ) in
+		'EN_SUPER_ROYAL'         => array( 1368.000,  1944.000), // = (  483 x 686  ) mm  = ( 19.00 x 27.00 ) in
+		'EN_DOUBLE_POST'         => array( 1368.000,  2196.000), // = (  483 x 775  ) mm  = ( 19.00 x 30.50 ) in
+		'EN_MEDIUM'              => array( 1260.000,  1656.000), // = (  445 x 584  ) mm  = ( 17.50 x 23.00 ) in
+		'EN_DEMY'                => array( 1260.000,  1620.000), // = (  445 x 572  ) mm  = ( 17.50 x 22.50 ) in
+		'EN_LARGE_POST'          => array( 1188.000,  1512.000), // = (  419 x 533  ) mm  = ( 16.50 x 21.00 ) in
+		'EN_COPY_DRAUGHT'        => array( 1152.000,  1440.000), // = (  406 x 508  ) mm  = ( 16.00 x 20.00 ) in
+		'EN_POST'                => array( 1116.000,  1386.000), // = (  394 x 489  ) mm  = ( 15.50 x 19.25 ) in
+		'EN_CROWN'               => array( 1080.000,  1440.000), // = (  381 x 508  ) mm  = ( 15.00 x 20.00 ) in
+		'EN_PINCHED_POST'        => array( 1062.000,  1332.000), // = (  375 x 470  ) mm  = ( 14.75 x 18.50 ) in
+		'EN_BRIEF'               => array(  972.000,  1152.000), // = (  343 x 406  ) mm  = ( 13.50 x 16.00 ) in
+		'EN_FOOLSCAP'            => array(  972.000,  1224.000), // = (  343 x 432  ) mm  = ( 13.50 x 17.00 ) in
+		'EN_SMALL_FOOLSCAP'      => array(  954.000,  1188.000), // = (  337 x 419  ) mm  = ( 13.25 x 16.50 ) in
+		'EN_POTT'                => array(  900.000,  1080.000), // = (  318 x 381  ) mm  = ( 12.50 x 15.00 ) in
+		// - Old Imperial Belgian Sizes
+		'BE_GRAND_AIGLE'         => array( 1984.252,  2948.031), // = (  700 x 1040 ) mm  = ( 27.56 x 40.94 ) in
+		'BE_COLOMBIER'           => array( 1757.480,  2409.449), // = (  620 x 850  ) mm  = ( 24.41 x 33.46 ) in
+		'BE_DOUBLE_CARRE'        => array( 1757.480,  2607.874), // = (  620 x 920  ) mm  = ( 24.41 x 36.22 ) in
+		'BE_ELEPHANT'            => array( 1746.142,  2182.677), // = (  616 x 770  ) mm  = ( 24.25 x 30.31 ) in
+		'BE_PETIT_AIGLE'         => array( 1700.787,  2381.102), // = (  600 x 840  ) mm  = ( 23.62 x 33.07 ) in
+		'BE_GRAND_JESUS'         => array( 1559.055,  2069.291), // = (  550 x 730  ) mm  = ( 21.65 x 28.74 ) in
+		'BE_JESUS'               => array( 1530.709,  2069.291), // = (  540 x 730  ) mm  = ( 21.26 x 28.74 ) in
+		'BE_RAISIN'              => array( 1417.323,  1842.520), // = (  500 x 650  ) mm  = ( 19.69 x 25.59 ) in
+		'BE_GRAND_MEDIAN'        => array( 1303.937,  1714.961), // = (  460 x 605  ) mm  = ( 18.11 x 23.82 ) in
+		'BE_DOUBLE_POSTE'        => array( 1233.071,  1601.575), // = (  435 x 565  ) mm  = ( 17.13 x 22.24 ) in
+		'BE_COQUILLE'            => array( 1218.898,  1587.402), // = (  430 x 560  ) mm  = ( 16.93 x 22.05 ) in
+		'BE_PETIT_MEDIAN'        => array( 1176.378,  1502.362), // = (  415 x 530  ) mm  = ( 16.34 x 20.87 ) in
+		'BE_RUCHE'               => array( 1020.472,  1303.937), // = (  360 x 460  ) mm  = ( 14.17 x 18.11 ) in
+		'BE_PROPATRIA'           => array(  977.953,  1218.898), // = (  345 x 430  ) mm  = ( 13.58 x 16.93 ) in
+		'BE_LYS'                 => array(  898.583,  1125.354), // = (  317 x 397  ) mm  = ( 12.48 x 15.63 ) in
+		'BE_POT'                 => array(  870.236,  1088.504), // = (  307 x 384  ) mm  = ( 12.09 x 15.12 ) in
+		'BE_ROSETTE'             => array(  765.354,   983.622), // = (  270 x 347  ) mm  = ( 10.63 x 13.66 ) in
+		// - Old Imperial French Sizes
+		'FR_UNIVERS'             => array( 2834.646,  3685.039), // = ( 1000 x 1300 ) mm  = ( 39.37 x 51.18 ) in
+		'FR_DOUBLE_COLOMBIER'    => array( 2551.181,  3571.654), // = (  900 x 1260 ) mm  = ( 35.43 x 49.61 ) in
+		'FR_GRANDE_MONDE'        => array( 2551.181,  3571.654), // = (  900 x 1260 ) mm  = ( 35.43 x 49.61 ) in
+		'FR_DOUBLE_SOLEIL'       => array( 2267.717,  3401.575), // = (  800 x 1200 ) mm  = ( 31.50 x 47.24 ) in
+		'FR_DOUBLE_JESUS'        => array( 2154.331,  3174.803), // = (  760 x 1120 ) mm  = ( 29.92 x 44.09 ) in
+		'FR_GRAND_AIGLE'         => array( 2125.984,  3004.724), // = (  750 x 1060 ) mm  = ( 29.53 x 41.73 ) in
+		'FR_PETIT_AIGLE'         => array( 1984.252,  2664.567), // = (  700 x 940  ) mm  = ( 27.56 x 37.01 ) in
+		'FR_DOUBLE_RAISIN'       => array( 1842.520,  2834.646), // = (  650 x 1000 ) mm  = ( 25.59 x 39.37 ) in
+		'FR_JOURNAL'             => array( 1842.520,  2664.567), // = (  650 x 940  ) mm  = ( 25.59 x 37.01 ) in
+		'FR_COLOMBIER_AFFICHE'   => array( 1785.827,  2551.181), // = (  630 x 900  ) mm  = ( 24.80 x 35.43 ) in
+		'FR_DOUBLE_CAVALIER'     => array( 1757.480,  2607.874), // = (  620 x 920  ) mm  = ( 24.41 x 36.22 ) in
+		'FR_CLOCHE'              => array( 1700.787,  2267.717), // = (  600 x 800  ) mm  = ( 23.62 x 31.50 ) in
+		'FR_SOLEIL'              => array( 1700.787,  2267.717), // = (  600 x 800  ) mm  = ( 23.62 x 31.50 ) in
+		'FR_DOUBLE_CARRE'        => array( 1587.402,  2551.181), // = (  560 x 900  ) mm  = ( 22.05 x 35.43 ) in
+		'FR_DOUBLE_COQUILLE'     => array( 1587.402,  2494.488), // = (  560 x 880  ) mm  = ( 22.05 x 34.65 ) in
+		'FR_JESUS'               => array( 1587.402,  2154.331), // = (  560 x 760  ) mm  = ( 22.05 x 29.92 ) in
+		'FR_RAISIN'              => array( 1417.323,  1842.520), // = (  500 x 650  ) mm  = ( 19.69 x 25.59 ) in
+		'FR_CAVALIER'            => array( 1303.937,  1757.480), // = (  460 x 620  ) mm  = ( 18.11 x 24.41 ) in
+		'FR_DOUBLE_COURONNE'     => array( 1303.937,  2040.945), // = (  460 x 720  ) mm  = ( 18.11 x 28.35 ) in
+		'FR_CARRE'               => array( 1275.591,  1587.402), // = (  450 x 560  ) mm  = ( 17.72 x 22.05 ) in
+		'FR_COQUILLE'            => array( 1247.244,  1587.402), // = (  440 x 560  ) mm  = ( 17.32 x 22.05 ) in
+		'FR_DOUBLE_TELLIERE'     => array( 1247.244,  1927.559), // = (  440 x 680  ) mm  = ( 17.32 x 26.77 ) in
+		'FR_DOUBLE_CLOCHE'       => array( 1133.858,  1700.787), // = (  400 x 600  ) mm  = ( 15.75 x 23.62 ) in
+		'FR_DOUBLE_POT'          => array( 1133.858,  1757.480), // = (  400 x 620  ) mm  = ( 15.75 x 24.41 ) in
+		'FR_ECU'                 => array( 1133.858,  1474.016), // = (  400 x 520  ) mm  = ( 15.75 x 20.47 ) in
+		'FR_COURONNE'            => array( 1020.472,  1303.937), // = (  360 x 460  ) mm  = ( 14.17 x 18.11 ) in
+		'FR_TELLIERE'            => array(  963.780,  1247.244), // = (  340 x 440  ) mm  = ( 13.39 x 17.32 ) in
+		'FR_POT'                 => array(  878.740,  1133.858), // = (  310 x 400  ) mm  = ( 12.20 x 15.75 ) in
+	);
+
+
+	/**
+	 * Get page dimensions from format name.
+	 * @param $format (mixed) The format name @see self::$page_format<ul>
+	 * @return array containing page width and height in points
+	 * @since 5.0.010 (2010-05-17)
 	 * @public static
 	 */
-	public static function getVectorsAngle($x1, $y1, $x2, $y2) {
-		$dprod = ($x1 * $x2) + ($y1 * $y2);
-		$dist1 = sqrt(($x1 * $x1) + ($y1 * $y1));
-		$dist2 = sqrt(($x2 * $x2) + ($y2 * $y2));
-		$angle = acos($dprod / ($dist1 * $dist2));
-		if (is_nan($angle)) {
-			$angle = M_PI;
-		}
-		if ((($x1 * $y2) - ($x2 * $y1)) < 0) {
-			$angle *= -1;
+	public static function getPageSizeFromFormat($format) {
+		if (isset(self::$page_formats[$format])) {
+			return self::$page_formats[$format];
 		}
-		return $angle;
+		return self::$page_formats['A4'];
 	}
 
 	/**
-	 * Split string by a regular expression.
-	 * This is a wrapper for the preg_split function to avoid the bug: https://bugs.php.net/bug.php?id=45850
-	 * @param $pattern (string) The regular expression pattern to search for without the modifiers, as a string.
-	 * @param $modifiers (string) The modifiers part of the pattern,
-	 * @param $subject (string) The input string.
-	 * @param $limit (int) If specified, then only substrings up to limit are returned with the rest of the string being placed in the last substring. A limit of -1, 0 or NULL means "no limit" and, as is standard across PHP, you can use NULL to skip to the flags parameter.
-	 * @param $flags (int) The flags as specified on the preg_split PHP function.
-	 * @return Returns an array containing substrings of subject split along boundaries matched by pattern.modifier
-	 * @author Nicola Asuni
-	 * @since 6.0.023
+	 * Set page boundaries.
+	 * @param $page (int) page number
+	 * @param $type (string) valid values are: <ul><li>'MediaBox' : the boundaries of the physical medium on which the page shall be displayed or printed;</li><li>'CropBox' : the visible region of default user space;</li><li>'BleedBox' : the region to which the contents of the page shall be clipped when output in a production environment;</li><li>'TrimBox' : the intended dimensions of the finished page after trimming;</li><li>'ArtBox' : the page's meaningful content (including potential white space).</li></ul>
+	 * @param $llx (float) lower-left x coordinate in user units.
+	 * @param $lly (float) lower-left y coordinate in user units.
+	 * @param $urx (float) upper-right x coordinate in user units.
+	 * @param $ury (float) upper-right y coordinate in user units.
+	 * @param $points (boolean) If true uses user units as unit of measure, otherwise uses PDF points.
+	 * @param $k (float) Scale factor (number of points in user unit).
+	 * @param $pagedim (array) Array of page dimensions.
+	 * @return pagedim array of page dimensions.
+	 * @since 5.0.010 (2010-05-17)
 	 * @public static
 	 */
-	public static function pregSplit($pattern, $modifiers, $subject, $limit=NULL, $flags=NULL) {
-		// the bug only happens on PHP 5.2 when using the u modifier
-		if ((strpos($modifiers, 'u') === FALSE) OR (count(preg_split('//u', "\n\t", -1, PREG_SPLIT_NO_EMPTY)) == 2)) {
-			return preg_split($pattern.$modifiers, $subject, $limit, $flags);
+	public static function setPageBoxes($page, $type, $llx, $lly, $urx, $ury, $points=false, $k, $pagedim=array()) {
+		if (!isset($pagedim[$page])) {
+			// initialize array
+			$pagedim[$page] = array();
 		}
-		// preg_split is bugged - try alternative solution
-		$ret = array();
-		while (($nl = strpos($subject, "\n")) !== FALSE) {
-			$ret = array_merge($ret, preg_split($pattern.$modifiers, substr($subject, 0, $nl), $limit, $flags));
-			$ret[] = "\n";
-			$subject = substr($subject, ($nl + 1));
+		if (!in_array($type, self::$pageboxes)) {
+			return;
 		}
-		if (strlen($subject) > 0) {
-			$ret = array_merge($ret, preg_split($pattern.$modifiers, $subject, $limit, $flags));
+		if ($points) {
+			$k = 1;
 		}
-		return $ret;
+		$pagedim[$page][$type]['llx'] = ($llx * $k);
+		$pagedim[$page][$type]['lly'] = ($lly * $k);
+		$pagedim[$page][$type]['urx'] = ($urx * $k);
+		$pagedim[$page][$type]['ury'] = ($ury * $k);
+		return $pagedim;
 	}
 
 	/**
-	 * Wrapper to use fopen only with local files
-	 * @param filename (string) Name of the file to open
-	 * @param $mode (string) 
-	 * @return Returns a file pointer resource on success, or FALSE on error.  
+	 * Swap X and Y coordinates of page boxes (change page boxes orientation).
+	 * @param $page (int) page number
+	 * @param $pagedim (array) Array of page dimensions.
+	 * @return pagedim array of page dimensions.
+	 * @since 5.0.010 (2010-05-17)
 	 * @public static
 	 */
-	public static function fopenLocal($filename, $mode) {
-		if (strpos($filename, '://') === false) {
-			$filename = 'file://'.$filename;
-		} elseif (strpos($filename, 'file://') !== 0) {
-			return false;
+	public static function swapPageBoxCoordinates($page, $pagedim) {
+		foreach (self::$pageboxes as $type) {
+			// swap X and Y coordinates
+			if (isset($pagedim[$page][$type])) {
+				$tmp = $pagedim[$page][$type]['llx'];
+				$pagedim[$page][$type]['llx'] = $pagedim[$page][$type]['lly'];
+				$pagedim[$page][$type]['lly'] = $tmp;
+				$tmp = $pagedim[$page][$type]['urx'];
+				$pagedim[$page][$type]['urx'] = $pagedim[$page][$type]['ury'];
+				$pagedim[$page][$type]['ury'] = $tmp;
+			}
 		}
-		return fopen($filename, $mode);
+		return $pagedim;
 	}
 
 	/**
-	 * Reads entire file into a string.
-	 * The file can be also an URL.
-	 * @param $file (string) Name of the file or URL to read.
-	 * @return The function returns the read data or FALSE on failure. 
-	 * @author Nicola Asuni
-	 * @since 6.0.025
+	 * Get the canonical page layout mode.
+	 * @param $layout (string) The page layout. Possible values are:<ul><li>SinglePage Display one page at a time</li><li>OneColumn Display the pages in one column</li><li>TwoColumnLeft Display the pages in two columns, with odd-numbered pages on the left</li><li>TwoColumnRight Display the pages in two columns, with odd-numbered pages on the right</li><li>TwoPageLeft (PDF 1.5) Display the pages two at a time, with odd-numbered pages on the left</li><li>TwoPageRight (PDF 1.5) Display the pages two at a time, with odd-numbered pages on the right</li></ul>
+	 * @return (string) Canonical page layout name.
 	 * @public static
 	 */
-	public static function fileGetContents($file) {
-		//$file = html_entity_decode($file);
-		// array of possible alternative paths/URLs
-		$alt = array($file);
-		// replace URL relative path with full real server path
-		if ((strlen($file) > 1)
-			AND ($file[0] == '/')
-			AND ($file[1] != '/')
-			AND !empty($_SERVER['DOCUMENT_ROOT'])
-			AND ($_SERVER['DOCUMENT_ROOT'] != '/')) {
-			$findroot = strpos($file, $_SERVER['DOCUMENT_ROOT']);
-			if (($findroot === false) OR ($findroot > 1)) {
-				if (substr($_SERVER['DOCUMENT_ROOT'], -1) == '/') {
-					$tmp = substr($_SERVER['DOCUMENT_ROOT'], 0, -1).$file;
-				} else {
-					$tmp = $_SERVER['DOCUMENT_ROOT'].$file;
-				}
-				$alt[] = htmlspecialchars_decode(urldecode($tmp));
+	public static function getPageLayoutMode($layout='SinglePage') {
+		switch ($layout) {
+			case 'default':
+			case 'single':
+			case 'SinglePage': {
+				$layout_mode = 'SinglePage';
+				break;
 			}
-		}
-		// URL mode
-		$url = $file;
-		// check for missing protocol
-		if (preg_match('%^/{2}%', $url)) {
-			if (preg_match('%^([^:]+:)//%i', K_PATH_URL, $match)) {
-				$url = $match[1].str_replace(' ', '%20', $url);
-				$alt[] = $url;
+			case 'continuous':
+			case 'OneColumn': {
+				$layout_mode = 'OneColumn';
+				break;
 			}
-		}
-		$urldata = @parse_url($url);
-		if (!isset($urldata['query']) OR (strlen($urldata['query']) <= 0)) {
-			if (K_PATH_URL AND (strpos($url, K_PATH_URL) === 0)) {
-				// convert URL to full server path
-				$tmp = str_replace(K_PATH_URL, K_PATH_MAIN, $url);
-				$tmp = htmlspecialchars_decode(urldecode($tmp));
-				$alt[] = $tmp;
+			case 'two':
+			case 'TwoColumnLeft': {
+				$layout_mode = 'TwoColumnLeft';
+				break;
+			}
+			case 'TwoColumnRight': {
+				$layout_mode = 'TwoColumnRight';
+				break;
+			}
+			case 'TwoPageLeft': {
+				$layout_mode = 'TwoPageLeft';
+				break;
+			}
+			case 'TwoPageRight': {
+				$layout_mode = 'TwoPageRight';
+				break;
+			}
+			default: {
+				$layout_mode = 'SinglePage';
 			}
 		}
-		if (isset($_SERVER['SCRIPT_URI'])) {
-			$urldata = @parse_url($_SERVER['SCRIPT_URI']);
-			$alt[] = $urldata['scheme'].'://'.$urldata['host'].(($file[0] == '/') ? '' : '/').$file;
-		}
-		foreach ($alt as $f) {
-			$ret = @file_get_contents($f);
-			if (($ret === FALSE)
-				AND !ini_get('allow_url_fopen')
-				AND function_exists('curl_init')
-				AND preg_match('%^(https?|ftp)://%', $f)) {
-				// try to get remote file data using cURL
-				$cs = curl_init(); // curl session
-				curl_setopt($cs, CURLOPT_URL, $f);
-				curl_setopt($cs, CURLOPT_BINARYTRANSFER, true);
-				curl_setopt($cs, CURLOPT_FAILONERROR, true);
-				curl_setopt($cs, CURLOPT_RETURNTRANSFER, true);
-				if ((ini_get('open_basedir') == '') AND (!ini_get('safe_mode'))) {
-					curl_setopt($cs, CURLOPT_FOLLOWLOCATION, true);
-				}
-				curl_setopt($cs, CURLOPT_CONNECTTIMEOUT, 5);
-				curl_setopt($cs, CURLOPT_TIMEOUT, 30);
-				curl_setopt($cs, CURLOPT_SSL_VERIFYPEER, false);
-				curl_setopt($cs, CURLOPT_SSL_VERIFYHOST, false);
-				curl_setopt($cs, CURLOPT_USERAGENT, 'TCPDF');
-				$ret = curl_exec($cs);
-				curl_close($cs);
+		return $layout_mode;
+	}
+
+	/**
+	 * Get the canonical page layout mode.
+	 * @param $mode (string) A name object specifying how the document should be displayed when opened:<ul><li>UseNone Neither document outline nor thumbnail images visible</li><li>UseOutlines Document outline visible</li><li>UseThumbs Thumbnail images visible</li><li>FullScreen Full-screen mode, with no menu bar, window controls, or any other window visible</li><li>UseOC (PDF 1.5) Optional content group panel visible</li><li>UseAttachments (PDF 1.6) Attachments panel visible</li></ul>
+	 * @return (string) Canonical page mode name.
+	 * @public static
+	 */
+	public static function getPageMode($mode='UseNone') {
+		switch ($mode) {
+			case 'UseNone': {
+				$page_mode = 'UseNone';
+				break;
+			}
+			case 'UseOutlines': {
+				$page_mode = 'UseOutlines';
+				break;
+			}
+			case 'UseThumbs': {
+				$page_mode = 'UseThumbs';
+				break;
 			}
-			if ($ret !== FALSE) {
+			case 'FullScreen': {
+				$page_mode = 'FullScreen';
+				break;
+			}
+			case 'UseOC': {
+				$page_mode = 'UseOC';
+				break;
+			}
+			case '': {
+				$page_mode = 'UseAttachments';
 				break;
 			}
+			default: {
+				$page_mode = 'UseNone';
+			}
 		}
-		return $ret;
+		return $page_mode;
 	}
 
+
 } // END OF TCPDF_STATIC CLASS
 
 //============================================================+
diff --git a/htdocs/includes/tecnickcom/tcpdf/tcpdf.php b/htdocs/includes/tecnickcom/tcpdf/tcpdf.php
index b31e58bb2c6..599a3f8b968 100644
--- a/htdocs/includes/tecnickcom/tcpdf/tcpdf.php
+++ b/htdocs/includes/tecnickcom/tcpdf/tcpdf.php
@@ -1,9 +1,9 @@
 <?php
 //============================================================+
 // File name   : tcpdf.php
-// Version     : 6.2.6
+// Version     : 6.2.12
 // Begin       : 2002-08-03
-// Last Update : 2015-01-28
+// Last Update : 2015-06-18
 // Author      : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com
 // License     : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html)
 // -------------------------------------------------------------------
@@ -104,7 +104,7 @@
  * Tools to encode your unicode fonts are on fonts/utils directory.</p>
  * @package com.tecnick.tcpdf
  * @author Nicola Asuni
- * @version 6.2.6
+ * @version 6.2.8
  */
 
 // TCPDF configuration
@@ -128,7 +128,7 @@ require_once(dirname(__FILE__).'/include/tcpdf_static.php');
  * TCPDF project (http://www.tcpdf.org) has been originally derived in 2002 from the Public Domain FPDF class by Olivier Plathey (http://www.fpdf.org), but now is almost entirely rewritten.<br>
  * @package com.tecnick.tcpdf
  * @brief PHP class for generating PDF documents without requiring external extensions.
- * @version 6.2.6
+ * @version 6.2.8
  * @author Nicola Asuni - info@tecnick.com
  */
 class TCPDF {
@@ -5748,7 +5748,7 @@ class TCPDF {
 	 * @param $autopadding (boolean) if true, uses internal padding and automatically adjust it to account for line width.
 	 * @param $maxh (float) maximum height. It should be >= $h and less then remaining space to the bottom of the page, or 0 for disable this feature. This feature works only when $ishtml=false.
 	 * @param $valign (string) Vertical alignment of text (requires $maxh = $h > 0). Possible values are:<ul><li>T: TOP</li><li>M: middle</li><li>B: bottom</li></ul>. This feature works only when $ishtml=false and the cell must fit in a single page.
-	 * @param $fitcell (boolean) if true attempt to fit all the text within the cell by reducing the font size (do not work in HTML mode). $maxh must be greater than 0 and wqual to $h.
+	 * @param $fitcell (boolean) if true attempt to fit all the text within the cell by reducing the font size (do not work in HTML mode). $maxh must be greater than 0 and equal to $h.
 	 * @return int Return the number of cells or 1 for html mode.
 	 * @public
 	 * @since 1.3
@@ -10362,7 +10362,7 @@ class TCPDF {
 	 * @public
 	 */
 	public function addHtmlLink($url, $name, $fill=false, $firstline=false, $color='', $style=-1, $firstblock=false) {
-		if (isset($url[1]) AND ($url[0] == '#')) {
+		if (isset($url[1]) AND ($url[0] == '#') AND is_numeric($url[1])) {
 			// convert url to internal link
 			$lnkdata = explode(',', $url);
 			if (isset($lnkdata[0]) ) {
@@ -10632,8 +10632,7 @@ class TCPDF {
 	 */
 	protected function _UEvalue() {
 		$hashkey = hash('sha256', $this->encryptdata['user_password'].$this->encryptdata['UKS'], true);
-		$iv = str_repeat("\x00", mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC));
-		return mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $hashkey, $this->encryptdata['key'], MCRYPT_MODE_CBC, $iv);
+		return TCPDF_STATIC::_AESnopad($hashkey, $this->encryptdata['key']);
 	}
 
 	/**
@@ -10683,8 +10682,7 @@ class TCPDF {
 	 */
 	protected function _OEvalue() {
 		$hashkey = hash('sha256', $this->encryptdata['owner_password'].$this->encryptdata['OKS'].$this->encryptdata['U'], true);
-		$iv = str_repeat("\x00", mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC));
-		return mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $hashkey, $this->encryptdata['key'], MCRYPT_MODE_CBC, $iv);
+		return TCPDF_STATIC::_AESnopad($hashkey, $this->encryptdata['key']);
 	}
 
 	/**
@@ -10739,8 +10737,7 @@ class TCPDF {
 				}
 				$perms .= 'adb'; // bytes 9-11
 				$perms .= 'nick'; // bytes 12-15
-				$iv = str_repeat("\x00", mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_ECB));
-				$this->encryptdata['perms'] = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $this->encryptdata['key'], $perms, MCRYPT_MODE_ECB, $iv);
+				$this->encryptdata['perms'] = TCPDF_STATIC::_AESnopad($this->encryptdata['key'], $perms);
 			} else { // RC4-40, RC4-128, AES-128
 				// Pad passwords
 				$this->encryptdata['user_password'] = substr($this->encryptdata['user_password'].TCPDF_STATIC::$enc_padding, 0, 32);
@@ -10858,10 +10855,13 @@ class TCPDF {
 			$this->encryptdata['StrF'] = 'StdCF';
 		}
 		if ($mode > 1) { // AES
-			if (!extension_loaded('mcrypt')) {
-				$this->Error('AES encryption requires mcrypt library (http://www.php.net/manual/en/mcrypt.requirements.php).');
+			if (!extension_loaded('openssl') && !extension_loaded('mcrypt')) {
+				$this->Error('AES encryption requires openssl or mcrypt extension (http://www.php.net/manual/en/mcrypt.requirements.php).');
 			}
-			if (mcrypt_get_cipher_name(MCRYPT_RIJNDAEL_128) === false) {
+			if (extension_loaded('openssl') && !in_array('aes-256-cbc', openssl_get_cipher_methods())) {
+				$this->Error('AES encryption requires openssl/aes-256-cbc cypher.');
+			}
+			if (extension_loaded('mcrypt') && mcrypt_get_cipher_name(MCRYPT_RIJNDAEL_128) === false) {
 				$this->Error('AES encryption requires MCRYPT_RIJNDAEL_128 cypher.');
 			}
 			if (($mode == 3) AND !function_exists('hash')) {
@@ -18649,7 +18649,7 @@ Putting 1 is equivalent to putting 0 and calling Ln() just after. Default value:
 		$this->lispacer = $prev_lispacer;
 		if ($ln AND (!($cell AND ($dom[$key-1]['value'] == 'table')))) {
 			$this->Ln($this->lasth);
-			if ($this->y < $maxbottomliney) {
+			if (($this->y < $maxbottomliney) AND ($startlinepage == $this->page)) {
 				$this->y = $maxbottomliney;
 			}
 		}
@@ -19427,8 +19427,9 @@ Putting 1 is equivalent to putting 0 and calling Ln() just after. Default value:
 				$prev_page = $this->page;
 				$this->setPage($dom[($dom[$key]['parent'])]['endpage']);
 				if ($this->num_columns > 1) {
-					if ((($this->current_column == 0) AND ($dom[($dom[$key]['parent'])]['endcolumn'] == ($this->num_columns - 1)))
-						OR (($this->current_column == $dom[($dom[$key]['parent'])]['endcolumn']) AND ($prev_page < $this->page))) {
+					if (($prev_page < $this->page)
+						AND ((($this->current_column == 0) AND ($dom[($dom[$key]['parent'])]['endcolumn'] == ($this->num_columns - 1)))
+							OR ($this->current_column == $dom[($dom[$key]['parent'])]['endcolumn']))) {
 						// page jump
 						$this->selectColumn(0);
 						$dom[($dom[$key]['parent'])]['endcolumn'] = 0;
diff --git a/htdocs/includes/tecnickcom/tcpdf/tcpdf_parser.php b/htdocs/includes/tecnickcom/tcpdf/tcpdf_parser.php
index 85fc7fd3df3..780ec2129d1 100644
--- a/htdocs/includes/tecnickcom/tcpdf/tcpdf_parser.php
+++ b/htdocs/includes/tecnickcom/tcpdf/tcpdf_parser.php
@@ -1,9 +1,9 @@
 <?php
 //============================================================+
 // File name   : tcpdf_parser.php
-// Version     : 1.0.15
+// Version     : 1.0.16
 // Begin       : 2011-05-23
-// Last Update : 2015-01-24
+// Last Update : 2015-04-28
 // Author      : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com
 // License     : http://www.tecnick.com/pagefiles/tcpdf/LICENSE.TXT GNU-LGPLv3
 // -------------------------------------------------------------------
@@ -297,6 +297,9 @@ class TCPDF_PARSER {
 		$valid_crs = false;
 		$columns = 0;
 		$sarr = $xrefcrs[0][1];
+		if (!is_array($sarr)) {
+			$sarr = array();
+		}
 		foreach ($sarr as $k => $v) {
 			if (($v[0] == '/') AND ($v[1] == 'Type') AND (isset($sarr[($k +1)]) AND ($sarr[($k +1)][0] == '/') AND ($sarr[($k +1)][1] == 'XRef'))) {
 				$valid_crs = true;
-- 
GitLab


From 8904828069474dae71e0d34865f8ed1ef0ef8626 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rapha=C3=ABl=20Doursenaud?= <rdoursenaud@gpcsolutions.fr>
Date: Mon, 7 Dec 2015 13:48:04 +0100
Subject: [PATCH 125/197] Fix #3962 Moved removed libraries to suggest section

---
 composer.json |  8 ++---
 composer.lock | 94 ++-------------------------------------------------
 2 files changed, 6 insertions(+), 96 deletions(-)

diff --git a/composer.json b/composer.json
index afd53001f71..06d90c0e02e 100644
--- a/composer.json
+++ b/composer.json
@@ -21,9 +21,7 @@
         "mobiledetect/mobiledetectlib": "2.8.3",
         "phpoffice/phpexcel": "1.8.1",
         "restler/framework": "^3.0",
-        "tecnickcom/tcpdf": "6.2.12",
-        "raven/raven": "^0.12.0",
-        "firephp/firephp-core": "^0.4.0"
+        "tecnickcom/tcpdf": "6.2.12"
     },
     "suggest": {
         "ext-mysqlnd": "To use with MySQL or MariaDB",
@@ -38,7 +36,9 @@
         "ext-mbstring": "Handle non UTF-8 databases",
         "ext-soap": "Native SOAP",
         "ext-zip": "ODT and Excel support",
-        "ext-xml": "Excel support"
+        "ext-xml": "Excel support",
+        "firephp/firephp-core": "Logging to Firebug console support",
+        "raven/raven": "Sentry logging server support"
     },
     "config": {
         "vendor-dir": "htdocs/includes"
diff --git a/composer.lock b/composer.lock
index fc8df3719ac..d29035c7329 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,8 +4,8 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
         "This file is @generated automatically"
     ],
-    "hash": "e4ff9778aef8c35c239457e96b32ee5c",
-    "content-hash": "e98d327da132b265127ad23d79a49578",
+    "hash": "8359ca16a39a2910cad7f36784d10972",
+    "content-hash": "a7d53767afa4dc32484fac05f6ffde67",
     "packages": [
         {
             "name": "ccampbell/chromephp",
@@ -91,42 +91,6 @@
             ],
             "time": "2014-02-26 15:43:10"
         },
-        {
-            "name": "firephp/firephp-core",
-            "version": "v0.4.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/firephp/firephp-core.git",
-                "reference": "fabad0f2503f9577fe8dd2cb1d1c7cd73ed2aacf"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/firephp/firephp-core/zipball/fabad0f2503f9577fe8dd2cb1d1c7cd73ed2aacf",
-                "reference": "fabad0f2503f9577fe8dd2cb1d1c7cd73ed2aacf",
-                "shasum": ""
-            },
-            "type": "library",
-            "autoload": {
-                "classmap": [
-                    "lib/FirePHPCore/FirePHP.class.php",
-                    "lib/FirePHPCore/fb.php"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Christoph Dorn",
-                    "email": "christoph@christophdorn.com",
-                    "homepage": "http://christophdorn.com"
-                }
-            ],
-            "description": "Traditional FirePHPCore library for sending PHP variables to the browser.",
-            "homepage": "https://github.com/firephp/firephp-core",
-            "time": "2013-04-23 15:28:20"
-        },
         {
             "name": "mike42/escpos-php",
             "version": "dev-master",
@@ -294,60 +258,6 @@
             ],
             "time": "2015-05-01 07:00:55"
         },
-        {
-            "name": "raven/raven",
-            "version": "0.12.1",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/getsentry/raven-php.git",
-                "reference": "b325984c792ff89f985b73da9a3ad8ed8b520bca"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/getsentry/raven-php/zipball/b325984c792ff89f985b73da9a3ad8ed8b520bca",
-                "reference": "b325984c792ff89f985b73da9a3ad8ed8b520bca",
-                "shasum": ""
-            },
-            "require": {
-                "ext-curl": "*",
-                "php": ">=5.2.4"
-            },
-            "require-dev": {
-                "fabpot/php-cs-fixer": "^1.8.0",
-                "phpunit/phpunit": "^4.6.6"
-            },
-            "bin": [
-                "bin/raven"
-            ],
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "0.12.x-dev"
-                }
-            },
-            "autoload": {
-                "psr-0": {
-                    "Raven_": "lib/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD"
-            ],
-            "authors": [
-                {
-                    "name": "David Cramer",
-                    "email": "dcramer@gmail.com"
-                }
-            ],
-            "description": "A PHP client for Sentry (http://getsentry.com)",
-            "homepage": "http://getsentry.com",
-            "keywords": [
-                "log",
-                "logging"
-            ],
-            "time": "2015-08-25 22:38:46"
-        },
         {
             "name": "restler/framework",
             "version": "3.0.0",
-- 
GitLab


From 9257bfc5df4f85362bb3c89bf8a4daea430fd5c9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rapha=C3=ABl=20Doursenaud?= <rdoursenaud@gpcsolutions.fr>
Date: Mon, 7 Dec 2015 13:53:59 +0100
Subject: [PATCH 126/197] Updated mobiledetect to 2.8.17

---
 COPYRIGHT                                     |    2 +-
 composer.json                                 |    2 +-
 composer.lock                                 |   18 +-
 .../mobiledetect/mobiledetectlib/.gitignore   |    4 +-
 .../mobiledetect/mobiledetectlib/.travis.yml  |    7 +-
 .../mobiledetect/mobiledetectlib/LICENSE.txt  |    2 +-
 .../mobiledetectlib/Mobile_Detect.json        |  190 +-
 .../mobiledetectlib/Mobile_Detect.php         |  606 +-
 .../mobiledetect/mobiledetectlib/README.md    |  120 +-
 .../mobiledetectlib/composer.json             |    4 +-
 .../mobiledetectlib/composer.lock             |  439 -
 .../mobiledetectlib/examples/demo.php         |   16 +-
 .../mobiledetectlib/examples/test.php         |   29 +
 .../mobiledetectlib/export/exportToJSON.php   |    4 +-
 .../mobiledetectlib/tests/BasicsTest.php      |   80 +-
 .../mobiledetectlib/tests/UA_List.inc.php     | 1231 +--
 .../mobiledetectlib/tests/UserAgentTest.php   |   59 +-
 .../{VendorsTest.php => VendorsTest_tmp.php}  |   44 +-
 .../mobiledetectlib/tests/phpunit.xml         |   14 +-
 .../tests/providers/vendors/Acer.php          |   28 +
 .../tests/providers/vendors/Alcatel.php       |   49 +
 .../tests/providers/vendors/Allview.php       |   11 +
 .../tests/providers/vendors/Amazon.php        |   14 +
 .../tests/providers/vendors/Apple.php         |   27 +
 .../tests/providers/vendors/Archos.php        |   67 +
 .../tests/providers/vendors/Asus.php          |   22 +
 .../tests/providers/vendors/Blackberry.php    |   35 +
 .../tests/providers/vendors/Dell.php          |   13 +
 .../tests/providers/vendors/Google.php        |   18 +
 .../tests/providers/vendors/HP.php            |   21 +
 .../tests/providers/vendors/HTC.php           |  363 +
 .../tests/providers/vendors/Huawei.php        |   17 +
 .../tests/providers/vendors/LG.php            |   35 +
 .../tests/providers/vendors/Lava.php          |   23 +
 .../tests/providers/vendors/Leader.php        |    6 +
 .../tests/providers/vendors/Lenovo.php        |   46 +
 .../tests/providers/vendors/Mi.php            |   22 +
 .../tests/providers/vendors/Microsoft.php     |   30 +
 .../tests/providers/vendors/Motorola.php      |   52 +
 .../tests/providers/vendors/Nokia.php         |   84 +
 .../tests/providers/vendors/Onda.php          |   12 +
 .../tests/providers/vendors/Others.php        |  531 ++
 .../tests/providers/vendors/Prestigio.php     |   12 +
 .../tests/providers/vendors/Samsung.php       |  131 +
 .../tests/providers/vendors/Sony.php          |   85 +
 .../tests/providers/vendors/SpecialCases.php  |  206 +
 .../tests/providers/vendors/Vodafone.php      |   11 +
 .../tests/providers/vendors/ZTE.php           |    6 +
 .../mobiledetectlib/tests/ualist.json         | 8197 ++++++++++++++++-
 49 files changed, 10845 insertions(+), 2200 deletions(-)
 delete mode 100644 htdocs/includes/mobiledetect/mobiledetectlib/composer.lock
 create mode 100644 htdocs/includes/mobiledetect/mobiledetectlib/examples/test.php
 mode change 100644 => 100755 htdocs/includes/mobiledetect/mobiledetectlib/tests/BasicsTest.php
 rename htdocs/includes/mobiledetect/mobiledetectlib/tests/{VendorsTest.php => VendorsTest_tmp.php} (60%)
 create mode 100644 htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Acer.php
 create mode 100644 htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Alcatel.php
 create mode 100644 htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Allview.php
 create mode 100644 htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Amazon.php
 create mode 100644 htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Apple.php
 create mode 100644 htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Archos.php
 create mode 100644 htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Asus.php
 create mode 100644 htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Blackberry.php
 create mode 100644 htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Dell.php
 create mode 100644 htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Google.php
 create mode 100644 htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/HP.php
 create mode 100644 htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/HTC.php
 create mode 100644 htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Huawei.php
 create mode 100644 htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/LG.php
 create mode 100644 htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Lava.php
 create mode 100644 htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Leader.php
 create mode 100644 htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Lenovo.php
 create mode 100644 htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Mi.php
 create mode 100644 htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Microsoft.php
 create mode 100644 htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Motorola.php
 create mode 100644 htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Nokia.php
 create mode 100644 htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Onda.php
 create mode 100644 htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Others.php
 create mode 100644 htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Prestigio.php
 create mode 100644 htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Samsung.php
 create mode 100644 htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Sony.php
 create mode 100644 htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/SpecialCases.php
 create mode 100644 htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Vodafone.php
 create mode 100644 htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/ZTE.php

diff --git a/COPYRIGHT b/COPYRIGHT
index a0cf842b885..191639ed001 100644
--- a/COPYRIGHT
+++ b/COPYRIGHT
@@ -19,7 +19,7 @@ EvalMath               1.0           BSD                         Yes
 Escpos-php                           MIT License                 Yes             Thermal receipt printer library, for use with ESC/POS compatible printers
 FPDI                   1.5.2         Apache Software License 2.0 Yes             PDF templates management
 GeoIP                  1.4           LGPL-2.1+                   Yes             Sample code to make geoip convert (not into deb package)
-Mobiledetect           2.8.3         MIT License                 Yes             Detect mobile devices browsers
+Mobiledetect           2.8.17        MIT License                 Yes             Detect mobile devices browsers
 NuSoap                 0.9.5         LGPL 2.1+                   Yes             Library to develop SOAP Web services (not into rpm and deb package)
 PEAR Mail_MIME         1.8.9         BSD                         Yes             NuSoap dependency
 odtPHP                 1.0.1         GPL-2+  b                   Yes             Library to build/edit ODT files
diff --git a/composer.json b/composer.json
index 06d90c0e02e..583e08078af 100644
--- a/composer.json
+++ b/composer.json
@@ -18,7 +18,7 @@
         "ccampbell/chromephp": "^4.1",
         "ckeditor/ckeditor": "dev-full/4.3.x#0b7c3f1",
         "mike42/escpos-php": "dev-master",
-        "mobiledetect/mobiledetectlib": "2.8.3",
+        "mobiledetect/mobiledetectlib": "2.8.17",
         "phpoffice/phpexcel": "1.8.1",
         "restler/framework": "^3.0",
         "tecnickcom/tcpdf": "6.2.12"
diff --git a/composer.lock b/composer.lock
index d29035c7329..da19c20fbc5 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,8 +4,8 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
         "This file is @generated automatically"
     ],
-    "hash": "8359ca16a39a2910cad7f36784d10972",
-    "content-hash": "a7d53767afa4dc32484fac05f6ffde67",
+    "hash": "d8229cbb9aea945c9ca803bbe54d7aa7",
+    "content-hash": "47929ed42fb67e5159ccec6a3a5a45eb",
     "packages": [
         {
             "name": "ccampbell/chromephp",
@@ -151,22 +151,24 @@
         },
         {
             "name": "mobiledetect/mobiledetectlib",
-            "version": "2.8.3",
+            "version": "2.8.17",
             "source": {
                 "type": "git",
                 "url": "https://github.com/serbanghita/Mobile-Detect.git",
-                "reference": "f5753e4b90daffe50c902e99df5ce3c58fca3fee"
+                "reference": "b87da5f63a76e9615a0c74fcf168657b1ea7e41d"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/serbanghita/Mobile-Detect/zipball/f5753e4b90daffe50c902e99df5ce3c58fca3fee",
-                "reference": "f5753e4b90daffe50c902e99df5ce3c58fca3fee",
+                "url": "https://api.github.com/repos/serbanghita/Mobile-Detect/zipball/b87da5f63a76e9615a0c74fcf168657b1ea7e41d",
+                "reference": "b87da5f63a76e9615a0c74fcf168657b1ea7e41d",
                 "shasum": ""
             },
             "require": {
                 "php": ">=5.0.0"
             },
             "require-dev": {
+                "codeclimate/php-test-reporter": "dev-master",
+                "johnkary/phpunit-speedtrap": "~1.0@dev",
                 "phpunit/phpunit": "*"
             },
             "type": "library",
@@ -186,7 +188,7 @@
                 {
                     "name": "Serban Ghita",
                     "email": "serbanghita@gmail.com",
-                    "homepage": "http://ghita.org",
+                    "homepage": "http://mobiledetect.net",
                     "role": "Developer"
                 }
             ],
@@ -199,7 +201,7 @@
                 "mobile detector",
                 "php mobile detect"
             ],
-            "time": "2014-07-10 20:00:25"
+            "time": "2015-09-17 14:45:21"
         },
         {
             "name": "phpoffice/phpexcel",
diff --git a/htdocs/includes/mobiledetect/mobiledetectlib/.gitignore b/htdocs/includes/mobiledetect/mobiledetectlib/.gitignore
index 5e9bd942345..48b35e71455 100644
--- a/htdocs/includes/mobiledetect/mobiledetectlib/.gitignore
+++ b/htdocs/includes/mobiledetect/mobiledetectlib/.gitignore
@@ -6,4 +6,6 @@ nbproject/
 /error.log
 /export/nicejson
 .idea/
-*.iml
\ No newline at end of file
+*.iml
+/coverage
+/phpunit.phar
diff --git a/htdocs/includes/mobiledetect/mobiledetectlib/.travis.yml b/htdocs/includes/mobiledetect/mobiledetectlib/.travis.yml
index 7c5ebf36c2a..29af5249f0d 100644
--- a/htdocs/includes/mobiledetect/mobiledetectlib/.travis.yml
+++ b/htdocs/includes/mobiledetect/mobiledetectlib/.travis.yml
@@ -1,14 +1,17 @@
 language: php
 php:
   - "5.2"
-  - "hhvm"
+  - "5.3"
+  - "5.4"
+  - "5.5"
+  - "5.6"
 
 branches:
   only:
     - devel
 
 script:
-  - phpunit --configuration tests/phpunit.xml
+  - phpunit -v -c tests/phpunit.xml
 
 notifications:
   email: false
diff --git a/htdocs/includes/mobiledetect/mobiledetectlib/LICENSE.txt b/htdocs/includes/mobiledetect/mobiledetectlib/LICENSE.txt
index 101abf8be5f..90e632a7875 100644
--- a/htdocs/includes/mobiledetect/mobiledetectlib/LICENSE.txt
+++ b/htdocs/includes/mobiledetect/mobiledetectlib/LICENSE.txt
@@ -1,6 +1,6 @@
 MIT License
 
-Copyright (c) <2011-2014> <Serban Ghita> <serbanghita@gmail.com>
+Copyright (c) <2011-2015> Serban Ghita, Nick Ilyin and contributors.
 
 Permission is hereby granted, free of charge, to any person obtaining
 a copy of this software and associated documentation files (the
diff --git a/htdocs/includes/mobiledetect/mobiledetectlib/Mobile_Detect.json b/htdocs/includes/mobiledetect/mobiledetectlib/Mobile_Detect.json
index 7d61f6f9dee..323b1e2a50a 100644
--- a/htdocs/includes/mobiledetect/mobiledetectlib/Mobile_Detect.json
+++ b/htdocs/includes/mobiledetect/mobiledetectlib/Mobile_Detect.json
@@ -1,189 +1 @@
-{
-	"version": "2.8.3",
-	"headerMatch": {
-		"HTTP_ACCEPT": {
-			"matches": [
-				"application\/x-obml2d",
-				"application\/vnd.rim.html",
-				"text\/vnd.wap.wml",
-				"application\/vnd.wap.xhtml+xml"
-			]
-		},
-		"HTTP_X_WAP_PROFILE": null,
-		"HTTP_X_WAP_CLIENTID": null,
-		"HTTP_WAP_CONNECTION": null,
-		"HTTP_PROFILE": null,
-		"HTTP_X_OPERAMINI_PHONE_UA": null,
-		"HTTP_X_NOKIA_GATEWAY_ID": null,
-		"HTTP_X_ORANGE_ID": null,
-		"HTTP_X_VODAFONE_3GPDPCONTEXT": null,
-		"HTTP_X_HUAWEI_USERID": null,
-		"HTTP_UA_OS": null,
-		"HTTP_X_MOBILE_GATEWAY": null,
-		"HTTP_X_ATT_DEVICEID": null,
-		"HTTP_UA_CPU": {
-			"matches": [
-				"ARM"
-			]
-		}
-	},
-	"uaHttpHeaders": [
-		"HTTP_USER_AGENT",
-		"HTTP_X_OPERAMINI_PHONE_UA",
-		"HTTP_X_DEVICE_USER_AGENT",
-		"HTTP_X_ORIGINAL_USER_AGENT",
-		"HTTP_X_SKYFIRE_PHONE",
-		"HTTP_X_BOLT_PHONE_UA",
-		"HTTP_DEVICE_STOCK_UA",
-		"HTTP_X_UCBROWSER_DEVICE_UA"
-	],
-	"uaMatch": {
-		"phones": {
-			"iPhone": "\\biPhone.*(Mobile|PhoneGap)|\\biPod",
-			"BlackBerry": "BlackBerry|\\bBB10\\b|rim[0-9]+",
-			"HTC": "HTC|HTC.*(Sensation|Evo|Vision|Explorer|6800|8100|8900|A7272|S510e|C110e|Legend|Desire|T8282)|APX515CKT|Qtek9090|APA9292KT|HD_mini|Sensation.*Z710e|PG86100|Z715e|Desire.*(A8181|HD)|ADR6200|ADR6400L|ADR6425|001HT|Inspire 4G|Android.*\\bEVO\\b|T-Mobile G1|Z520m",
-			"Nexus": "Nexus One|Nexus S|Galaxy.*Nexus|Android.*Nexus.*Mobile",
-			"Dell": "Dell.*Streak|Dell.*Aero|Dell.*Venue|DELL.*Venue Pro|Dell Flash|Dell Smoke|Dell Mini 3iX|XCD28|XCD35|\\b001DL\\b|\\b101DL\\b|\\bGS01\\b",
-			"Motorola": "Motorola|DROIDX|DROID BIONIC|\\bDroid\\b.*Build|Android.*Xoom|HRI39|MOT-|A1260|A1680|A555|A853|A855|A953|A955|A956|Motorola.*ELECTRIFY|Motorola.*i1|i867|i940|MB200|MB300|MB501|MB502|MB508|MB511|MB520|MB525|MB526|MB611|MB612|MB632|MB810|MB855|MB860|MB861|MB865|MB870|ME501|ME502|ME511|ME525|ME600|ME632|ME722|ME811|ME860|ME863|ME865|MT620|MT710|MT716|MT720|MT810|MT870|MT917|Motorola.*TITANIUM|WX435|WX445|XT300|XT301|XT311|XT316|XT317|XT319|XT320|XT390|XT502|XT530|XT531|XT532|XT535|XT603|XT610|XT611|XT615|XT681|XT701|XT702|XT711|XT720|XT800|XT806|XT860|XT862|XT875|XT882|XT883|XT894|XT901|XT907|XT909|XT910|XT912|XT928|XT926|XT915|XT919|XT925",
-			"Samsung": "Samsung|SGH-I337|BGT-S5230|GT-B2100|GT-B2700|GT-B2710|GT-B3210|GT-B3310|GT-B3410|GT-B3730|GT-B3740|GT-B5510|GT-B5512|GT-B5722|GT-B6520|GT-B7300|GT-B7320|GT-B7330|GT-B7350|GT-B7510|GT-B7722|GT-B7800|GT-C3010|GT-C3011|GT-C3060|GT-C3200|GT-C3212|GT-C3212I|GT-C3262|GT-C3222|GT-C3300|GT-C3300K|GT-C3303|GT-C3303K|GT-C3310|GT-C3322|GT-C3330|GT-C3350|GT-C3500|GT-C3510|GT-C3530|GT-C3630|GT-C3780|GT-C5010|GT-C5212|GT-C6620|GT-C6625|GT-C6712|GT-E1050|GT-E1070|GT-E1075|GT-E1080|GT-E1081|GT-E1085|GT-E1087|GT-E1100|GT-E1107|GT-E1110|GT-E1120|GT-E1125|GT-E1130|GT-E1160|GT-E1170|GT-E1175|GT-E1180|GT-E1182|GT-E1200|GT-E1210|GT-E1225|GT-E1230|GT-E1390|GT-E2100|GT-E2120|GT-E2121|GT-E2152|GT-E2220|GT-E2222|GT-E2230|GT-E2232|GT-E2250|GT-E2370|GT-E2550|GT-E2652|GT-E3210|GT-E3213|GT-I5500|GT-I5503|GT-I5700|GT-I5800|GT-I5801|GT-I6410|GT-I6420|GT-I7110|GT-I7410|GT-I7500|GT-I8000|GT-I8150|GT-I8160|GT-I8190|GT-I8320|GT-I8330|GT-I8350|GT-I8530|GT-I8700|GT-I8703|GT-I8910|GT-I9000|GT-I9001|GT-I9003|GT-I9010|GT-I9020|GT-I9023|GT-I9070|GT-I9082|GT-I9100|GT-I9103|GT-I9220|GT-I9250|GT-I9300|GT-I9305|GT-I9500|GT-I9505|GT-M3510|GT-M5650|GT-M7500|GT-M7600|GT-M7603|GT-M8800|GT-M8910|GT-N7000|GT-S3110|GT-S3310|GT-S3350|GT-S3353|GT-S3370|GT-S3650|GT-S3653|GT-S3770|GT-S3850|GT-S5210|GT-S5220|GT-S5229|GT-S5230|GT-S5233|GT-S5250|GT-S5253|GT-S5260|GT-S5263|GT-S5270|GT-S5300|GT-S5330|GT-S5350|GT-S5360|GT-S5363|GT-S5369|GT-S5380|GT-S5380D|GT-S5560|GT-S5570|GT-S5600|GT-S5603|GT-S5610|GT-S5620|GT-S5660|GT-S5670|GT-S5690|GT-S5750|GT-S5780|GT-S5830|GT-S5839|GT-S6102|GT-S6500|GT-S7070|GT-S7200|GT-S7220|GT-S7230|GT-S7233|GT-S7250|GT-S7500|GT-S7530|GT-S7550|GT-S7562|GT-S7710|GT-S8000|GT-S8003|GT-S8500|GT-S8530|GT-S8600|SCH-A310|SCH-A530|SCH-A570|SCH-A610|SCH-A630|SCH-A650|SCH-A790|SCH-A795|SCH-A850|SCH-A870|SCH-A890|SCH-A930|SCH-A950|SCH-A970|SCH-A990|SCH-I100|SCH-I110|SCH-I400|SCH-I405|SCH-I500|SCH-I510|SCH-I515|SCH-I600|SCH-I730|SCH-I760|SCH-I770|SCH-I830|SCH-I910|SCH-I920|SCH-I959|SCH-LC11|SCH-N150|SCH-N300|SCH-R100|SCH-R300|SCH-R351|SCH-R400|SCH-R410|SCH-T300|SCH-U310|SCH-U320|SCH-U350|SCH-U360|SCH-U365|SCH-U370|SCH-U380|SCH-U410|SCH-U430|SCH-U450|SCH-U460|SCH-U470|SCH-U490|SCH-U540|SCH-U550|SCH-U620|SCH-U640|SCH-U650|SCH-U660|SCH-U700|SCH-U740|SCH-U750|SCH-U810|SCH-U820|SCH-U900|SCH-U940|SCH-U960|SCS-26UC|SGH-A107|SGH-A117|SGH-A127|SGH-A137|SGH-A157|SGH-A167|SGH-A177|SGH-A187|SGH-A197|SGH-A227|SGH-A237|SGH-A257|SGH-A437|SGH-A517|SGH-A597|SGH-A637|SGH-A657|SGH-A667|SGH-A687|SGH-A697|SGH-A707|SGH-A717|SGH-A727|SGH-A737|SGH-A747|SGH-A767|SGH-A777|SGH-A797|SGH-A817|SGH-A827|SGH-A837|SGH-A847|SGH-A867|SGH-A877|SGH-A887|SGH-A897|SGH-A927|SGH-B100|SGH-B130|SGH-B200|SGH-B220|SGH-C100|SGH-C110|SGH-C120|SGH-C130|SGH-C140|SGH-C160|SGH-C170|SGH-C180|SGH-C200|SGH-C207|SGH-C210|SGH-C225|SGH-C230|SGH-C417|SGH-C450|SGH-D307|SGH-D347|SGH-D357|SGH-D407|SGH-D415|SGH-D780|SGH-D807|SGH-D980|SGH-E105|SGH-E200|SGH-E315|SGH-E316|SGH-E317|SGH-E335|SGH-E590|SGH-E635|SGH-E715|SGH-E890|SGH-F300|SGH-F480|SGH-I200|SGH-I300|SGH-I320|SGH-I550|SGH-I577|SGH-I600|SGH-I607|SGH-I617|SGH-I627|SGH-I637|SGH-I677|SGH-I700|SGH-I717|SGH-I727|SGH-i747M|SGH-I777|SGH-I780|SGH-I827|SGH-I847|SGH-I857|SGH-I896|SGH-I897|SGH-I900|SGH-I907|SGH-I917|SGH-I927|SGH-I937|SGH-I997|SGH-J150|SGH-J200|SGH-L170|SGH-L700|SGH-M110|SGH-M150|SGH-M200|SGH-N105|SGH-N500|SGH-N600|SGH-N620|SGH-N625|SGH-N700|SGH-N710|SGH-P107|SGH-P207|SGH-P300|SGH-P310|SGH-P520|SGH-P735|SGH-P777|SGH-Q105|SGH-R210|SGH-R220|SGH-R225|SGH-S105|SGH-S307|SGH-T109|SGH-T119|SGH-T139|SGH-T209|SGH-T219|SGH-T229|SGH-T239|SGH-T249|SGH-T259|SGH-T309|SGH-T319|SGH-T329|SGH-T339|SGH-T349|SGH-T359|SGH-T369|SGH-T379|SGH-T409|SGH-T429|SGH-T439|SGH-T459|SGH-T469|SGH-T479|SGH-T499|SGH-T509|SGH-T519|SGH-T539|SGH-T559|SGH-T589|SGH-T609|SGH-T619|SGH-T629|SGH-T639|SGH-T659|SGH-T669|SGH-T679|SGH-T709|SGH-T719|SGH-T729|SGH-T739|SGH-T746|SGH-T749|SGH-T759|SGH-T769|SGH-T809|SGH-T819|SGH-T839|SGH-T919|SGH-T929|SGH-T939|SGH-T959|SGH-T989|SGH-U100|SGH-U200|SGH-U800|SGH-V205|SGH-V206|SGH-X100|SGH-X105|SGH-X120|SGH-X140|SGH-X426|SGH-X427|SGH-X475|SGH-X495|SGH-X497|SGH-X507|SGH-X600|SGH-X610|SGH-X620|SGH-X630|SGH-X700|SGH-X820|SGH-X890|SGH-Z130|SGH-Z150|SGH-Z170|SGH-ZX10|SGH-ZX20|SHW-M110|SPH-A120|SPH-A400|SPH-A420|SPH-A460|SPH-A500|SPH-A560|SPH-A600|SPH-A620|SPH-A660|SPH-A700|SPH-A740|SPH-A760|SPH-A790|SPH-A800|SPH-A820|SPH-A840|SPH-A880|SPH-A900|SPH-A940|SPH-A960|SPH-D600|SPH-D700|SPH-D710|SPH-D720|SPH-I300|SPH-I325|SPH-I330|SPH-I350|SPH-I500|SPH-I600|SPH-I700|SPH-L700|SPH-M100|SPH-M220|SPH-M240|SPH-M300|SPH-M305|SPH-M320|SPH-M330|SPH-M350|SPH-M360|SPH-M370|SPH-M380|SPH-M510|SPH-M540|SPH-M550|SPH-M560|SPH-M570|SPH-M580|SPH-M610|SPH-M620|SPH-M630|SPH-M800|SPH-M810|SPH-M850|SPH-M900|SPH-M910|SPH-M920|SPH-M930|SPH-N100|SPH-N200|SPH-N240|SPH-N300|SPH-N400|SPH-Z400|SWC-E100|SCH-i909|GT-N7100|GT-N7105|SCH-I535|SM-N900A|SGH-I317|SGH-T999L|GT-S5360B|GT-I8262|GT-S6802|GT-S6312|GT-S6310|GT-S5312|GT-S5310|GT-I9105|GT-I8510|GT-S6790N|SM-G7105|SM-N9005|GT-S5301|GT-I9295|GT-I9195|SM-C101|GT-S7392|GT-S7560|GT-B7610|GT-I5510|GT-S7582|GT-S7530E",
-			"LG": "\\bLG\\b;|LG[- ]?(C800|C900|E400|E610|E900|E-900|F160|F180K|F180L|F180S|730|855|L160|LS840|LS970|LU6200|MS690|MS695|MS770|MS840|MS870|MS910|P500|P700|P705|VM696|AS680|AS695|AX840|C729|E970|GS505|272|C395|E739BK|E960|L55C|L75C|LS696|LS860|P769BK|P350|P500|P509|P870|UN272|US730|VS840|VS950|LN272|LN510|LS670|LS855|LW690|MN270|MN510|P509|P769|P930|UN200|UN270|UN510|UN610|US670|US740|US760|UX265|UX840|VN271|VN530|VS660|VS700|VS740|VS750|VS910|VS920|VS930|VX9200|VX11000|AX840A|LW770|P506|P925|P999|E612|D955|D802)",
-			"Sony": "SonyST|SonyLT|SonyEricsson|SonyEricssonLT15iv|LT18i|E10i|LT28h|LT26w|SonyEricssonMT27i",
-			"Asus": "Asus.*Galaxy|PadFone.*Mobile",
-			"Micromax": "Micromax.*\\b(A210|A92|A88|A72|A111|A110Q|A115|A116|A110|A90S|A26|A51|A35|A54|A25|A27|A89|A68|A65|A57|A90)\\b",
-			"Palm": "PalmSource|Palm",
-			"Vertu": "Vertu|Vertu.*Ltd|Vertu.*Ascent|Vertu.*Ayxta|Vertu.*Constellation(F|Quest)?|Vertu.*Monika|Vertu.*Signature",
-			"Pantech": "PANTECH|IM-A850S|IM-A840S|IM-A830L|IM-A830K|IM-A830S|IM-A820L|IM-A810K|IM-A810S|IM-A800S|IM-T100K|IM-A725L|IM-A780L|IM-A775C|IM-A770K|IM-A760S|IM-A750K|IM-A740S|IM-A730S|IM-A720L|IM-A710K|IM-A690L|IM-A690S|IM-A650S|IM-A630K|IM-A600S|VEGA PTL21|PT003|P8010|ADR910L|P6030|P6020|P9070|P4100|P9060|P5000|CDM8992|TXT8045|ADR8995|IS11PT|P2030|P6010|P8000|PT002|IS06|CDM8999|P9050|PT001|TXT8040|P2020|P9020|P2000|P7040|P7000|C790",
-			"Fly": "IQ230|IQ444|IQ450|IQ440|IQ442|IQ441|IQ245|IQ256|IQ236|IQ255|IQ235|IQ245|IQ275|IQ240|IQ285|IQ280|IQ270|IQ260|IQ250",
-			"iMobile": "i-mobile (IQ|i-STYLE|idea|ZAA|Hitz)",
-			"SimValley": "\\b(SP-80|XT-930|SX-340|XT-930|SX-310|SP-360|SP60|SPT-800|SP-120|SPT-800|SP-140|SPX-5|SPX-8|SP-100|SPX-8|SPX-12)\\b",
-			"GenericPhone": "Tapatalk|PDA;|SAGEM|\\bmmp\\b|pocket|\\bpsp\\b|symbian|Smartphone|smartfon|treo|up.browser|up.link|vodafone|\\bwap\\b|nokia|Series40|Series60|S60|SonyEricsson|N900|MAUI.*WAP.*Browser"
-		},
-		"tablets": {
-			"iPad": "iPad|iPad.*Mobile",
-			"NexusTablet": "Android.*Nexus[\\s]+(7|10)|^.*Android.*Nexus(?:(?!Mobile).)*$",
-			"SamsungTablet": "SAMSUNG.*Tablet|Galaxy.*Tab|SC-01C|GT-P1000|GT-P1003|GT-P1010|GT-P3105|GT-P6210|GT-P6800|GT-P6810|GT-P7100|GT-P7300|GT-P7310|GT-P7500|GT-P7510|SCH-I800|SCH-I815|SCH-I905|SGH-I957|SGH-I987|SGH-T849|SGH-T859|SGH-T869|SPH-P100|GT-P3100|GT-P3108|GT-P3110|GT-P5100|GT-P5110|GT-P6200|GT-P7320|GT-P7511|GT-N8000|GT-P8510|SGH-I497|SPH-P500|SGH-T779|SCH-I705|SCH-I915|GT-N8013|GT-P3113|GT-P5113|GT-P8110|GT-N8010|GT-N8005|GT-N8020|GT-P1013|GT-P6201|GT-P7501|GT-N5100|GT-N5105|GT-N5110|SHV-E140K|SHV-E140L|SHV-E140S|SHV-E150S|SHV-E230K|SHV-E230L|SHV-E230S|SHW-M180K|SHW-M180L|SHW-M180S|SHW-M180W|SHW-M300W|SHW-M305W|SHW-M380K|SHW-M380S|SHW-M380W|SHW-M430W|SHW-M480K|SHW-M480S|SHW-M480W|SHW-M485W|SHW-M486W|SHW-M500W|GT-I9228|SCH-P739|SCH-I925|GT-I9200|GT-I9205|GT-P5200|GT-P5210|GT-P5210X|SM-T311|SM-T310|SM-T310X|SM-T210|SM-T210R|SM-T211|SM-P600|SM-P601|SM-P605|SM-P900|SM-P901|SM-T217|SM-T217A|SM-T217S|SM-P6000|SM-T3100|SGH-I467|XE500|SM-T110|GT-P5220|GT-I9200X|GT-N5110X|GT-N5120|SM-P905|SM-T111|SM-T2105|SM-T315|SM-T320|SM-T320X|SM-T321|SM-T520|SM-T525|SM-T530NU|SM-T230NU|SM-T330NU|SM-T900|XE500T1C|SM-P605V|SM-P905V|SM-P600X|SM-P900X|SM-T210X|SM-T230|SM-T230X|SM-T325|GT-P7503|SM-T531|SM-T330|SM-T530|SM-T705C|SM-T535|SM-T331",
-			"Kindle": "Kindle|Silk.*Accelerated|Android.*\\b(KFOT|KFTT|KFJWI|KFJWA|KFOTE|KFSOWI|KFTHWI|KFTHWA|KFAPWI|KFAPWA|WFJWAE)\\b",
-			"SurfaceTablet": "Windows NT [0-9.]+; ARM;",
-			"HPTablet": "HP Slate 7|HP ElitePad 900|hp-tablet|EliteBook.*Touch|HP 8",
-			"AsusTablet": "^.*PadFone((?!Mobile).)*$|Transformer|TF101|TF101G|TF300T|TF300TG|TF300TL|TF700T|TF700KL|TF701T|TF810C|ME171|ME301T|ME302C|ME371MG|ME370T|ME372MG|ME172V|ME173X|ME400C|Slider SL101|\\bK00F\\b|TX201LA",
-			"BlackBerryTablet": "PlayBook|RIM Tablet",
-			"HTCtablet": "HTC Flyer|HTC Jetstream|HTC-P715a|HTC EVO View 4G|PG41200",
-			"MotorolaTablet": "xoom|sholest|MZ615|MZ605|MZ505|MZ601|MZ602|MZ603|MZ604|MZ606|MZ607|MZ608|MZ609|MZ615|MZ616|MZ617",
-			"NookTablet": "Android.*Nook|NookColor|nook browser|BNRV200|BNRV200A|BNTV250|BNTV250A|BNTV400|BNTV600|LogicPD Zoom2",
-			"AcerTablet": "Android.*; \\b(A100|A101|A110|A200|A210|A211|A500|A501|A510|A511|A700|A701|W500|W500P|W501|W501P|W510|W511|W700|G100|G100W|B1-A71|B1-710|B1-711|A1-810|A1-830)\\b|W3-810|\\bA3-A10\\b",
-			"ToshibaTablet": "Android.*(AT100|AT105|AT200|AT205|AT270|AT275|AT300|AT305|AT1S5|AT500|AT570|AT700|AT830)|TOSHIBA.*FOLIO",
-			"LGTablet": "\\bL-06C|LG-V900|LG-V500|LG-V909|LG-V500|LG-V510|LG-VK810\\b",
-			"FujitsuTablet": "Android.*\\b(F-01D|F-02F|F-05E|F-10D|M532|Q572)\\b",
-			"PrestigioTablet": "PMP3170B|PMP3270B|PMP3470B|PMP7170B|PMP3370B|PMP3570C|PMP5870C|PMP3670B|PMP5570C|PMP5770D|PMP3970B|PMP3870C|PMP5580C|PMP5880D|PMP5780D|PMP5588C|PMP7280C|PMP7280C3G|PMP7280|PMP7880D|PMP5597D|PMP5597|PMP7100D|PER3464|PER3274|PER3574|PER3884|PER5274|PER5474|PMP5097CPRO|PMP5097|PMP7380D|PMP5297C|PMP5297C_QUAD",
-			"LenovoTablet": "IdeaTab|ThinkPad([ ]+)?Tablet|Lenovo.*(S2109|S2110|S5000|S6000|K3011|A3000|A1000|A2107|A2109|A1107|B6000|B8000|B8080-F)",
-			"YarvikTablet": "Android.*\\b(TAB210|TAB211|TAB224|TAB250|TAB260|TAB264|TAB310|TAB360|TAB364|TAB410|TAB411|TAB420|TAB424|TAB450|TAB460|TAB461|TAB464|TAB465|TAB467|TAB468|TAB07-100|TAB07-101|TAB07-150|TAB07-151|TAB07-152|TAB07-200|TAB07-201-3G|TAB07-210|TAB07-211|TAB07-212|TAB07-214|TAB07-220|TAB07-400|TAB07-485|TAB08-150|TAB08-200|TAB08-201-3G|TAB08-201-30|TAB09-100|TAB09-211|TAB09-410|TAB10-150|TAB10-201|TAB10-211|TAB10-400|TAB10-410|TAB13-201|TAB274EUK|TAB275EUK|TAB374EUK|TAB462EUK|TAB474EUK|TAB9-200)\\b",
-			"MedionTablet": "Android.*\\bOYO\\b|LIFE.*(P9212|P9514|P9516|S9512)|LIFETAB",
-			"ArnovaTablet": "AN10G2|AN7bG3|AN7fG3|AN8G3|AN8cG3|AN7G3|AN9G3|AN7dG3|AN7dG3ST|AN7dG3ChildPad|AN10bG3|AN10bG3DT",
-			"IntensoTablet": "INM8002KP|INM1010FP|INM805ND|Intenso Tab",
-			"IRUTablet": "M702pro",
-			"MegafonTablet": "MegaFon V9|\\bZTE V9\\b|Android.*\\bMT7A\\b",
-			"EbodaTablet": "E-Boda (Supreme|Impresspeed|Izzycomm|Essential)",
-			"AllViewTablet": "Allview.*(Viva|Alldro|City|Speed|All TV|Frenzy|Quasar|Shine|TX1|AX1|AX2)",
-			"ArchosTablet": "\\b(101G9|80G9|A101IT)\\b|Qilive 97R|ARCHOS 101G10|Archos 101 Neon",
-			"AinolTablet": "NOVO7|NOVO8|NOVO10|Novo7Aurora|Novo7Basic|NOVO7PALADIN|novo9-Spark",
-			"SonyTablet": "Sony.*Tablet|Xperia Tablet|Sony Tablet S|SO-03E|SGPT12|SGPT13|SGPT114|SGPT121|SGPT122|SGPT123|SGPT111|SGPT112|SGPT113|SGPT131|SGPT132|SGPT133|SGPT211|SGPT212|SGPT213|SGP311|SGP312|SGP321|EBRD1101|EBRD1102|EBRD1201|SGP351|SGP341|SGP511|SGP512|SGP521|SGP541|SGP551",
-			"CubeTablet": "Android.*(K8GT|U9GT|U10GT|U16GT|U17GT|U18GT|U19GT|U20GT|U23GT|U30GT)|CUBE U8GT",
-			"CobyTablet": "MID1042|MID1045|MID1125|MID1126|MID7012|MID7014|MID7015|MID7034|MID7035|MID7036|MID7042|MID7048|MID7127|MID8042|MID8048|MID8127|MID9042|MID9740|MID9742|MID7022|MID7010",
-			"MIDTablet": "M9701|M9000|M9100|M806|M1052|M806|T703|MID701|MID713|MID710|MID727|MID760|MID830|MID728|MID933|MID125|MID810|MID732|MID120|MID930|MID800|MID731|MID900|MID100|MID820|MID735|MID980|MID130|MID833|MID737|MID960|MID135|MID860|MID736|MID140|MID930|MID835|MID733",
-			"SMiTTablet": "Android.*(\\bMID\\b|MID-560|MTV-T1200|MTV-PND531|MTV-P1101|MTV-PND530)",
-			"RockChipTablet": "Android.*(RK2818|RK2808A|RK2918|RK3066)|RK2738|RK2808A",
-			"FlyTablet": "IQ310|Fly Vision",
-			"bqTablet": "bq.*(Elcano|Curie|Edison|Maxwell|Kepler|Pascal|Tesla|Hypatia|Platon|Newton|Livingstone|Cervantes|Avant)|Maxwell.*Lite|Maxwell.*Plus",
-			"HuaweiTablet": "MediaPad|MediaPad 7 Youth|IDEOS S7|S7-201c|S7-202u|S7-101|S7-103|S7-104|S7-105|S7-106|S7-201|S7-Slim",
-			"NecTablet": "\\bN-06D|\\bN-08D",
-			"PantechTablet": "Pantech.*P4100",
-			"BronchoTablet": "Broncho.*(N701|N708|N802|a710)",
-			"VersusTablet": "TOUCHPAD.*[78910]|\\bTOUCHTAB\\b",
-			"ZyncTablet": "z1000|Z99 2G|z99|z930|z999|z990|z909|Z919|z900",
-			"PositivoTablet": "TB07STA|TB10STA|TB07FTA|TB10FTA",
-			"NabiTablet": "Android.*\\bNabi",
-			"KoboTablet": "Kobo Touch|\\bK080\\b|\\bVox\\b Build|\\bArc\\b Build",
-			"DanewTablet": "DSlide.*\\b(700|701R|702|703R|704|802|970|971|972|973|974|1010|1012)\\b",
-			"TexetTablet": "NaviPad|TB-772A|TM-7045|TM-7055|TM-9750|TM-7016|TM-7024|TM-7026|TM-7041|TM-7043|TM-7047|TM-8041|TM-9741|TM-9747|TM-9748|TM-9751|TM-7022|TM-7021|TM-7020|TM-7011|TM-7010|TM-7023|TM-7025|TM-7037W|TM-7038W|TM-7027W|TM-9720|TM-9725|TM-9737W|TM-1020|TM-9738W|TM-9740|TM-9743W|TB-807A|TB-771A|TB-727A|TB-725A|TB-719A|TB-823A|TB-805A|TB-723A|TB-715A|TB-707A|TB-705A|TB-709A|TB-711A|TB-890HD|TB-880HD|TB-790HD|TB-780HD|TB-770HD|TB-721HD|TB-710HD|TB-434HD|TB-860HD|TB-840HD|TB-760HD|TB-750HD|TB-740HD|TB-730HD|TB-722HD|TB-720HD|TB-700HD|TB-500HD|TB-470HD|TB-431HD|TB-430HD|TB-506|TB-504|TB-446|TB-436|TB-416|TB-146SE|TB-126SE",
-			"PlaystationTablet": "Playstation.*(Portable|Vita)",
-			"TrekstorTablet": "ST10416-1|VT10416-1|ST70408-1|ST702xx-1|ST702xx-2|ST80208|ST97216|ST70104-2|VT10416-2|ST10216-2A",
-			"PyleAudioTablet": "\\b(PTBL10CEU|PTBL10C|PTBL72BC|PTBL72BCEU|PTBL7CEU|PTBL7C|PTBL92BC|PTBL92BCEU|PTBL9CEU|PTBL9CUK|PTBL9C)\\b",
-			"AdvanTablet": "Android.* \\b(E3A|T3X|T5C|T5B|T3E|T3C|T3B|T1J|T1F|T2A|T1H|T1i|E1C|T1-E|T5-A|T4|E1-B|T2Ci|T1-B|T1-D|O1-A|E1-A|T1-A|T3A|T4i)\\b ",
-			"DanyTechTablet": "Genius Tab G3|Genius Tab S2|Genius Tab Q3|Genius Tab G4|Genius Tab Q4|Genius Tab G-II|Genius TAB GII|Genius TAB GIII|Genius Tab S1",
-			"GalapadTablet": "Android.*\\bG1\\b",
-			"MicromaxTablet": "Funbook|Micromax.*\\b(P250|P560|P360|P362|P600|P300|P350|P500|P275)\\b",
-			"KarbonnTablet": "Android.*\\b(A39|A37|A34|ST8|ST10|ST7|Smart Tab3|Smart Tab2)\\b",
-			"AllFineTablet": "Fine7 Genius|Fine7 Shine|Fine7 Air|Fine8 Style|Fine9 More|Fine10 Joy|Fine11 Wide",
-			"PROSCANTablet": "\\b(PEM63|PLT1023G|PLT1041|PLT1044|PLT1044G|PLT1091|PLT4311|PLT4311PL|PLT4315|PLT7030|PLT7033|PLT7033D|PLT7035|PLT7035D|PLT7044K|PLT7045K|PLT7045KB|PLT7071KG|PLT7072|PLT7223G|PLT7225G|PLT7777G|PLT7810K|PLT7849G|PLT7851G|PLT7852G|PLT8015|PLT8031|PLT8034|PLT8036|PLT8080K|PLT8082|PLT8088|PLT8223G|PLT8234G|PLT8235G|PLT8816K|PLT9011|PLT9045K|PLT9233G|PLT9735|PLT9760G|PLT9770G)\\b",
-			"YONESTablet": "BQ1078|BC1003|BC1077|RK9702|BC9730|BC9001|IT9001|BC7008|BC7010|BC708|BC728|BC7012|BC7030|BC7027|BC7026",
-			"ChangJiaTablet": "TPC7102|TPC7103|TPC7105|TPC7106|TPC7107|TPC7201|TPC7203|TPC7205|TPC7210|TPC7708|TPC7709|TPC7712|TPC7110|TPC8101|TPC8103|TPC8105|TPC8106|TPC8203|TPC8205|TPC8503|TPC9106|TPC9701|TPC97101|TPC97103|TPC97105|TPC97106|TPC97111|TPC97113|TPC97203|TPC97603|TPC97809|TPC97205|TPC10101|TPC10103|TPC10106|TPC10111|TPC10203|TPC10205|TPC10503",
-			"GUTablet": "TX-A1301|TX-M9002|Q702|kf026",
-			"PointOfViewTablet": "TAB-P506|TAB-navi-7-3G-M|TAB-P517|TAB-P-527|TAB-P701|TAB-P703|TAB-P721|TAB-P731N|TAB-P741|TAB-P825|TAB-P905|TAB-P925|TAB-PR945|TAB-PL1015|TAB-P1025|TAB-PI1045|TAB-P1325|TAB-PROTAB[0-9]+|TAB-PROTAB25|TAB-PROTAB26|TAB-PROTAB27|TAB-PROTAB26XL|TAB-PROTAB2-IPS9|TAB-PROTAB30-IPS9|TAB-PROTAB25XXL|TAB-PROTAB26-IPS10|TAB-PROTAB30-IPS10",
-			"OvermaxTablet": "OV-(SteelCore|NewBase|Basecore|Baseone|Exellen|Quattor|EduTab|Solution|ACTION|BasicTab|TeddyTab|MagicTab|Stream|TB-08|TB-09)",
-			"HCLTablet": "HCL.*Tablet|Connect-3G-2.0|Connect-2G-2.0|ME Tablet U1|ME Tablet U2|ME Tablet G1|ME Tablet X1|ME Tablet Y2|ME Tablet Sync",
-			"DPSTablet": "DPS Dream 9|DPS Dual 7",
-			"VistureTablet": "V97 HD|i75 3G|Visture V4( HD)?|Visture V5( HD)?|Visture V10",
-			"CrestaTablet": "CTP(-)?810|CTP(-)?818|CTP(-)?828|CTP(-)?838|CTP(-)?888|CTP(-)?978|CTP(-)?980|CTP(-)?987|CTP(-)?988|CTP(-)?989",
-			"MediatekTablet": "\\bMT8125|MT8389|MT8135|MT8377\\b",
-			"ConcordeTablet": "Concorde([ ]+)?Tab|ConCorde ReadMan",
-			"GoCleverTablet": "GOCLEVER TAB|A7GOCLEVER|M1042|M7841|M742|R1042BK|R1041|TAB A975|TAB A7842|TAB A741|TAB A741L|TAB M723G|TAB M721|TAB A1021|TAB I921|TAB R721|TAB I720|TAB T76|TAB R70|TAB R76.2|TAB R106|TAB R83.2|TAB M813G|TAB I721|GCTA722|TAB I70|TAB I71|TAB S73|TAB R73|TAB R74|TAB R93|TAB R75|TAB R76.1|TAB A73|TAB A93|TAB A93.2|TAB T72|TAB R83|TAB R974|TAB R973|TAB A101|TAB A103|TAB A104|TAB A104.2|R105BK|M713G|A972BK|TAB A971|TAB R974.2|TAB R104|TAB R83.3|TAB A1042",
-			"ModecomTablet": "FreeTAB 9000|FreeTAB 7.4|FreeTAB 7004|FreeTAB 7800|FreeTAB 2096|FreeTAB 7.5|FreeTAB 1014|FreeTAB 1001 |FreeTAB 8001|FreeTAB 9706|FreeTAB 9702|FreeTAB 7003|FreeTAB 7002|FreeTAB 1002|FreeTAB 7801|FreeTAB 1331|FreeTAB 1004|FreeTAB 8002|FreeTAB 8014|FreeTAB 9704|FreeTAB 1003",
-			"VoninoTablet": "\\b(Argus[ _]?S|Diamond[ _]?79HD|Emerald[ _]?78E|Luna[ _]?70C|Onyx[ _]?S|Onyx[ _]?Z|Orin[ _]?HD|Orin[ _]?S|Otis[ _]?S|SpeedStar[ _]?S|Magnet[ _]?M9|Primus[ _]?94[ _]?3G|Primus[ _]?94HD|Primus[ _]?QS|Android.*\\bQ8\\b|Sirius[ _]?EVO[ _]?QS|Sirius[ _]?QS|Spirit[ _]?S)\\b",
-			"ECSTablet": "V07OT2|TM105A|S10OT1|TR10CS1",
-			"StorexTablet": "eZee[_']?(Tab|Go)[0-9]+|TabLC7|Looney Tunes Tab",
-			"VodafoneTablet": "SmartTab([ ]+)?[0-9]+|SmartTabII10",
-			"EssentielBTablet": "Smart[ ']?TAB[ ]+?[0-9]+|Family[ ']?TAB2",
-			"RossMoorTablet": "RM-790|RM-997|RMD-878G|RMD-974R|RMT-705A|RMT-701|RME-601|RMT-501|RMT-711",
-			"iMobileTablet": "i-mobile i-note",
-			"TolinoTablet": "tolino tab [0-9.]+|tolino shine",
-			"AudioSonicTablet": "\\bC-22Q|T7-QC|T-17B|T-17P\\b",
-			"AMPETablet": "Android.* A78 ",
-			"SkkTablet": "Android.* (SKYPAD|PHOENIX|CYCLOPS)",
-			"TecnoTablet": "TECNO P9",
-			"JXDTablet": "Android.*\\b(F3000|A3300|JXD5000|JXD3000|JXD2000|JXD300B|JXD300|S5800|S7800|S602b|S5110b|S7300|S5300|S602|S603|S5100|S5110|S601|S7100a|P3000F|P3000s|P101|P200s|P1000m|P200m|P9100|P1000s|S6600b|S908|P1000|P300|S18|S6600|S9100)\\b",
-			"iJoyTablet": "Tablet (Spirit 7|Essentia|Galatea|Fusion|Onix 7|Landa|Titan|Scooby|Deox|Stella|Themis|Argon|Unique 7|Sygnus|Hexen|Finity 7|Cream|Cream X2|Jade|Neon 7|Neron 7|Kandy|Scape|Saphyr 7|Rebel|Biox|Rebel|Rebel 8GB|Myst|Draco 7|Myst|Tab7-004|Myst|Tadeo Jones|Tablet Boing|Arrow|Draco Dual Cam|Aurix|Mint|Amity|Revolution|Finity 9|Neon 9|T9w|Amity 4GB Dual Cam|Stone 4GB|Stone 8GB|Andromeda|Silken|X2|Andromeda II|Halley|Flame|Saphyr 9,7|Touch 8|Planet|Triton|Unique 10|Hexen 10|Memphis 4GB|Memphis 8GB|Onix 10)",
-			"FX2Tablet": "FX2 PAD7|FX2 PAD10",
-			"XoroTablet": "KidsPAD 701|PAD[ ]?712|PAD[ ]?714|PAD[ ]?716|PAD[ ]?717|PAD[ ]?718|PAD[ ]?720|PAD[ ]?721|PAD[ ]?722|PAD[ ]?790|PAD[ ]?792|PAD[ ]?900|PAD[ ]?9715D|PAD[ ]?9716DR|PAD[ ]?9718DR|PAD[ ]?9719QR|PAD[ ]?9720QR|TelePAD1030|Telepad1032|TelePAD730|TelePAD731|TelePAD732|TelePAD735Q|TelePAD830|TelePAD9730|TelePAD795|MegaPAD 1331|MegaPAD 1851|MegaPAD 2151",
-			"ViewsonicTablet": "ViewPad 10pi|ViewPad 10e|ViewPad 10s|ViewPad E72|ViewPad7|ViewPad E100|ViewPad 7e|ViewSonic VB733|VB100a",
-			"OdysTablet": "LOOX|XENO10|ODYS Space",
-			"CaptivaTablet": "CAPTIVA PAD",
-			"IconbitTablet": "NetTAB|NT-3702|NT-3702S|NT-3702S|NT-3603P|NT-3603P|NT-0704S|NT-0704S|NT-3805C|NT-3805C|NT-0806C|NT-0806C|NT-0909T|NT-0909T|NT-0907S|NT-0907S|NT-0902S|NT-0902S",
-			"Hudl": "Hudl HT7S3",
-			"TelstraTablet": "T-Hub2",
-			"GenericTablet": "Android.*\\b97D\\b|Tablet(?!.*PC)|BNTV250A|MID-WCDMA|LogicPD Zoom2|\\bA7EB\\b|CatNova8|A1_07|CT704|CT1002|\\bM721\\b|rk30sdk|\\bEVOTAB\\b|M758A|ET904|ALUMIUM10|Smartfren Tab|Endeavour 1010|Tablet-PC-4"
-		},
-		"browsers": {
-			"Chrome": "\\bCrMo\\b|CriOS|Android.*Chrome\/[.0-9]* (Mobile)?",
-			"Dolfin": "\\bDolfin\\b",
-			"Opera": "Opera.*Mini|Opera.*Mobi|Android.*Opera|Mobile.*OPR\/[0-9.]+|Coast\/[0-9.]+",
-			"Skyfire": "Skyfire",
-			"IE": "IEMobile|MSIEMobile",
-			"Firefox": "fennec|firefox.*maemo|(Mobile|Tablet).*Firefox|Firefox.*Mobile",
-			"Bolt": "bolt",
-			"TeaShark": "teashark",
-			"Blazer": "Blazer",
-			"Safari": "Version.*Mobile.*Safari|Safari.*Mobile",
-			"Tizen": "Tizen",
-			"UCBrowser": "UC.*Browser|UCWEB",
-			"DiigoBrowser": "DiigoBrowser",
-			"Puffin": "Puffin",
-			"Mercury": "\\bMercury\\b",
-			"GenericBrowser": "NokiaBrowser|OviBrowser|OneBrowser|TwonkyBeamBrowser|SEMC.*Browser|FlyFlow|Minimo|NetFront|Novarra-Vision|MQQBrowser|MicroMessenger"
-		},
-		"os": {
-			"AndroidOS": "Android",
-			"BlackBerryOS": "blackberry|\\bBB10\\b|rim tablet os",
-			"PalmOS": "PalmOS|avantgo|blazer|elaine|hiptop|palm|plucker|xiino",
-			"SymbianOS": "Symbian|SymbOS|Series60|Series40|SYB-[0-9]+|\\bS60\\b",
-			"WindowsMobileOS": "Windows CE.*(PPC|Smartphone|Mobile|[0-9]{3}x[0-9]{3})|Window Mobile|Windows Phone [0-9.]+|WCE;",
-			"WindowsPhoneOS": "Windows Phone 8.0|Windows Phone OS|XBLWP7|ZuneWP7",
-			"iOS": "\\biPhone.*Mobile|\\biPod|\\biPad",
-			"MeeGoOS": "MeeGo",
-			"MaemoOS": "Maemo",
-			"JavaOS": "J2ME\/|\\bMIDP\\b|\\bCLDC\\b",
-			"webOS": "webOS|hpwOS",
-			"badaOS": "\\bBada\\b",
-			"BREWOS": "BREW"
-		}
-	}
-}
\ No newline at end of file
+{"version":"2.8.17","headerMatch":{"HTTP_ACCEPT":{"matches":["application\/x-obml2d","application\/vnd.rim.html","text\/vnd.wap.wml","application\/vnd.wap.xhtml+xml"]},"HTTP_X_WAP_PROFILE":null,"HTTP_X_WAP_CLIENTID":null,"HTTP_WAP_CONNECTION":null,"HTTP_PROFILE":null,"HTTP_X_OPERAMINI_PHONE_UA":null,"HTTP_X_NOKIA_GATEWAY_ID":null,"HTTP_X_ORANGE_ID":null,"HTTP_X_VODAFONE_3GPDPCONTEXT":null,"HTTP_X_HUAWEI_USERID":null,"HTTP_UA_OS":null,"HTTP_X_MOBILE_GATEWAY":null,"HTTP_X_ATT_DEVICEID":null,"HTTP_UA_CPU":{"matches":["ARM"]}},"uaHttpHeaders":["HTTP_USER_AGENT","HTTP_X_OPERAMINI_PHONE_UA","HTTP_X_DEVICE_USER_AGENT","HTTP_X_ORIGINAL_USER_AGENT","HTTP_X_SKYFIRE_PHONE","HTTP_X_BOLT_PHONE_UA","HTTP_DEVICE_STOCK_UA","HTTP_X_UCBROWSER_DEVICE_UA"],"uaMatch":{"phones":{"iPhone":"\\biPhone\\b|\\biPod\\b","BlackBerry":"BlackBerry|\\bBB10\\b|rim[0-9]+","HTC":"HTC|HTC.*(Sensation|Evo|Vision|Explorer|6800|8100|8900|A7272|S510e|C110e|Legend|Desire|T8282)|APX515CKT|Qtek9090|APA9292KT|HD_mini|Sensation.*Z710e|PG86100|Z715e|Desire.*(A8181|HD)|ADR6200|ADR6400L|ADR6425|001HT|Inspire 4G|Android.*\\bEVO\\b|T-Mobile G1|Z520m","Nexus":"Nexus One|Nexus S|Galaxy.*Nexus|Android.*Nexus.*Mobile|Nexus 4|Nexus 5|Nexus 6","Dell":"Dell.*Streak|Dell.*Aero|Dell.*Venue|DELL.*Venue Pro|Dell Flash|Dell Smoke|Dell Mini 3iX|XCD28|XCD35|\\b001DL\\b|\\b101DL\\b|\\bGS01\\b","Motorola":"Motorola|DROIDX|DROID BIONIC|\\bDroid\\b.*Build|Android.*Xoom|HRI39|MOT-|A1260|A1680|A555|A853|A855|A953|A955|A956|Motorola.*ELECTRIFY|Motorola.*i1|i867|i940|MB200|MB300|MB501|MB502|MB508|MB511|MB520|MB525|MB526|MB611|MB612|MB632|MB810|MB855|MB860|MB861|MB865|MB870|ME501|ME502|ME511|ME525|ME600|ME632|ME722|ME811|ME860|ME863|ME865|MT620|MT710|MT716|MT720|MT810|MT870|MT917|Motorola.*TITANIUM|WX435|WX445|XT300|XT301|XT311|XT316|XT317|XT319|XT320|XT390|XT502|XT530|XT531|XT532|XT535|XT603|XT610|XT611|XT615|XT681|XT701|XT702|XT711|XT720|XT800|XT806|XT860|XT862|XT875|XT882|XT883|XT894|XT901|XT907|XT909|XT910|XT912|XT928|XT926|XT915|XT919|XT925|XT1021|\\bMoto E\\b","Samsung":"Samsung|SM-G9250|GT-19300|SGH-I337|BGT-S5230|GT-B2100|GT-B2700|GT-B2710|GT-B3210|GT-B3310|GT-B3410|GT-B3730|GT-B3740|GT-B5510|GT-B5512|GT-B5722|GT-B6520|GT-B7300|GT-B7320|GT-B7330|GT-B7350|GT-B7510|GT-B7722|GT-B7800|GT-C3010|GT-C3011|GT-C3060|GT-C3200|GT-C3212|GT-C3212I|GT-C3262|GT-C3222|GT-C3300|GT-C3300K|GT-C3303|GT-C3303K|GT-C3310|GT-C3322|GT-C3330|GT-C3350|GT-C3500|GT-C3510|GT-C3530|GT-C3630|GT-C3780|GT-C5010|GT-C5212|GT-C6620|GT-C6625|GT-C6712|GT-E1050|GT-E1070|GT-E1075|GT-E1080|GT-E1081|GT-E1085|GT-E1087|GT-E1100|GT-E1107|GT-E1110|GT-E1120|GT-E1125|GT-E1130|GT-E1160|GT-E1170|GT-E1175|GT-E1180|GT-E1182|GT-E1200|GT-E1210|GT-E1225|GT-E1230|GT-E1390|GT-E2100|GT-E2120|GT-E2121|GT-E2152|GT-E2220|GT-E2222|GT-E2230|GT-E2232|GT-E2250|GT-E2370|GT-E2550|GT-E2652|GT-E3210|GT-E3213|GT-I5500|GT-I5503|GT-I5700|GT-I5800|GT-I5801|GT-I6410|GT-I6420|GT-I7110|GT-I7410|GT-I7500|GT-I8000|GT-I8150|GT-I8160|GT-I8190|GT-I8320|GT-I8330|GT-I8350|GT-I8530|GT-I8700|GT-I8703|GT-I8910|GT-I9000|GT-I9001|GT-I9003|GT-I9010|GT-I9020|GT-I9023|GT-I9070|GT-I9082|GT-I9100|GT-I9103|GT-I9220|GT-I9250|GT-I9300|GT-I9305|GT-I9500|GT-I9505|GT-M3510|GT-M5650|GT-M7500|GT-M7600|GT-M7603|GT-M8800|GT-M8910|GT-N7000|GT-S3110|GT-S3310|GT-S3350|GT-S3353|GT-S3370|GT-S3650|GT-S3653|GT-S3770|GT-S3850|GT-S5210|GT-S5220|GT-S5229|GT-S5230|GT-S5233|GT-S5250|GT-S5253|GT-S5260|GT-S5263|GT-S5270|GT-S5300|GT-S5330|GT-S5350|GT-S5360|GT-S5363|GT-S5369|GT-S5380|GT-S5380D|GT-S5560|GT-S5570|GT-S5600|GT-S5603|GT-S5610|GT-S5620|GT-S5660|GT-S5670|GT-S5690|GT-S5750|GT-S5780|GT-S5830|GT-S5839|GT-S6102|GT-S6500|GT-S7070|GT-S7200|GT-S7220|GT-S7230|GT-S7233|GT-S7250|GT-S7500|GT-S7530|GT-S7550|GT-S7562|GT-S7710|GT-S8000|GT-S8003|GT-S8500|GT-S8530|GT-S8600|SCH-A310|SCH-A530|SCH-A570|SCH-A610|SCH-A630|SCH-A650|SCH-A790|SCH-A795|SCH-A850|SCH-A870|SCH-A890|SCH-A930|SCH-A950|SCH-A970|SCH-A990|SCH-I100|SCH-I110|SCH-I400|SCH-I405|SCH-I500|SCH-I510|SCH-I515|SCH-I600|SCH-I730|SCH-I760|SCH-I770|SCH-I830|SCH-I910|SCH-I920|SCH-I959|SCH-LC11|SCH-N150|SCH-N300|SCH-R100|SCH-R300|SCH-R351|SCH-R400|SCH-R410|SCH-T300|SCH-U310|SCH-U320|SCH-U350|SCH-U360|SCH-U365|SCH-U370|SCH-U380|SCH-U410|SCH-U430|SCH-U450|SCH-U460|SCH-U470|SCH-U490|SCH-U540|SCH-U550|SCH-U620|SCH-U640|SCH-U650|SCH-U660|SCH-U700|SCH-U740|SCH-U750|SCH-U810|SCH-U820|SCH-U900|SCH-U940|SCH-U960|SCS-26UC|SGH-A107|SGH-A117|SGH-A127|SGH-A137|SGH-A157|SGH-A167|SGH-A177|SGH-A187|SGH-A197|SGH-A227|SGH-A237|SGH-A257|SGH-A437|SGH-A517|SGH-A597|SGH-A637|SGH-A657|SGH-A667|SGH-A687|SGH-A697|SGH-A707|SGH-A717|SGH-A727|SGH-A737|SGH-A747|SGH-A767|SGH-A777|SGH-A797|SGH-A817|SGH-A827|SGH-A837|SGH-A847|SGH-A867|SGH-A877|SGH-A887|SGH-A897|SGH-A927|SGH-B100|SGH-B130|SGH-B200|SGH-B220|SGH-C100|SGH-C110|SGH-C120|SGH-C130|SGH-C140|SGH-C160|SGH-C170|SGH-C180|SGH-C200|SGH-C207|SGH-C210|SGH-C225|SGH-C230|SGH-C417|SGH-C450|SGH-D307|SGH-D347|SGH-D357|SGH-D407|SGH-D415|SGH-D780|SGH-D807|SGH-D980|SGH-E105|SGH-E200|SGH-E315|SGH-E316|SGH-E317|SGH-E335|SGH-E590|SGH-E635|SGH-E715|SGH-E890|SGH-F300|SGH-F480|SGH-I200|SGH-I300|SGH-I320|SGH-I550|SGH-I577|SGH-I600|SGH-I607|SGH-I617|SGH-I627|SGH-I637|SGH-I677|SGH-I700|SGH-I717|SGH-I727|SGH-i747M|SGH-I777|SGH-I780|SGH-I827|SGH-I847|SGH-I857|SGH-I896|SGH-I897|SGH-I900|SGH-I907|SGH-I917|SGH-I927|SGH-I937|SGH-I997|SGH-J150|SGH-J200|SGH-L170|SGH-L700|SGH-M110|SGH-M150|SGH-M200|SGH-N105|SGH-N500|SGH-N600|SGH-N620|SGH-N625|SGH-N700|SGH-N710|SGH-P107|SGH-P207|SGH-P300|SGH-P310|SGH-P520|SGH-P735|SGH-P777|SGH-Q105|SGH-R210|SGH-R220|SGH-R225|SGH-S105|SGH-S307|SGH-T109|SGH-T119|SGH-T139|SGH-T209|SGH-T219|SGH-T229|SGH-T239|SGH-T249|SGH-T259|SGH-T309|SGH-T319|SGH-T329|SGH-T339|SGH-T349|SGH-T359|SGH-T369|SGH-T379|SGH-T409|SGH-T429|SGH-T439|SGH-T459|SGH-T469|SGH-T479|SGH-T499|SGH-T509|SGH-T519|SGH-T539|SGH-T559|SGH-T589|SGH-T609|SGH-T619|SGH-T629|SGH-T639|SGH-T659|SGH-T669|SGH-T679|SGH-T709|SGH-T719|SGH-T729|SGH-T739|SGH-T746|SGH-T749|SGH-T759|SGH-T769|SGH-T809|SGH-T819|SGH-T839|SGH-T919|SGH-T929|SGH-T939|SGH-T959|SGH-T989|SGH-U100|SGH-U200|SGH-U800|SGH-V205|SGH-V206|SGH-X100|SGH-X105|SGH-X120|SGH-X140|SGH-X426|SGH-X427|SGH-X475|SGH-X495|SGH-X497|SGH-X507|SGH-X600|SGH-X610|SGH-X620|SGH-X630|SGH-X700|SGH-X820|SGH-X890|SGH-Z130|SGH-Z150|SGH-Z170|SGH-ZX10|SGH-ZX20|SHW-M110|SPH-A120|SPH-A400|SPH-A420|SPH-A460|SPH-A500|SPH-A560|SPH-A600|SPH-A620|SPH-A660|SPH-A700|SPH-A740|SPH-A760|SPH-A790|SPH-A800|SPH-A820|SPH-A840|SPH-A880|SPH-A900|SPH-A940|SPH-A960|SPH-D600|SPH-D700|SPH-D710|SPH-D720|SPH-I300|SPH-I325|SPH-I330|SPH-I350|SPH-I500|SPH-I600|SPH-I700|SPH-L700|SPH-M100|SPH-M220|SPH-M240|SPH-M300|SPH-M305|SPH-M320|SPH-M330|SPH-M350|SPH-M360|SPH-M370|SPH-M380|SPH-M510|SPH-M540|SPH-M550|SPH-M560|SPH-M570|SPH-M580|SPH-M610|SPH-M620|SPH-M630|SPH-M800|SPH-M810|SPH-M850|SPH-M900|SPH-M910|SPH-M920|SPH-M930|SPH-N100|SPH-N200|SPH-N240|SPH-N300|SPH-N400|SPH-Z400|SWC-E100|SCH-i909|GT-N7100|GT-N7105|SCH-I535|SM-N900A|SGH-I317|SGH-T999L|GT-S5360B|GT-I8262|GT-S6802|GT-S6312|GT-S6310|GT-S5312|GT-S5310|GT-I9105|GT-I8510|GT-S6790N|SM-G7105|SM-N9005|GT-S5301|GT-I9295|GT-I9195|SM-C101|GT-S7392|GT-S7560|GT-B7610|GT-I5510|GT-S7582|GT-S7530E|GT-I8750|SM-G9006V|SM-G9008V|SM-G9009D|SM-G900A|SM-G900D|SM-G900F|SM-G900H|SM-G900I|SM-G900J|SM-G900K|SM-G900L|SM-G900M|SM-G900P|SM-G900R4|SM-G900S|SM-G900T|SM-G900V|SM-G900W8|SHV-E160K|SCH-P709|SCH-P729|SM-T2558|GT-I9205","LG":"\\bLG\\b;|LG[- ]?(C800|C900|E400|E610|E900|E-900|F160|F180K|F180L|F180S|730|855|L160|LS740|LS840|LS970|LU6200|MS690|MS695|MS770|MS840|MS870|MS910|P500|P700|P705|VM696|AS680|AS695|AX840|C729|E970|GS505|272|C395|E739BK|E960|L55C|L75C|LS696|LS860|P769BK|P350|P500|P509|P870|UN272|US730|VS840|VS950|LN272|LN510|LS670|LS855|LW690|MN270|MN510|P509|P769|P930|UN200|UN270|UN510|UN610|US670|US740|US760|UX265|UX840|VN271|VN530|VS660|VS700|VS740|VS750|VS910|VS920|VS930|VX9200|VX11000|AX840A|LW770|P506|P925|P999|E612|D955|D802)","Sony":"SonyST|SonyLT|SonyEricsson|SonyEricssonLT15iv|LT18i|E10i|LT28h|LT26w|SonyEricssonMT27i|C5303|C6902|C6903|C6906|C6943|D2533","Asus":"Asus.*Galaxy|PadFone.*Mobile","Micromax":"Micromax.*\\b(A210|A92|A88|A72|A111|A110Q|A115|A116|A110|A90S|A26|A51|A35|A54|A25|A27|A89|A68|A65|A57|A90)\\b","Palm":"PalmSource|Palm","Vertu":"Vertu|Vertu.*Ltd|Vertu.*Ascent|Vertu.*Ayxta|Vertu.*Constellation(F|Quest)?|Vertu.*Monika|Vertu.*Signature","Pantech":"PANTECH|IM-A850S|IM-A840S|IM-A830L|IM-A830K|IM-A830S|IM-A820L|IM-A810K|IM-A810S|IM-A800S|IM-T100K|IM-A725L|IM-A780L|IM-A775C|IM-A770K|IM-A760S|IM-A750K|IM-A740S|IM-A730S|IM-A720L|IM-A710K|IM-A690L|IM-A690S|IM-A650S|IM-A630K|IM-A600S|VEGA PTL21|PT003|P8010|ADR910L|P6030|P6020|P9070|P4100|P9060|P5000|CDM8992|TXT8045|ADR8995|IS11PT|P2030|P6010|P8000|PT002|IS06|CDM8999|P9050|PT001|TXT8040|P2020|P9020|P2000|P7040|P7000|C790","Fly":"IQ230|IQ444|IQ450|IQ440|IQ442|IQ441|IQ245|IQ256|IQ236|IQ255|IQ235|IQ245|IQ275|IQ240|IQ285|IQ280|IQ270|IQ260|IQ250","Wiko":"KITE 4G|HIGHWAY|GETAWAY|STAIRWAY|DARKSIDE|DARKFULL|DARKNIGHT|DARKMOON|SLIDE|WAX 4G|RAINBOW|BLOOM|SUNSET|GOA|LENNY|BARRY|IGGY|OZZY|CINK FIVE|CINK PEAX|CINK PEAX 2|CINK SLIM|CINK SLIM 2|CINK +|CINK KING|CINK PEAX|CINK SLIM|SUBLIM","iMobile":"i-mobile (IQ|i-STYLE|idea|ZAA|Hitz)","SimValley":"\\b(SP-80|XT-930|SX-340|XT-930|SX-310|SP-360|SP60|SPT-800|SP-120|SPT-800|SP-140|SPX-5|SPX-8|SP-100|SPX-8|SPX-12)\\b","Wolfgang":"AT-B24D|AT-AS50HD|AT-AS40W|AT-AS55HD|AT-AS45q2|AT-B26D|AT-AS50Q","Alcatel":"Alcatel","Nintendo":"Nintendo 3DS","Amoi":"Amoi","INQ":"INQ","GenericPhone":"Tapatalk|PDA;|SAGEM|\\bmmp\\b|pocket|\\bpsp\\b|symbian|Smartphone|smartfon|treo|up.browser|up.link|vodafone|\\bwap\\b|nokia|Series40|Series60|S60|SonyEricsson|N900|MAUI.*WAP.*Browser"},"tablets":{"iPad":"iPad|iPad.*Mobile","NexusTablet":"Android.*Nexus[\\s]+(7|9|10)","SamsungTablet":"SAMSUNG.*Tablet|Galaxy.*Tab|SC-01C|GT-P1000|GT-P1003|GT-P1010|GT-P3105|GT-P6210|GT-P6800|GT-P6810|GT-P7100|GT-P7300|GT-P7310|GT-P7500|GT-P7510|SCH-I800|SCH-I815|SCH-I905|SGH-I957|SGH-I987|SGH-T849|SGH-T859|SGH-T869|SPH-P100|GT-P3100|GT-P3108|GT-P3110|GT-P5100|GT-P5110|GT-P6200|GT-P7320|GT-P7511|GT-N8000|GT-P8510|SGH-I497|SPH-P500|SGH-T779|SCH-I705|SCH-I915|GT-N8013|GT-P3113|GT-P5113|GT-P8110|GT-N8010|GT-N8005|GT-N8020|GT-P1013|GT-P6201|GT-P7501|GT-N5100|GT-N5105|GT-N5110|SHV-E140K|SHV-E140L|SHV-E140S|SHV-E150S|SHV-E230K|SHV-E230L|SHV-E230S|SHW-M180K|SHW-M180L|SHW-M180S|SHW-M180W|SHW-M300W|SHW-M305W|SHW-M380K|SHW-M380S|SHW-M380W|SHW-M430W|SHW-M480K|SHW-M480S|SHW-M480W|SHW-M485W|SHW-M486W|SHW-M500W|GT-I9228|SCH-P739|SCH-I925|GT-I9200|GT-P5200|GT-P5210|GT-P5210X|SM-T311|SM-T310|SM-T310X|SM-T210|SM-T210R|SM-T211|SM-P600|SM-P601|SM-P605|SM-P900|SM-P901|SM-T217|SM-T217A|SM-T217S|SM-P6000|SM-T3100|SGH-I467|XE500|SM-T110|GT-P5220|GT-I9200X|GT-N5110X|GT-N5120|SM-P905|SM-T111|SM-T2105|SM-T315|SM-T320|SM-T320X|SM-T321|SM-T520|SM-T525|SM-T530NU|SM-T230NU|SM-T330NU|SM-T900|XE500T1C|SM-P605V|SM-P905V|SM-T337V|SM-T537V|SM-T707V|SM-T807V|SM-P600X|SM-P900X|SM-T210X|SM-T230|SM-T230X|SM-T325|GT-P7503|SM-T531|SM-T330|SM-T530|SM-T705|SM-T705C|SM-T535|SM-T331|SM-T800|SM-T700|SM-T537|SM-T807|SM-P907A|SM-T337A|SM-T537A|SM-T707A|SM-T807A|SM-T237|SM-T807P|SM-P607T|SM-T217T|SM-T337T|SM-T807T|SM-T116NQ|SM-P550|SM-T350|SM-T550|SM-T9000|SM-P9000|SM-T705Y|SM-T805|GT-P3113|SM-T710|SM-T810|SM-T360","Kindle":"Kindle|Silk.*Accelerated|Android.*\\b(KFOT|KFTT|KFJWI|KFJWA|KFOTE|KFSOWI|KFTHWI|KFTHWA|KFAPWI|KFAPWA|WFJWAE|KFSAWA|KFSAWI|KFASWI)\\b","SurfaceTablet":"Windows NT [0-9.]+; ARM;.*(Tablet|ARMBJS)","HPTablet":"HP Slate (7|8|10)|HP ElitePad 900|hp-tablet|EliteBook.*Touch|HP 8|Slate 21|HP SlateBook 10","AsusTablet":"^.*PadFone((?!Mobile).)*$|Transformer|TF101|TF101G|TF300T|TF300TG|TF300TL|TF700T|TF700KL|TF701T|TF810C|ME171|ME301T|ME302C|ME371MG|ME370T|ME372MG|ME172V|ME173X|ME400C|Slider SL101|\\bK00F\\b|\\bK00C\\b|\\bK00E\\b|\\bK00L\\b|TX201LA|ME176C|ME102A|\\bM80TA\\b|ME372CL|ME560CG|ME372CG|ME302KL| K010 | K017 |ME572C|ME103K|ME170C|ME171C|\\bME70C\\b|ME581C|ME581CL|ME8510C|ME181C","BlackBerryTablet":"PlayBook|RIM Tablet","HTCtablet":"HTC_Flyer_P512|HTC Flyer|HTC Jetstream|HTC-P715a|HTC EVO View 4G|PG41200|PG09410","MotorolaTablet":"xoom|sholest|MZ615|MZ605|MZ505|MZ601|MZ602|MZ603|MZ604|MZ606|MZ607|MZ608|MZ609|MZ615|MZ616|MZ617","NookTablet":"Android.*Nook|NookColor|nook browser|BNRV200|BNRV200A|BNTV250|BNTV250A|BNTV400|BNTV600|LogicPD Zoom2","AcerTablet":"Android.*; \\b(A100|A101|A110|A200|A210|A211|A500|A501|A510|A511|A700|A701|W500|W500P|W501|W501P|W510|W511|W700|G100|G100W|B1-A71|B1-710|B1-711|A1-810|A1-811|A1-830)\\b|W3-810|\\bA3-A10\\b|\\bA3-A11\\b","ToshibaTablet":"Android.*(AT100|AT105|AT200|AT205|AT270|AT275|AT300|AT305|AT1S5|AT500|AT570|AT700|AT830)|TOSHIBA.*FOLIO","LGTablet":"\\bL-06C|LG-V909|LG-V900|LG-V700|LG-V510|LG-V500|LG-V410|LG-V400|LG-VK810\\b","FujitsuTablet":"Android.*\\b(F-01D|F-02F|F-05E|F-10D|M532|Q572)\\b","PrestigioTablet":"PMP3170B|PMP3270B|PMP3470B|PMP7170B|PMP3370B|PMP3570C|PMP5870C|PMP3670B|PMP5570C|PMP5770D|PMP3970B|PMP3870C|PMP5580C|PMP5880D|PMP5780D|PMP5588C|PMP7280C|PMP7280C3G|PMP7280|PMP7880D|PMP5597D|PMP5597|PMP7100D|PER3464|PER3274|PER3574|PER3884|PER5274|PER5474|PMP5097CPRO|PMP5097|PMP7380D|PMP5297C|PMP5297C_QUAD|PMP812E|PMP812E3G|PMP812F|PMP810E|PMP880TD|PMT3017|PMT3037|PMT3047|PMT3057|PMT7008|PMT5887|PMT5001|PMT5002","LenovoTablet":"Idea(Tab|Pad)( A1|A10| K1|)|ThinkPad([ ]+)?Tablet|Lenovo.*(S2109|S2110|S5000|S6000|K3011|A3000|A3500|A1000|A2107|A2109|A1107|A5500|A7600|B6000|B8000|B8080)(-|)(FL|F|HV|H|)","DellTablet":"Venue 11|Venue 8|Venue 7|Dell Streak 10|Dell Streak 7","YarvikTablet":"Android.*\\b(TAB210|TAB211|TAB224|TAB250|TAB260|TAB264|TAB310|TAB360|TAB364|TAB410|TAB411|TAB420|TAB424|TAB450|TAB460|TAB461|TAB464|TAB465|TAB467|TAB468|TAB07-100|TAB07-101|TAB07-150|TAB07-151|TAB07-152|TAB07-200|TAB07-201-3G|TAB07-210|TAB07-211|TAB07-212|TAB07-214|TAB07-220|TAB07-400|TAB07-485|TAB08-150|TAB08-200|TAB08-201-3G|TAB08-201-30|TAB09-100|TAB09-211|TAB09-410|TAB10-150|TAB10-201|TAB10-211|TAB10-400|TAB10-410|TAB13-201|TAB274EUK|TAB275EUK|TAB374EUK|TAB462EUK|TAB474EUK|TAB9-200)\\b","MedionTablet":"Android.*\\bOYO\\b|LIFE.*(P9212|P9514|P9516|S9512)|LIFETAB","ArnovaTablet":"AN10G2|AN7bG3|AN7fG3|AN8G3|AN8cG3|AN7G3|AN9G3|AN7dG3|AN7dG3ST|AN7dG3ChildPad|AN10bG3|AN10bG3DT|AN9G2","IntensoTablet":"INM8002KP|INM1010FP|INM805ND|Intenso Tab|TAB1004","IRUTablet":"M702pro","MegafonTablet":"MegaFon V9|\\bZTE V9\\b|Android.*\\bMT7A\\b","EbodaTablet":"E-Boda (Supreme|Impresspeed|Izzycomm|Essential)","AllViewTablet":"Allview.*(Viva|Alldro|City|Speed|All TV|Frenzy|Quasar|Shine|TX1|AX1|AX2)","ArchosTablet":"\\b(101G9|80G9|A101IT)\\b|Qilive 97R|Archos5|\\bARCHOS (70|79|80|90|97|101|FAMILYPAD|)(b|)(G10| Cobalt| TITANIUM(HD|)| Xenon| Neon|XSK| 2| XS 2| PLATINUM| CARBON|GAMEPAD)\\b","AinolTablet":"NOVO7|NOVO8|NOVO10|Novo7Aurora|Novo7Basic|NOVO7PALADIN|novo9-Spark","SonyTablet":"Sony.*Tablet|Xperia Tablet|Sony Tablet S|SO-03E|SGPT12|SGPT13|SGPT114|SGPT121|SGPT122|SGPT123|SGPT111|SGPT112|SGPT113|SGPT131|SGPT132|SGPT133|SGPT211|SGPT212|SGPT213|SGP311|SGP312|SGP321|EBRD1101|EBRD1102|EBRD1201|SGP351|SGP341|SGP511|SGP512|SGP521|SGP541|SGP551|SGP621|SGP612|SOT31","PhilipsTablet":"\\b(PI2010|PI3000|PI3100|PI3105|PI3110|PI3205|PI3210|PI3900|PI4010|PI7000|PI7100)\\b","CubeTablet":"Android.*(K8GT|U9GT|U10GT|U16GT|U17GT|U18GT|U19GT|U20GT|U23GT|U30GT)|CUBE U8GT","CobyTablet":"MID1042|MID1045|MID1125|MID1126|MID7012|MID7014|MID7015|MID7034|MID7035|MID7036|MID7042|MID7048|MID7127|MID8042|MID8048|MID8127|MID9042|MID9740|MID9742|MID7022|MID7010","MIDTablet":"M9701|M9000|M9100|M806|M1052|M806|T703|MID701|MID713|MID710|MID727|MID760|MID830|MID728|MID933|MID125|MID810|MID732|MID120|MID930|MID800|MID731|MID900|MID100|MID820|MID735|MID980|MID130|MID833|MID737|MID960|MID135|MID860|MID736|MID140|MID930|MID835|MID733","MSITablet":"MSI \\b(Primo 73K|Primo 73L|Primo 81L|Primo 77|Primo 93|Primo 75|Primo 76|Primo 73|Primo 81|Primo 91|Primo 90|Enjoy 71|Enjoy 7|Enjoy 10)\\b","SMiTTablet":"Android.*(\\bMID\\b|MID-560|MTV-T1200|MTV-PND531|MTV-P1101|MTV-PND530)","RockChipTablet":"Android.*(RK2818|RK2808A|RK2918|RK3066)|RK2738|RK2808A","FlyTablet":"IQ310|Fly Vision","bqTablet":"Android.*(bq)?.*(Elcano|Curie|Edison|Maxwell|Kepler|Pascal|Tesla|Hypatia|Platon|Newton|Livingstone|Cervantes|Avant|Aquaris E10)|Maxwell.*Lite|Maxwell.*Plus","HuaweiTablet":"MediaPad|MediaPad 7 Youth|IDEOS S7|S7-201c|S7-202u|S7-101|S7-103|S7-104|S7-105|S7-106|S7-201|S7-Slim","NecTablet":"\\bN-06D|\\bN-08D","PantechTablet":"Pantech.*P4100","BronchoTablet":"Broncho.*(N701|N708|N802|a710)","VersusTablet":"TOUCHPAD.*[78910]|\\bTOUCHTAB\\b","ZyncTablet":"z1000|Z99 2G|z99|z930|z999|z990|z909|Z919|z900","PositivoTablet":"TB07STA|TB10STA|TB07FTA|TB10FTA","NabiTablet":"Android.*\\bNabi","KoboTablet":"Kobo Touch|\\bK080\\b|\\bVox\\b Build|\\bArc\\b Build","DanewTablet":"DSlide.*\\b(700|701R|702|703R|704|802|970|971|972|973|974|1010|1012)\\b","TexetTablet":"NaviPad|TB-772A|TM-7045|TM-7055|TM-9750|TM-7016|TM-7024|TM-7026|TM-7041|TM-7043|TM-7047|TM-8041|TM-9741|TM-9747|TM-9748|TM-9751|TM-7022|TM-7021|TM-7020|TM-7011|TM-7010|TM-7023|TM-7025|TM-7037W|TM-7038W|TM-7027W|TM-9720|TM-9725|TM-9737W|TM-1020|TM-9738W|TM-9740|TM-9743W|TB-807A|TB-771A|TB-727A|TB-725A|TB-719A|TB-823A|TB-805A|TB-723A|TB-715A|TB-707A|TB-705A|TB-709A|TB-711A|TB-890HD|TB-880HD|TB-790HD|TB-780HD|TB-770HD|TB-721HD|TB-710HD|TB-434HD|TB-860HD|TB-840HD|TB-760HD|TB-750HD|TB-740HD|TB-730HD|TB-722HD|TB-720HD|TB-700HD|TB-500HD|TB-470HD|TB-431HD|TB-430HD|TB-506|TB-504|TB-446|TB-436|TB-416|TB-146SE|TB-126SE","PlaystationTablet":"Playstation.*(Portable|Vita)","TrekstorTablet":"ST10416-1|VT10416-1|ST70408-1|ST702xx-1|ST702xx-2|ST80208|ST97216|ST70104-2|VT10416-2|ST10216-2A|SurfTab","PyleAudioTablet":"\\b(PTBL10CEU|PTBL10C|PTBL72BC|PTBL72BCEU|PTBL7CEU|PTBL7C|PTBL92BC|PTBL92BCEU|PTBL9CEU|PTBL9CUK|PTBL9C)\\b","AdvanTablet":"Android.* \\b(E3A|T3X|T5C|T5B|T3E|T3C|T3B|T1J|T1F|T2A|T1H|T1i|E1C|T1-E|T5-A|T4|E1-B|T2Ci|T1-B|T1-D|O1-A|E1-A|T1-A|T3A|T4i)\\b ","DanyTechTablet":"Genius Tab G3|Genius Tab S2|Genius Tab Q3|Genius Tab G4|Genius Tab Q4|Genius Tab G-II|Genius TAB GII|Genius TAB GIII|Genius Tab S1","GalapadTablet":"Android.*\\bG1\\b","MicromaxTablet":"Funbook|Micromax.*\\b(P250|P560|P360|P362|P600|P300|P350|P500|P275)\\b","KarbonnTablet":"Android.*\\b(A39|A37|A34|ST8|ST10|ST7|Smart Tab3|Smart Tab2)\\b","AllFineTablet":"Fine7 Genius|Fine7 Shine|Fine7 Air|Fine8 Style|Fine9 More|Fine10 Joy|Fine11 Wide","PROSCANTablet":"\\b(PEM63|PLT1023G|PLT1041|PLT1044|PLT1044G|PLT1091|PLT4311|PLT4311PL|PLT4315|PLT7030|PLT7033|PLT7033D|PLT7035|PLT7035D|PLT7044K|PLT7045K|PLT7045KB|PLT7071KG|PLT7072|PLT7223G|PLT7225G|PLT7777G|PLT7810K|PLT7849G|PLT7851G|PLT7852G|PLT8015|PLT8031|PLT8034|PLT8036|PLT8080K|PLT8082|PLT8088|PLT8223G|PLT8234G|PLT8235G|PLT8816K|PLT9011|PLT9045K|PLT9233G|PLT9735|PLT9760G|PLT9770G)\\b","YONESTablet":"BQ1078|BC1003|BC1077|RK9702|BC9730|BC9001|IT9001|BC7008|BC7010|BC708|BC728|BC7012|BC7030|BC7027|BC7026","ChangJiaTablet":"TPC7102|TPC7103|TPC7105|TPC7106|TPC7107|TPC7201|TPC7203|TPC7205|TPC7210|TPC7708|TPC7709|TPC7712|TPC7110|TPC8101|TPC8103|TPC8105|TPC8106|TPC8203|TPC8205|TPC8503|TPC9106|TPC9701|TPC97101|TPC97103|TPC97105|TPC97106|TPC97111|TPC97113|TPC97203|TPC97603|TPC97809|TPC97205|TPC10101|TPC10103|TPC10106|TPC10111|TPC10203|TPC10205|TPC10503","GUTablet":"TX-A1301|TX-M9002|Q702|kf026","PointOfViewTablet":"TAB-P506|TAB-navi-7-3G-M|TAB-P517|TAB-P-527|TAB-P701|TAB-P703|TAB-P721|TAB-P731N|TAB-P741|TAB-P825|TAB-P905|TAB-P925|TAB-PR945|TAB-PL1015|TAB-P1025|TAB-PI1045|TAB-P1325|TAB-PROTAB[0-9]+|TAB-PROTAB25|TAB-PROTAB26|TAB-PROTAB27|TAB-PROTAB26XL|TAB-PROTAB2-IPS9|TAB-PROTAB30-IPS9|TAB-PROTAB25XXL|TAB-PROTAB26-IPS10|TAB-PROTAB30-IPS10","OvermaxTablet":"OV-(SteelCore|NewBase|Basecore|Baseone|Exellen|Quattor|EduTab|Solution|ACTION|BasicTab|TeddyTab|MagicTab|Stream|TB-08|TB-09)","HCLTablet":"HCL.*Tablet|Connect-3G-2.0|Connect-2G-2.0|ME Tablet U1|ME Tablet U2|ME Tablet G1|ME Tablet X1|ME Tablet Y2|ME Tablet Sync","DPSTablet":"DPS Dream 9|DPS Dual 7","VistureTablet":"V97 HD|i75 3G|Visture V4( HD)?|Visture V5( HD)?|Visture V10","CrestaTablet":"CTP(-)?810|CTP(-)?818|CTP(-)?828|CTP(-)?838|CTP(-)?888|CTP(-)?978|CTP(-)?980|CTP(-)?987|CTP(-)?988|CTP(-)?989","MediatekTablet":"\\bMT8125|MT8389|MT8135|MT8377\\b","ConcordeTablet":"Concorde([ ]+)?Tab|ConCorde ReadMan","GoCleverTablet":"GOCLEVER TAB|A7GOCLEVER|M1042|M7841|M742|R1042BK|R1041|TAB A975|TAB A7842|TAB A741|TAB A741L|TAB M723G|TAB M721|TAB A1021|TAB I921|TAB R721|TAB I720|TAB T76|TAB R70|TAB R76.2|TAB R106|TAB R83.2|TAB M813G|TAB I721|GCTA722|TAB I70|TAB I71|TAB S73|TAB R73|TAB R74|TAB R93|TAB R75|TAB R76.1|TAB A73|TAB A93|TAB A93.2|TAB T72|TAB R83|TAB R974|TAB R973|TAB A101|TAB A103|TAB A104|TAB A104.2|R105BK|M713G|A972BK|TAB A971|TAB R974.2|TAB R104|TAB R83.3|TAB A1042","ModecomTablet":"FreeTAB 9000|FreeTAB 7.4|FreeTAB 7004|FreeTAB 7800|FreeTAB 2096|FreeTAB 7.5|FreeTAB 1014|FreeTAB 1001 |FreeTAB 8001|FreeTAB 9706|FreeTAB 9702|FreeTAB 7003|FreeTAB 7002|FreeTAB 1002|FreeTAB 7801|FreeTAB 1331|FreeTAB 1004|FreeTAB 8002|FreeTAB 8014|FreeTAB 9704|FreeTAB 1003","VoninoTablet":"\\b(Argus[ _]?S|Diamond[ _]?79HD|Emerald[ _]?78E|Luna[ _]?70C|Onyx[ _]?S|Onyx[ _]?Z|Orin[ _]?HD|Orin[ _]?S|Otis[ _]?S|SpeedStar[ _]?S|Magnet[ _]?M9|Primus[ _]?94[ _]?3G|Primus[ _]?94HD|Primus[ _]?QS|Android.*\\bQ8\\b|Sirius[ _]?EVO[ _]?QS|Sirius[ _]?QS|Spirit[ _]?S)\\b","ECSTablet":"V07OT2|TM105A|S10OT1|TR10CS1","StorexTablet":"eZee[_']?(Tab|Go)[0-9]+|TabLC7|Looney Tunes Tab","VodafoneTablet":"SmartTab([ ]+)?[0-9]+|SmartTabII10|SmartTabII7","EssentielBTablet":"Smart[ ']?TAB[ ]+?[0-9]+|Family[ ']?TAB2","RossMoorTablet":"RM-790|RM-997|RMD-878G|RMD-974R|RMT-705A|RMT-701|RME-601|RMT-501|RMT-711","iMobileTablet":"i-mobile i-note","TolinoTablet":"tolino tab [0-9.]+|tolino shine","AudioSonicTablet":"\\bC-22Q|T7-QC|T-17B|T-17P\\b","AMPETablet":"Android.* A78 ","SkkTablet":"Android.* (SKYPAD|PHOENIX|CYCLOPS)","TecnoTablet":"TECNO P9","JXDTablet":"Android.*\\b(F3000|A3300|JXD5000|JXD3000|JXD2000|JXD300B|JXD300|S5800|S7800|S602b|S5110b|S7300|S5300|S602|S603|S5100|S5110|S601|S7100a|P3000F|P3000s|P101|P200s|P1000m|P200m|P9100|P1000s|S6600b|S908|P1000|P300|S18|S6600|S9100)\\b","iJoyTablet":"Tablet (Spirit 7|Essentia|Galatea|Fusion|Onix 7|Landa|Titan|Scooby|Deox|Stella|Themis|Argon|Unique 7|Sygnus|Hexen|Finity 7|Cream|Cream X2|Jade|Neon 7|Neron 7|Kandy|Scape|Saphyr 7|Rebel|Biox|Rebel|Rebel 8GB|Myst|Draco 7|Myst|Tab7-004|Myst|Tadeo Jones|Tablet Boing|Arrow|Draco Dual Cam|Aurix|Mint|Amity|Revolution|Finity 9|Neon 9|T9w|Amity 4GB Dual Cam|Stone 4GB|Stone 8GB|Andromeda|Silken|X2|Andromeda II|Halley|Flame|Saphyr 9,7|Touch 8|Planet|Triton|Unique 10|Hexen 10|Memphis 4GB|Memphis 8GB|Onix 10)","FX2Tablet":"FX2 PAD7|FX2 PAD10","XoroTablet":"KidsPAD 701|PAD[ ]?712|PAD[ ]?714|PAD[ ]?716|PAD[ ]?717|PAD[ ]?718|PAD[ ]?720|PAD[ ]?721|PAD[ ]?722|PAD[ ]?790|PAD[ ]?792|PAD[ ]?900|PAD[ ]?9715D|PAD[ ]?9716DR|PAD[ ]?9718DR|PAD[ ]?9719QR|PAD[ ]?9720QR|TelePAD1030|Telepad1032|TelePAD730|TelePAD731|TelePAD732|TelePAD735Q|TelePAD830|TelePAD9730|TelePAD795|MegaPAD 1331|MegaPAD 1851|MegaPAD 2151","ViewsonicTablet":"ViewPad 10pi|ViewPad 10e|ViewPad 10s|ViewPad E72|ViewPad7|ViewPad E100|ViewPad 7e|ViewSonic VB733|VB100a","OdysTablet":"LOOX|XENO10|ODYS[ -](Space|EVO|Xpress|NOON)|\\bXELIO\\b|Xelio10Pro|XELIO7PHONETAB|XELIO10EXTREME|XELIOPT2|NEO_QUAD10","CaptivaTablet":"CAPTIVA PAD","IconbitTablet":"NetTAB|NT-3702|NT-3702S|NT-3702S|NT-3603P|NT-3603P|NT-0704S|NT-0704S|NT-3805C|NT-3805C|NT-0806C|NT-0806C|NT-0909T|NT-0909T|NT-0907S|NT-0907S|NT-0902S|NT-0902S","TeclastTablet":"T98 4G|\\bP80\\b|\\bX90HD\\b|X98 Air|X98 Air 3G|\\bX89\\b|P80 3G|\\bX80h\\b|P98 Air|\\bX89HD\\b|P98 3G|\\bP90HD\\b|P89 3G|X98 3G|\\bP70h\\b|P79HD 3G|G18d 3G|\\bP79HD\\b|\\bP89s\\b|\\bA88\\b|\\bP10HD\\b|\\bP19HD\\b|G18 3G|\\bP78HD\\b|\\bA78\\b|\\bP75\\b|G17s 3G|G17h 3G|\\bP85t\\b|\\bP90\\b|\\bP11\\b|\\bP98t\\b|\\bP98HD\\b|\\bG18d\\b|\\bP85s\\b|\\bP11HD\\b|\\bP88s\\b|\\bA80HD\\b|\\bA80se\\b|\\bA10h\\b|\\bP89\\b|\\bP78s\\b|\\bG18\\b|\\bP85\\b|\\bA70h\\b|\\bA70\\b|\\bG17\\b|\\bP18\\b|\\bA80s\\b|\\bA11s\\b|\\bP88HD\\b|\\bA80h\\b|\\bP76s\\b|\\bP76h\\b|\\bP98\\b|\\bA10HD\\b|\\bP78\\b|\\bP88\\b|\\bA11\\b|\\bA10t\\b|\\bP76a\\b|\\bP76t\\b|\\bP76e\\b|\\bP85HD\\b|\\bP85a\\b|\\bP86\\b|\\bP75HD\\b|\\bP76v\\b|\\bA12\\b|\\bP75a\\b|\\bA15\\b|\\bP76Ti\\b|\\bP81HD\\b|\\bA10\\b|\\bT760VE\\b|\\bT720HD\\b|\\bP76\\b|\\bP73\\b|\\bP71\\b|\\bP72\\b|\\bT720SE\\b|\\bC520Ti\\b|\\bT760\\b|\\bT720VE\\b|T720-3GE|T720-WiFi","OndaTablet":"\\b(V975i|Vi30|VX530|V701|Vi60|V701s|Vi50|V801s|V719|Vx610w|VX610W|V819i|Vi10|VX580W|Vi10|V711s|V813|V811|V820w|V820|Vi20|V711|VI30W|V712|V891w|V972|V819w|V820w|Vi60|V820w|V711|V813s|V801|V819|V975s|V801|V819|V819|V818|V811|V712|V975m|V101w|V961w|V812|V818|V971|V971s|V919|V989|V116w|V102w|V973|Vi40)\\b[\\s]+","JaytechTablet":"TPC-PA762","BlaupunktTablet":"Endeavour 800NG|Endeavour 1010","DigmaTablet":"\\b(iDx10|iDx9|iDx8|iDx7|iDxD7|iDxD8|iDsQ8|iDsQ7|iDsQ8|iDsD10|iDnD7|3TS804H|iDsQ11|iDj7|iDs10)\\b","EvolioTablet":"ARIA_Mini_wifi|Aria[ _]Mini|Evolio X10|Evolio X7|Evolio X8|\\bEvotab\\b|\\bNeura\\b","LavaTablet":"QPAD E704|\\bIvoryS\\b|E-TAB IVORY|\\bE-TAB\\b","CelkonTablet":"CT695|CT888|CT[\\s]?910|CT7 Tab|CT9 Tab|CT3 Tab|CT2 Tab|CT1 Tab|C820|C720|\\bCT-1\\b","WolderTablet":"miTab \\b(DIAMOND|SPACE|BROOKLYN|NEO|FLY|MANHATTAN|FUNK|EVOLUTION|SKY|GOCAR|IRON|GENIUS|POP|MINT|EPSILON|BROADWAY|JUMP|HOP|LEGEND|NEW AGE|LINE|ADVANCE|FEEL|FOLLOW|LIKE|LINK|LIVE|THINK|FREEDOM|CHICAGO|CLEVELAND|BALTIMORE-GH|IOWA|BOSTON|SEATTLE|PHOENIX|DALLAS|IN 101|MasterChef)\\b","MiTablet":"\\bMI PAD\\b|\\bHM NOTE 1W\\b","NibiruTablet":"Nibiru M1|Nibiru Jupiter One","NexoTablet":"NEXO NOVA|NEXO 10|NEXO AVIO|NEXO FREE|NEXO GO|NEXO EVO|NEXO 3G|NEXO SMART|NEXO KIDDO|NEXO MOBI","LeaderTablet":"TBLT10Q|TBLT10I|TBL-10WDKB|TBL-10WDKBO2013|TBL-W230V2|TBL-W450|TBL-W500|SV572|TBLT7I|TBA-AC7-8G|TBLT79|TBL-8W16|TBL-10W32|TBL-10WKB|TBL-W100","UbislateTablet":"UbiSlate[\\s]?7C","PocketBookTablet":"Pocketbook","Hudl":"Hudl HT7S3","TelstraTablet":"T-Hub2","GenericTablet":"Android.*\\b97D\\b|Tablet(?!.*PC)|BNTV250A|MID-WCDMA|LogicPD Zoom2|\\bA7EB\\b|CatNova8|A1_07|CT704|CT1002|\\bM721\\b|rk30sdk|\\bEVOTAB\\b|M758A|ET904|ALUMIUM10|Smartfren Tab|Endeavour 1010|Tablet-PC-4|Tagi Tab|\\bM6pro\\b|CT1020W|arc 10HD|\\bJolla\\b|\\bTP750\\b"},"browsers":{"Chrome":"\\bCrMo\\b|CriOS|Android.*Chrome\/[.0-9]* (Mobile)?","Dolfin":"\\bDolfin\\b","Opera":"Opera.*Mini|Opera.*Mobi|Android.*Opera|Mobile.*OPR\/[0-9.]+|Coast\/[0-9.]+","Skyfire":"Skyfire","IE":"IEMobile|MSIEMobile","Firefox":"fennec|firefox.*maemo|(Mobile|Tablet).*Firefox|Firefox.*Mobile","Bolt":"bolt","TeaShark":"teashark","Blazer":"Blazer","Safari":"Version.*Mobile.*Safari|Safari.*Mobile|MobileSafari","Tizen":"Tizen","UCBrowser":"UC.*Browser|UCWEB","baiduboxapp":"baiduboxapp","baidubrowser":"baidubrowser","DiigoBrowser":"DiigoBrowser","Puffin":"Puffin","Mercury":"\\bMercury\\b","ObigoBrowser":"Obigo","NetFront":"NF-Browser","GenericBrowser":"NokiaBrowser|OviBrowser|OneBrowser|TwonkyBeamBrowser|SEMC.*Browser|FlyFlow|Minimo|NetFront|Novarra-Vision|MQQBrowser|MicroMessenger"},"os":{"AndroidOS":"Android","BlackBerryOS":"blackberry|\\bBB10\\b|rim tablet os","PalmOS":"PalmOS|avantgo|blazer|elaine|hiptop|palm|plucker|xiino","SymbianOS":"Symbian|SymbOS|Series60|Series40|SYB-[0-9]+|\\bS60\\b","WindowsMobileOS":"Windows CE.*(PPC|Smartphone|Mobile|[0-9]{3}x[0-9]{3})|Window Mobile|Windows Phone [0-9.]+|WCE;","WindowsPhoneOS":"Windows Phone 8.1|Windows Phone 8.0|Windows Phone OS|XBLWP7|ZuneWP7|Windows NT 6.[23]; ARM;","iOS":"\\biPhone.*Mobile|\\biPod|\\biPad","MeeGoOS":"MeeGo","MaemoOS":"Maemo","JavaOS":"J2ME\/|\\bMIDP\\b|\\bCLDC\\b","webOS":"webOS|hpwOS","badaOS":"\\bBada\\b","BREWOS":"BREW"},"utilities":{"Bot":"Googlebot|facebookexternalhit|AdsBot-Google|Google Keyword Suggestion|Facebot|YandexBot|bingbot|ia_archiver|AhrefsBot|Ezooms|GSLFbot|WBSearchBot|Twitterbot|TweetmemeBot|Twikle|PaperLiBot|Wotbox|UnwindFetchor|Exabot|MJ12bot|YandexImages|TurnitinBot|Pingdom","MobileBot":"Googlebot-Mobile|AdsBot-Google-Mobile|YahooSeeker\/M1A1-R2D2","DesktopMode":"WPDesktop","TV":"SonyDTV|HbbTV","WebKit":"(webkit)[ \/]([\\w.]+)","Console":"\\b(Nintendo|Nintendo WiiU|Nintendo 3DS|PLAYSTATION|Xbox)\\b","Watch":"SM-V700"}}}
\ No newline at end of file
diff --git a/htdocs/includes/mobiledetect/mobiledetectlib/Mobile_Detect.php b/htdocs/includes/mobiledetect/mobiledetectlib/Mobile_Detect.php
index b6eb0da21b3..fe55d7fedc9 100644
--- a/htdocs/includes/mobiledetect/mobiledetectlib/Mobile_Detect.php
+++ b/htdocs/includes/mobiledetect/mobiledetectlib/Mobile_Detect.php
@@ -8,7 +8,9 @@
  * Mobile_Detect is a lightweight PHP class for detecting mobile devices (including tablets).
  * It uses the User-Agent string combined with specific HTTP headers to detect the mobile environment.
  *
- * @author      Current authors: Serban Ghita <serbanghita@gmail.com>, Nick Ilyin <nick.ilyin@gmail.com>
+ * @author      Current authors: Serban Ghita <serbanghita@gmail.com>
+ *                               Nick Ilyin <nick.ilyin@gmail.com>
+ *
  *              Original author: Victor Stanciu <vic.stanciu@gmail.com>
  *
  * @license     Code and contributions have 'MIT License'
@@ -20,7 +22,7 @@
  *              README:       https://github.com/serbanghita/Mobile-Detect/blob/master/README.md
  *              HOWTO:        https://github.com/serbanghita/Mobile-Detect/wiki/Code-examples
  *
- * @version     2.8.3
+ * @version     2.8.17
  */
 
 class Mobile_Detect
@@ -64,7 +66,7 @@ class Mobile_Detect
     /**
      * Stores the version number of the current release.
      */
-    const VERSION                   = '2.8.3';
+    const VERSION                   = '2.8.17';
 
     /**
      * A type for the version() method indicating a string return value.
@@ -76,6 +78,12 @@ class Mobile_Detect
      */
     const VERSION_TYPE_FLOAT        = 'float';
 
+    /**
+     * A cache for resolved matches
+     * @var array
+     */
+    protected $cache = array();
+
     /**
      * The User-Agent HTTP header is stored in here.
      * @var string
@@ -88,6 +96,26 @@ class Mobile_Detect
      */
     protected $httpHeaders = array();
 
+    /**
+     * CloudFront headers. E.g. CloudFront-Is-Desktop-Viewer, CloudFront-Is-Mobile-Viewer & CloudFront-Is-Tablet-Viewer.
+     * @var array
+     */
+    protected $cloudfrontHeaders = array();
+
+    /**
+     * The matching Regex.
+     * This is good for debug.
+     * @var string
+     */
+    protected $matchingRegex = null;
+
+    /**
+     * The matches extracted from the regex expression.
+     * This is good for debug.
+     * @var string
+     */
+    protected $matchesArray = null;
+
     /**
      * The detection type, using self::DETECTION_TYPE_MOBILE or self::DETECTION_TYPE_EXTENDED.
      *
@@ -127,7 +155,7 @@ class Mobile_Detect
             'HTTP_UA_OS'                   => null,
             // Reported by Verizon, Vodafone proxy system.
             'HTTP_X_MOBILE_GATEWAY'        => null,
-            // Seend this on HTC Sensation. @ref: SensationXE_Beats_Z715e.
+            // Seen this on HTC Sensation. SensationXE_Beats_Z715e.
             'HTTP_X_ATT_DEVICEID'          => null,
             // Seen this on a HTC.
             'HTTP_UA_CPU'                  => array('matches' => array('ARM')),
@@ -139,33 +167,45 @@ class Mobile_Detect
      * @var array
      */
     protected static $phoneDevices = array(
-        'iPhone'        => '\biPhone.*(Mobile|PhoneGap)|\biPod', // |\biTunes
+        'iPhone'        => '\biPhone\b|\biPod\b', // |\biTunes
         'BlackBerry'    => 'BlackBerry|\bBB10\b|rim[0-9]+',
         'HTC'           => 'HTC|HTC.*(Sensation|Evo|Vision|Explorer|6800|8100|8900|A7272|S510e|C110e|Legend|Desire|T8282)|APX515CKT|Qtek9090|APA9292KT|HD_mini|Sensation.*Z710e|PG86100|Z715e|Desire.*(A8181|HD)|ADR6200|ADR6400L|ADR6425|001HT|Inspire 4G|Android.*\bEVO\b|T-Mobile G1|Z520m',
-        'Nexus'         => 'Nexus One|Nexus S|Galaxy.*Nexus|Android.*Nexus.*Mobile',
+        'Nexus'         => 'Nexus One|Nexus S|Galaxy.*Nexus|Android.*Nexus.*Mobile|Nexus 4|Nexus 5|Nexus 6',
         // @todo: Is 'Dell Streak' a tablet or a phone? ;)
         'Dell'          => 'Dell.*Streak|Dell.*Aero|Dell.*Venue|DELL.*Venue Pro|Dell Flash|Dell Smoke|Dell Mini 3iX|XCD28|XCD35|\b001DL\b|\b101DL\b|\bGS01\b',
-        'Motorola'      => 'Motorola|DROIDX|DROID BIONIC|\bDroid\b.*Build|Android.*Xoom|HRI39|MOT-|A1260|A1680|A555|A853|A855|A953|A955|A956|Motorola.*ELECTRIFY|Motorola.*i1|i867|i940|MB200|MB300|MB501|MB502|MB508|MB511|MB520|MB525|MB526|MB611|MB612|MB632|MB810|MB855|MB860|MB861|MB865|MB870|ME501|ME502|ME511|ME525|ME600|ME632|ME722|ME811|ME860|ME863|ME865|MT620|MT710|MT716|MT720|MT810|MT870|MT917|Motorola.*TITANIUM|WX435|WX445|XT300|XT301|XT311|XT316|XT317|XT319|XT320|XT390|XT502|XT530|XT531|XT532|XT535|XT603|XT610|XT611|XT615|XT681|XT701|XT702|XT711|XT720|XT800|XT806|XT860|XT862|XT875|XT882|XT883|XT894|XT901|XT907|XT909|XT910|XT912|XT928|XT926|XT915|XT919|XT925',
-        'Samsung'       => 'Samsung|SGH-I337|BGT-S5230|GT-B2100|GT-B2700|GT-B2710|GT-B3210|GT-B3310|GT-B3410|GT-B3730|GT-B3740|GT-B5510|GT-B5512|GT-B5722|GT-B6520|GT-B7300|GT-B7320|GT-B7330|GT-B7350|GT-B7510|GT-B7722|GT-B7800|GT-C3010|GT-C3011|GT-C3060|GT-C3200|GT-C3212|GT-C3212I|GT-C3262|GT-C3222|GT-C3300|GT-C3300K|GT-C3303|GT-C3303K|GT-C3310|GT-C3322|GT-C3330|GT-C3350|GT-C3500|GT-C3510|GT-C3530|GT-C3630|GT-C3780|GT-C5010|GT-C5212|GT-C6620|GT-C6625|GT-C6712|GT-E1050|GT-E1070|GT-E1075|GT-E1080|GT-E1081|GT-E1085|GT-E1087|GT-E1100|GT-E1107|GT-E1110|GT-E1120|GT-E1125|GT-E1130|GT-E1160|GT-E1170|GT-E1175|GT-E1180|GT-E1182|GT-E1200|GT-E1210|GT-E1225|GT-E1230|GT-E1390|GT-E2100|GT-E2120|GT-E2121|GT-E2152|GT-E2220|GT-E2222|GT-E2230|GT-E2232|GT-E2250|GT-E2370|GT-E2550|GT-E2652|GT-E3210|GT-E3213|GT-I5500|GT-I5503|GT-I5700|GT-I5800|GT-I5801|GT-I6410|GT-I6420|GT-I7110|GT-I7410|GT-I7500|GT-I8000|GT-I8150|GT-I8160|GT-I8190|GT-I8320|GT-I8330|GT-I8350|GT-I8530|GT-I8700|GT-I8703|GT-I8910|GT-I9000|GT-I9001|GT-I9003|GT-I9010|GT-I9020|GT-I9023|GT-I9070|GT-I9082|GT-I9100|GT-I9103|GT-I9220|GT-I9250|GT-I9300|GT-I9305|GT-I9500|GT-I9505|GT-M3510|GT-M5650|GT-M7500|GT-M7600|GT-M7603|GT-M8800|GT-M8910|GT-N7000|GT-S3110|GT-S3310|GT-S3350|GT-S3353|GT-S3370|GT-S3650|GT-S3653|GT-S3770|GT-S3850|GT-S5210|GT-S5220|GT-S5229|GT-S5230|GT-S5233|GT-S5250|GT-S5253|GT-S5260|GT-S5263|GT-S5270|GT-S5300|GT-S5330|GT-S5350|GT-S5360|GT-S5363|GT-S5369|GT-S5380|GT-S5380D|GT-S5560|GT-S5570|GT-S5600|GT-S5603|GT-S5610|GT-S5620|GT-S5660|GT-S5670|GT-S5690|GT-S5750|GT-S5780|GT-S5830|GT-S5839|GT-S6102|GT-S6500|GT-S7070|GT-S7200|GT-S7220|GT-S7230|GT-S7233|GT-S7250|GT-S7500|GT-S7530|GT-S7550|GT-S7562|GT-S7710|GT-S8000|GT-S8003|GT-S8500|GT-S8530|GT-S8600|SCH-A310|SCH-A530|SCH-A570|SCH-A610|SCH-A630|SCH-A650|SCH-A790|SCH-A795|SCH-A850|SCH-A870|SCH-A890|SCH-A930|SCH-A950|SCH-A970|SCH-A990|SCH-I100|SCH-I110|SCH-I400|SCH-I405|SCH-I500|SCH-I510|SCH-I515|SCH-I600|SCH-I730|SCH-I760|SCH-I770|SCH-I830|SCH-I910|SCH-I920|SCH-I959|SCH-LC11|SCH-N150|SCH-N300|SCH-R100|SCH-R300|SCH-R351|SCH-R400|SCH-R410|SCH-T300|SCH-U310|SCH-U320|SCH-U350|SCH-U360|SCH-U365|SCH-U370|SCH-U380|SCH-U410|SCH-U430|SCH-U450|SCH-U460|SCH-U470|SCH-U490|SCH-U540|SCH-U550|SCH-U620|SCH-U640|SCH-U650|SCH-U660|SCH-U700|SCH-U740|SCH-U750|SCH-U810|SCH-U820|SCH-U900|SCH-U940|SCH-U960|SCS-26UC|SGH-A107|SGH-A117|SGH-A127|SGH-A137|SGH-A157|SGH-A167|SGH-A177|SGH-A187|SGH-A197|SGH-A227|SGH-A237|SGH-A257|SGH-A437|SGH-A517|SGH-A597|SGH-A637|SGH-A657|SGH-A667|SGH-A687|SGH-A697|SGH-A707|SGH-A717|SGH-A727|SGH-A737|SGH-A747|SGH-A767|SGH-A777|SGH-A797|SGH-A817|SGH-A827|SGH-A837|SGH-A847|SGH-A867|SGH-A877|SGH-A887|SGH-A897|SGH-A927|SGH-B100|SGH-B130|SGH-B200|SGH-B220|SGH-C100|SGH-C110|SGH-C120|SGH-C130|SGH-C140|SGH-C160|SGH-C170|SGH-C180|SGH-C200|SGH-C207|SGH-C210|SGH-C225|SGH-C230|SGH-C417|SGH-C450|SGH-D307|SGH-D347|SGH-D357|SGH-D407|SGH-D415|SGH-D780|SGH-D807|SGH-D980|SGH-E105|SGH-E200|SGH-E315|SGH-E316|SGH-E317|SGH-E335|SGH-E590|SGH-E635|SGH-E715|SGH-E890|SGH-F300|SGH-F480|SGH-I200|SGH-I300|SGH-I320|SGH-I550|SGH-I577|SGH-I600|SGH-I607|SGH-I617|SGH-I627|SGH-I637|SGH-I677|SGH-I700|SGH-I717|SGH-I727|SGH-i747M|SGH-I777|SGH-I780|SGH-I827|SGH-I847|SGH-I857|SGH-I896|SGH-I897|SGH-I900|SGH-I907|SGH-I917|SGH-I927|SGH-I937|SGH-I997|SGH-J150|SGH-J200|SGH-L170|SGH-L700|SGH-M110|SGH-M150|SGH-M200|SGH-N105|SGH-N500|SGH-N600|SGH-N620|SGH-N625|SGH-N700|SGH-N710|SGH-P107|SGH-P207|SGH-P300|SGH-P310|SGH-P520|SGH-P735|SGH-P777|SGH-Q105|SGH-R210|SGH-R220|SGH-R225|SGH-S105|SGH-S307|SGH-T109|SGH-T119|SGH-T139|SGH-T209|SGH-T219|SGH-T229|SGH-T239|SGH-T249|SGH-T259|SGH-T309|SGH-T319|SGH-T329|SGH-T339|SGH-T349|SGH-T359|SGH-T369|SGH-T379|SGH-T409|SGH-T429|SGH-T439|SGH-T459|SGH-T469|SGH-T479|SGH-T499|SGH-T509|SGH-T519|SGH-T539|SGH-T559|SGH-T589|SGH-T609|SGH-T619|SGH-T629|SGH-T639|SGH-T659|SGH-T669|SGH-T679|SGH-T709|SGH-T719|SGH-T729|SGH-T739|SGH-T746|SGH-T749|SGH-T759|SGH-T769|SGH-T809|SGH-T819|SGH-T839|SGH-T919|SGH-T929|SGH-T939|SGH-T959|SGH-T989|SGH-U100|SGH-U200|SGH-U800|SGH-V205|SGH-V206|SGH-X100|SGH-X105|SGH-X120|SGH-X140|SGH-X426|SGH-X427|SGH-X475|SGH-X495|SGH-X497|SGH-X507|SGH-X600|SGH-X610|SGH-X620|SGH-X630|SGH-X700|SGH-X820|SGH-X890|SGH-Z130|SGH-Z150|SGH-Z170|SGH-ZX10|SGH-ZX20|SHW-M110|SPH-A120|SPH-A400|SPH-A420|SPH-A460|SPH-A500|SPH-A560|SPH-A600|SPH-A620|SPH-A660|SPH-A700|SPH-A740|SPH-A760|SPH-A790|SPH-A800|SPH-A820|SPH-A840|SPH-A880|SPH-A900|SPH-A940|SPH-A960|SPH-D600|SPH-D700|SPH-D710|SPH-D720|SPH-I300|SPH-I325|SPH-I330|SPH-I350|SPH-I500|SPH-I600|SPH-I700|SPH-L700|SPH-M100|SPH-M220|SPH-M240|SPH-M300|SPH-M305|SPH-M320|SPH-M330|SPH-M350|SPH-M360|SPH-M370|SPH-M380|SPH-M510|SPH-M540|SPH-M550|SPH-M560|SPH-M570|SPH-M580|SPH-M610|SPH-M620|SPH-M630|SPH-M800|SPH-M810|SPH-M850|SPH-M900|SPH-M910|SPH-M920|SPH-M930|SPH-N100|SPH-N200|SPH-N240|SPH-N300|SPH-N400|SPH-Z400|SWC-E100|SCH-i909|GT-N7100|GT-N7105|SCH-I535|SM-N900A|SGH-I317|SGH-T999L|GT-S5360B|GT-I8262|GT-S6802|GT-S6312|GT-S6310|GT-S5312|GT-S5310|GT-I9105|GT-I8510|GT-S6790N|SM-G7105|SM-N9005|GT-S5301|GT-I9295|GT-I9195|SM-C101|GT-S7392|GT-S7560|GT-B7610|GT-I5510|GT-S7582|GT-S7530E',
-        'LG'            => '\bLG\b;|LG[- ]?(C800|C900|E400|E610|E900|E-900|F160|F180K|F180L|F180S|730|855|L160|LS840|LS970|LU6200|MS690|MS695|MS770|MS840|MS870|MS910|P500|P700|P705|VM696|AS680|AS695|AX840|C729|E970|GS505|272|C395|E739BK|E960|L55C|L75C|LS696|LS860|P769BK|P350|P500|P509|P870|UN272|US730|VS840|VS950|LN272|LN510|LS670|LS855|LW690|MN270|MN510|P509|P769|P930|UN200|UN270|UN510|UN610|US670|US740|US760|UX265|UX840|VN271|VN530|VS660|VS700|VS740|VS750|VS910|VS920|VS930|VX9200|VX11000|AX840A|LW770|P506|P925|P999|E612|D955|D802)',
-        'Sony'          => 'SonyST|SonyLT|SonyEricsson|SonyEricssonLT15iv|LT18i|E10i|LT28h|LT26w|SonyEricssonMT27i',
+        'Motorola'      => 'Motorola|DROIDX|DROID BIONIC|\bDroid\b.*Build|Android.*Xoom|HRI39|MOT-|A1260|A1680|A555|A853|A855|A953|A955|A956|Motorola.*ELECTRIFY|Motorola.*i1|i867|i940|MB200|MB300|MB501|MB502|MB508|MB511|MB520|MB525|MB526|MB611|MB612|MB632|MB810|MB855|MB860|MB861|MB865|MB870|ME501|ME502|ME511|ME525|ME600|ME632|ME722|ME811|ME860|ME863|ME865|MT620|MT710|MT716|MT720|MT810|MT870|MT917|Motorola.*TITANIUM|WX435|WX445|XT300|XT301|XT311|XT316|XT317|XT319|XT320|XT390|XT502|XT530|XT531|XT532|XT535|XT603|XT610|XT611|XT615|XT681|XT701|XT702|XT711|XT720|XT800|XT806|XT860|XT862|XT875|XT882|XT883|XT894|XT901|XT907|XT909|XT910|XT912|XT928|XT926|XT915|XT919|XT925|XT1021|\bMoto E\b',
+        'Samsung'       => 'Samsung|SM-G9250|GT-19300|SGH-I337|BGT-S5230|GT-B2100|GT-B2700|GT-B2710|GT-B3210|GT-B3310|GT-B3410|GT-B3730|GT-B3740|GT-B5510|GT-B5512|GT-B5722|GT-B6520|GT-B7300|GT-B7320|GT-B7330|GT-B7350|GT-B7510|GT-B7722|GT-B7800|GT-C3010|GT-C3011|GT-C3060|GT-C3200|GT-C3212|GT-C3212I|GT-C3262|GT-C3222|GT-C3300|GT-C3300K|GT-C3303|GT-C3303K|GT-C3310|GT-C3322|GT-C3330|GT-C3350|GT-C3500|GT-C3510|GT-C3530|GT-C3630|GT-C3780|GT-C5010|GT-C5212|GT-C6620|GT-C6625|GT-C6712|GT-E1050|GT-E1070|GT-E1075|GT-E1080|GT-E1081|GT-E1085|GT-E1087|GT-E1100|GT-E1107|GT-E1110|GT-E1120|GT-E1125|GT-E1130|GT-E1160|GT-E1170|GT-E1175|GT-E1180|GT-E1182|GT-E1200|GT-E1210|GT-E1225|GT-E1230|GT-E1390|GT-E2100|GT-E2120|GT-E2121|GT-E2152|GT-E2220|GT-E2222|GT-E2230|GT-E2232|GT-E2250|GT-E2370|GT-E2550|GT-E2652|GT-E3210|GT-E3213|GT-I5500|GT-I5503|GT-I5700|GT-I5800|GT-I5801|GT-I6410|GT-I6420|GT-I7110|GT-I7410|GT-I7500|GT-I8000|GT-I8150|GT-I8160|GT-I8190|GT-I8320|GT-I8330|GT-I8350|GT-I8530|GT-I8700|GT-I8703|GT-I8910|GT-I9000|GT-I9001|GT-I9003|GT-I9010|GT-I9020|GT-I9023|GT-I9070|GT-I9082|GT-I9100|GT-I9103|GT-I9220|GT-I9250|GT-I9300|GT-I9305|GT-I9500|GT-I9505|GT-M3510|GT-M5650|GT-M7500|GT-M7600|GT-M7603|GT-M8800|GT-M8910|GT-N7000|GT-S3110|GT-S3310|GT-S3350|GT-S3353|GT-S3370|GT-S3650|GT-S3653|GT-S3770|GT-S3850|GT-S5210|GT-S5220|GT-S5229|GT-S5230|GT-S5233|GT-S5250|GT-S5253|GT-S5260|GT-S5263|GT-S5270|GT-S5300|GT-S5330|GT-S5350|GT-S5360|GT-S5363|GT-S5369|GT-S5380|GT-S5380D|GT-S5560|GT-S5570|GT-S5600|GT-S5603|GT-S5610|GT-S5620|GT-S5660|GT-S5670|GT-S5690|GT-S5750|GT-S5780|GT-S5830|GT-S5839|GT-S6102|GT-S6500|GT-S7070|GT-S7200|GT-S7220|GT-S7230|GT-S7233|GT-S7250|GT-S7500|GT-S7530|GT-S7550|GT-S7562|GT-S7710|GT-S8000|GT-S8003|GT-S8500|GT-S8530|GT-S8600|SCH-A310|SCH-A530|SCH-A570|SCH-A610|SCH-A630|SCH-A650|SCH-A790|SCH-A795|SCH-A850|SCH-A870|SCH-A890|SCH-A930|SCH-A950|SCH-A970|SCH-A990|SCH-I100|SCH-I110|SCH-I400|SCH-I405|SCH-I500|SCH-I510|SCH-I515|SCH-I600|SCH-I730|SCH-I760|SCH-I770|SCH-I830|SCH-I910|SCH-I920|SCH-I959|SCH-LC11|SCH-N150|SCH-N300|SCH-R100|SCH-R300|SCH-R351|SCH-R400|SCH-R410|SCH-T300|SCH-U310|SCH-U320|SCH-U350|SCH-U360|SCH-U365|SCH-U370|SCH-U380|SCH-U410|SCH-U430|SCH-U450|SCH-U460|SCH-U470|SCH-U490|SCH-U540|SCH-U550|SCH-U620|SCH-U640|SCH-U650|SCH-U660|SCH-U700|SCH-U740|SCH-U750|SCH-U810|SCH-U820|SCH-U900|SCH-U940|SCH-U960|SCS-26UC|SGH-A107|SGH-A117|SGH-A127|SGH-A137|SGH-A157|SGH-A167|SGH-A177|SGH-A187|SGH-A197|SGH-A227|SGH-A237|SGH-A257|SGH-A437|SGH-A517|SGH-A597|SGH-A637|SGH-A657|SGH-A667|SGH-A687|SGH-A697|SGH-A707|SGH-A717|SGH-A727|SGH-A737|SGH-A747|SGH-A767|SGH-A777|SGH-A797|SGH-A817|SGH-A827|SGH-A837|SGH-A847|SGH-A867|SGH-A877|SGH-A887|SGH-A897|SGH-A927|SGH-B100|SGH-B130|SGH-B200|SGH-B220|SGH-C100|SGH-C110|SGH-C120|SGH-C130|SGH-C140|SGH-C160|SGH-C170|SGH-C180|SGH-C200|SGH-C207|SGH-C210|SGH-C225|SGH-C230|SGH-C417|SGH-C450|SGH-D307|SGH-D347|SGH-D357|SGH-D407|SGH-D415|SGH-D780|SGH-D807|SGH-D980|SGH-E105|SGH-E200|SGH-E315|SGH-E316|SGH-E317|SGH-E335|SGH-E590|SGH-E635|SGH-E715|SGH-E890|SGH-F300|SGH-F480|SGH-I200|SGH-I300|SGH-I320|SGH-I550|SGH-I577|SGH-I600|SGH-I607|SGH-I617|SGH-I627|SGH-I637|SGH-I677|SGH-I700|SGH-I717|SGH-I727|SGH-i747M|SGH-I777|SGH-I780|SGH-I827|SGH-I847|SGH-I857|SGH-I896|SGH-I897|SGH-I900|SGH-I907|SGH-I917|SGH-I927|SGH-I937|SGH-I997|SGH-J150|SGH-J200|SGH-L170|SGH-L700|SGH-M110|SGH-M150|SGH-M200|SGH-N105|SGH-N500|SGH-N600|SGH-N620|SGH-N625|SGH-N700|SGH-N710|SGH-P107|SGH-P207|SGH-P300|SGH-P310|SGH-P520|SGH-P735|SGH-P777|SGH-Q105|SGH-R210|SGH-R220|SGH-R225|SGH-S105|SGH-S307|SGH-T109|SGH-T119|SGH-T139|SGH-T209|SGH-T219|SGH-T229|SGH-T239|SGH-T249|SGH-T259|SGH-T309|SGH-T319|SGH-T329|SGH-T339|SGH-T349|SGH-T359|SGH-T369|SGH-T379|SGH-T409|SGH-T429|SGH-T439|SGH-T459|SGH-T469|SGH-T479|SGH-T499|SGH-T509|SGH-T519|SGH-T539|SGH-T559|SGH-T589|SGH-T609|SGH-T619|SGH-T629|SGH-T639|SGH-T659|SGH-T669|SGH-T679|SGH-T709|SGH-T719|SGH-T729|SGH-T739|SGH-T746|SGH-T749|SGH-T759|SGH-T769|SGH-T809|SGH-T819|SGH-T839|SGH-T919|SGH-T929|SGH-T939|SGH-T959|SGH-T989|SGH-U100|SGH-U200|SGH-U800|SGH-V205|SGH-V206|SGH-X100|SGH-X105|SGH-X120|SGH-X140|SGH-X426|SGH-X427|SGH-X475|SGH-X495|SGH-X497|SGH-X507|SGH-X600|SGH-X610|SGH-X620|SGH-X630|SGH-X700|SGH-X820|SGH-X890|SGH-Z130|SGH-Z150|SGH-Z170|SGH-ZX10|SGH-ZX20|SHW-M110|SPH-A120|SPH-A400|SPH-A420|SPH-A460|SPH-A500|SPH-A560|SPH-A600|SPH-A620|SPH-A660|SPH-A700|SPH-A740|SPH-A760|SPH-A790|SPH-A800|SPH-A820|SPH-A840|SPH-A880|SPH-A900|SPH-A940|SPH-A960|SPH-D600|SPH-D700|SPH-D710|SPH-D720|SPH-I300|SPH-I325|SPH-I330|SPH-I350|SPH-I500|SPH-I600|SPH-I700|SPH-L700|SPH-M100|SPH-M220|SPH-M240|SPH-M300|SPH-M305|SPH-M320|SPH-M330|SPH-M350|SPH-M360|SPH-M370|SPH-M380|SPH-M510|SPH-M540|SPH-M550|SPH-M560|SPH-M570|SPH-M580|SPH-M610|SPH-M620|SPH-M630|SPH-M800|SPH-M810|SPH-M850|SPH-M900|SPH-M910|SPH-M920|SPH-M930|SPH-N100|SPH-N200|SPH-N240|SPH-N300|SPH-N400|SPH-Z400|SWC-E100|SCH-i909|GT-N7100|GT-N7105|SCH-I535|SM-N900A|SGH-I317|SGH-T999L|GT-S5360B|GT-I8262|GT-S6802|GT-S6312|GT-S6310|GT-S5312|GT-S5310|GT-I9105|GT-I8510|GT-S6790N|SM-G7105|SM-N9005|GT-S5301|GT-I9295|GT-I9195|SM-C101|GT-S7392|GT-S7560|GT-B7610|GT-I5510|GT-S7582|GT-S7530E|GT-I8750|SM-G9006V|SM-G9008V|SM-G9009D|SM-G900A|SM-G900D|SM-G900F|SM-G900H|SM-G900I|SM-G900J|SM-G900K|SM-G900L|SM-G900M|SM-G900P|SM-G900R4|SM-G900S|SM-G900T|SM-G900V|SM-G900W8|SHV-E160K|SCH-P709|SCH-P729|SM-T2558|GT-I9205',
+        'LG'            => '\bLG\b;|LG[- ]?(C800|C900|E400|E610|E900|E-900|F160|F180K|F180L|F180S|730|855|L160|LS740|LS840|LS970|LU6200|MS690|MS695|MS770|MS840|MS870|MS910|P500|P700|P705|VM696|AS680|AS695|AX840|C729|E970|GS505|272|C395|E739BK|E960|L55C|L75C|LS696|LS860|P769BK|P350|P500|P509|P870|UN272|US730|VS840|VS950|LN272|LN510|LS670|LS855|LW690|MN270|MN510|P509|P769|P930|UN200|UN270|UN510|UN610|US670|US740|US760|UX265|UX840|VN271|VN530|VS660|VS700|VS740|VS750|VS910|VS920|VS930|VX9200|VX11000|AX840A|LW770|P506|P925|P999|E612|D955|D802)',
+        'Sony'          => 'SonyST|SonyLT|SonyEricsson|SonyEricssonLT15iv|LT18i|E10i|LT28h|LT26w|SonyEricssonMT27i|C5303|C6902|C6903|C6906|C6943|D2533',
         'Asus'          => 'Asus.*Galaxy|PadFone.*Mobile',
-        // @ref: http://www.micromaxinfo.com/mobiles/smartphones
+        // http://www.micromaxinfo.com/mobiles/smartphones
         // Added because the codes might conflict with Acer Tablets.
         'Micromax'      => 'Micromax.*\b(A210|A92|A88|A72|A111|A110Q|A115|A116|A110|A90S|A26|A51|A35|A54|A25|A27|A89|A68|A65|A57|A90)\b',
-        'Palm'          => 'PalmSource|Palm', // avantgo|blazer|elaine|hiptop|plucker|xiino ; @todo - complete the regex.
+        // @todo Complete the regex.
+        'Palm'          => 'PalmSource|Palm', // avantgo|blazer|elaine|hiptop|plucker|xiino ;
         'Vertu'         => 'Vertu|Vertu.*Ltd|Vertu.*Ascent|Vertu.*Ayxta|Vertu.*Constellation(F|Quest)?|Vertu.*Monika|Vertu.*Signature', // Just for fun ;)
-        // @ref: http://www.pantech.co.kr/en/prod/prodList.do?gbrand=VEGA (PANTECH)
+        // http://www.pantech.co.kr/en/prod/prodList.do?gbrand=VEGA (PANTECH)
         // Most of the VEGA devices are legacy. PANTECH seem to be newer devices based on Android.
         'Pantech'       => 'PANTECH|IM-A850S|IM-A840S|IM-A830L|IM-A830K|IM-A830S|IM-A820L|IM-A810K|IM-A810S|IM-A800S|IM-T100K|IM-A725L|IM-A780L|IM-A775C|IM-A770K|IM-A760S|IM-A750K|IM-A740S|IM-A730S|IM-A720L|IM-A710K|IM-A690L|IM-A690S|IM-A650S|IM-A630K|IM-A600S|VEGA PTL21|PT003|P8010|ADR910L|P6030|P6020|P9070|P4100|P9060|P5000|CDM8992|TXT8045|ADR8995|IS11PT|P2030|P6010|P8000|PT002|IS06|CDM8999|P9050|PT001|TXT8040|P2020|P9020|P2000|P7040|P7000|C790',
-        // @ref: http://www.fly-phone.com/devices/smartphones/ ; Included only smartphones.
+        // http://www.fly-phone.com/devices/smartphones/ ; Included only smartphones.
         'Fly'           => 'IQ230|IQ444|IQ450|IQ440|IQ442|IQ441|IQ245|IQ256|IQ236|IQ255|IQ235|IQ245|IQ275|IQ240|IQ285|IQ280|IQ270|IQ260|IQ250',
-       'iMobile'        => 'i-mobile (IQ|i-STYLE|idea|ZAA|Hitz)',
+        // http://fr.wikomobile.com
+        'Wiko'          => 'KITE 4G|HIGHWAY|GETAWAY|STAIRWAY|DARKSIDE|DARKFULL|DARKNIGHT|DARKMOON|SLIDE|WAX 4G|RAINBOW|BLOOM|SUNSET|GOA|LENNY|BARRY|IGGY|OZZY|CINK FIVE|CINK PEAX|CINK PEAX 2|CINK SLIM|CINK SLIM 2|CINK +|CINK KING|CINK PEAX|CINK SLIM|SUBLIM',
+        'iMobile'        => 'i-mobile (IQ|i-STYLE|idea|ZAA|Hitz)',
         // Added simvalley mobile just for fun. They have some interesting devices.
-        // @ref: http://www.simvalley.fr/telephonie---gps-_22_telephonie-mobile_telephones_.html
+        // http://www.simvalley.fr/telephonie---gps-_22_telephonie-mobile_telephones_.html
         'SimValley'     => '\b(SP-80|XT-930|SX-340|XT-930|SX-310|SP-360|SP60|SPT-800|SP-120|SPT-800|SP-140|SPX-5|SPX-8|SP-100|SPX-8|SPX-12)\b',
-        // @Tapatalk is a mobile app; @ref: http://support.tapatalk.com/threads/smf-2-0-2-os-and-browser-detection-plugin-and-tapatalk.15565/#post-79039
-        'GenericPhone'  => 'Tapatalk|PDA;|SAGEM|\bmmp\b|pocket|\bpsp\b|symbian|Smartphone|smartfon|treo|up.browser|up.link|vodafone|\bwap\b|nokia|Series40|Series60|S60|SonyEricsson|N900|MAUI.*WAP.*Browser'
+         // Wolfgang - a brand that is sold by Aldi supermarkets.
+         // http://www.wolfgangmobile.com/
+        'Wolfgang'      => 'AT-B24D|AT-AS50HD|AT-AS40W|AT-AS55HD|AT-AS45q2|AT-B26D|AT-AS50Q',
+        'Alcatel'       => 'Alcatel',
+        'Nintendo' => 'Nintendo 3DS',
+        // http://en.wikipedia.org/wiki/Amoi
+        'Amoi'          => 'Amoi',
+        // http://en.wikipedia.org/wiki/INQ
+        'INQ'           => 'INQ',
+        // @Tapatalk is a mobile app; http://support.tapatalk.com/threads/smf-2-0-2-os-and-browser-detection-plugin-and-tapatalk.15565/#post-79039
+        'GenericPhone'  => 'Tapatalk|PDA;|SAGEM|\bmmp\b|pocket|\bpsp\b|symbian|Smartphone|smartfon|treo|up.browser|up.link|vodafone|\bwap\b|nokia|Series40|Series60|S60|SonyEricsson|N900|MAUI.*WAP.*Browser',
     );
 
     /**
@@ -174,78 +214,94 @@ class Mobile_Detect
      * @var array
      */
     protected static $tabletDevices = array(
-        'iPad'              => 'iPad|iPad.*Mobile', // @todo: check for mobile friendly emails topic.
-        'NexusTablet'       => 'Android.*Nexus[\s]+(7|10)|^.*Android.*Nexus(?:(?!Mobile).)*$',
-        'SamsungTablet'     => 'SAMSUNG.*Tablet|Galaxy.*Tab|SC-01C|GT-P1000|GT-P1003|GT-P1010|GT-P3105|GT-P6210|GT-P6800|GT-P6810|GT-P7100|GT-P7300|GT-P7310|GT-P7500|GT-P7510|SCH-I800|SCH-I815|SCH-I905|SGH-I957|SGH-I987|SGH-T849|SGH-T859|SGH-T869|SPH-P100|GT-P3100|GT-P3108|GT-P3110|GT-P5100|GT-P5110|GT-P6200|GT-P7320|GT-P7511|GT-N8000|GT-P8510|SGH-I497|SPH-P500|SGH-T779|SCH-I705|SCH-I915|GT-N8013|GT-P3113|GT-P5113|GT-P8110|GT-N8010|GT-N8005|GT-N8020|GT-P1013|GT-P6201|GT-P7501|GT-N5100|GT-N5105|GT-N5110|SHV-E140K|SHV-E140L|SHV-E140S|SHV-E150S|SHV-E230K|SHV-E230L|SHV-E230S|SHW-M180K|SHW-M180L|SHW-M180S|SHW-M180W|SHW-M300W|SHW-M305W|SHW-M380K|SHW-M380S|SHW-M380W|SHW-M430W|SHW-M480K|SHW-M480S|SHW-M480W|SHW-M485W|SHW-M486W|SHW-M500W|GT-I9228|SCH-P739|SCH-I925|GT-I9200|GT-I9205|GT-P5200|GT-P5210|GT-P5210X|SM-T311|SM-T310|SM-T310X|SM-T210|SM-T210R|SM-T211|SM-P600|SM-P601|SM-P605|SM-P900|SM-P901|SM-T217|SM-T217A|SM-T217S|SM-P6000|SM-T3100|SGH-I467|XE500|SM-T110|GT-P5220|GT-I9200X|GT-N5110X|GT-N5120|SM-P905|SM-T111|SM-T2105|SM-T315|SM-T320|SM-T320X|SM-T321|SM-T520|SM-T525|SM-T530NU|SM-T230NU|SM-T330NU|SM-T900|XE500T1C|SM-P605V|SM-P905V|SM-P600X|SM-P900X|SM-T210X|SM-T230|SM-T230X|SM-T325|GT-P7503|SM-T531|SM-T330|SM-T530|SM-T705C|SM-T535|SM-T331', // SCH-P709|SCH-P729|SM-T2558 - Samsung Mega - treat them like a regular phone.
-        // @reference: http://www.labnol.org/software/kindle-user-agent-string/20378/
-        'Kindle'            => 'Kindle|Silk.*Accelerated|Android.*\b(KFOT|KFTT|KFJWI|KFJWA|KFOTE|KFSOWI|KFTHWI|KFTHWA|KFAPWI|KFAPWA|WFJWAE)\b',
+        // @todo: check for mobile friendly emails topic.
+        'iPad'              => 'iPad|iPad.*Mobile',
+        // Removed |^.*Android.*Nexus(?!(?:Mobile).)*$
+        // @see #442
+        'NexusTablet'       => 'Android.*Nexus[\s]+(7|9|10)', 
+        'SamsungTablet'     => 'SAMSUNG.*Tablet|Galaxy.*Tab|SC-01C|GT-P1000|GT-P1003|GT-P1010|GT-P3105|GT-P6210|GT-P6800|GT-P6810|GT-P7100|GT-P7300|GT-P7310|GT-P7500|GT-P7510|SCH-I800|SCH-I815|SCH-I905|SGH-I957|SGH-I987|SGH-T849|SGH-T859|SGH-T869|SPH-P100|GT-P3100|GT-P3108|GT-P3110|GT-P5100|GT-P5110|GT-P6200|GT-P7320|GT-P7511|GT-N8000|GT-P8510|SGH-I497|SPH-P500|SGH-T779|SCH-I705|SCH-I915|GT-N8013|GT-P3113|GT-P5113|GT-P8110|GT-N8010|GT-N8005|GT-N8020|GT-P1013|GT-P6201|GT-P7501|GT-N5100|GT-N5105|GT-N5110|SHV-E140K|SHV-E140L|SHV-E140S|SHV-E150S|SHV-E230K|SHV-E230L|SHV-E230S|SHW-M180K|SHW-M180L|SHW-M180S|SHW-M180W|SHW-M300W|SHW-M305W|SHW-M380K|SHW-M380S|SHW-M380W|SHW-M430W|SHW-M480K|SHW-M480S|SHW-M480W|SHW-M485W|SHW-M486W|SHW-M500W|GT-I9228|SCH-P739|SCH-I925|GT-I9200|GT-P5200|GT-P5210|GT-P5210X|SM-T311|SM-T310|SM-T310X|SM-T210|SM-T210R|SM-T211|SM-P600|SM-P601|SM-P605|SM-P900|SM-P901|SM-T217|SM-T217A|SM-T217S|SM-P6000|SM-T3100|SGH-I467|XE500|SM-T110|GT-P5220|GT-I9200X|GT-N5110X|GT-N5120|SM-P905|SM-T111|SM-T2105|SM-T315|SM-T320|SM-T320X|SM-T321|SM-T520|SM-T525|SM-T530NU|SM-T230NU|SM-T330NU|SM-T900|XE500T1C|SM-P605V|SM-P905V|SM-T337V|SM-T537V|SM-T707V|SM-T807V|SM-P600X|SM-P900X|SM-T210X|SM-T230|SM-T230X|SM-T325|GT-P7503|SM-T531|SM-T330|SM-T530|SM-T705|SM-T705C|SM-T535|SM-T331|SM-T800|SM-T700|SM-T537|SM-T807|SM-P907A|SM-T337A|SM-T537A|SM-T707A|SM-T807A|SM-T237|SM-T807P|SM-P607T|SM-T217T|SM-T337T|SM-T807T|SM-T116NQ|SM-P550|SM-T350|SM-T550|SM-T9000|SM-P9000|SM-T705Y|SM-T805|GT-P3113|SM-T710|SM-T810|SM-T360', // SCH-P709|SCH-P729|SM-T2558|GT-I9205 - Samsung Mega - treat them like a regular phone.
+        // http://docs.aws.amazon.com/silk/latest/developerguide/user-agent.html
+        'Kindle'            => 'Kindle|Silk.*Accelerated|Android.*\b(KFOT|KFTT|KFJWI|KFJWA|KFOTE|KFSOWI|KFTHWI|KFTHWA|KFAPWI|KFAPWA|WFJWAE|KFSAWA|KFSAWI|KFASWI)\b',
         // Only the Surface tablets with Windows RT are considered mobile.
-        // @ref: http://msdn.microsoft.com/en-us/library/ie/hh920767(v=vs.85).aspx
-        'SurfaceTablet'     => 'Windows NT [0-9.]+; ARM;',
-        // @ref: http://shopping1.hp.com/is-bin/INTERSHOP.enfinity/WFS/WW-USSMBPublicStore-Site/en_US/-/USD/ViewStandardCatalog-Browse?CatalogCategoryID=JfIQ7EN5lqMAAAEyDcJUDwMT
-        'HPTablet'          => 'HP Slate 7|HP ElitePad 900|hp-tablet|EliteBook.*Touch|HP 8',
-        // @note: watch out for PadFone, see #132
-        'AsusTablet'        => '^.*PadFone((?!Mobile).)*$|Transformer|TF101|TF101G|TF300T|TF300TG|TF300TL|TF700T|TF700KL|TF701T|TF810C|ME171|ME301T|ME302C|ME371MG|ME370T|ME372MG|ME172V|ME173X|ME400C|Slider SL101|\bK00F\b|TX201LA',
+        // http://msdn.microsoft.com/en-us/library/ie/hh920767(v=vs.85).aspx
+        'SurfaceTablet'     => 'Windows NT [0-9.]+; ARM;.*(Tablet|ARMBJS)',
+        // http://shopping1.hp.com/is-bin/INTERSHOP.enfinity/WFS/WW-USSMBPublicStore-Site/en_US/-/USD/ViewStandardCatalog-Browse?CatalogCategoryID=JfIQ7EN5lqMAAAEyDcJUDwMT
+        'HPTablet'          => 'HP Slate (7|8|10)|HP ElitePad 900|hp-tablet|EliteBook.*Touch|HP 8|Slate 21|HP SlateBook 10',
+        // Watch out for PadFone, see #132.
+        // http://www.asus.com/de/Tablets_Mobile/Memo_Pad_Products/
+        'AsusTablet'        => '^.*PadFone((?!Mobile).)*$|Transformer|TF101|TF101G|TF300T|TF300TG|TF300TL|TF700T|TF700KL|TF701T|TF810C|ME171|ME301T|ME302C|ME371MG|ME370T|ME372MG|ME172V|ME173X|ME400C|Slider SL101|\bK00F\b|\bK00C\b|\bK00E\b|\bK00L\b|TX201LA|ME176C|ME102A|\bM80TA\b|ME372CL|ME560CG|ME372CG|ME302KL| K010 | K017 |ME572C|ME103K|ME170C|ME171C|\bME70C\b|ME581C|ME581CL|ME8510C|ME181C',
         'BlackBerryTablet'  => 'PlayBook|RIM Tablet',
-        'HTCtablet'         => 'HTC Flyer|HTC Jetstream|HTC-P715a|HTC EVO View 4G|PG41200',
+        'HTCtablet'         => 'HTC_Flyer_P512|HTC Flyer|HTC Jetstream|HTC-P715a|HTC EVO View 4G|PG41200|PG09410',
         'MotorolaTablet'    => 'xoom|sholest|MZ615|MZ605|MZ505|MZ601|MZ602|MZ603|MZ604|MZ606|MZ607|MZ608|MZ609|MZ615|MZ616|MZ617',
         'NookTablet'        => 'Android.*Nook|NookColor|nook browser|BNRV200|BNRV200A|BNTV250|BNTV250A|BNTV400|BNTV600|LogicPD Zoom2',
-        // @ref: http://www.acer.ro/ac/ro/RO/content/drivers
-        // @ref: http://www.packardbell.co.uk/pb/en/GB/content/download (Packard Bell is part of Acer)
-        // @ref: http://us.acer.com/ac/en/US/content/group/tablets
-        // @note: Can conflict with Micromax and Motorola phones codes.
-        'AcerTablet'        => 'Android.*; \b(A100|A101|A110|A200|A210|A211|A500|A501|A510|A511|A700|A701|W500|W500P|W501|W501P|W510|W511|W700|G100|G100W|B1-A71|B1-710|B1-711|A1-810|A1-830)\b|W3-810|\bA3-A10\b',
-        // @ref: http://eu.computers.toshiba-europe.com/innovation/family/Tablets/1098744/banner_id/tablet_footerlink/
-        // @ref: http://us.toshiba.com/tablets/tablet-finder
-        // @ref: http://www.toshiba.co.jp/regza/tablet/
+        // http://www.acer.ro/ac/ro/RO/content/drivers
+        // http://www.packardbell.co.uk/pb/en/GB/content/download (Packard Bell is part of Acer)
+        // http://us.acer.com/ac/en/US/content/group/tablets
+        // http://www.acer.de/ac/de/DE/content/models/tablets/
+        // Can conflict with Micromax and Motorola phones codes.
+        'AcerTablet'        => 'Android.*; \b(A100|A101|A110|A200|A210|A211|A500|A501|A510|A511|A700|A701|W500|W500P|W501|W501P|W510|W511|W700|G100|G100W|B1-A71|B1-710|B1-711|A1-810|A1-811|A1-830)\b|W3-810|\bA3-A10\b|\bA3-A11\b',
+        // http://eu.computers.toshiba-europe.com/innovation/family/Tablets/1098744/banner_id/tablet_footerlink/
+        // http://us.toshiba.com/tablets/tablet-finder
+        // http://www.toshiba.co.jp/regza/tablet/
         'ToshibaTablet'     => 'Android.*(AT100|AT105|AT200|AT205|AT270|AT275|AT300|AT305|AT1S5|AT500|AT570|AT700|AT830)|TOSHIBA.*FOLIO',
-        // @ref: http://www.nttdocomo.co.jp/english/service/developer/smart_phone/technical_info/spec/index.html
-        // @ref: http://www.lg.com/us/tablets
-        'LGTablet'          => '\bL-06C|LG-V900|LG-V500|LG-V909|LG-V500|LG-V510|LG-VK810\b',
+        // http://www.nttdocomo.co.jp/english/service/developer/smart_phone/technical_info/spec/index.html
+        // http://www.lg.com/us/tablets
+        'LGTablet'          => '\bL-06C|LG-V909|LG-V900|LG-V700|LG-V510|LG-V500|LG-V410|LG-V400|LG-VK810\b',
         'FujitsuTablet'     => 'Android.*\b(F-01D|F-02F|F-05E|F-10D|M532|Q572)\b',
         // Prestigio Tablets http://www.prestigio.com/support
-        'PrestigioTablet'   => 'PMP3170B|PMP3270B|PMP3470B|PMP7170B|PMP3370B|PMP3570C|PMP5870C|PMP3670B|PMP5570C|PMP5770D|PMP3970B|PMP3870C|PMP5580C|PMP5880D|PMP5780D|PMP5588C|PMP7280C|PMP7280C3G|PMP7280|PMP7880D|PMP5597D|PMP5597|PMP7100D|PER3464|PER3274|PER3574|PER3884|PER5274|PER5474|PMP5097CPRO|PMP5097|PMP7380D|PMP5297C|PMP5297C_QUAD',
-        // @ref: http://support.lenovo.com/en_GB/downloads/default.page?#
-        'LenovoTablet'      => 'IdeaTab|ThinkPad([ ]+)?Tablet|Lenovo.*(S2109|S2110|S5000|S6000|K3011|A3000|A1000|A2107|A2109|A1107|B6000|B8000|B8080-F)',
-        // @ref: http://www.yarvik.com/en/matrix/tablets/
+        'PrestigioTablet'   => 'PMP3170B|PMP3270B|PMP3470B|PMP7170B|PMP3370B|PMP3570C|PMP5870C|PMP3670B|PMP5570C|PMP5770D|PMP3970B|PMP3870C|PMP5580C|PMP5880D|PMP5780D|PMP5588C|PMP7280C|PMP7280C3G|PMP7280|PMP7880D|PMP5597D|PMP5597|PMP7100D|PER3464|PER3274|PER3574|PER3884|PER5274|PER5474|PMP5097CPRO|PMP5097|PMP7380D|PMP5297C|PMP5297C_QUAD|PMP812E|PMP812E3G|PMP812F|PMP810E|PMP880TD|PMT3017|PMT3037|PMT3047|PMT3057|PMT7008|PMT5887|PMT5001|PMT5002',
+        // http://support.lenovo.com/en_GB/downloads/default.page?#
+        'LenovoTablet'      => 'Idea(Tab|Pad)( A1|A10| K1|)|ThinkPad([ ]+)?Tablet|Lenovo.*(S2109|S2110|S5000|S6000|K3011|A3000|A3500|A1000|A2107|A2109|A1107|A5500|A7600|B6000|B8000|B8080)(-|)(FL|F|HV|H|)',
+        // http://www.dell.com/support/home/us/en/04/Products/tab_mob/tablets
+        'DellTablet'        => 'Venue 11|Venue 8|Venue 7|Dell Streak 10|Dell Streak 7',
+        // http://www.yarvik.com/en/matrix/tablets/
         'YarvikTablet'      => 'Android.*\b(TAB210|TAB211|TAB224|TAB250|TAB260|TAB264|TAB310|TAB360|TAB364|TAB410|TAB411|TAB420|TAB424|TAB450|TAB460|TAB461|TAB464|TAB465|TAB467|TAB468|TAB07-100|TAB07-101|TAB07-150|TAB07-151|TAB07-152|TAB07-200|TAB07-201-3G|TAB07-210|TAB07-211|TAB07-212|TAB07-214|TAB07-220|TAB07-400|TAB07-485|TAB08-150|TAB08-200|TAB08-201-3G|TAB08-201-30|TAB09-100|TAB09-211|TAB09-410|TAB10-150|TAB10-201|TAB10-211|TAB10-400|TAB10-410|TAB13-201|TAB274EUK|TAB275EUK|TAB374EUK|TAB462EUK|TAB474EUK|TAB9-200)\b',
         'MedionTablet'      => 'Android.*\bOYO\b|LIFE.*(P9212|P9514|P9516|S9512)|LIFETAB',
-        'ArnovaTablet'      => 'AN10G2|AN7bG3|AN7fG3|AN8G3|AN8cG3|AN7G3|AN9G3|AN7dG3|AN7dG3ST|AN7dG3ChildPad|AN10bG3|AN10bG3DT',
+        'ArnovaTablet'      => 'AN10G2|AN7bG3|AN7fG3|AN8G3|AN8cG3|AN7G3|AN9G3|AN7dG3|AN7dG3ST|AN7dG3ChildPad|AN10bG3|AN10bG3DT|AN9G2',
         // http://www.intenso.de/kategorie_en.php?kategorie=33
         // @todo: http://www.nbhkdz.com/read/b8e64202f92a2df129126bff.html - investigate
-        'IntensoTablet'     => 'INM8002KP|INM1010FP|INM805ND|Intenso Tab',
+        'IntensoTablet'     => 'INM8002KP|INM1010FP|INM805ND|Intenso Tab|TAB1004',
         // IRU.ru Tablets http://www.iru.ru/catalog/soho/planetable/
         'IRUTablet'         => 'M702pro',
         'MegafonTablet'     => 'MegaFon V9|\bZTE V9\b|Android.*\bMT7A\b',
-        // @ref: http://www.e-boda.ro/tablete-pc.html
+        // http://www.e-boda.ro/tablete-pc.html
         'EbodaTablet'       => 'E-Boda (Supreme|Impresspeed|Izzycomm|Essential)',
-        // @ref: http://www.allview.ro/produse/droseries/lista-tablete-pc/
+        // http://www.allview.ro/produse/droseries/lista-tablete-pc/
         'AllViewTablet'           => 'Allview.*(Viva|Alldro|City|Speed|All TV|Frenzy|Quasar|Shine|TX1|AX1|AX2)',
-        // @reference: http://wiki.archosfans.com/index.php?title=Main_Page
-        'ArchosTablet'      => '\b(101G9|80G9|A101IT)\b|Qilive 97R|ARCHOS 101G10|Archos 101 Neon',
-        // @ref: http://www.ainol.com/plugin.php?identifier=ainol&module=product
+        // http://wiki.archosfans.com/index.php?title=Main_Page
+        'ArchosTablet'      => '\b(101G9|80G9|A101IT)\b|Qilive 97R|Archos5|\bARCHOS (70|79|80|90|97|101|FAMILYPAD|)(b|)(G10| Cobalt| TITANIUM(HD|)| Xenon| Neon|XSK| 2| XS 2| PLATINUM| CARBON|GAMEPAD)\b',
+        // http://www.ainol.com/plugin.php?identifier=ainol&module=product
         'AinolTablet'       => 'NOVO7|NOVO8|NOVO10|Novo7Aurora|Novo7Basic|NOVO7PALADIN|novo9-Spark',
         // @todo: inspect http://esupport.sony.com/US/p/select-system.pl?DIRECTOR=DRIVER
-        // @ref: Readers http://www.atsuhiro-me.net/ebook/sony-reader/sony-reader-web-browser
-        // @ref: http://www.sony.jp/support/tablet/
-        'SonyTablet'        => 'Sony.*Tablet|Xperia Tablet|Sony Tablet S|SO-03E|SGPT12|SGPT13|SGPT114|SGPT121|SGPT122|SGPT123|SGPT111|SGPT112|SGPT113|SGPT131|SGPT132|SGPT133|SGPT211|SGPT212|SGPT213|SGP311|SGP312|SGP321|EBRD1101|EBRD1102|EBRD1201|SGP351|SGP341|SGP511|SGP512|SGP521|SGP541|SGP551',
-        // @ref: db + http://www.cube-tablet.com/buy-products.html
+        // Readers http://www.atsuhiro-me.net/ebook/sony-reader/sony-reader-web-browser
+        // http://www.sony.jp/support/tablet/
+        'SonyTablet'        => 'Sony.*Tablet|Xperia Tablet|Sony Tablet S|SO-03E|SGPT12|SGPT13|SGPT114|SGPT121|SGPT122|SGPT123|SGPT111|SGPT112|SGPT113|SGPT131|SGPT132|SGPT133|SGPT211|SGPT212|SGPT213|SGP311|SGP312|SGP321|EBRD1101|EBRD1102|EBRD1201|SGP351|SGP341|SGP511|SGP512|SGP521|SGP541|SGP551|SGP621|SGP612|SOT31',
+        // http://www.support.philips.com/support/catalog/worldproducts.jsp?userLanguage=en&userCountry=cn&categoryid=3G_LTE_TABLET_SU_CN_CARE&title=3G%20tablets%20/%20LTE%20range&_dyncharset=UTF-8
+        'PhilipsTablet'     => '\b(PI2010|PI3000|PI3100|PI3105|PI3110|PI3205|PI3210|PI3900|PI4010|PI7000|PI7100)\b',
+        // db + http://www.cube-tablet.com/buy-products.html
         'CubeTablet'        => 'Android.*(K8GT|U9GT|U10GT|U16GT|U17GT|U18GT|U19GT|U20GT|U23GT|U30GT)|CUBE U8GT',
-        // @ref: http://www.cobyusa.com/?p=pcat&pcat_id=3001
+        // http://www.cobyusa.com/?p=pcat&pcat_id=3001
         'CobyTablet'        => 'MID1042|MID1045|MID1125|MID1126|MID7012|MID7014|MID7015|MID7034|MID7035|MID7036|MID7042|MID7048|MID7127|MID8042|MID8048|MID8127|MID9042|MID9740|MID9742|MID7022|MID7010',
-        // @ref: http://www.match.net.cn/products.asp
+        // http://www.match.net.cn/products.asp
         'MIDTablet'         => 'M9701|M9000|M9100|M806|M1052|M806|T703|MID701|MID713|MID710|MID727|MID760|MID830|MID728|MID933|MID125|MID810|MID732|MID120|MID930|MID800|MID731|MID900|MID100|MID820|MID735|MID980|MID130|MID833|MID737|MID960|MID135|MID860|MID736|MID140|MID930|MID835|MID733',
-        // @ref: http://pdadb.net/index.php?m=pdalist&list=SMiT (NoName Chinese Tablets)
-        // @ref: http://www.imp3.net/14/show.php?itemid=20454
+        // http://www.msi.com/support
+        // @todo Research the Windows Tablets.
+        'MSITablet' => 'MSI \b(Primo 73K|Primo 73L|Primo 81L|Primo 77|Primo 93|Primo 75|Primo 76|Primo 73|Primo 81|Primo 91|Primo 90|Enjoy 71|Enjoy 7|Enjoy 10)\b',
+        // @todo http://www.kyoceramobile.com/support/drivers/
+    //    'KyoceraTablet' => null,
+        // @todo http://intexuae.com/index.php/category/mobile-devices/tablets-products/
+    //    'IntextTablet' => null,
+        // http://pdadb.net/index.php?m=pdalist&list=SMiT (NoName Chinese Tablets)
+        // http://www.imp3.net/14/show.php?itemid=20454
         'SMiTTablet'        => 'Android.*(\bMID\b|MID-560|MTV-T1200|MTV-PND531|MTV-P1101|MTV-PND530)',
-        // @ref: http://www.rock-chips.com/index.php?do=prod&pid=2
+        // http://www.rock-chips.com/index.php?do=prod&pid=2
         'RockChipTablet'    => 'Android.*(RK2818|RK2808A|RK2918|RK3066)|RK2738|RK2808A',
-        // @ref: http://www.fly-phone.com/devices/tablets/ ; http://www.fly-phone.com/service/
+        // http://www.fly-phone.com/devices/tablets/ ; http://www.fly-phone.com/service/
         'FlyTablet'         => 'IQ310|Fly Vision',
-        // @ref: http://www.bqreaders.com/gb/tablets-prices-sale.html
-        'bqTablet'          => 'bq.*(Elcano|Curie|Edison|Maxwell|Kepler|Pascal|Tesla|Hypatia|Platon|Newton|Livingstone|Cervantes|Avant)|Maxwell.*Lite|Maxwell.*Plus',
-        // @ref: http://www.huaweidevice.com/worldwide/productFamily.do?method=index&directoryId=5011&treeId=3290
-        // @ref: http://www.huaweidevice.com/worldwide/downloadCenter.do?method=index&directoryId=3372&treeId=0&tb=1&type=software (including legacy tablets)
+        // http://www.bqreaders.com/gb/tablets-prices-sale.html
+        'bqTablet'          => 'Android.*(bq)?.*(Elcano|Curie|Edison|Maxwell|Kepler|Pascal|Tesla|Hypatia|Platon|Newton|Livingstone|Cervantes|Avant|Aquaris E10)|Maxwell.*Lite|Maxwell.*Plus',
+        // http://www.huaweidevice.com/worldwide/productFamily.do?method=index&directoryId=5011&treeId=3290
+        // http://www.huaweidevice.com/worldwide/downloadCenter.do?method=index&directoryId=3372&treeId=0&tb=1&type=software (including legacy tablets)
         'HuaweiTablet'      => 'MediaPad|MediaPad 7 Youth|IDEOS S7|S7-201c|S7-202u|S7-101|S7-103|S7-104|S7-105|S7-106|S7-201|S7-Slim',
         // Nec or Medias Tab
         'NecTablet'         => '\bN-06D|\bN-08D',
@@ -253,63 +309,63 @@ class Mobile_Detect
         'PantechTablet'     => 'Pantech.*P4100',
         // Broncho Tablets: http://www.broncho.cn/ (hard to find)
         'BronchoTablet'     => 'Broncho.*(N701|N708|N802|a710)',
-        // @ref: http://versusuk.com/support.html
+        // http://versusuk.com/support.html
         'VersusTablet'      => 'TOUCHPAD.*[78910]|\bTOUCHTAB\b',
-        // @ref: http://www.zync.in/index.php/our-products/tablet-phablets
+        // http://www.zync.in/index.php/our-products/tablet-phablets
         'ZyncTablet'        => 'z1000|Z99 2G|z99|z930|z999|z990|z909|Z919|z900',
-        // @ref: http://www.positivoinformatica.com.br/www/pessoal/tablet-ypy/
+        // http://www.positivoinformatica.com.br/www/pessoal/tablet-ypy/
         'PositivoTablet'    => 'TB07STA|TB10STA|TB07FTA|TB10FTA',
-        // @ref: https://www.nabitablet.com/
+        // https://www.nabitablet.com/
         'NabiTablet'        => 'Android.*\bNabi',
         'KoboTablet'        => 'Kobo Touch|\bK080\b|\bVox\b Build|\bArc\b Build',
         // French Danew Tablets http://www.danew.com/produits-tablette.php
         'DanewTablet'       => 'DSlide.*\b(700|701R|702|703R|704|802|970|971|972|973|974|1010|1012)\b',
         // Texet Tablets and Readers http://www.texet.ru/tablet/
         'TexetTablet'       => 'NaviPad|TB-772A|TM-7045|TM-7055|TM-9750|TM-7016|TM-7024|TM-7026|TM-7041|TM-7043|TM-7047|TM-8041|TM-9741|TM-9747|TM-9748|TM-9751|TM-7022|TM-7021|TM-7020|TM-7011|TM-7010|TM-7023|TM-7025|TM-7037W|TM-7038W|TM-7027W|TM-9720|TM-9725|TM-9737W|TM-1020|TM-9738W|TM-9740|TM-9743W|TB-807A|TB-771A|TB-727A|TB-725A|TB-719A|TB-823A|TB-805A|TB-723A|TB-715A|TB-707A|TB-705A|TB-709A|TB-711A|TB-890HD|TB-880HD|TB-790HD|TB-780HD|TB-770HD|TB-721HD|TB-710HD|TB-434HD|TB-860HD|TB-840HD|TB-760HD|TB-750HD|TB-740HD|TB-730HD|TB-722HD|TB-720HD|TB-700HD|TB-500HD|TB-470HD|TB-431HD|TB-430HD|TB-506|TB-504|TB-446|TB-436|TB-416|TB-146SE|TB-126SE',
-        // @note: Avoid detecting 'PLAYSTATION 3' as mobile.
+        // Avoid detecting 'PLAYSTATION 3' as mobile.
         'PlaystationTablet' => 'Playstation.*(Portable|Vita)',
-        // @ref: http://www.trekstor.de/surftabs.html
-        'TrekstorTablet'    => 'ST10416-1|VT10416-1|ST70408-1|ST702xx-1|ST702xx-2|ST80208|ST97216|ST70104-2|VT10416-2|ST10216-2A',
-        // @ref: http://www.pyleaudio.com/Products.aspx?%2fproducts%2fPersonal-Electronics%2fTablets
+        // http://www.trekstor.de/surftabs.html
+        'TrekstorTablet'    => 'ST10416-1|VT10416-1|ST70408-1|ST702xx-1|ST702xx-2|ST80208|ST97216|ST70104-2|VT10416-2|ST10216-2A|SurfTab',
+        // http://www.pyleaudio.com/Products.aspx?%2fproducts%2fPersonal-Electronics%2fTablets
         'PyleAudioTablet'   => '\b(PTBL10CEU|PTBL10C|PTBL72BC|PTBL72BCEU|PTBL7CEU|PTBL7C|PTBL92BC|PTBL92BCEU|PTBL9CEU|PTBL9CUK|PTBL9C)\b',
-        // @ref: http://www.advandigital.com/index.php?link=content-product&jns=JP001
-        // @Note: because of the short codenames we have to include whitespaces to reduce the possible conflicts.
+        // http://www.advandigital.com/index.php?link=content-product&jns=JP001
+        // because of the short codenames we have to include whitespaces to reduce the possible conflicts.
         'AdvanTablet'       => 'Android.* \b(E3A|T3X|T5C|T5B|T3E|T3C|T3B|T1J|T1F|T2A|T1H|T1i|E1C|T1-E|T5-A|T4|E1-B|T2Ci|T1-B|T1-D|O1-A|E1-A|T1-A|T3A|T4i)\b ',
-        // @ref: http://www.danytech.com/category/tablet-pc
+        // http://www.danytech.com/category/tablet-pc
         'DanyTechTablet' => 'Genius Tab G3|Genius Tab S2|Genius Tab Q3|Genius Tab G4|Genius Tab Q4|Genius Tab G-II|Genius TAB GII|Genius TAB GIII|Genius Tab S1',
-        // @ref: http://www.galapad.net/product.html
+        // http://www.galapad.net/product.html
         'GalapadTablet'     => 'Android.*\bG1\b',
-        // @ref: http://www.micromaxinfo.com/tablet/funbook
+        // http://www.micromaxinfo.com/tablet/funbook
         'MicromaxTablet'    => 'Funbook|Micromax.*\b(P250|P560|P360|P362|P600|P300|P350|P500|P275)\b',
         // http://www.karbonnmobiles.com/products_tablet.php
         'KarbonnTablet'     => 'Android.*\b(A39|A37|A34|ST8|ST10|ST7|Smart Tab3|Smart Tab2)\b',
-        // @ref: http://www.myallfine.com/Products.asp
+        // http://www.myallfine.com/Products.asp
         'AllFineTablet'     => 'Fine7 Genius|Fine7 Shine|Fine7 Air|Fine8 Style|Fine9 More|Fine10 Joy|Fine11 Wide',
-        // @ref: http://www.proscanvideo.com/products-search.asp?itemClass=TABLET&itemnmbr=
+        // http://www.proscanvideo.com/products-search.asp?itemClass=TABLET&itemnmbr=
         'PROSCANTablet'     => '\b(PEM63|PLT1023G|PLT1041|PLT1044|PLT1044G|PLT1091|PLT4311|PLT4311PL|PLT4315|PLT7030|PLT7033|PLT7033D|PLT7035|PLT7035D|PLT7044K|PLT7045K|PLT7045KB|PLT7071KG|PLT7072|PLT7223G|PLT7225G|PLT7777G|PLT7810K|PLT7849G|PLT7851G|PLT7852G|PLT8015|PLT8031|PLT8034|PLT8036|PLT8080K|PLT8082|PLT8088|PLT8223G|PLT8234G|PLT8235G|PLT8816K|PLT9011|PLT9045K|PLT9233G|PLT9735|PLT9760G|PLT9770G)\b',
-        // @ref: http://www.yonesnav.com/products/products.php
+        // http://www.yonesnav.com/products/products.php
         'YONESTablet' => 'BQ1078|BC1003|BC1077|RK9702|BC9730|BC9001|IT9001|BC7008|BC7010|BC708|BC728|BC7012|BC7030|BC7027|BC7026',
-        // @ref: http://www.cjshowroom.com/eproducts.aspx?classcode=004001001
+        // http://www.cjshowroom.com/eproducts.aspx?classcode=004001001
         // China manufacturer makes tablets for different small brands (eg. http://www.zeepad.net/index.html)
         'ChangJiaTablet'    => 'TPC7102|TPC7103|TPC7105|TPC7106|TPC7107|TPC7201|TPC7203|TPC7205|TPC7210|TPC7708|TPC7709|TPC7712|TPC7110|TPC8101|TPC8103|TPC8105|TPC8106|TPC8203|TPC8205|TPC8503|TPC9106|TPC9701|TPC97101|TPC97103|TPC97105|TPC97106|TPC97111|TPC97113|TPC97203|TPC97603|TPC97809|TPC97205|TPC10101|TPC10103|TPC10106|TPC10111|TPC10203|TPC10205|TPC10503',
-        // @ref: http://www.gloryunion.cn/products.asp
-        // @ref: http://www.allwinnertech.com/en/apply/mobile.html
-        // @ref: http://www.ptcl.com.pk/pd_content.php?pd_id=284 (EVOTAB)
+        // http://www.gloryunion.cn/products.asp
+        // http://www.allwinnertech.com/en/apply/mobile.html
+        // http://www.ptcl.com.pk/pd_content.php?pd_id=284 (EVOTAB)
         // @todo: Softwiner tablets?
         // aka. Cute or Cool tablets. Not sure yet, must research to avoid collisions.
         'GUTablet'          => 'TX-A1301|TX-M9002|Q702|kf026', // A12R|D75A|D77|D79|R83|A95|A106C|R15|A75|A76|D71|D72|R71|R73|R77|D82|R85|D92|A97|D92|R91|A10F|A77F|W71F|A78F|W78F|W81F|A97F|W91F|W97F|R16G|C72|C73E|K72|K73|R96G
-        // @ref: http://www.pointofview-online.com/showroom.php?shop_mode=product_listing&category_id=118
+        // http://www.pointofview-online.com/showroom.php?shop_mode=product_listing&category_id=118
         'PointOfViewTablet' => 'TAB-P506|TAB-navi-7-3G-M|TAB-P517|TAB-P-527|TAB-P701|TAB-P703|TAB-P721|TAB-P731N|TAB-P741|TAB-P825|TAB-P905|TAB-P925|TAB-PR945|TAB-PL1015|TAB-P1025|TAB-PI1045|TAB-P1325|TAB-PROTAB[0-9]+|TAB-PROTAB25|TAB-PROTAB26|TAB-PROTAB27|TAB-PROTAB26XL|TAB-PROTAB2-IPS9|TAB-PROTAB30-IPS9|TAB-PROTAB25XXL|TAB-PROTAB26-IPS10|TAB-PROTAB30-IPS10',
-        // @ref: http://www.overmax.pl/pl/katalog-produktow,p8/tablety,c14/
+        // http://www.overmax.pl/pl/katalog-produktow,p8/tablety,c14/
         // @todo: add more tests.
         'OvermaxTablet'     => 'OV-(SteelCore|NewBase|Basecore|Baseone|Exellen|Quattor|EduTab|Solution|ACTION|BasicTab|TeddyTab|MagicTab|Stream|TB-08|TB-09)',
-        // @ref: http://hclmetablet.com/India/index.php
+        // http://hclmetablet.com/India/index.php
         'HCLTablet'         => 'HCL.*Tablet|Connect-3G-2.0|Connect-2G-2.0|ME Tablet U1|ME Tablet U2|ME Tablet G1|ME Tablet X1|ME Tablet Y2|ME Tablet Sync',
-        // @ref: http://www.edigital.hu/Tablet_es_e-book_olvaso/Tablet-c18385.html
+        // http://www.edigital.hu/Tablet_es_e-book_olvaso/Tablet-c18385.html
         'DPSTablet'         => 'DPS Dream 9|DPS Dual 7',
-        // @ref: http://www.visture.com/index.asp
+        // http://www.visture.com/index.asp
         'VistureTablet'     => 'V97 HD|i75 3G|Visture V4( HD)?|Visture V5( HD)?|Visture V10',
-        // @ref: http://www.mijncresta.nl/tablet
+        // http://www.mijncresta.nl/tablet
         'CrestaTablet'     => 'CTP(-)?810|CTP(-)?818|CTP(-)?828|CTP(-)?838|CTP(-)?888|CTP(-)?978|CTP(-)?980|CTP(-)?987|CTP(-)?988|CTP(-)?989',
         // MediaTek - http://www.mediatek.com/_en/01_products/02_proSys.php?cata_sn=1&cata1_sn=1&cata2_sn=309
         'MediatekTablet' => '\bMT8125|MT8389|MT8135|MT8377\b',
@@ -327,7 +383,7 @@ class Mobile_Detect
         // @note: no need to add all the tablet codes since they are guided by the first regex.
         'StorexTablet'  => 'eZee[_\']?(Tab|Go)[0-9]+|TabLC7|Looney Tunes Tab',
         // Generic Vodafone tablets.
-        'VodafoneTablet' => 'SmartTab([ ]+)?[0-9]+|SmartTabII10',
+        'VodafoneTablet' => 'SmartTab([ ]+)?[0-9]+|SmartTabII10|SmartTabII7',
         // French tablets - Essentiel B http://www.boulanger.fr/tablette_tactile_e-book/tablette_tactile_essentiel_b/cl_68908.htm?multiChoiceToDelete=brand&mc_brand=essentielb
         // Aka: http://www.essentielb.fr/
         'EssentielBTablet' => 'Smart[ \']?TAB[ ]+?[0-9]+|Family[ \']?TAB2',
@@ -335,7 +391,7 @@ class Mobile_Detect
         'RossMoorTablet' => 'RM-790|RM-997|RMD-878G|RMD-974R|RMT-705A|RMT-701|RME-601|RMT-501|RMT-711',
         // i-mobile http://product.i-mobilephone.com/Mobile_Device
         'iMobileTablet'        => 'i-mobile i-note',
-        // @ref: http://www.tolino.de/de/vergleichen/
+        // http://www.tolino.de/de/vergleichen/
         'TolinoTablet'  => 'tolino tab [0-9.]+|tolino shine',
         // AudioSonic - a Kmart brand
         // http://www.kmart.com.au/webapp/wcs/stores/servlet/Search?langId=-1&storeId=10701&catalogId=10001&categoryId=193001&pageSize=72&currentPage=1&searchCategory=193001%2b4294965664&sortBy=p_MaxPrice%7c1
@@ -359,16 +415,48 @@ class Mobile_Detect
         // http://www1.viewsonic.com/products/computing/tablets/
         'ViewsonicTablet'   => 'ViewPad 10pi|ViewPad 10e|ViewPad 10s|ViewPad E72|ViewPad7|ViewPad E100|ViewPad 7e|ViewSonic VB733|VB100a',
         // http://www.odys.de/web/internet-tablet_en.html
-        'OdysTablet'        => 'LOOX|XENO10|ODYS Space',
+        'OdysTablet'        => 'LOOX|XENO10|ODYS[ -](Space|EVO|Xpress|NOON)|\bXELIO\b|Xelio10Pro|XELIO7PHONETAB|XELIO10EXTREME|XELIOPT2|NEO_QUAD10',
         // http://www.captiva-power.de/products.html#tablets-en
         'CaptivaTablet'     => 'CAPTIVA PAD',
         // IconBIT - http://www.iconbit.com/products/tablets/
         'IconbitTablet' => 'NetTAB|NT-3702|NT-3702S|NT-3702S|NT-3603P|NT-3603P|NT-0704S|NT-0704S|NT-3805C|NT-3805C|NT-0806C|NT-0806C|NT-0909T|NT-0909T|NT-0907S|NT-0907S|NT-0902S|NT-0902S',
-        // @ref: http://www.tesco.com/direct/hudl/
+        // http://www.teclast.com/topic.php?channelID=70&topicID=140&pid=63
+        'TeclastTablet' => 'T98 4G|\bP80\b|\bX90HD\b|X98 Air|X98 Air 3G|\bX89\b|P80 3G|\bX80h\b|P98 Air|\bX89HD\b|P98 3G|\bP90HD\b|P89 3G|X98 3G|\bP70h\b|P79HD 3G|G18d 3G|\bP79HD\b|\bP89s\b|\bA88\b|\bP10HD\b|\bP19HD\b|G18 3G|\bP78HD\b|\bA78\b|\bP75\b|G17s 3G|G17h 3G|\bP85t\b|\bP90\b|\bP11\b|\bP98t\b|\bP98HD\b|\bG18d\b|\bP85s\b|\bP11HD\b|\bP88s\b|\bA80HD\b|\bA80se\b|\bA10h\b|\bP89\b|\bP78s\b|\bG18\b|\bP85\b|\bA70h\b|\bA70\b|\bG17\b|\bP18\b|\bA80s\b|\bA11s\b|\bP88HD\b|\bA80h\b|\bP76s\b|\bP76h\b|\bP98\b|\bA10HD\b|\bP78\b|\bP88\b|\bA11\b|\bA10t\b|\bP76a\b|\bP76t\b|\bP76e\b|\bP85HD\b|\bP85a\b|\bP86\b|\bP75HD\b|\bP76v\b|\bA12\b|\bP75a\b|\bA15\b|\bP76Ti\b|\bP81HD\b|\bA10\b|\bT760VE\b|\bT720HD\b|\bP76\b|\bP73\b|\bP71\b|\bP72\b|\bT720SE\b|\bC520Ti\b|\bT760\b|\bT720VE\b|T720-3GE|T720-WiFi',
+        // Onda - http://www.onda-tablet.com/buy-android-onda.html?dir=desc&limit=all&order=price
+        'OndaTablet' => '\b(V975i|Vi30|VX530|V701|Vi60|V701s|Vi50|V801s|V719|Vx610w|VX610W|V819i|Vi10|VX580W|Vi10|V711s|V813|V811|V820w|V820|Vi20|V711|VI30W|V712|V891w|V972|V819w|V820w|Vi60|V820w|V711|V813s|V801|V819|V975s|V801|V819|V819|V818|V811|V712|V975m|V101w|V961w|V812|V818|V971|V971s|V919|V989|V116w|V102w|V973|Vi40)\b[\s]+',
+        'JaytechTablet'     => 'TPC-PA762',
+        'BlaupunktTablet'   => 'Endeavour 800NG|Endeavour 1010',
+        // http://www.digma.ru/support/download/
+        // @todo: Ebooks also (if requested)
+        'DigmaTablet' => '\b(iDx10|iDx9|iDx8|iDx7|iDxD7|iDxD8|iDsQ8|iDsQ7|iDsQ8|iDsD10|iDnD7|3TS804H|iDsQ11|iDj7|iDs10)\b',
+        // http://www.evolioshop.com/ro/tablete-pc.html
+        // http://www.evolio.ro/support/downloads_static.html?cat=2
+        // @todo: Research some more
+        'EvolioTablet' => 'ARIA_Mini_wifi|Aria[ _]Mini|Evolio X10|Evolio X7|Evolio X8|\bEvotab\b|\bNeura\b',
+        // @todo http://www.lavamobiles.com/tablets-data-cards
+        'LavaTablet' => 'QPAD E704|\bIvoryS\b|E-TAB IVORY|\bE-TAB\b',
+        // https://www.celkonmobiles.com/?_a=categoryphones&sid=2
+        'CelkonTablet' => 'CT695|CT888|CT[\s]?910|CT7 Tab|CT9 Tab|CT3 Tab|CT2 Tab|CT1 Tab|C820|C720|\bCT-1\b',
+        // http://www.wolderelectronics.com/productos/manuales-y-guias-rapidas/categoria-2-miTab
+        'WolderTablet' => 'miTab \b(DIAMOND|SPACE|BROOKLYN|NEO|FLY|MANHATTAN|FUNK|EVOLUTION|SKY|GOCAR|IRON|GENIUS|POP|MINT|EPSILON|BROADWAY|JUMP|HOP|LEGEND|NEW AGE|LINE|ADVANCE|FEEL|FOLLOW|LIKE|LINK|LIVE|THINK|FREEDOM|CHICAGO|CLEVELAND|BALTIMORE-GH|IOWA|BOSTON|SEATTLE|PHOENIX|DALLAS|IN 101|MasterChef)\b',
+        // http://www.mi.com/en
+        'MiTablet' => '\bMI PAD\b|\bHM NOTE 1W\b',
+        // http://www.nbru.cn/index.html
+        'NibiruTablet' => 'Nibiru M1|Nibiru Jupiter One',
+        // http://navroad.com/products/produkty/tablety/
+        'NexoTablet' => 'NEXO NOVA|NEXO 10|NEXO AVIO|NEXO FREE|NEXO GO|NEXO EVO|NEXO 3G|NEXO SMART|NEXO KIDDO|NEXO MOBI',
+        // http://leader-online.com/new_site/product-category/tablets/
+        // http://www.leader-online.net.au/List/Tablet
+        'LeaderTablet' => 'TBLT10Q|TBLT10I|TBL-10WDKB|TBL-10WDKBO2013|TBL-W230V2|TBL-W450|TBL-W500|SV572|TBLT7I|TBA-AC7-8G|TBLT79|TBL-8W16|TBL-10W32|TBL-10WKB|TBL-W100',
+        // http://www.datawind.com/ubislate/
+        'UbislateTablet' => 'UbiSlate[\s]?7C',
+        // http://www.pocketbook-int.com/ru/support
+        'PocketBookTablet' => 'Pocketbook',
+        // http://www.tesco.com/direct/hudl/
         'Hudl'              => 'Hudl HT7S3',
-        // @ref: http://www.telstra.com.au/home-phone/thub-2/
+        // http://www.telstra.com.au/home-phone/thub-2/
         'TelstraTablet'     => 'T-Hub2',
-        'GenericTablet'     => 'Android.*\b97D\b|Tablet(?!.*PC)|BNTV250A|MID-WCDMA|LogicPD Zoom2|\bA7EB\b|CatNova8|A1_07|CT704|CT1002|\bM721\b|rk30sdk|\bEVOTAB\b|M758A|ET904|ALUMIUM10|Smartfren Tab|Endeavour 1010|Tablet-PC-4',
+        'GenericTablet'     => 'Android.*\b97D\b|Tablet(?!.*PC)|BNTV250A|MID-WCDMA|LogicPD Zoom2|\bA7EB\b|CatNova8|A1_07|CT704|CT1002|\bM721\b|rk30sdk|\bEVOTAB\b|M758A|ET904|ALUMIUM10|Smartfren Tab|Endeavour 1010|Tablet-PC-4|Tagi Tab|\bM6pro\b|CT1020W|arc 10HD|\bJolla\b|\bTP750\b'
     );
 
     /**
@@ -386,7 +474,8 @@ class Mobile_Detect
         // @reference: http://en.wikipedia.org/wiki/Windows_Phone
         // http://wifeng.cn/?r=blog&a=view&id=106
         // http://nicksnettravels.builttoroam.com/post/2011/01/10/Bogus-Windows-Phone-7-User-Agent-String.aspx
-        'WindowsPhoneOS'   => 'Windows Phone 8.0|Windows Phone OS|XBLWP7|ZuneWP7',
+        // http://msdn.microsoft.com/library/ms537503.aspx
+        'WindowsPhoneOS'   => 'Windows Phone 8.1|Windows Phone 8.0|Windows Phone OS|XBLWP7|ZuneWP7|Windows NT 6.[23]; ARM;',
         'iOS'               => '\biPhone.*Mobile|\biPod|\biPad',
         // http://en.wikipedia.org/wiki/MeeGo
         // @todo: research MeeGo in UAs
@@ -417,20 +506,26 @@ class Mobile_Detect
         'TeaShark'        => 'teashark',
         'Blazer'          => 'Blazer',
         // @reference: http://developer.apple.com/library/safari/#documentation/AppleApplications/Reference/SafariWebContent/OptimizingforSafarioniPhone/OptimizingforSafarioniPhone.html#//apple_ref/doc/uid/TP40006517-SW3
-        'Safari'          => 'Version.*Mobile.*Safari|Safari.*Mobile',
-        // @ref: http://en.wikipedia.org/wiki/Midori_(web_browser)
+        'Safari'          => 'Version.*Mobile.*Safari|Safari.*Mobile|MobileSafari',
+        // http://en.wikipedia.org/wiki/Midori_(web_browser)
         //'Midori'          => 'midori',
         'Tizen'           => 'Tizen',
         'UCBrowser'       => 'UC.*Browser|UCWEB',
-        // @ref: https://github.com/serbanghita/Mobile-Detect/issues/7
+        'baiduboxapp'     => 'baiduboxapp',
+        'baidubrowser'    => 'baidubrowser',
+        // https://github.com/serbanghita/Mobile-Detect/issues/7
         'DiigoBrowser'    => 'DiigoBrowser',
         // http://www.puffinbrowser.com/index.php
         'Puffin'            => 'Puffin',
-        // @ref: http://mercury-browser.com/index.html
+        // http://mercury-browser.com/index.html
         'Mercury'          => '\bMercury\b',
+        // http://en.wikipedia.org/wiki/Obigo_Browser
+        'ObigoBrowser' => 'Obigo',
+        // http://en.wikipedia.org/wiki/NetFront
+        'NetFront' => 'NF-Browser',
         // @reference: http://en.wikipedia.org/wiki/Minimo
         // http://en.wikipedia.org/wiki/Vision_Mobile_Browser
-        'GenericBrowser'  => 'NokiaBrowser|OviBrowser|OneBrowser|TwonkyBeamBrowser|SEMC.*Browser|FlyFlow|Minimo|NetFront|Novarra-Vision|MQQBrowser|MicroMessenger'
+        'GenericBrowser'  => 'NokiaBrowser|OviBrowser|OneBrowser|TwonkyBeamBrowser|SEMC.*Browser|FlyFlow|Minimo|NetFront|Novarra-Vision|MQQBrowser|MicroMessenger',
     );
 
     /**
@@ -440,15 +535,16 @@ class Mobile_Detect
      */
     protected static $utilities = array(
         // Experimental. When a mobile device wants to switch to 'Desktop Mode'.
-        // @ref: http://scottcate.com/technology/windows-phone-8-ie10-desktop-or-mobile/
-        // @ref: https://github.com/serbanghita/Mobile-Detect/issues/57#issuecomment-15024011
+        // http://scottcate.com/technology/windows-phone-8-ie10-desktop-or-mobile/
+        // https://github.com/serbanghita/Mobile-Detect/issues/57#issuecomment-15024011
+        // https://developers.facebook.com/docs/sharing/best-practices
+        'Bot'         => 'Googlebot|facebookexternalhit|AdsBot-Google|Google Keyword Suggestion|Facebot|YandexBot|bingbot|ia_archiver|AhrefsBot|Ezooms|GSLFbot|WBSearchBot|Twitterbot|TweetmemeBot|Twikle|PaperLiBot|Wotbox|UnwindFetchor|Exabot|MJ12bot|YandexImages|TurnitinBot|Pingdom',
+        'MobileBot'   => 'Googlebot-Mobile|AdsBot-Google-Mobile|YahooSeeker/M1A1-R2D2',
         'DesktopMode' => 'WPDesktop',
         'TV'          => 'SonyDTV|HbbTV', // experimental
         'WebKit'      => '(webkit)[ /]([\w.]+)',
-        'Bot'         => 'Googlebot|DoCoMo|YandexBot|bingbot|ia_archiver|AhrefsBot|Ezooms|GSLFbot|WBSearchBot|Twitterbot|TweetmemeBot|Twikle|PaperLiBot|Wotbox|UnwindFetchor|facebookexternalhit',
-        'MobileBot'   => 'Googlebot-Mobile|DoCoMo|YahooSeeker/M1A1-R2D2',
         // @todo: Include JXD consoles.
-        'Console'     => '\b(Nintendo|Nintendo WiiU|PLAYSTATION|Xbox)\b',
+        'Console'     => '\b(Nintendo|Nintendo WiiU|Nintendo 3DS|PLAYSTATION|Xbox)\b',
         'Watch'       => 'SM-V700',
     );
 
@@ -500,8 +596,9 @@ class Mobile_Detect
         // @reference: https://developer.mozilla.org/en-US/docs/User_Agent_Strings_Reference
         'Firefox'       => 'Firefox/[VER]',
         'Fennec'        => 'Fennec/[VER]',
-        // @reference: http://msdn.microsoft.com/en-us/library/ms537503(v=vs.85).aspx
-        'IE'      => array('IEMobile/[VER];', 'IEMobile [VER]', 'MSIE [VER];'),
+        // http://msdn.microsoft.com/en-us/library/ms537503(v=vs.85).aspx
+        // https://msdn.microsoft.com/en-us/library/ie/hh869301(v=vs.85).aspx
+        'IE'      => array('IEMobile/[VER];', 'IEMobile [VER]', 'MSIE [VER];', 'Trident/[0-9.]+;.*rv:[VER]'),
         // http://en.wikipedia.org/wiki/NetFront
         'NetFront'      => 'NetFront/[VER]',
         'NokiaBrowser'  => 'NokiaBrowser/[VER]',
@@ -511,6 +608,9 @@ class Mobile_Detect
         'UC Browser'    => 'UC Browser[VER]',
         'MQQBrowser'    => 'MQQBrowser/[VER]',
         'MicroMessenger' => 'MicroMessenger/[VER]',
+        'baiduboxapp'   => 'baiduboxapp/[VER]',
+        'baidubrowser'  => 'baidubrowser/[VER]',
+        'Iron'          => 'Iron/[VER]',
         // @note: Safari 7534.48.3 is actually Version 5.1.
         // @note: On BlackBerry the Version is overwriten by the OS.
         'Safari'        => array( 'Version/[VER]', 'Safari/[VER]' ),
@@ -524,7 +624,7 @@ class Mobile_Detect
         'Presto'        => 'Presto/[VER]',
 
         // OS
-        'iOS'              => ' \bOS\b [VER] ',
+        'iOS'              => ' \bi?OS\b [VER][ ;]{1}',
         'Android'          => 'Android [VER]',
         'BlackBerry'       => array('BlackBerry[\w]+/[VER]', 'BlackBerry.*Version/[VER]', 'Version/[VER]'),
         'BREW'             => 'BREW [VER]',
@@ -543,15 +643,15 @@ class Mobile_Detect
     /**
      * Construct an instance of this class.
      *
-     * @param array $headers Specify the headers as injection. Should be PHP _SERVER flavored.
-     *                       If left empty, will use the global _SERVER['HTTP_*'] vars instead.
+     * @param array  $headers   Specify the headers as injection. Should be PHP _SERVER flavored.
+     *                          If left empty, will use the global _SERVER['HTTP_*'] vars instead.
      * @param string $userAgent Inject the User-Agent header. If null, will use HTTP_USER_AGENT
      *                          from the $headers array instead.
      */
     public function __construct(
         array $headers = null,
         $userAgent = null
-    ){
+    ) {
         $this->setHttpHeaders($headers);
         $this->setUserAgent($userAgent);
     }
@@ -577,21 +677,24 @@ class Mobile_Detect
      */
     public function setHttpHeaders($httpHeaders = null)
     {
-        //use global _SERVER if $httpHeaders aren't defined
+        // use global _SERVER if $httpHeaders aren't defined
         if (!is_array($httpHeaders) || !count($httpHeaders)) {
             $httpHeaders = $_SERVER;
         }
 
-        //clear existing headers
+        // clear existing headers
         $this->httpHeaders = array();
 
-        //Only save HTTP headers. In PHP land, that means only _SERVER vars that
-        //start with HTTP_.
+        // Only save HTTP headers. In PHP land, that means only _SERVER vars that
+        // start with HTTP_.
         foreach ($httpHeaders as $key => $value) {
-            if (substr($key,0,5) == 'HTTP_') {
+            if (substr($key, 0, 5) === 'HTTP_') {
                 $this->httpHeaders[$key] = $value;
             }
         }
+
+        // In case we're dealing with CloudFront, we need to know.
+        $this->setCfHeaders($httpHeaders);
     }
 
     /**
@@ -616,13 +719,13 @@ class Mobile_Detect
      */
     public function getHttpHeader($header)
     {
-        //are we using PHP-flavored headers?
+        // are we using PHP-flavored headers?
         if (strpos($header, '_') === false) {
             $header = str_replace('-', '_', $header);
             $header = strtoupper($header);
         }
 
-        //test the alternate, too
+        // test the alternate, too
         $altHeader = 'HTTP_' . $header;
 
         //Test both the regular and the HTTP_ prefix
@@ -651,6 +754,47 @@ class Mobile_Detect
         return self::$uaHttpHeaders;
     }
 
+    
+    /**
+     * Set CloudFront headers
+     * http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/header-caching.html#header-caching-web-device
+     * 
+     * @param array $cfHeaders List of HTTP headers
+     *
+     * @return  boolean If there were CloudFront headers to be set
+     */
+    public function setCfHeaders($cfHeaders = null) {
+        // use global _SERVER if $cfHeaders aren't defined
+        if (!is_array($cfHeaders) || !count($cfHeaders)) {
+            $cfHeaders = $_SERVER;
+        }
+
+        // clear existing headers
+        $this->cloudfrontHeaders = array();
+
+        // Only save CLOUDFRONT headers. In PHP land, that means only _SERVER vars that
+        // start with cloudfront-.
+        $response = false;
+        foreach ($cfHeaders as $key => $value) {
+            if (substr(strtolower($key), 0, 16) === 'http_cloudfront_') {
+                $this->cloudfrontHeaders[strtoupper($key)] = $value;
+                $response = true;
+            }
+        }
+
+        return $response;
+    }
+
+    /**
+     * Retrieves the cloudfront headers.
+     *
+     * @return array
+     */
+    public function getCfHeaders()
+    {
+        return $this->cloudfrontHeaders;
+    }
+
     /**
      * Set the User-Agent to be used.
      *
@@ -660,21 +804,28 @@ class Mobile_Detect
      */
     public function setUserAgent($userAgent = null)
     {
-        if (!empty($userAgent)) {
+        // Invalidate cache due to #375
+        $this->cache = array();
+
+        if (false === empty($userAgent)) {
             return $this->userAgent = $userAgent;
         } else {
-
             $this->userAgent = null;
-
-            foreach($this->getUaHttpHeaders() as $altHeader){
-                if(!empty($this->httpHeaders[$altHeader])){ // @todo: should use getHttpHeader(), but it would be slow. (Serban)
+            foreach ($this->getUaHttpHeaders() as $altHeader) {
+                if (false === empty($this->httpHeaders[$altHeader])) { // @todo: should use getHttpHeader(), but it would be slow. (Serban)
                     $this->userAgent .= $this->httpHeaders[$altHeader] . " ";
                 }
             }
 
-            return $this->userAgent = (!empty($this->userAgent) ? trim($this->userAgent) : null);
+            if (!empty($this->userAgent)) {
+                return $this->userAgent = trim($this->userAgent);
+            }
+        }
 
+        if (count($this->getCfHeaders()) > 0) {
+            return $this->userAgent = 'Amazon CloudFront';
         }
+        return $this->userAgent = null;
     }
 
     /**
@@ -702,13 +853,23 @@ class Mobile_Detect
             $type = self::DETECTION_TYPE_MOBILE;
         }
 
-        if ($type != self::DETECTION_TYPE_MOBILE && $type != self::DETECTION_TYPE_EXTENDED) {
+        if ($type !== self::DETECTION_TYPE_MOBILE && $type !== self::DETECTION_TYPE_EXTENDED) {
             return;
         }
 
         $this->detectionType = $type;
     }
 
+    public function getMatchingRegex()
+    {
+        return $this->matchingRegex;
+    }
+
+    public function getMatchesArray()
+    {
+        return $this->matchesArray;
+    }
+
     /**
      * Retrieve the list of known phone devices.
      *
@@ -847,14 +1008,15 @@ class Mobile_Detect
     public function checkHttpHeadersForMobile()
     {
 
-        foreach($this->getMobileHeaders() as $mobileHeader => $matchType){
-            if( isset($this->httpHeaders[$mobileHeader]) ){
-                if( is_array($matchType['matches']) ){
-                    foreach($matchType['matches'] as $_match){
-                        if( strpos($this->httpHeaders[$mobileHeader], $_match) !== false ){
+        foreach ($this->getMobileHeaders() as $mobileHeader => $matchType) {
+            if (isset($this->httpHeaders[$mobileHeader])) {
+                if (is_array($matchType['matches'])) {
+                    foreach ($matchType['matches'] as $_match) {
+                        if (strpos($this->httpHeaders[$mobileHeader], $_match) !== false) {
                             return true;
                         }
                     }
+
                     return false;
                 } else {
                     return true;
@@ -877,8 +1039,8 @@ class Mobile_Detect
      */
     public function __call($name, $arguments)
     {
-        //make sure the name starts with 'is', otherwise
-        if (substr($name, 0, 2) != 'is') {
+        // make sure the name starts with 'is', otherwise
+        if (substr($name, 0, 2) !== 'is') {
             throw new BadMethodCallException("No such method exists: $name");
         }
 
@@ -892,7 +1054,7 @@ class Mobile_Detect
     /**
      * Find a detection rule that matches the current User-agent.
      *
-     * @param null $userAgent deprecated
+     * @param  null    $userAgent deprecated
      * @return boolean
      */
     protected function matchDetectionRulesAgainstUA($userAgent = null)
@@ -902,6 +1064,7 @@ class Mobile_Detect
             if (empty($_regex)) {
                 continue;
             }
+
             if ($this->match($_regex, $userAgent)) {
                 return true;
             }
@@ -913,36 +1076,38 @@ class Mobile_Detect
     /**
      * Search for a certain key in the rules array.
      * If the key is found the try to match the corresponding
-     * regex agains the User-Agent.
+     * regex against the User-Agent.
      *
      * @param string $key
-     * @param null $userAgent deprecated
-     * @return mixed
+     *
+     * @return boolean
      */
-    protected function matchUAAgainstKey($key, $userAgent = null)
+    protected function matchUAAgainstKey($key)
     {
         // Make the keys lowercase so we can match: isIphone(), isiPhone(), isiphone(), etc.
         $key = strtolower($key);
+        if (false === isset($this->cache[$key])) {
 
-        //change the keys to lower case
-        $_rules = array_change_key_case($this->getRules());
+            // change the keys to lower case
+            $_rules = array_change_key_case($this->getRules());
 
-        if (array_key_exists($key, $_rules)) {
-            if (empty($_rules[$key])) {
-                return null;
+            if (false === empty($_rules[$key])) {
+                $this->cache[$key] = $this->match($_rules[$key]);
             }
 
-            return $this->match($_rules[$key], $userAgent);
+            if (false === isset($this->cache[$key])) {
+                $this->cache[$key] = false;
+            }
         }
 
-        return false;
+        return $this->cache[$key];
     }
 
     /**
      * Check if the device is mobile.
      * Returns true if any type of mobile device detected, including special ones
-     * @param null $userAgent deprecated
-     * @param null $httpHeaders deprecated
+     * @param  null $userAgent   deprecated
+     * @param  null $httpHeaders deprecated
      * @return bool
      */
     public function isMobile($userAgent = null, $httpHeaders = null)
@@ -956,6 +1121,14 @@ class Mobile_Detect
             $this->setUserAgent($userAgent);
         }
 
+        // Check specifically for cloudfront headers if the useragent === 'Amazon CloudFront'
+        if ($this->getUserAgent() === 'Amazon CloudFront') {
+            $cfHeaders = $this->getCfHeaders();
+            if(array_key_exists('HTTP_CLOUDFRONT_IS_MOBILE_VIEWER', $cfHeaders) && $cfHeaders['HTTP_CLOUDFRONT_IS_MOBILE_VIEWER'] === 'true') {
+                return true;
+            }
+        }
+
         $this->setDetectionType(self::DETECTION_TYPE_MOBILE);
 
         if ($this->checkHttpHeadersForMobile()) {
@@ -976,6 +1149,14 @@ class Mobile_Detect
      */
     public function isTablet($userAgent = null, $httpHeaders = null)
     {
+        // Check specifically for cloudfront headers if the useragent === 'Amazon CloudFront'
+        if ($this->getUserAgent() === 'Amazon CloudFront') {
+            $cfHeaders = $this->getCfHeaders();
+            if(array_key_exists('HTTP_CLOUDFRONT_IS_TABLET_VIEWER', $cfHeaders) && $cfHeaders['HTTP_CLOUDFRONT_IS_TABLET_VIEWER'] === 'true') {
+                return true;
+            }
+        }
+
         $this->setDetectionType(self::DETECTION_TYPE_MOBILE);
 
         foreach (self::$tabletDevices as $_regex) {
@@ -992,9 +1173,9 @@ class Mobile_Detect
      * userAgent.
      * @todo: The httpHeaders part is not yet used.
      *
-     * @param string $key
-     * @param string        $userAgent   deprecated
-     * @param string        $httpHeaders deprecated
+     * @param  string        $key
+     * @param  string        $userAgent   deprecated
+     * @param  string        $httpHeaders deprecated
      * @return bool|int|null
      */
     public function is($key, $userAgent = null, $httpHeaders = null)
@@ -1030,10 +1211,14 @@ class Mobile_Detect
      */
     public function match($regex, $userAgent = null)
     {
-        // Escape the special character which is the delimiter.
-        $regex = str_replace('/', '\/', $regex);
+        $match = (bool) preg_match(sprintf('#%s#is', $regex), (false === empty($userAgent) ? $userAgent : $this->userAgent), $matches);
+        // If positive match is found, store the results for debug.
+        if ($match) {
+            $this->matchingRegex = $regex;
+            $this->matchesArray = $matches;
+        }
 
-        return (bool) preg_match('/'.$regex.'/is', (!empty($userAgent) ? $userAgent : $this->userAgent));
+        return $match;
     }
 
     /**
@@ -1072,11 +1257,11 @@ class Mobile_Detect
      * Will return a float number. (eg. 2_0 will return 2.0, 4.3.1 will return 4.31)
      *
      * @param string $propertyName The name of the property. See self::getProperties() array
-     *                              keys for all possible properties.
-     * @param string $type Either self::VERSION_TYPE_STRING to get a string value or
-     *                      self::VERSION_TYPE_FLOAT indicating a float value. This parameter
-     *                      is optional and defaults to self::VERSION_TYPE_STRING. Passing an
-     *                      invalid parameter will default to the this type as well.
+     *                             keys for all possible properties.
+     * @param string $type         Either self::VERSION_TYPE_STRING to get a string value or
+     *                             self::VERSION_TYPE_FLOAT indicating a float value. This parameter
+     *                             is optional and defaults to self::VERSION_TYPE_STRING. Passing an
+     *                             invalid parameter will default to the this type as well.
      *
      * @return string|float The version of the property we are trying to extract.
      */
@@ -1086,15 +1271,15 @@ class Mobile_Detect
             return false;
         }
 
-        //set the $type to the default if we don't recognize the type
-        if ($type != self::VERSION_TYPE_STRING && $type != self::VERSION_TYPE_FLOAT) {
+        // set the $type to the default if we don't recognize the type
+        if ($type !== self::VERSION_TYPE_STRING && $type !== self::VERSION_TYPE_FLOAT) {
             $type = self::VERSION_TYPE_STRING;
         }
 
         $properties = self::getProperties();
 
         // Check if the property exists in the properties array.
-        if (array_key_exists($propertyName, $properties)) {
+        if (true === isset($properties[$propertyName])) {
 
             // Prepare the pattern to be matched.
             // Make sure we always deal with an array (string is converted).
@@ -1104,14 +1289,11 @@ class Mobile_Detect
 
                 $propertyPattern = str_replace('[VER]', self::VER, $propertyMatchString);
 
-                // Escape the special character which is the delimiter.
-                $propertyPattern = str_replace('/', '\/', $propertyPattern);
-
                 // Identify and extract the version.
-                preg_match('/'.$propertyPattern.'/is', $this->userAgent, $match);
+                preg_match(sprintf('#%s#is', $propertyPattern), $this->userAgent, $match);
 
-                if (!empty($match[1])) {
-                    $version = ( $type == self::VERSION_TYPE_FLOAT ? $this->prepareVersionNo($match[1]) : $match[1] );
+                if (false === empty($match[1])) {
+                    $version = ($type == self::VERSION_TYPE_FLOAT ? $this->prepareVersionNo($match[1]) : $match[1]);
 
                     return $version;
                 }
@@ -1133,10 +1315,10 @@ class Mobile_Detect
         $isMobile = $this->isMobile();
 
         if (
-            // Apple iOS 3.2-5.1 - Tested on the original iPad (4.3 / 5.0), iPad 2 (4.3), iPad 3 (5.1), original iPhone (3.1), iPhone 3 (3.2), 3GS (4.3), 4 (4.3 / 5.0), and 4S (5.1)
-            $this->isIOS() && $this->version('iPad', self::VERSION_TYPE_FLOAT)>=4.3 ||
-            $this->isIOS() && $this->version('iPhone', self::VERSION_TYPE_FLOAT)>=3.1 ||
-            $this->isIOS() && $this->version('iPod', self::VERSION_TYPE_FLOAT)>=3.1 ||
+            // Apple iOS 4-7.0 – Tested on the original iPad (4.3 / 5.0), iPad 2 (4.3 / 5.1 / 6.1), iPad 3 (5.1 / 6.0), iPad Mini (6.1), iPad Retina (7.0), iPhone 3GS (4.3), iPhone 4 (4.3 / 5.1), iPhone 4S (5.1 / 6.0), iPhone 5 (6.0), and iPhone 5S (7.0)
+            $this->is('iOS') && $this->version('iPad', self::VERSION_TYPE_FLOAT) >= 4.3 ||
+            $this->is('iOS') && $this->version('iPhone', self::VERSION_TYPE_FLOAT) >= 4.3 ||
+            $this->is('iOS') && $this->version('iPod', self::VERSION_TYPE_FLOAT) >= 4.3 ||
 
             // Android 2.1-2.3 - Tested on the HTC Incredible (2.2), original Droid (2.2), HTC Aria (2.1), Google Nexus S (2.3). Functional on 1.5 & 1.6 but performance may be sluggish, tested on Google G1 (1.5)
             // Android 3.1 (Honeycomb)  - Tested on the Samsung Galaxy Tab 10.1 and Motorola XOOM
@@ -1144,31 +1326,30 @@ class Mobile_Detect
             // Android 4.1 (Jelly Bean)  - Tested on a Galaxy Nexus and Galaxy 7
             ( $this->version('Android', self::VERSION_TYPE_FLOAT)>2.1 && $this->is('Webkit') ) ||
 
-            // Windows Phone 7-7.5 - Tested on the HTC Surround (7.0) HTC Trophy (7.5), LG-E900 (7.5), Nokia Lumia 800
-            $this->version('Windows Phone OS', self::VERSION_TYPE_FLOAT)>=7.0 ||
+            // Windows Phone 7.5-8 - Tested on the HTC Surround (7.5), HTC Trophy (7.5), LG-E900 (7.5), Nokia 800 (7.8), HTC Mazaa (7.8), Nokia Lumia 520 (8), Nokia Lumia 920 (8), HTC 8x (8)
+            $this->version('Windows Phone OS', self::VERSION_TYPE_FLOAT) >= 7.5 ||
 
-            // Blackberry 7 - Tested on BlackBerry Torch 9810
-            // Blackberry 6.0 - Tested on the Torch 9800 and Style 9670
-            $this->is('BlackBerry') && $this->version('BlackBerry', self::VERSION_TYPE_FLOAT)>=6.0 ||
+            // Tested on the Torch 9800 (6) and Style 9670 (6), BlackBerry® Torch 9810 (7), BlackBerry Z10 (10)
+            $this->is('BlackBerry') && $this->version('BlackBerry', self::VERSION_TYPE_FLOAT) >= 6.0 ||
             // Blackberry Playbook (1.0-2.0) - Tested on PlayBook
             $this->match('Playbook.*Tablet') ||
 
-            // Palm WebOS (1.4-2.0) - Tested on the Palm Pixi (1.4), Pre (1.4), Pre 2 (2.0)
-            ( $this->version('webOS', self::VERSION_TYPE_FLOAT)>=1.4 && $this->match('Palm|Pre|Pixi') ) ||
+            // Palm WebOS (1.4-3.0) - Tested on the Palm Pixi (1.4), Pre (1.4), Pre 2 (2.0), HP TouchPad (3.0)
+            ( $this->version('webOS', self::VERSION_TYPE_FLOAT) >= 1.4 && $this->match('Palm|Pre|Pixi') ) ||
             // Palm WebOS 3.0  - Tested on HP TouchPad
             $this->match('hp.*TouchPad') ||
 
-            // Firefox Mobile (12 Beta) - Tested on Android 2.3 device
-            ( $this->is('Firefox') && $this->version('Firefox', self::VERSION_TYPE_FLOAT)>=12 ) ||
+            // Firefox Mobile 18 - Tested on Android 2.3 and 4.1 devices
+            ( $this->is('Firefox') && $this->version('Firefox', self::VERSION_TYPE_FLOAT) >= 18 ) ||
 
             // Chrome for Android - Tested on Android 4.0, 4.1 device
-            ( $this->is('Chrome') && $this->is('AndroidOS') && $this->version('Android', self::VERSION_TYPE_FLOAT)>=4.0 ) ||
+            ( $this->is('Chrome') && $this->is('AndroidOS') && $this->version('Android', self::VERSION_TYPE_FLOAT) >= 4.0 ) ||
 
             // Skyfire 4.1 - Tested on Android 2.3 device
-            ( $this->is('Skyfire') && $this->version('Skyfire', self::VERSION_TYPE_FLOAT)>=4.1 && $this->is('AndroidOS') && $this->version('Android', self::VERSION_TYPE_FLOAT)>=2.3 ) ||
+            ( $this->is('Skyfire') && $this->version('Skyfire', self::VERSION_TYPE_FLOAT) >= 4.1 && $this->is('AndroidOS') && $this->version('Android', self::VERSION_TYPE_FLOAT) >= 2.3 ) ||
 
             // Opera Mobile 11.5-12: Tested on Android 2.3
-            ( $this->is('Opera') && $this->version('Opera Mobi', self::VERSION_TYPE_FLOAT)>11 && $this->is('AndroidOS') ) ||
+            ( $this->is('Opera') && $this->version('Opera Mobi', self::VERSION_TYPE_FLOAT) >= 11.5 && $this->is('AndroidOS') ) ||
 
             // Meego 1.2 - Tested on Nokia 950 and N9
             $this->is('MeeGoOS') ||
@@ -1178,71 +1359,76 @@ class Mobile_Detect
 
             // Samsung Bada 2.0 - Tested on a Samsung Wave 3, Dolphin browser
             // @todo: more tests here!
-            $this->is('Dolfin') && $this->version('Bada', self::VERSION_TYPE_FLOAT)>=2.0 ||
+            $this->is('Dolfin') && $this->version('Bada', self::VERSION_TYPE_FLOAT) >= 2.0 ||
 
             // UC Browser - Tested on Android 2.3 device
-            ( ($this->is('UC Browser') || $this->is('Dolfin')) && $this->version('Android', self::VERSION_TYPE_FLOAT)>=2.3 ) ||
+            ( ($this->is('UC Browser') || $this->is('Dolfin')) && $this->version('Android', self::VERSION_TYPE_FLOAT) >= 2.3 ) ||
 
             // Kindle 3 and Fire  - Tested on the built-in WebKit browser for each
             ( $this->match('Kindle Fire') ||
-            $this->is('Kindle') && $this->version('Kindle', self::VERSION_TYPE_FLOAT)>=3.0 ) ||
+            $this->is('Kindle') && $this->version('Kindle', self::VERSION_TYPE_FLOAT) >= 3.0 ) ||
 
             // Nook Color 1.4.1 - Tested on original Nook Color, not Nook Tablet
             $this->is('AndroidOS') && $this->is('NookTablet') ||
 
-            // Chrome Desktop 11-21 - Tested on OS X 10.7 and Windows 7
-            $this->version('Chrome', self::VERSION_TYPE_FLOAT)>=11 && !$isMobile ||
+            // Chrome Desktop 16-24 - Tested on OS X 10.7 and Windows 7
+            $this->version('Chrome', self::VERSION_TYPE_FLOAT) >= 16 && !$isMobile ||
 
-            // Safari Desktop 4-5 - Tested on OS X 10.7 and Windows 7
-            $this->version('Safari', self::VERSION_TYPE_FLOAT)>=5.0 && !$isMobile ||
+            // Safari Desktop 5-6 - Tested on OS X 10.7 and Windows 7
+            $this->version('Safari', self::VERSION_TYPE_FLOAT) >= 5.0 && !$isMobile ||
 
-            // Firefox Desktop 4-13 - Tested on OS X 10.7 and Windows 7
-            $this->version('Firefox', self::VERSION_TYPE_FLOAT)>=4.0 && !$isMobile ||
+            // Firefox Desktop 10-18 - Tested on OS X 10.7 and Windows 7
+            $this->version('Firefox', self::VERSION_TYPE_FLOAT) >= 10.0 && !$isMobile ||
 
             // Internet Explorer 7-9 - Tested on Windows XP, Vista and 7
-            $this->version('MSIE', self::VERSION_TYPE_FLOAT)>=7.0 && !$isMobile ||
+            $this->version('IE', self::VERSION_TYPE_FLOAT) >= 7.0 && !$isMobile ||
 
             // Opera Desktop 10-12 - Tested on OS X 10.7 and Windows 7
-            // @reference: http://my.opera.com/community/openweb/idopera/
-            $this->version('Opera', self::VERSION_TYPE_FLOAT)>=10 && !$isMobile
-
+            $this->version('Opera', self::VERSION_TYPE_FLOAT) >= 10 && !$isMobile
         ){
             return self::MOBILE_GRADE_A;
         }
 
         if (
-            $this->isIOS() && $this->version('iPad', self::VERSION_TYPE_FLOAT)<4.3 ||
-            $this->isIOS() && $this->version('iPhone', self::VERSION_TYPE_FLOAT)<3.1 ||
-            $this->isIOS() && $this->version('iPod', self::VERSION_TYPE_FLOAT)<3.1 ||
+            $this->is('iOS') && $this->version('iPad', self::VERSION_TYPE_FLOAT)<4.3 ||
+            $this->is('iOS') && $this->version('iPhone', self::VERSION_TYPE_FLOAT)<4.3 ||
+            $this->is('iOS') && $this->version('iPod', self::VERSION_TYPE_FLOAT)<4.3 ||
 
             // Blackberry 5.0: Tested on the Storm 2 9550, Bold 9770
-            $this->is('Blackberry') && $this->version('BlackBerry', self::VERSION_TYPE_FLOAT)>=5 && $this->version('BlackBerry', self::VERSION_TYPE_FLOAT)<6 ||
+            $this->is('Blackberry') && $this->version('BlackBerry', self::VERSION_TYPE_FLOAT) >= 5 && $this->version('BlackBerry', self::VERSION_TYPE_FLOAT)<6 ||
 
             //Opera Mini (5.0-6.5) - Tested on iOS 3.2/4.3 and Android 2.3
-            ( $this->version('Opera Mini', self::VERSION_TYPE_FLOAT)>=5.0 && $this->version('Opera Mini', self::VERSION_TYPE_FLOAT)<=6.5 &&
-            ($this->version('Android', self::VERSION_TYPE_FLOAT)>=2.3 || $this->is('iOS')) ) ||
+            ($this->version('Opera Mini', self::VERSION_TYPE_FLOAT) >= 5.0 && $this->version('Opera Mini', self::VERSION_TYPE_FLOAT) <= 7.0 &&
+            ($this->version('Android', self::VERSION_TYPE_FLOAT) >= 2.3 || $this->is('iOS')) ) ||
 
             // Nokia Symbian^3 - Tested on Nokia N8 (Symbian^3), C7 (Symbian^3), also works on N97 (Symbian^1)
             $this->match('NokiaN8|NokiaC7|N97.*Series60|Symbian/3') ||
 
             // @todo: report this (tested on Nokia N71)
-            $this->version('Opera Mobi', self::VERSION_TYPE_FLOAT)>=11 && $this->is('SymbianOS')
+            $this->version('Opera Mobi', self::VERSION_TYPE_FLOAT) >= 11 && $this->is('SymbianOS')
         ){
             return self::MOBILE_GRADE_B;
         }
 
         if (
             // Blackberry 4.x - Tested on the Curve 8330
-            $this->version('BlackBerry', self::VERSION_TYPE_FLOAT)<5.0 ||
+            $this->version('BlackBerry', self::VERSION_TYPE_FLOAT) <= 5.0 ||
             // Windows Mobile - Tested on the HTC Leo (WinMo 5.2)
-            $this->match('MSIEMobile|Windows CE.*Mobile') || $this->version('Windows Mobile', self::VERSION_TYPE_FLOAT)<=5.2
+            $this->match('MSIEMobile|Windows CE.*Mobile') || $this->version('Windows Mobile', self::VERSION_TYPE_FLOAT) <= 5.2 ||
+
+            // Tested on original iPhone (3.1), iPhone 3 (3.2)
+            $this->is('iOS') && $this->version('iPad', self::VERSION_TYPE_FLOAT) <= 3.2 ||
+            $this->is('iOS') && $this->version('iPhone', self::VERSION_TYPE_FLOAT) <= 3.2 ||
+            $this->is('iOS') && $this->version('iPod', self::VERSION_TYPE_FLOAT) <= 3.2 ||
 
+            // Internet Explorer 7 and older - Tested on Windows XP
+            $this->version('IE', self::VERSION_TYPE_FLOAT) <= 7.0 && !$isMobile
         ){
             return self::MOBILE_GRADE_C;
         }
 
-        //All older smartphone platforms and featurephones - Any device that doesn't support media queries
-        //will receive the basic, C grade experience.
+        // All older smartphone platforms and featurephones - Any device that doesn't support media queries
+        // will receive the basic, C grade experience.
         return self::MOBILE_GRADE_C;
     }
 }
diff --git a/htdocs/includes/mobiledetect/mobiledetectlib/README.md b/htdocs/includes/mobiledetect/mobiledetectlib/README.md
index acc861a1927..d96db2dea3d 100644
--- a/htdocs/includes/mobiledetect/mobiledetectlib/README.md
+++ b/htdocs/includes/mobiledetect/mobiledetectlib/README.md
@@ -1,38 +1,66 @@
-<img src="http://demo.mobiledetect.net/logo-github.png">
+[![Build Status](https://travis-ci.org/serbanghita/Mobile-Detect.svg?branch=devel)](https://travis-ci.org/serbanghita/Mobile-Detect) [![Latest Stable Version](https://poser.pugx.org/mobiledetect/mobiledetectlib/v/stable.svg)](https://packagist.org/packages/mobiledetect/mobiledetectlib) [![Total Downloads](https://poser.pugx.org/mobiledetect/mobiledetectlib/downloads.svg)](https://packagist.org/packages/mobiledetect/mobiledetectlib) [![Daily Downloads](https://poser.pugx.org/mobiledetect/mobiledetectlib/d/daily.png)](https://packagist.org/packages/mobiledetect/mobiledetectlib) [![License](https://poser.pugx.org/mobiledetect/mobiledetectlib/license.svg)](https://packagist.org/packages/mobiledetect/mobiledetectlib)
+[![Gitter](https://badges.gitter.im/Join Chat.svg)](https://gitter.im/serbanghita/Mobile-Detect?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
+
+![Mobile Detect](http://demo.mobiledetect.net/logo-github.png)
 
 > Motto: "Every business should have a mobile detection script to detect mobile readers."
 
-<i>Mobile_Detect is a lightweight PHP class for detecting mobile devices (including tablets).
-It uses the User-Agent string combined with specific HTTP headers to detect the mobile environment.</i>
+*Mobile_Detect is a lightweight PHP class for detecting mobile devices (including tablets).
+It uses the User-Agent string combined with specific HTTP headers to detect the mobile environment.*
+
+We're committed to make Mobile_Detect the best open-source mobile detection resource and this is why before 
+each release we're running [unit tests](./tests), we also research and update the detection rules on **daily** 
+and **weekly** basis.
 
-Nowadays web site/app <b>content strategy</b> matters, this is why you need all the tools to deliver the best and the fastest experience for the small screens. Mobile_Detect class is a [server-side detection](http://www.w3.org/TR/mwabp/#bp-devcap-detection) tool, it is not a replacement for Responsive Web Design (media queries) or other forms of client-side feature detection.
+Your website's _content strategy_ is important! You need a complete toolkit to deliver an experience that is _optimized_, _fast_ and _relevant_ to your users. Mobile_Detect class is a [server-side detection](http://www.w3.org/TR/mwabp/#bp-devcap-detection) tool that can help you with your RWD strategy, it is not a replacement for CSS3 media queries or other forms of client-side feature detection.
 
-We're commited to make Mobile_Detect the best open-source mobile detection resource and this is why before each release we're running [unit tests](./tests), we also research and update the detection rules on <b>daily</b> and <b>weekly</b> basis.
+##### This month updates
 
-<p>
-<img src="https://dl.dropboxusercontent.com/u/70897251/impress_ghita_460px.jpg"><br>
-<b>Thanks <a href="http://impresspages.org">ImpressPages</a> CMS for showing us some love!</b></p>
+**THANK YOU** for your continuous support and feedback!
 
+Still working on `3.0.0` branch to provide you with device detection! We're really excited on this one!
+We would like to speed this up, but life and family gets in the way ;)
 
+Special thanks to **JetBrains** for providing licenses for **PHPStorm**. In case you never heard or tried PHPStorm, you're
+clearly missing out! [Check PHPStorm](https://www.jetbrains.com/phpstorm/) out!
 
 ##### Download and demo
 
-<a href="https://github.com/serbanghita/Mobile-Detect/tags">Latest releases</a>, <a href="https://github.com/serbanghita/Mobile-Detect/blob/devel/Mobile_Detect.php">Latest dev branch</a>, <a href="https://packagist.org/packages/mobiledetect/mobiledetectlib">composer package</a>
+|Download|Docs|Examples|
+|-------------|-------------|-------------|
+|[Go to releases](../../tags)|[Become a contributor](../../wiki/Become-a-contributor)|[Code examples](../../wiki/Code-examples)
+|[Mobile_Detect.php](./Mobile_Detect.php)|[History](../../wiki/History)|[:iphone: Live demo!](http://is.gd/mobiletest)
+|[Composer package](https://packagist.org/packages/mobiledetect/mobiledetectlib)|
+
+#### Continuous updates
+
+You can use [composer](https://getcomposer.org/doc/00-intro.md) in your release and update process to make sure you have the latest Mobile_Detect version.
 
-See also: <a href="https://github.com/serbanghita/Mobile-Detect/wiki/Become-a-contributor">:bulb: Become a contributor</a> / <a href="https://github.com/serbanghita/Mobile-Detect/wiki/History">:coffee: History</a> / <a href="https://github.com/serbanghita/Mobile-Detect/wiki/Code-examples">:point_right: Code examples</a> /
-<a href="http://is.gd/mobiletest">:iphone: Live demo!</a> (point your device browser to this URL)
+```
+composer require mobiledetect/mobiledetectlib
+```
+
+```json
+{
+    "require": {
+        "mobiledetect/mobiledetectlib": "^2.8"
+    }
+}
+```
 
 ##### Help
 
-<a href="http://pledgie.com/campaigns/21856"><img alt='Click here to lend your support to: Research and development of Mobile Detect library!' src='http://www.pledgie.com/campaigns/21856.png?skin_name=chrome' border='0' /></a>
-<a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=mobiledetectlib%40gmail%2ecom&lc=US&item_name=Mobile%20Detect&currency_code=USD&bn=PP%2dDonationsBF%3abtn_donate_SM%2egif%3aNonHosted"><img src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_SM.gif" border="0"></a>
+|Pledgie|Paypal|
+|-------|------|
+|[Donate :+1:](http://pledgie.com/campaigns/21856)|[Donate :beer:](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=mobiledetectlib%40gmail%2ecom&lc=US&item_name=Mobile%20Detect&currency_code=USD&bn=PP%2dDonationsBF%3abtn_donate_SM%2egif%3aNonHosted)|
+
 
-I'm currently paying for hosting and spend a lot of my family time :family: to maintain the project and planning the future releases.
+I'm currently paying for hosting and spend a lot of my family time to maintain the project and planning the future releases.
 I would highly appreciate any money donations that will keep the research going.
 
 Special thanks to the community :+1: for donations, [BrowserStack](http://browserstack.com) - for providing access to their great platform, [Zend](http://zend.com) - for donating licenses, [Dragos Gavrila](https://twitter.com/grafician) who contributed with the logo.
 
-##### 3rd party modules / [Submit new](https://github.com/serbanghita/Mobile-Detect/issues/new?title=New%203rd%20party%20module&body=Name, Link and Description of the module.)
+##### 3rd party modules / [Submit new](../../issues/new?title=New%203rd%20party%20module&body=Name, Link and Description of the module.)
 
 :point_right: Keep `Mobile_Detect.php` class in a separate `module` and do NOT include it in your script core because of the high frequency of updates.
 :point_right: When including the class into you `web application` or `module` always use `include_once '../path/to/Mobile_Detect.php` to prevent conflicts.
@@ -40,20 +68,23 @@ Special thanks to the community :+1: for donations, [BrowserStack](http://browse
 <table>
 
 <tr>
-<td>Varnish Cache</td>
-<td><p><a href="https://github.com/willemk/varnish-mobiletranslate">Varnish Mobile Detect</a> - Drop-in varnish solution to mobile user detection based on the Mobile-Detect library. Made by <a href="https://github.com/willemk">willemk</a></p></td>
+  <td>Varnish Cache</td>
+  <td>
+    <p><a href="https://github.com/willemk/varnish-mobiletranslate">Varnish Mobile Detect</a> - Drop-in varnish solution to mobile user detection based on the Mobile-Detect library. Made by <a href="https://github.com/willemk">willemk</a></p>
+    <p><a href="https://github.com/carlosabalde/mobiledetect2vcl">mobiledetect2vcl</a> - Python script to transform the Mobile Detect JSON database into an UA-based mobile detection VCL subroutine easily integrable in any Varnish Cache configuration. Made by <a href="https://github.com/carlosabalde">Carlos Abalde</a></p>
+  </td>
 </tr>
 
 <tr>
   <td>WordPress</td>
   <td>
-    <p><a href="http://wordpress.org/extend/plugins/wp-mobile-detect/">WordPress Mobile Detect</a> - Gives you the ability to wrap that infographic in a [notdevice][/notdevice] shortcode so at the server level <code>WordPress</code> will decide to show that content only if the user is NOT on a phone or tablet. Made by <a href="http://profiles.wordpress.org/professor44/">Jesse Friedman</a>.</p>
+    <p><a href="http://wordpress.org/extend/plugins/wp-mobile-detect/">WordPress Mobile Detect</a> - Gives you the ability to wrap that infographic in a <code>[notdevice][/notdevice]</code> shortcode so at the server level <code>WordPress</code> will decide to show that content only if the user is NOT on a phone or tablet. Made by <a href="http://profiles.wordpress.org/professor44/">Jesse Friedman</a>.</p>
 
     <p><a href="http://wordpress.org/plugins/mobble/">mobble</a> - provides mobile related conditional functions for your site. e.g. is_iphone(), is_mobile() and is_tablet(). Made by Scott Evans.</p>
 
     <p><a href="https://github.com/iamspacehead/responsage">WordPress Responsage</a> - A small <code>WordPress</code> theme plugin that allows you to make your images responsive. Made by <a href="https://github.com/iamspacehead">Adrian Ciaschetti</a>.</p>
-
-    <p><a href="http://wordpress.org/plugins/social-popup/">Social PopUP</a> - This plugin will display a popup or splash screen when a new user visit your site showing a Google+, Twitter and Facebook follow links. It uses Mobile_Detect to detect mobile devices.</p>
+    
+    <p><a href="https://wordpress.org/plugins/wp247-body-classes/">WP247 Body Classes</a> - Add unique classes to the <code>body</code> tag for easy styling based on various attributes (archive, user, post, mobile) and various WordPress "is" functions. Mobile attributes include type of device, Operating System, Browser, etc. Examples: .is-mobile, .is-not-mobile, .is-tablet, .is-ios, .is-not-ios, .is-androidos, .is-chromebrowser. Made by <a href="https://github.com/wescleveland56">wescleveland56</a></p>
   </td>
 </tr>
 
@@ -63,16 +94,23 @@ Special thanks to the community :+1: for donations, [BrowserStack](http://browse
     <p><a href="http://drupal.org/project/mobile_switch">Drupal Mobile Switch</a> - The Mobile Switch <code>Drupal</code> module provides a automatic theme switch functionality for mobile devices,
     detected by Browscap or Mobile Detect. Made by <a href="http://drupal.org/user/45267">Siegfried Neumann</a>.</p>
 
-      <p><a href="http://drupal.org/project/context_mobile_detect">Drupal Context Mobile Detect</a> - This is a <code>Drupal context</code> module which integrates Context and PHP Mobile Detect library.
+   <p><a href="http://drupal.org/project/context_mobile_detect">Drupal Context Mobile Detect</a> - This is a <code>Drupal context</code> module which integrates Context and PHP Mobile Detect library.
       Created by <a href="http://drupal.org/user/432492">Artem Shymko</a>.</p>
 
-      <p><a href="http://drupal.org/project/mobile_detect">Drupal Mobile Detect</a> - Lightweight mobile detect module for <code>Drupal</code> created by <a href="http://drupal.org/user/325244">Matthew Donadio</a></p>
+   <p><a href="http://drupal.org/project/mobile_detect">Drupal Mobile Detect</a> - Lightweight mobile detect module for <code>Drupal</code> created by <a href="http://drupal.org/user/325244">Matthew Donadio</a></p>
   </td>
 </tr>
 
   <tr>
     <td>Joomla</td>
-    <td><p><a href="http://www.yagendoo.com/en/blog/free-mobile-detection-plugin-for-joomla.html">yagendoo Joomla! Mobile Detection Plugin</a> - Lightweight PHP plugin for Joomla! that detects a mobile browser using the Mobile Detect class. Made by <a href="http://www.yagendoo.com/">yagendoo media</a>.</p></td>
+    <td>
+        <p><a href="http://www.yagendoo.com/en/blog/free-mobile-detection-plugin-for-joomla.html">yagendoo Joomla! Mobile Detection Plugin</a> - Lightweight PHP plugin for Joomla! 
+        that detects a mobile browser using the Mobile Detect class. Made by <a href="http://www.yagendoo.com/">yagendoo media</a>.</p>
+    
+        <p><a href="https://github.com/renekreijveld/UserAgentDetector">User Agent Detector plugin</a> by @ReneKreijveld. This system plugin detects the user agent of your 
+        website visitor and sets a session variable accordingly. Based on the user agent, the plugin detects if the site is running on a desktop pc, tablet or smartphone. 
+        It can also detect if the visitor is a spider bot (search engine). Session variable that is set: ualayout. Possible values: desktop, tablet, mobile, bot..</p>
+    </td>
  </tr>
 
  <tr>
@@ -91,7 +129,7 @@ Special thanks to the community :+1: for donations, [BrowserStack](http://browse
   <td>
     <p><a href="https://github.com/neilime/zf2-mobile-detect.git">ZF2 Mobile-Detect</a> - Zend Framework 2 module that provides Mobile-Detect features (Mobile_Detect class as a service, helper for views and plugin controllers). Made by <a href="https://github.com/neilime">neilime</a></p>
 
-    <p><a href="https://github.com/nikolaposa/MobileDetectModule">ZF2 MobileDetectModule</a> - Facilitates integration of a PHP MobileDetect class with some ZF2-based application. Has similar idea like the existing ZF2 Mobile-Detect module, but differs in initialization and provision routine of the actual Mobile_Detect class. Appropriate view helper and controller plugin also have different conceptions. Made by <a href="https://github.com/nikolaposa">Nikola Posa</a></p>
+   <p><a href="https://github.com/nikolaposa/MobileDetectModule">ZF2 MobileDetectModule</a> - Facilitates integration of a PHP MobileDetect class with some ZF2-based application. Has similar idea like the existing ZF2 Mobile-Detect module, but differs in initialization and provision routine of the actual Mobile_Detect class. Appropriate view helper and controller plugin also have different conceptions. Made by <a href="https://github.com/nikolaposa">Nikola Posa</a></p>
   </td>
  </tr>
 
@@ -107,7 +145,7 @@ Special thanks to the community :+1: for donations, [BrowserStack](http://browse
     <td>Laravel</td>
     <td>
     <p><a href="https://github.com/jenssegers/Laravel-Agent">Laravel-Agent</a> a user agent class for Laravel, based on Mobile Detect with some additional functionality. Made by <a href="https://github.com/jenssegers">Jens Segers</a>.</p>
-    <p><a href="https://github.com/hisorange/browser-detect">BrowserDetect</a>is a browser &amp; mobile detection package, collects and wrap together the best user-agent identifiers for Laravel. Created by <a href="https://github.com/hisorange">Varga Zsolt</a>.</p>
+    <p><a href="https://github.com/hisorange/browser-detect">BrowserDetect</a> is a browser &amp; mobile detection package, collects and wrap together the best user-agent identifiers for Laravel. Created by <a href="https://github.com/hisorange">Varga Zsolt</a>.</p>
     </td>
   </tr>
 
@@ -118,7 +156,13 @@ Special thanks to the community :+1: for donations, [BrowserStack](http://browse
 
  <tr>
   <td>Yii Framework</td>
-  <td><p><a href="https://github.com/iamsalnikov/MobileDetect">Yii Extension</a> - Mobile detect plugin for Yii framework. Made by <a href="https://github.com/iamsalnikov">Alexey Salnikov</a>.</p></td>
+  <td>
+  <p><a href="https://github.com/iamsalnikov/MobileDetect">Yii Extension</a> - Mobile detect plugin for Yii framework.
+  Made by <a href="https://github.com/iamsalnikov">Alexey Salnikov</a>.</p>
+
+  <p><a href="https://github.com/alexandernst/yii2-device-detect/">Yii2 Device Detect</a> - Yii2 extension for Mobile-Detect library. Made by <a href="https://github.com/alexandernst">Alexander Nestorov</a></p>
+
+  </td>
  </tr>
 
 <tr>
@@ -139,7 +183,12 @@ It overrides the Fuelphp Agent class its methods. Made by <a href="https://githu
 
 <tr>
   <td>Statamic</td>
-  <td><p><a href="https://github.com/sergeifilippov/statamic-mobile-detect">Statamic CMS Mobile Detect</a> - <code>plugin</code>. Made by <a href="https://github.com/haikulab/statamic-mobile-detect">Sergei Filippov of Haiku Lab</a>.</p></td>
+  <td><p><a href="https://github.com/haikulab/statamic-mobile-detect">Statamic CMS Mobile Detect</a> - <code>plugin</code>. Made by <a href="https://github.com/haikulab/statamic-mobile-detect">Sergei Filippov of Haiku Lab</a>.</p></td>
+</tr>
+
+<tr>
+  <td>Kohana</td>
+  <td><p><a href="https://github.com/madeinnordeste/kohana-mobile-detect">Kohana Mobile Detect</a> - an example of implementation of <code>Mobile_Detect</code> class with Kohana framework. Written by <a href="https://github.com/madeinnordeste">Luiz Alberto S. Ribeiro</a>.</p></td>
 </tr>
 
 <tr>
@@ -147,14 +196,29 @@ It overrides the Fuelphp Agent class its methods. Made by <a href="https://githu
   <td><p>A <a href="https://github.com/hgoebl/mobile-detect.js">JavaScript port</a> of Mobile-Detect class. Made by <a href="https://github.com/hgoebl">Heinrich Goebl</a></p></td>
   </tr>
 
+ <tr>
+      <td>Perl</td>
+      <td><p><a href="http://www.buzzerstar.com/development/">MobileDetect.pm</a> - <code>Perl module</code> for  Mobile Detect. Made by <a href="http://www.buzzerstar.com/">Sebastian Enger</a>.</p></td>
+ </tr>
+
  <tr>
       <td>python</td>
       <td><p><a href="http://pypi.python.org/pypi/pymobiledetect">pymobiledetect</a> - Mobile detect <code>python package</code>. Made by Bas van Oostveen.</p></td>
  </tr>
+ 
+ <tr>
+     <td>Ruby</td>
+     <td><p><a href="https://github.com/ktaragorn/mobile_detect">mobile_detect.rb</a> - A <code>Ruby gem</code> using the JSON data exposed by the php project and implementing a basic subset of the API (as much as can be done by the exposed data). Made by <a href="https://github.com/ktaragorn">Karthik T</a>.</p></td>
+ </tr>
 
 <tr>
 	<td>GoMobileDetect</td>
-	<td><p><a href="https://github.com/Shaked/gomobiledetect">GoMobileDetect</a> - Go port of Mobile Detect class. Made by <a href="https://github.com/Shaked">Shaked</a>.</p></td>
+	<td><p><a href="https://github.com/Shaked/gomobiledetect">GoMobileDetect</a> - <code>Go</code> port of Mobile Detect class. Made by <a href="https://github.com/Shaked">Shaked</a>.</p></td>
+</tr>
+
+<tr>
+	<td>LUA</td>
+	<td><p><a href="https://github.com/robinef/ua-lua">ua-lua</a> is a small lib written in <code>LUA</code> providing device type detection. ua-lua is detecting mobile or tablet devices based on user-agent inside nginx daemon. Made by <a href="https://github.com/robinef">Frédéric Robinet</a>.</p></td>
 </tr>
 
  <tr>
diff --git a/htdocs/includes/mobiledetect/mobiledetectlib/composer.json b/htdocs/includes/mobiledetect/mobiledetectlib/composer.json
index 0131e4937ec..c56611fb6b7 100644
--- a/htdocs/includes/mobiledetect/mobiledetectlib/composer.json
+++ b/htdocs/includes/mobiledetect/mobiledetectlib/composer.json
@@ -17,7 +17,9 @@
         "php": ">=5.0.0"
     },
     "require-dev": {
-        "phpunit/phpunit": "*"
+        "phpunit/phpunit": "*",
+        "johnkary/phpunit-speedtrap": "~1.0@dev",
+        "codeclimate/php-test-reporter": "dev-master"
     },
     "autoload": {
         "classmap": ["Mobile_Detect.php"],
diff --git a/htdocs/includes/mobiledetect/mobiledetectlib/composer.lock b/htdocs/includes/mobiledetect/mobiledetectlib/composer.lock
deleted file mode 100644
index 2b214625190..00000000000
--- a/htdocs/includes/mobiledetect/mobiledetectlib/composer.lock
+++ /dev/null
@@ -1,439 +0,0 @@
-{
-    "_readme": [
-        "This file locks the dependencies of your project to a known state",
-        "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file"
-    ],
-    "hash": "5b2d87ea9e6c115194bd355b7b697cec",
-    "packages": [
-
-    ],
-    "packages-dev": [
-        {
-            "name": "phpunit/php-code-coverage",
-            "version": "1.2.12",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
-                "reference": "1.2.12"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/1.2.12",
-                "reference": "1.2.12",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.3",
-                "phpunit/php-file-iterator": ">=1.3.0@stable",
-                "phpunit/php-text-template": ">=1.1.1@stable",
-                "phpunit/php-token-stream": ">=1.1.3@stable"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "3.7.*@dev"
-            },
-            "suggest": {
-                "ext-dom": "*",
-                "ext-xdebug": ">=2.0.5"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.2.x-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "PHP/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "include-path": [
-                ""
-            ],
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sb@sebastian-bergmann.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
-            "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
-            "keywords": [
-                "coverage",
-                "testing",
-                "xunit"
-            ],
-            "time": "2013-07-06 06:26:16"
-        },
-        {
-            "name": "phpunit/php-file-iterator",
-            "version": "1.3.3",
-            "source": {
-                "type": "git",
-                "url": "git://github.com/sebastianbergmann/php-file-iterator.git",
-                "reference": "1.3.3"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://github.com/sebastianbergmann/php-file-iterator/zipball/1.3.3",
-                "reference": "1.3.3",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.3"
-            },
-            "type": "library",
-            "autoload": {
-                "classmap": [
-                    "File/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "include-path": [
-                ""
-            ],
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sb@sebastian-bergmann.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "FilterIterator implementation that filters files based on a list of suffixes.",
-            "homepage": "http://www.phpunit.de/",
-            "keywords": [
-                "filesystem",
-                "iterator"
-            ],
-            "time": "2012-10-11 04:44:38"
-        },
-        {
-            "name": "phpunit/php-text-template",
-            "version": "1.1.4",
-            "source": {
-                "type": "git",
-                "url": "git://github.com/sebastianbergmann/php-text-template.git",
-                "reference": "1.1.4"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://github.com/sebastianbergmann/php-text-template/zipball/1.1.4",
-                "reference": "1.1.4",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.3"
-            },
-            "type": "library",
-            "autoload": {
-                "classmap": [
-                    "Text/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "include-path": [
-                ""
-            ],
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sb@sebastian-bergmann.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "Simple template engine.",
-            "homepage": "https://github.com/sebastianbergmann/php-text-template/",
-            "keywords": [
-                "template"
-            ],
-            "time": "2012-10-31 11:15:28"
-        },
-        {
-            "name": "phpunit/php-timer",
-            "version": "1.0.5",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/php-timer.git",
-                "reference": "1.0.5"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/1.0.5",
-                "reference": "1.0.5",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.3"
-            },
-            "type": "library",
-            "autoload": {
-                "classmap": [
-                    "PHP/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "include-path": [
-                ""
-            ],
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sb@sebastian-bergmann.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "Utility class for timing",
-            "homepage": "https://github.com/sebastianbergmann/php-timer/",
-            "keywords": [
-                "timer"
-            ],
-            "time": "2013-08-02 07:42:54"
-        },
-        {
-            "name": "phpunit/php-token-stream",
-            "version": "1.2.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/php-token-stream.git",
-                "reference": "1.2.0"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/1.2.0",
-                "reference": "1.2.0",
-                "shasum": ""
-            },
-            "require": {
-                "ext-tokenizer": "*",
-                "php": ">=5.3.3"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.2-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "PHP/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "include-path": [
-                ""
-            ],
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sb@sebastian-bergmann.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "Wrapper around PHP's tokenizer extension.",
-            "homepage": "https://github.com/sebastianbergmann/php-token-stream/",
-            "keywords": [
-                "tokenizer"
-            ],
-            "time": "2013-08-04 05:57:48"
-        },
-        {
-            "name": "phpunit/phpunit",
-            "version": "3.7.23",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/phpunit.git",
-                "reference": "3.7.23"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/3.7.23",
-                "reference": "3.7.23",
-                "shasum": ""
-            },
-            "require": {
-                "ext-dom": "*",
-                "ext-pcre": "*",
-                "ext-reflection": "*",
-                "ext-spl": "*",
-                "php": ">=5.3.3",
-                "phpunit/php-code-coverage": "~1.2.1",
-                "phpunit/php-file-iterator": ">=1.3.1",
-                "phpunit/php-text-template": ">=1.1.1",
-                "phpunit/php-timer": ">=1.0.4",
-                "phpunit/phpunit-mock-objects": "~1.2.0",
-                "symfony/yaml": "~2.0"
-            },
-            "require-dev": {
-                "pear-pear/pear": "1.9.4"
-            },
-            "suggest": {
-                "ext-json": "*",
-                "ext-simplexml": "*",
-                "ext-tokenizer": "*",
-                "phpunit/php-invoker": ">=1.1.0,<1.2.0"
-            },
-            "bin": [
-                "composer/bin/phpunit"
-            ],
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.7.x-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "PHPUnit/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "include-path": [
-                "",
-                "../../symfony/yaml/"
-            ],
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "The PHP Unit Testing framework.",
-            "homepage": "http://www.phpunit.de/",
-            "keywords": [
-                "phpunit",
-                "testing",
-                "xunit"
-            ],
-            "time": "2013-08-02 19:14:44"
-        },
-        {
-            "name": "phpunit/phpunit-mock-objects",
-            "version": "1.2.3",
-            "source": {
-                "type": "git",
-                "url": "git://github.com/sebastianbergmann/phpunit-mock-objects.git",
-                "reference": "1.2.3"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://github.com/sebastianbergmann/phpunit-mock-objects/archive/1.2.3.zip",
-                "reference": "1.2.3",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.3",
-                "phpunit/php-text-template": ">=1.1.1@stable"
-            },
-            "suggest": {
-                "ext-soap": "*"
-            },
-            "type": "library",
-            "autoload": {
-                "classmap": [
-                    "PHPUnit/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "include-path": [
-                ""
-            ],
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sb@sebastian-bergmann.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "Mock Object library for PHPUnit",
-            "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/",
-            "keywords": [
-                "mock",
-                "xunit"
-            ],
-            "time": "2013-01-13 10:24:48"
-        },
-        {
-            "name": "symfony/yaml",
-            "version": "v2.3.2",
-            "target-dir": "Symfony/Component/Yaml",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/symfony/Yaml.git",
-                "reference": "v2.3.2"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/symfony/Yaml/zipball/v2.3.2",
-                "reference": "v2.3.2",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.3"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "2.3-dev"
-                }
-            },
-            "autoload": {
-                "psr-0": {
-                    "Symfony\\Component\\Yaml\\": ""
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Fabien Potencier",
-                    "email": "fabien@symfony.com"
-                },
-                {
-                    "name": "Symfony Community",
-                    "homepage": "http://symfony.com/contributors"
-                }
-            ],
-            "description": "Symfony Yaml Component",
-            "homepage": "http://symfony.com",
-            "time": "2013-07-11 19:36:36"
-        }
-    ],
-    "aliases": [
-
-    ],
-    "minimum-stability": "stable",
-    "stability-flags": [
-
-    ],
-    "platform": {
-        "php": ">=5.0.0"
-    },
-    "platform-dev": [
-
-    ]
-}
diff --git a/htdocs/includes/mobiledetect/mobiledetectlib/examples/demo.php b/htdocs/includes/mobiledetect/mobiledetectlib/examples/demo.php
index 82fec6cdb3e..38dad6b2879 100644
--- a/htdocs/includes/mobiledetect/mobiledetectlib/examples/demo.php
+++ b/htdocs/includes/mobiledetect/mobiledetectlib/examples/demo.php
@@ -34,6 +34,7 @@
 
 require_once '../Mobile_Detect.php';
 $detect = new Mobile_Detect;
+
 $deviceType = ($detect->isMobile() ? ($detect->isTablet() ? 'tablet' : 'phone') : 'computer');
 $scriptVersion = $detect->getScriptVersion();
 
@@ -157,7 +158,7 @@ $scriptVersion = $detect->getScriptVersion();
     <p>This is a <b><?php echo $deviceType; ?></b>. Your UA is <b class="<?php echo $deviceType; ?>"><?php echo htmlentities($_SERVER['HTTP_USER_AGENT']); ?></b></p>
 
     <p class="infoText">Please help us improve the mobile detection by choosing the correct answer.<br>
-    Before sending an answer double check if you are using the browser in 'Desktop mode'.<br>
+        Before sending an answer double check that you are using the browser in its normal mode, not in 'Desktop mode'.<br>
     You can contribute by:<br>
      1. <a href="https://github.com/serbanghita/Mobile-Detect">forking</a> the project<br>
      2. <a href="https://github.com/serbanghita/Mobile-Detect/issues/new?body=Please%20specify%20the%20User-Agent.%20Go%20to%20http://is.gd/mobiletest%20and%20copy-paste%20it%20here.">submiting an issue</a><br>
@@ -250,6 +251,19 @@ $scriptVersion = $detect->getScriptVersion();
                 <td class="randomcrap"><?php var_dump($detect->isWhateverYouWant()); ?></td>
             </tr>
         </tbody>
+        <tbody>
+            <tr>
+                <th colspan="2">Debug</th>
+            </tr>
+            <tr>
+                <td>Matching Regex</td>
+                <td><?php var_dump($detect->getMatchingRegex()); ?></td>
+            </tr>
+            <tr>
+                <td>Matching Array</td>
+                <td><?php var_dump($detect->getMatchesArray()); ?></td>
+            </tr>
+        </tbody>
     </table>
 
 </section>
diff --git a/htdocs/includes/mobiledetect/mobiledetectlib/examples/test.php b/htdocs/includes/mobiledetect/mobiledetectlib/examples/test.php
new file mode 100644
index 00000000000..85f3c2c0b07
--- /dev/null
+++ b/htdocs/includes/mobiledetect/mobiledetectlib/examples/test.php
@@ -0,0 +1,29 @@
+<?php
+require_once '../Mobile_Detect.php';
+/*
+$detect = new Mobile_Detect;
+$detect->setUserAgent('Mozilla/5.0 (iPhone; CPU iPhone OS 8_0_2 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) CriOS/38.0.2125.59 Mobile/12A405 Safari/600.1.4');
+var_dump($detect->version('Chrome'));
+var_dump($detect->version('iPhone'));
+*/
+
+/*
+$user_agents = array(
+    'android' => 'Mozilla/5.0 (Linux; Android 4.2; Nexus 7 Build/JOP40C) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19',
+    'iphone6' => 'Mozilla/5.0 (iPhone; CPU iPhone OS 6_0_1 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A523 Safari/8536.25',
+    'blackberry' => 'Mozilla/5.0 (BB10; Touch) AppleWebKit/537.10+ (KHTML, like Gecko) Version/10.0.9.2372 Mobile Safari/537.10+'
+);
+$mobile_detect = new Mobile_Detect;
+
+foreach($user_agents as $user_agent)
+{
+    $mobile_detect->setUserAgent($user_agent);
+    var_dump($mobile_detect->isAndroidOS());
+}
+*/
+
+$detect = new Mobile_Detect;
+//$detect->setUserAgent('Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko');
+//var_dump($detect->version('IE'));
+$detect->setUserAgent('Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; Touch; rv:11.0) like Gecko');
+var_dump($detect->version('IE'));
\ No newline at end of file
diff --git a/htdocs/includes/mobiledetect/mobiledetectlib/export/exportToJSON.php b/htdocs/includes/mobiledetect/mobiledetectlib/export/exportToJSON.php
index f7735de7bf7..88ff6a10991 100644
--- a/htdocs/includes/mobiledetect/mobiledetectlib/export/exportToJSON.php
+++ b/htdocs/includes/mobiledetect/mobiledetectlib/export/exportToJSON.php
@@ -47,7 +47,9 @@ $json = array(
 					// If match is found, triggers 'isMobile' to be true.
 					'browsers' => $detect->getBrowsers(),
 					// If match is found, triggers 'isMobile' to be true.
-					'os'       => $detect->getOperatingSystems()
+					'os'       => $detect->getOperatingSystems(),
+					// Various utilities. To be further discussed.
+					'utilities' => $detect->getUtilities()
 				)
 
 			);
diff --git a/htdocs/includes/mobiledetect/mobiledetectlib/tests/BasicsTest.php b/htdocs/includes/mobiledetect/mobiledetectlib/tests/BasicsTest.php
old mode 100644
new mode 100755
index 897a3ec764c..5519665ee7a
--- a/htdocs/includes/mobiledetect/mobiledetectlib/tests/BasicsTest.php
+++ b/htdocs/includes/mobiledetect/mobiledetectlib/tests/BasicsTest.php
@@ -1,29 +1,5 @@
 <?php
 /**
- * MIT License
- * ===========
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sublicense, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
- * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- *
- * @author      Serban Ghita <serbanghita@gmail.com>
  * @license     MIT License https://github.com/serbanghita/Mobile-Detect/blob/master/LICENSE.txt
  * @link        http://mobiledetect.net
  */
@@ -177,7 +153,8 @@ class BasicTest extends PHPUnit_Framework_TestCase
 
     /**
      * @dataProvider userAgentProvider
-     * @covers Mobile_Detect::setUserAgent, Mobile_Detect::getUserAgent
+     * @covers Mobile_Detect::setUserAgent
+     * @covers Mobile_Detect::getUserAgent
      */
     public function testGetUserAgent($headers, $expectedUserAgent)
     {
@@ -203,7 +180,56 @@ class BasicTest extends PHPUnit_Framework_TestCase
     }
 
     /**
-     * @covers Mobile_Detect::setUserAgent, Mobile_Detect::getUserAgent
+     * Read response from cloudfront, if the cloudfront headers are detected
+     * @covers Mobile_Detect::setCfHeaders
+     */
+    public function testSetCfHeaders()
+    {
+        // Test mobile detected
+        $header1 = array(
+            'HTTP_CLOUDFRONT_IS_DESKTOP_VIEWER' => 'false',
+            'HTTP_CLOUDFRONT_IS_MOBILE_VIEWER'  => 'true',
+            'HTTP_CLOUDFRONT_IS_TABLET_VIEWER'  => 'false'
+        );
+        $md = new Mobile_Detect($header1);
+        $this->assertSame($md->getCfHeaders(), $header1);
+        $this->assertSame($md->getUserAgent(), 'Amazon CloudFront');
+        $this->assertSame($md->isTablet(), false);
+        $this->assertSame($md->isMobile(), true);
+
+        // Test neither mobile nor tablet (desktop)
+        $header2 = array(
+            'HTTP_CLOUDFRONT_IS_DESKTOP_VIEWER' => 'true',
+            'HTTP_CLOUDFRONT_IS_MOBILE_VIEWER'  => 'false',
+            'HTTP_CLOUDFRONT_IS_TABLET_VIEWER'  => 'false'
+        );
+        $md->setHttpHeaders($header2);
+        $this->assertSame($md->getCfHeaders(), $header2);
+        $this->assertSame($md->getUserAgent(), 'Amazon CloudFront');
+        $this->assertSame($md->isTablet(), false);
+        $this->assertSame($md->isMobile(), false);
+
+        // Test tablet detected
+        $header3 = array(
+            'HTTP_CLOUDFRONT_IS_DESKTOP_VIEWER' => 'false',
+            'HTTP_CLOUDFRONT_IS_MOBILE_VIEWER'  => 'false',
+            'HTTP_CLOUDFRONT_IS_TABLET_VIEWER'  => 'true'
+        );
+        $md->setCfHeaders($header3);
+        $this->assertSame($md->getCfHeaders(), $header3);
+        $this->assertSame($md->getUserAgent(), 'Amazon CloudFront');
+        $this->assertSame($md->isTablet(), true);
+        $this->assertSame($md->isMobile(), false);
+
+        // Check if the headers are cleared
+        $header4 = array();
+        $md->setHttpHeaders($header4);
+        $this->assertSame($md->getCfHeaders(), $header4);
+    }
+
+    /**
+     * @covers Mobile_Detect::setUserAgent
+     * @covers Mobile_Detect::getUserAgent
      */
     public function testSetUserAgent()
     {
@@ -461,7 +487,7 @@ class BasicTest extends PHPUnit_Framework_TestCase
     public function testScriptVersion()
     {
         $v = Mobile_Detect::getScriptVersion();
-        $formatCheck = (bool)preg_match('/^[0-9]+\.[0-9]+\.[0-9](-[a-zA-Z0-9])?$/', $v);
+        $formatCheck = (bool)preg_match('/^[0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z0-9])?$/', $v);
 
         $this->assertTrue($formatCheck, "Fails the semantic version test. The version " . var_export($v, true)
                 . ' does not match X.Y.Z pattern');
diff --git a/htdocs/includes/mobiledetect/mobiledetectlib/tests/UA_List.inc.php b/htdocs/includes/mobiledetect/mobiledetectlib/tests/UA_List.inc.php
index dc87bfb2b14..5c4df79b9a4 100644
--- a/htdocs/includes/mobiledetect/mobiledetectlib/tests/UA_List.inc.php
+++ b/htdocs/includes/mobiledetect/mobiledetectlib/tests/UA_List.inc.php
@@ -1,1220 +1,27 @@
 <?php
 /**
- * MIT License
- * ===========
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sublicense, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
- * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- *
- * @author      Serban Ghita <serbanghita@gmail.com>
- *
  * @license     MIT License https://github.com/serbanghita/Mobile-Detect/blob/master/LICENSE.txt
  * @link        http://mobiledetect.net
  *
- * This file is updated weekly.
+ * Compile the providers list.
+ * The providers list is updated weekly.
  * You can contribute by adding new user agents and tests.
- *
  */
 
-return array(
-
-    'Acer' => array(
-        'Mozilla/5.0 (Linux; U; Android 3.2.1; en-us; A100 Build/HTK55D) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13'   => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 4.1; en-us; A110 Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'     => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 4.0.3; de-de; A200 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'   => array( 'isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.0.3', 'Webkit' => '534.30', 'Safari' => '4.0', 'Build' => 'IML74K'), 'model' => 'A200' ),
-        'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; A500 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'   => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; A501 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'   => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; Android 4.1.1; A701 Build/JRO03H) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166  Safari/535.19'   => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; Android 4.1.2; B1-A71 Build/JZO54K) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166  Safari/535.19' => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; Android 4.1.2; B1-710 Build/JZO54K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.72 Safari/537.36'   => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; Android 4.2.2; A1-810 Build/JDQ39) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.58 Safari/537.31'    => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 4.2.2; nl-nl; A1-810 Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'  => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; Acer; Allegro)'                                 => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; Android 4.2.2; A3-A10 Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Safari/537.36'   => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.2.2', 'Build' => 'JDQ39', 'Webkit' => '537.36', 'Chrome' => '32.0.1700.99')),
-        'Mozilla/5.0 (Linux; Android 4.2.2; A1-830 Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.141 Safari/537.36'  => array('isMobile' => true, 'isTablet' => true),
-        ),
-
-    'AdvanDigital' => array(
-        'Mozilla/5.0 (Linux; U; Android 4.2.2; en-us; E1C Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 4.2.2; id-id; T3C Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
-        ),
-
-    'Ainol' => array(
-
-        'Mozilla/5.0 (Linux; U; Android 2.3.4; en-us; Ainol Novo8 Advanced Build/GRJ22) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; Android 4.1.1; Novo10 Hero Build/20121115) AppleWebKit/535.19 (KHTML like Gecko) Chrome/18.0.1025.166 Safari/535.19' => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 4.2.2; es-es; novo9-Spark Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
-
-        ),
-    'AllFine' => array(
-
-        'Mozilla/5.0 (Linux; U; Android 4.1.1; en-gb; FINE7 GENIUS Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
-
-        ),
-
-    'ASUS' => array(
-        'Mozilla/5.0 (Linux; U; Android 3.2.1; en-us; Transformer TF101 Build/HTK75) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13'            => array( 'isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '3.2.1', 'Webkit' => '534.13', 'Safari' => '4.0'), 'model' => 'Transformer TF101' ),
-        'Mozilla/5.0 (Linux; Android 4.1.1; Transformer Build/JRO03L) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19'                  => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; Android 4.1.1; ASUS Transformer Pad TF300T Build/JRO03C) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19'  => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 4.1.2; fr-fr; Transformer Build/JZO54K; CyanogenMod-10) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; asus_laptop Build/IMM76L) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                 => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 4.1.1; en-gb; PadFone 2 Build/JRO03L) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'            => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 4.1.1; en-gb; PadFone 2 Build/JRO03L) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                   => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.1.1', 'Build' => 'JRO03L', 'Webkit' => '534.30', 'Safari' => '4.0') ),
-        'Mozilla/5.0 (Linux; Android 4.2.1; ME301T Build/JOP40D) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.94 Safari/537.36'                        => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.2.1', 'Build' => 'JOP40D') ),
-        'Mozilla/5.0 (Linux; Android 4.2.1; ME173X Build/JOP40D) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.94 Safari/537.36'                        => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.2.1', 'Build' => 'JOP40D') ),
-        'Mozilla/5.0 (Linux; Android 4.2.2; TF300T Build/JDQ39E) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166  Safari/535.19'                      => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.2.2', 'Build' => 'JDQ39E') ),
-    ),
-
-    'Alcatel' => array(
-        'Mozilla/5.0 (Linux; U; Android 2.3.7; en-in; MB525 Build/GWK74; CyanogenMod-7.2.0) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'    => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 2.3.5; it-it; ALCATEL ONE TOUCH 918D Build/GRJ90) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'      => array('isMobile' => true, 'isTablet' => false, 'version' => array('Android' => '2.3.5', 'Webkit' => '533.1', 'Safari' => '4.0', 'Build' => 'GRJ90'), 'model' => 'ONE TOUCH 918D' ),
-        'Mozilla/5.0 (Linux; U; Android 2.3.6; ru-ru; ALCATEL ONE TOUCH 991 Build/GRJ90) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'       => array('isMobile' => true, 'isTablet' => false, 'version' => array('Android' => '2.3.6', 'Webkit' => '533.1', 'Safari' => '4.0', 'Build' => 'GRJ90'), 'model' => 'ONE TOUCH 991' ),
-        'Mozilla/5.0 (Linux; U; Android 4.0.4; ru-ru; ALCATEL ONE TOUCH 993D Build/ICECREAM) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false, 'version' => array('Android' => '4.0.4', 'Webkit' => '534.30', 'Safari' => '4.0', 'Build' => 'ICECREAM'), 'model' => 'ONE TOUCH 993D' ),
-        ),
-
-    'Allview' => array(
-
-        'Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; ALLVIEW P5 Build/IML74K) AppleWebKit/534.30 (KHTML like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 4.0.4; en-us ; ALLVIEW SPEEDI Build/IMM76D) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1/UCBrowser/8.5.3.246/145/355' => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 4.1.1; en-us; AllviewCity Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                               => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; ALLVIEWSPEED Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                                     => array('isMobile' => true, 'isTablet' => true),
-
-        ),
-
-    'Amazon' => array(
-        'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; KFTT Build/IML74K) AppleWebKit/535.19 (KHTML, like Gecko) Silk/3.4 Mobile Safari/535.19 Silk-Accelerated=true' => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; en-US) AppleWebKit/528.5+ (KHTML, like Gecko, Safari/528.5+) Version/4.0 Kindle/3.0 (screen 600x800; rotate)' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Webkit' => '528.5+', 'Kindle' => '3.0', 'Safari' => '4.0'), 'model' => 'Kindle' ),
-        'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; KFOTE Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'   => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.0.3', 'Build' => 'IML74K', 'Webkit' => '534.30', 'Safari' => '4.0') ),
-        'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; WFJWAE Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'  => array('isMobile' => true, 'isTablet' => true),
-        ),
-
-    'Apple' => array(
-        'iTunes/9.1.1'                                                                                                                                                                           => array('isMobile' => false, 'isTablet' => false),
-        'iTunes/11.0.2 (Windows; Microsoft Windows 8 x64 Business Edition (Build 9200)) AppleWebKit/536.27.1'                                                                                    => array('isMobile' => false, 'isTablet' => false),
-        'Mozilla/5.0 (iPod touch; CPU iPhone OS 7_0 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A4449d Safari/9537.53'                                          => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543 Safari/419.3'                                                              => array('isMobile' => true, 'isTablet' => false, 'version' => array('Webkit' => '420+', 'Safari' => '3.0') ),
-        'Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7A341 Safari/528.16'                                          => array('isMobile' => true, 'isTablet' => false, 'version' => array('iOS' => '3_0', 'Webkit' => '528.18', 'Safari' => '4.0'), 'model' => 'iPhone', 'mobileGrade' => 'B' ),
-        'Mozilla/5.0 (iPhone; CPU iPhone OS 5_1_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B206 Safari/7534.48.3'                                               => array('isMobile' => true, 'isTablet' => false, 'version' => array('iOS' => '5_1_1', 'Webkit' => '534.46', 'Mobile' => '9B206', 'Safari' => '5.1'), 'model' => 'iPhone' ),
-        'Mozilla/5.0 (iPod; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A403 Safari/8536.25'                                                    => array('isMobile' => true, 'isTablet' => false, 'version' => array('iOS' => '6_0', 'Webkit' => '536.26', 'Mobile' => '10A403', 'Safari' => '6.0'), 'model' => 'iPod'),
-        'Mozilla/5.0 (iPad; CPU OS 5_1_1 like Mac OS X; en-us) AppleWebKit/534.46.0 (KHTML, like Gecko) CriOS/21.0.1180.80 Mobile/9B206 Safari/7534.48.3 (6FF046A0-1BC4-4E7D-8A9D-6BF17622A123)' => array('isMobile' => true, 'isTablet' => true, 'version' => array('iOS' => '5_1_1', 'Webkit' => '534.46.0', 'Chrome' => '21.0.1180.80', 'Mobile' => '9B206'), 'model' => 'iPad' ),
-        'Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A403 Safari/8536.25'                                                           => array('isMobile' => true, 'isTablet' => true, 'version' => array('iOS' => '6_0', 'Webkit' => '536.26', 'Safari' => '6.0', 'Mobile' => '10A403'), 'model' => 'iPad' ),
-        'Mozilla/5.0 (iPad; U; CPU OS 4_2_1 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C148 Safari/6533.18.5'                                          => array('isMobile' => true, 'isTablet' => true, 'version' => array('iOS' => '4_2_1', 'Webkit' => '533.17.9', 'Safari' => '5.0.2', 'Mobile' => '8C148'), 'model' => 'iPad', 'mobileGrade' => 'B' ),
-        'Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari/531.21.10'                                          => array('isMobile' => true, 'isTablet' => true, 'version' => array('iOS' => '3_2', 'Webkit' => '531.21.10', 'Safari' => '4.0.4', 'Mobile' => '7B334b'), 'model' => 'iPad', 'mobileGrade' => 'B' ),
-        'Mozilla/5.0 (iPhone; CPU iPhone OS 6_0_1 like Mac OS X; da-dk) AppleWebKit/534.46.0 (KHTML, like Gecko) CriOS/21.0.1180.82 Mobile/10A523 Safari/7534.48.3'                              => array('isMobile' => true, 'isTablet' => false, 'version' => array('iOS' => '6_0_1', 'Webkit' => '534.46.0', 'Chrome' => '21.0.1180.82', 'Mobile' => '10A523'), 'model' => 'iPhone', 'mobileGrade' => 'A' ),
-        'Mozilla/5.0 (iPhone; CPU iPhone OS 6_0_1 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A523 Safari/8536.25'                                                => array('isMobile' => true, 'isTablet' => false, 'version' => array('iOS' => '6_0_1', 'Webkit' => '536.26', 'Safari' => '6.0', 'Mobile' => '10A523'), 'model' => 'iPhone', 'mobileGrade' => 'A' ),
-        'Mozilla/5.0 (iPhone; CPU iPhone OS 6_1 like Mac OS X; ru-ru) AppleWebKit/536.26 (KHTML, like Gecko) CriOS/23.0.1271.100 Mobile/10B142 Safari/8536.25'                                   => array('isMobile' => true, 'isTablet' => false, 'version' => array('iOS' => '6_1', 'Webkit' => '536.26', 'Chrome' => '23.0.1271.100', 'Mobile' => '10B142'), 'model' => 'iPhone', 'mobileGrade' => 'A' ),
-        'Mozilla/5.0 (iPhone; CPU iPhone OS 6_1_3 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10B329 Safari/8536.25'                                                => array('isMobile' => true, 'isTablet' => false, 'version' => array('iOS' => '6_1_3', 'Webkit' => '536.26', 'Safari' => '6.0', 'Mobile' => '10B329'), 'model' => 'iPhone', 'mobileGrade' => 'A' ),
-        'Mozilla/5.0 (iPad; CPU OS 6_1_3 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Coast/1.0.2.62956 Mobile/10B329 Safari/7534.48.3'                                                 => array('isMobile' => true, 'isTablet' => true, 'version' => array('Coast' => '1.0.2.62956')),
-    ),
-
-    'Archos' => array(
-
-        'Mozilla/5.0 (Linux; Android 4.2.2; Qilive 97R Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.92 Safari/537.36'                 => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; Android 4.1.2; Archos 50 Platinum Build/JZO54K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.94 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; Android 4.0.4; ARCHOS 80G9 Build/IMM76D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166  Safari/535.19'             => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 2.2.1; fr-fr; A101IT Build/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'              => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; Android 4.2.2; Archos 101 Neon Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.141 Safari/537.36' => array(
-            'isMobile' => true, 'isTablet' => true
-        ),
-    ),
-
-    'AudioSonic' => array(
-        'Mozilla/5.0 (Linux; U; Android 4.1.1; en-au; T-17B Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
-        ),
-
-    'BlackBerry' => array(
-        'Mozilla/5.0 (BlackBerry; U; BlackBerry 9300; en) AppleWebKit/534.8+ (KHTML, like Gecko) Version/6.0.0.546 Mobile Safari/534.8+'                          => array('isMobile' => true, 'isTablet' => false, 'version' => array('Webkit' => '534.8+', 'BlackBerry' => '6.0.0.546'), 'model' => 'BlackBerry 9300' ),
-        'Mozilla/5.0 (BlackBerry; U; BlackBerry 9360; en-US) AppleWebKit/534.11+ (KHTML, like Gecko) Version/7.0.0.400 Mobile Safari/534.11+'                     => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (BlackBerry; U; BlackBerry 9700; he) AppleWebKit/534.8+ (KHTML, like Gecko) Version/6.0.0.723 Mobile Safari/534.8+'                          => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (BlackBerry; U; BlackBerry 9700; en-US) AppleWebKit/534.8  (KHTML, like Gecko) Version/6.0.0.448 Mobile Safari/534.8'                        => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (BlackBerry; U; BlackBerry 9790; en-GB) AppleWebKit/534.11+ (KHTML, like Gecko) Version/7.1.0.714 Mobile Safari/534.11+'                     => array('isMobile' => true, 'isTablet' => false, 'version' => array('Webkit' => '534.11+', 'BlackBerry' => '7.1.0.714'), 'model' => 'BlackBerry 9790' ),
-        'Opera/9.80 (BlackBerry; Opera Mini/7.0.29990/28.2504; U; en) Presto/2.8.119 Version/11.10'                                                               => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (BlackBerry; U; BlackBerry 9981; en-GB) AppleWebKit/534.11+ (KHTML, like Gecko) Version/7.1.0.342 Mobile Safari/534.11+'                     => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (BlackBerry; U; BlackBerry 9800; en-GB) AppleWebKit/534.8+ (KHTML, like Gecko) Version/6.0.0.546 Mobile Safari/534.8+'                       => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (BlackBerry; U; BlackBerry 9780; es) AppleWebKit/534.8  (KHTML, like Gecko) Version/6.0.0.480 Mobile Safari/534.8'                           => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (BlackBerry; U; BlackBerry 9810; en-US) AppleWebKit/534.11  (KHTML, like Gecko) Version/7.0.0.583 Mobile Safari/534.11'                      => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (BlackBerry; U; BlackBerry 9860; es) AppleWebKit/534.11+ (KHTML, like Gecko) Version/7.0.0.576 Mobile Safari/534.11+'                        => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (BlackBerry; U; BlackBerry 9900; en-US) AppleWebKit/534.11  (KHTML, like Gecko) Version/7.1.0.523 Mobile Safari/534.11'                      => array('isMobile' => true, 'isTablet' => false),
-        'BlackBerry8520/5.0.0.592 Profile/MIDP-2.1 Configuration/CLDC-1.1 VendorID/136'                                                                           => array('isMobile' => true, 'isTablet' => false),
-        'BlackBerry8520/5.0.0.1067 Profile/MIDP-2.1 Configuration/CLDC-1.1 VendorID/603'                                                                          => array('isMobile' => true, 'isTablet' => false),
-        'BlackBerry8520/5.0.0.1036 Profile/MIDP-2.1 Configuration/CLDC-1.1 VendorID/611'                                                                          => array( 'isMobile' => true, 'isTablet' => false, 'version' => array('BlackBerry' => '5.0.0.1036', 'VendorID' => '611'), 'model' => 'BlackBerry8520' ),
-        'Mozilla/5.0 (BlackBerry; U; BlackBerry 9220; en) AppleWebKit/534.11+ (KHTML, like Gecko) Version/7.1.0.337 Mobile Safari/534.11+'                        => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (PlayBook; U; RIM Tablet OS 2.1.0; en-US) AppleWebKit/536.2+ (KHTML, like Gecko) Version/7.2.1.0 Safari/536.2+'                              => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (BB10; Touch) AppleWebKit/537.1+ (KHTML, like Gecko) Version/10.0.0.1337 Mobile Safari/537.1+'                                               => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (BB10; Touch) AppleWebKit/537.10+ (KHTML, like Gecko) Version/10.0.9.2372 Mobile Safari/537.10+'                                             => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (BB10; Touch) /537.10+ (KHTML, like Gecko) Version/10.0.9.2372 Mobile Safari/537.10+'                                                        => array( 'isMobile' => true, 'isTablet' => false, 'version' => array('BlackBerry' => '10.0.9.2372') ),
-        'Mozilla/5.0 (Linux; U; Android 3.2.1; en-us; Transformer TF101 Build/HTK75) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13'            => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '3.2.1', 'Webkit' => '534.13', 'Safari' => '4.0'), 'model' => 'Transformer TF101' ),
-        'Mozilla/5.0 (Linux; U; Android 4.0.3; de-de; A200 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                        => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.0.3', 'Webkit' => '534.30', 'Safari' => '4.0'), 'model' => 'A200' ),
-        'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; A500 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                        => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.0.3', 'Webkit' => '534.30', 'Safari' => '4.0'), 'model' => 'A500' ),
-        'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; A501 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                        => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.0.3', 'Webkit' => '534.30', 'Safari' => '4.0'), 'model' => 'A501' ),
-        'Mozilla/5.0 (Linux; Android 4.1.1; Transformer Build/JRO03L) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19'                  => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.1.1', 'Webkit' => '535.19', 'Chrome' => '18.0.1025.166'), 'model' => 'Transformer' ),
-        'Mozilla/5.0 (Linux; Android 4.1.1; ASUS Transformer Pad TF300T Build/JRO03C) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19'  => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.1.1', 'Webkit' => '535.19', 'Chrome' => '18.0.1025.166'), 'model' => 'Transformer Pad TF300T' ),
-        'Mozilla/5.0 (Linux; U; Android 4.1.2; fr-fr; Transformer Build/JZO54K; CyanogenMod-10) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.1.2', 'Webkit' => '534.30', 'Safari' => '4.0', 'Build' => 'JZO54K'), 'model' => 'Transformer' ),
-        'Mozilla/5.0 (Linux; Android 4.1.2; B1-A71 Build/JZO54K) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166  Safari/535.19'                      => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.1.2', 'Webkit' => '535.19', 'Chrome' => '18.0.1025.166'), 'model' => 'B1-A71' ),
-        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; Acer; Allegro)'                                                      => array('isMobile' => true, 'isTablet' => false, 'version' => array('Windows Phone OS' => '7.5', 'Trident' => '5.0', 'IE' => '9.0'), 'model' => 'Allegro' ),
-        ),
-
-    'Broncho' => array(
-
-        'Mozilla/5.0 (Linux; U; Android 2.2; es-es; Broncho N701 Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'	=> array('isMobile' => true, 'isTablet' => true),
-
-        ),
-
-    // @ref: http://www.bqreaders.com/gb/tablets-prices-sale.html
-    'bq' => array(
-        'Mozilla/5.0 (Linux; U; Android 4.0.4; es-es; bq Livingstone 2 Build/1.1.7 20121018-10:33) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 4.0.4; es-es; bq Edison Build/1.1.10-1015 20121230-18:00) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'  => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; Android 4.0.3; Maxwell Lite Build/v1.0.0.ICS.maxwell.20120920) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19' => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 4.0.4; zh-tw; bq Maxwell Plus Build/1.0.0 20120913-10:39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
-        ),
-
-    'Captiva' => array(
-        'Opera/9.80 (X11; Linux zvav; U; de) Presto/2.8.119 Version/11.10 Mozilla/5.0 (Linux; U; Android 4.1.1; de-de; CAPTIVA PAD 10.1 Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array(
-            'isMobile' => true, 'isTablet' => true,
-        ),
-    ),
-
-    'Casio' => array(
-            'Mozilla/5.0 (Linux; U; Android 2.3.3; en-us; C771 Build/C771M120) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'				=> array('isMobile' => true, 'isTablet' => false),
-            ),
-
-    'ChangJia' => array(
-
-        'Mozilla/5.0 (Linux; U; Android 4.0.4; pt-br; TPC97113 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; TPC7102 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true)
-
-        ),
-
-    // @ref: http://www.cobyusa.com/?p=pcat&pcat_id=3001
-    'Coby' => array(
-            'Mozilla/5.0 (Linux; U; Android 2.2; en-us; MID7010 Build/FRF85B) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => true),
-            'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; MID7048 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'    => array('isMobile' => true, 'isTablet' => true),
-            'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; MID8042 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'    => array('isMobile' => true, 'isTablet' => true),
-        ),
-
-    'Concorde' => array(
-        'Mozilla/5.0 (Linux; U; Android 4.1.1; hu-hu; ConCorde Tab T10 Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 4.1.1; hu-hu; ConCorde tab PLAY Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
-        ),
-
-    'Cresta' => array(
-        'Mozilla/5.0 (Linux; U; Android 4.0.4; nl-nl; CRESTA.CTP888 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
-        ),
-
-    'Cube' => array(
-            'Mozilla/5.0 (Linux; U; Android 4.0.3; ru-ru; CUBE U9GT 2 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'				=> array('isMobile' => true, 'isTablet' => true),
-    ),
-
-    'Danew' => array(
-
-        'Mozilla/5.0 (Linux; U; Android 4.0.3; es-es; Dslide 700 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array( 'isMobile' => true, 'isTablet' => true, 'version' => array( 'Android' => '4.0.3', 'Build' => 'IML74K', 'Webkit' => '534.30', 'Safari' => '4.0' ), 'model' => 'Dslide 700' )
-
-        ),
-
-    'DanyTech' => array(
-        'Mozilla/5.0 (Linux; Android 4.2.2; Genius Tab Q4 Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.59 Safari/537.36' => array('isMobile' => true, 'isTablet' => true),
-        ),
-
-    'Dell' => array(
-            'Mozilla/5.0 (Linux; U; Android 1.6; en-gb; Dell Streak Build/Donut AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/ 525.20.1'               => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; U; Android 2.3.7; hd-us; Dell Venue Build/GWK74; CyanogenMod-7.2.0) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; DELL; Venue Pro)'                                                          => array('isMobile' => true, 'isTablet' => false),
-    ),
-
-    'DPS' => array(
-        'Mozilla/5.0 (Linux; U; Android 4.1.1; en-us; DPS Dream 9 Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
-        ),
-
-    'ECS' => array(
-        'Mozilla/5.0 (Linux; U; Android 4.0.4; it-it; TM105A Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.0.4', 'Build' => 'IMM76D', 'Webkit' => '534.30'))
-        ),
-
-    'Eboda' => array(
-            'Mozilla/5.0 (Linux; U; Android 4.1.1; ro-ro; E-Boda Supreme Dual Core X190 Build/JRO03C) AppleWebKit/534.30 (KHTML like Gecko) Version/4.0 Safari/534.30'                       => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.1.1', 'Webkit' => '534.30', 'Safari' => '4.0')),
-            'Mozilla/5.0 (Linux; U; Android 4.1.1; ro-ro; E-Boda Essential A160 Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                              => array('isMobile' => true, 'isTablet' => true),
-            'Mozilla/5.0 (Linux; Android 4.0.3; E-Boda Supreme X80 Dual Core Build/ICS.g12refM806A1YBD.20120925) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166  Safari/535.19' => array('isMobile' => true, 'isTablet' => true),
-            'Mozilla/5.0 (Linux; U; Android 4.1.1; ro-ro; E-boda essential smile Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                             => array('isMobile' => true, 'isTablet' => true),
-        ),
-
-    'Fly'	=> array(
-            'Mozilla/5.0 (Linux; U; Android 4.0.4; ru-ru; Fly IQ440; Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'         => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; U; Android 2.3.6; ru-ru; FLY IQ256 Build/GRK39F) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'			=> array('isMobile' => true, 'isTablet' => false),
-        ),
-
-    'Fujitsu' => array(
-
-        'Mozilla/5.0 (Linux; U; Android 4.0.3; ja-jp; F-10D Build/V21R48A) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.0.3', 'Build' => 'V21R48A', 'Webkit' => '534.30', 'Safari' => '4.0') ),
-        'Mozilla/5.0 (Linux; U; Android 4.0.3; ru-ru; M532 Build/IML74K) AppleWebKit/534.30 (KHTML like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.0.3', 'Build' => 'IML74K', 'Webkit' => '534.30', 'Safari' => '4.0') ),
-
-        ),
-
-    'FX2' => array(
-
-            'Mozilla/5.0 (Linux; U; Android 4.2.2; de-de; FX2 PAD7 RK Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
-
-        ),
-
-    // @ref: http://www.galapad.net/product.html
-    'Galapad' => array(
-
-        'Mozilla/5.0 (Linux; U; Android 4.1.1; zh-tw; G1 Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.1.1', 'Webkit' => '534.30', 'Safari' => '4.0', 'Build' => 'JRO03C') ),
-
-        ),
-
-    'GoClever' => array(
-        'Mozilla/5.0 (Linux; U; Android 4.0.3; el-gr; GOCLEVER TAB A103 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'   => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 2.3.4; zh-tw; A7GOCLEVER Build/GRJ22) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'      => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; Android 4.0.4; GOCLEVER TAB A104 Build/IMM76D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19'    => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 4.0.4; cs-cz; GOCLEVER TAB A93.2 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'  => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 4.0.3; sk-sk; GOCLEVER TAB A971 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'   => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 4.0.4; lv-lv; GOCLEVER TAB A972BK Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 4.0.4; fr-fr; GOCLEVER TAB A104.2 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 4.0.3; pt-pt; GOCLEVER TAB T76 Build/MID) AppleWebKit/534.30 (KHTML like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
-        ),
-
-    'Google' => array(
-        'Mozilla/5.0 (Linux; U; Android 2.2; en-us; Nexus One Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                        => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; Android 4.2.2; Nexus 4 Build/JDQ39) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.40 Mobile Safari/537.31 OPR/14.0.1074.54070'    => array('isMobile' => true, 'isTablet' => false, 'version' => array('Android' => '4.2.2', 'Build' => 'JDQ39', 'Webkit' => '537.31', 'Opera' => '14.0.1074.54070') ),
-        'Mozilla/5.0 (Linux; Android 4.2.2; Nexus 4 Build/JDQ39) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.58 Mobile Safari/537.31'                        => array('isMobile' => true, 'isTablet' => false, 'version' => array('Android' => '4.2.2', 'Chrome' => '26.0.1410.58')),
-        'Mozilla/5.0 (Linux; U; Android 4.1.1; en-us; Google Nexus 4 - 4.1.1 - API 16 - 768x1280 Build/JRO03S) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 4.1.1; en-us; Google Galaxy Nexus - 4.1.1 - API 16 - 720x1280 Build/JRO03S) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; Android 4.1.1; Nexus 7 Build/JRO03D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166  Safari/535.19'                            => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; Android 4.2; Nexus 7 Build/JOP40C) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19'                               => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; Android 4.1.2; Nexus 7 Build/JZ054K) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19'                             => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.1.2', 'Chrome' => '18.0.1025.166') ),
-        'Mozilla/5.0 (Linux; U; Android 4.1.2; cs-cz; Nexus S Build/JZO54K; CyanogenMod-10.0.0) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; Android 4.3; Nexus 10 Build/JWR66Y) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.72 Safari/537.36'                               => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android; en_us; Nexus 7 Build/) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 NetFrontLifeBrowser/2.3 Mobile (Dragonfruit)'         => array('isMobile' => true, 'isTablet' => true),
-        ),
-
-    'GU' => array(
-
-        'Mozilla/5.0 (Linux; U; Android 4.0.4; vi-vn; TX-A1301 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.0.4', 'Build' => 'IMM76D', 'Webkit' => '534.30', 'Safari' => '4.0')),
-        'Mozilla/5.0 (Linux; U; Android 4.0.3; da-dk; Q702 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.0.3', 'Build' => 'IML74K', 'Webkit' => '534.30', 'Safari' => '4.0')),
-
-        ),
-
-    'HCL' => array(
-        'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; U1 Build/HCL ME Tablet U1) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; U1 Build/HCL ME Tablet U1) AppleWebKit/534.30 (KHTML like Gecko) Version/4.0 Mobile Safari/534.30'  => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; Android 4.1.2; Connect-3G-2.0 Build/HCL) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.72 Safari/537.36'           => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 2.3.3; pt-br; X1 Build/HCL ME Tablet X1) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'   => array('isMobile' => true, 'isTablet' => true),
-        ),
-
-    'HP' => array(
-        'Mozilla/5.0 (hp-tablet; Linux; hpwOS/3.0.5; U; en-GB) AppleWebKit/534.6 (KHTML, like Gecko) wOSBrowser/234.83 Safari/534.6 TouchPad/1.0' => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 4.1.1; en-gb; HP Slate 7 Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'  => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; Android 4.1.1; HP Slate 7 Build/JRO03H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.94 Safari/537.36'    => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 4.2.2; de-de; HP 8 Build/1.0.7_WW-FIR-13) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
-        ),
-
-    'HTC' => array(
-            'Mozilla/5.0 (X11; Linux x86_64; Z520m; en-ca) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.34 Safari/534.24' => array('isMobile' => true, 'isTablet' => false),
-            'HTC_Touch_HD_T8282 Mozilla/4.0 (compatible; MSIE 6.0; Windows CE; IEMobile 7.11)'                                                                              => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; U; Android 1.5; en-us; ADR6200 Build/CUPCAKE) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1'                 => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; U; Android 2.1; xx-xx; Desire_A8181 Build/ERE27) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17'                  => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; U; Android 2.1-update1; de-de; HTC Desire 1.19.161.5 Build/ERE27) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17' => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; U; Android 2.1-update1; en-gb; HTC Desire Build/ERE27) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17'            => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; U; Android 2.2; fr-fr; HTC Desire Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                      => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; U; Android 2.2; en-dk; Desire_A8181 Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                    => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; U; Android 2.2; xx-xx; 001HT Build/FRF91) AppleWebKit/525.10+ (KHTML, like Gecko) Version/3.0.4 Mobile Safari/523.12.2'                    => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; U; Android 2.2; xx-xx; HTCA8180/1.0 Android/2.2 release/06.23.2010 Browser/WAP 2.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; U; Android 2.2.2; de-at; HTC Desire Build/FRG83G) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; U; Android 2.2.2; en-sk; Desire_A8181 Build/FRG83G) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'              => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; U; Android 2.3; xx-xx; HTC/DesireS/1.07.163.1 Build/GRH78C) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'      => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; U; Android 2.3.3; en-lv; HTC_DesireZ_A7272 Build/GRI40) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'          => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; U; Android 2.3.4; en-us; ADR6300 Build/GRJ22) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                    => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; U; Android 2.3.5; en-gb; HTC/DesireS/2.10.161.3 Build/GRJ90) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'     => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; U; Android 2.3.5; ru-ru; HTC_DesireS_S510e Build/GRJ90) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'          => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; U; Android 2.3.5; en-us; Inspire 4G Build/GRJ90) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                 => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; U; Android 2.3.5; de-de; HTC Explorer A310e Build/GRJ90) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'         => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; U; Android 2.3.5; en-gb; HTC_ChaCha_A810e Build/GRJ90) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'           => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; U; Android 2.3.5; nl-nl; HTC_DesireHD_A9191 Build/GRJ90) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'         => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; U; Android 2.3.5; ru-ru; HTC Desire S Build/GRJ90) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'               => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; U; Android 2.3.3; en-au; HTC Desire Build/GRI40) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                 => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; U; Android 2.3.5; de-de; HTC_DesireHD Build/GRJ90) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'               => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; U; Android 2.3.5; ru-ua; HTC_WildfireS_A510e Build/GRJ90) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'        => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; U; Android 2.3.7; en-us; HTC Vision Build/GRI40; ILWT-CM7) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'       => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; U; Android 4.0; xx-xx; HTC_GOF_U/1.05.161.1 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'      => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; U; Android 4.0.3; hu-hu; HTC Sensation Z710e Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'     => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; U; Android 4.0.3; pl-pl; EVO3D_X515m Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'             => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; U; Android 4.0.3; ru-ru; HTC_One_S Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'               => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; U; Android 4.0.3; ru-ru; HTC_One_V Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'               => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; U; Android 4.0.3; zh-cn; HTC_A320e Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'               => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; U; Android 4.0.3; zh-tw; HTC Desire V Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'            => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; Android 4.0.3; PG86100 Build/IML74K) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19'                  => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; U; Android 4.0.3; en-nl; SensationXE_Beats_Z715e Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; ADR6425LVW 4G Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'           => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; Android 4.0.3; HTC One V Build/IML74K) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19'                => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; U; Android 4.0.3; cs-ee; Sensation_Z710e Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'         => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; HTC Evo 4G Build/MIUI) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; Android 4.0.4; Desire HD Build/IMM76D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19'                => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; U; Android 4.0.4; en-my; HTC_One_X Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'               => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; U; Android 4.0.4; it-it; IncredibleS_S710e Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'       => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; U; Android 4.0.4; fr-fr; HTC_Desire_S Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'            => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; Android 4.1.1; HTC One X Build/JRO03C) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19'                => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; Android 4.1.1; HTC Butterfly Build/JRO03C) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19'            => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; Android 4.1.1; EVO Build/JRO03C) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.169 Mobile Safari/537.22'                      => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; Android 4.1.2; HTCSensation Build/JRO03C) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Mobile Safari/537.36'              => array('isMobile' => true, 'isTablet' => false),
-
-            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC 7 Mozart T8698; QSD8x50)'   => array(
-                'isMobile' => true, 'isTablet' => false, 'version' => array('IE' => '9.0', 'Windows Phone OS' => '7.5', 'Trident' => '5.0'), 'model' => '7 Mozart T8698',
-            ),
-            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; 7 HTC MOZART)'             => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; 7 Mondrian T8788)'         => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; 7 Mozart T8698)'           => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; 7 Mozart)'                 => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; 7 Mozart; Orange)'         => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; 7 Pro T7576)'              => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; 7 Pro)'                    => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; 7 Schubert T9292)'         => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; 7 Surround)'               => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; 7 Trophy T8686)'           => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; 7 Trophy)'                 => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Eternity)'                 => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Gold)'                     => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; HD2 LEO)'                  => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; HD2)'                      => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; HD7 T9292)'                => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; HD7)'                      => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; iPad 3)'                   => array('isMobile' => true, 'isTablet' => true),
-            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; LEO)'                      => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Mazaa)'                    => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Mondrian)'                 => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Mozart T8698)'             => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Mozart)'                   => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; mwp6985)'                  => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; PC40100)'                  => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; PC40200)'                  => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; PD67100)'                  => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; PI39100)'                  => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; PI86100)'                  => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Radar 4G)'                 => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Radar C110e)'              => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Radar C110e; 1.08.164.02)' => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Radar C110e; 2.05.164.01)' => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Radar C110e; 2.05.168.02)' => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Radar)'                    => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Radar; Orange)'            => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Schuber)'                  => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Schubert T9292)'           => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Schubert)'                 => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Spark)'                    => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Surround)'                 => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; T7575)'                    => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; T8697)'                    => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; T8788)'                    => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; T9295)'                    => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; T9296)'                    => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; TITAN X310e)'              => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Titan)'                    => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Torphy T8686)'             => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; X310e)'                    => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC_blocked; T8788)'            => array(
-                'isMobile' => true, 'isTablet' => false, 'version' => array('IE' => '9.0', 'Windows Phone OS' => '7.5', 'Trident' => '5.0'), 'model' => 'T8788',
-            ),
-
-            ),
-
-    'Hudl'  => array(
-        'Mozilla/5.0 (Linux; Android 4.2.2; Hudl HT7S3 Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.82 Safari/537.36' => array('isMobile' => true, 'isTablet' => true),
-        ),
-
-    'Huwaei' => array(
-            'Mozilla/5.0 (Linux; U; Android 2.1-update1; bg-bg; Ideos S7 Build/ERE27) AppleWebKit/525.10+ (KHTML, like Gecko) Version/3.0.4 Mobile Safari/523.12.2'              => array('isMobile' => true, 'isTablet' => true),
-            'Mozilla/5.0 (Linux; U; Android 2.1; en-us; Ideos S7 Build/ERE27) AppleWebKit/525.10+ (KHTML, like Gecko) Version/3.0.4 Mobile Safari/523.12.2'                      => array('isMobile' => true, 'isTablet' => true),
-            'Mozilla/5.0 (Linux; U; Android 2.3.6; lt-lt; U8660 Build/HuaweiU8660) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                        => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; U; Android 2.3.7; ru-ru; HUAWEI-U8850 Build/HuaweiU8850) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                 => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; U; Android 3.2; pl-pl; MediaPad Build/HuaweiMediaPad) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13'                         => array('isMobile' => true, 'isTablet' => true),
-            'Mozilla/5.0 (Linux; U; Android 3.2; nl-nl; HUAWEI MediaPad Build/HuaweiMediaPad) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13'                  => array('isMobile' => true, 'isTablet' => true),
-            'HUAWEI_T8951_TD/1.0 Android/4.0.4 (Linux; U; Android 4.0.4; zh-cn) Release/05.31.2012 Browser/WAP2.0 (AppleWebKit/534.30) Mobile Safari/534.30'                     => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; U; Android 4.1.2; ar-eg; MediaPad 7 Youth Build/HuaweiMediaPad) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'               => array('isMobile' => true, 'isTablet' => true),
-            'Mozilla/5.0 (Linux; U; Android 4.1.2; zh-cn; HW-HUAWEI_C8815/C8815V100R001C541B135; 540*960; CTC/2.0) AppleWebKit/534.30 (KHTML, like Gecko) Mobile Safari/534.30'  => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; U; Android 4.1.1; zh-cn; HW-HUAWEI_C8813D/C8813DV100R001C92B172; 480*854; CTC/2.0) AppleWebKit/534.30 (KHTML, like Gecko) Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; U; Android 4.1.1; zh-cn; HW-HUAWEI_Y300C/Y300CV100R001C92B168; 480*800; CTC/2.0) AppleWebKit/534.30 (KHTML, like Gecko) Mobile Safari/534.30'   => array('isMobile' => true, 'isTablet' => false)
-            ),
-
-    'Iconbit' => array(
-        'Mozilla/5.0 (Linux; Android 4.1.1; NT-3702M Build/JRO03C) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.72 Safari/537.36 OPR/16.0.1212.65583' => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 4.1.1; ru-ru; NetTAB SPACE II Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
-        ),
-
-    'iJoy' => array('Mozilla/5.0 (Linux; U; Android 4.1.1; fr-fr; Tablet Planet II-v3 Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true)),
-
-    'Intenso' => array(
-        'Mozilla/5.0 (Linux; U; Android 4.1.1.;de-de; INM8002KP Build/JR003H) AppleWebKit/534.30 (KHTML, like Gecko)Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.1.1.', 'Webkit' => '534.30', 'Safari' => '4.0') ),
-        ),
-
-    'IRU'	=> array(
-
-        'Mozilla/5.0 (Linux; U; Android 4.1.1; ru-ru; M702pro Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
-
-        ),
-
-    'JXD' => array('Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; F3000 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true)
-        ),
-
-    'Karbonn' => array(
-        'Mozilla/5.0 (Linux; Android 4.1.1; ST10 Build/JRO03C) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166  Safari/535.19' => array('isMobile' => true, 'isTablet' => true),
-        ),
-
-    'Kobo' => array(
-            'Mozilla/5.0 (Linux; U; Android 2.0; en-us;) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 (Kobo Touch)' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '2.0', 'Webkit' => '533.1', 'Safari' => '4.0') ),
-        ),
-
-    'Lenovo' => array(
-
-        'Mozilla/5.0 (Linux; U; Android 4.0.4; es-es; IdeaTab_A1107 Build/MR1) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                      => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; Android 4.0.3; IdeaTab A2107A-H Build/IML74K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.90 Safari/537.36'                  => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 4.0.3; en-au; ThinkPad Tablet Build/ThinkPadTablet_A400_03) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
-        'UCWEB/2.0 (Linux; U; Opera Mini/7.1.32052/30.3697; en-US; IdeaTabA1000-G) U2/1.0.0 UCBrowser/9.2.0.419 Mobile'                                               => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; Android 4.1.2; IdeaTabA1000-F Build/JZO54K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Safari/537.36'                   => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; Android 4.2.1; Lenovo A3000-H Build/JOP40D) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.117 Safari/537.36'                   => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; Android 4.2.2; IdeaTab A3000-F Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Safari/537.360'                   => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 4.1; zh-cn; Lenovo-A3000-H/S100) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.1 Mobile Safari/534.300'                    => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 4.2.2; es-us; IdeaTab A3000-F Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                  => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; Android 4.0.3; IdeaTab A2107A-H Build/IML74K) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166  Safari/535.19'                => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 4.0.3; de-de; IdeaTab A2107A-H Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 4.1.1; es-es; IdeaTabA2109A Build/JRO03R) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                   => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 4.1.1; nl-nl; IdeaTabA2109A Build/JRO03R) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                   => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 4.0.4; es-es; IdeaTab_A1107 Build/MR1) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.300'                     => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; Android 4.2.2; IdeaTab S6000-H Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.138 Safari/537.36'                   => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 4.2.2; en-gb; IdeaTab S6000-F Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                  => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; Android 4.2.2; Lenovo B8000-F Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Safari/537.36'                    => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 4.2.2;it-it; Lenovo B8000-F/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.2.2 Mobile Safari/534.30'                 => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 4.2.2; it-it; Lenovo B6000-F/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.2.2 Mobile Safari/534.30'                => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; Android 4.2.2; Lenovo B6000-F Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Safari/537.36'                    => array('isMobile' => true, 'isTablet' => true),
-
-        ),
-
-    'LG' => array(
-            'Mozilla/5.0 (Linux; U; Android 2.2; en-us; LG-P509 Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 MMS/LG-Android-MMS-V1.0/1.2'     => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; U; Android 2.2.2; pt-br; LG-P350f Build/FRG83G) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 MMS/LG-Android-MMS-V1.0/1.2' => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; U; Android 2.3.3; en-us; LG-P500 Build/GRI40) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 MMS/LG-Android-MMS-V1.0/1.2'   => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; U; Android 2.3.3; en-us; LS670 Build/GRI40) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                                 => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; U; Android 2.3.4; ru-ru; LG-E510 Build/GRJ22) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 MMS/LG-Android-MMS-V1.0/1.2'   => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; U; Android 2.3.4; en-us; VS910 4G Build/GRJ22) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                              => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; U; Android 4.0.3; nl-nl; LG-P700 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                            => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; U; Android 4.0.3; ko-kr; LG-L160L Build/IML74K) AppleWebkit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                           => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; LG-F160S Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                           => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; U; Android 4.0.3; nl-nl; LG-E610v/V10f Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                      => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; LG-E612 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                            => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; Android 4.1.2; LG-F180K Build/JZO54K) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19'                            => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; Android 4.2.2; LG-V500 Build/JDQ39B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.59 Safari/537.36'                                     => array('isMobile' => true, 'isTablet' => true),
-            'Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; LG-LW770 Build/IMM76I) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                           => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; Android 4.4.2; LG-V510 Build/KOT49H.L004) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.141 Safari/537.36'                               => array('isMobile' => true, 'isTablet' => true),
-
-            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; LG; LG E-900)'                                                                     => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; LG; LG-C900)'                                                                      => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; LG; LG-C900k)'                                                                     => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; LG; LG-E900)'                                                                      => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; LG; LG-E900; Orange)'                                                              => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; LG; LG-E900h)'                                                                     => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; LG; LG-Optimus 7)'                                                                 => array('isMobile' => true, 'isTablet' => false),
-            // @ref: http://ja.wikipedia.org/wiki/L-06C
-            'Mozilla/5.0 (Linux; U; Android 3.0.1; ja-jp; L-06C Build/HRI66) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13'                                      => array('isMobile' => true, 'isTablet' => true),
-            'Mozilla/5.0 (Linux; U; Android 3.0; en-us; LG-V900 Build/HRI39) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13'                                      => array('isMobile' => true, 'isTablet' => true),
-            ),
-
-    'Megafon' => array(
-
-        'Mozilla/5.0 (Linux; U; Android 2.3.5; ru-ru; MegaFon V9 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; Android 4.1.1; MT7A Build/JRO03C) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.58 Safari/537.31' => array('isMobile' => true, 'isTablet' => true),
-
-        ),
-
-    'MediaTek' => array(
-        'Mozilla/5.0 (Linux; U; Android 4.1.1; fr-fr; MT8377 Build/JRO03C) AppleWebKit/534.30 (KHTML like Gecko) Version/4.0 Safari/534.30/4.05d.1002.m7' => array('isMobile' => true, 'isTablet' => true),
-        ),
-
-    'Micromax' => array(
-
-        'Mozilla/5.0 (Linux; Android 4.1.1; Micromax A110 Build/JRO03C) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.169 Mobile Safari/537.22' => array('isMobile' => true, 'isTablet' => false, 'version' => array('Android' => '4.1.1', 'Build' => 'JRO03C', 'Webkit' => '537.22', 'Chrome' => '25.0.1364.169') ),
-        'Mozilla/5.0 (Linux; U; Android 4.0; xx-xx; Micromax P250(Funbook) Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Webkit' => '534.30', 'Android' => '4.0', 'Build' => 'IMM76D', 'Safari' => '4.0') ),
-
-        ),
-
-    'Microsoft' => array(
-
-        // Surface tablet
-        'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; ARM; Trident/6.0; Touch; .NET4.0E; .NET4.0C; Tablet PC 2.0)' => array('isMobile' => true, 'isTablet' => true, 'version' => array('IE' => '10.0', 'Windows NT' => '6.2', 'Trident' => '6.0') ),
-        'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; ARM; Trident/6.0)'                                           => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; ARM; Trident/6.0; Touch)'                                    => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; ARM; Trident/6.0; Touch; ARMBJS)'                            => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Win64; x64; Trident/6.0; Touch; MASMJS)'                     => array('isMobile' => false, 'isTablet' => false),
-
-        // Thanks to Jonathan Donzallaz!
-        // Firefox (nightly) in metro mode on Dell XPS 12
-        'Mozilla/5.0 (Windows NT 6.2; WOW64; rv:25.0) Gecko/20130626 Firefox/25.0' => array('isMobile' => false, 'isTablet' => false),
-        // Firefox in desktop mode on Dell XPS 12
-        'Mozilla/5.0 (Windows NT 6.2; WOW64; rv:22.0) Gecko/20100101 Firefox/22.0' => array('isMobile' => false, 'isTablet' => false),
-        // IE10 in metro mode on Dell XPS 12
-        'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Win64; x64; Trident/6.0; MDDCJS)' => array('isMobile' => false, 'isTablet' => false),
-        // IE10 in desktop mode on Dell XPS 12
-        'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0; MDDCJS)' => array('isMobile' => false, 'isTablet' => false),
-        // Opera on Dell XPS 12
-        'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.52 Safari/537.36 OPR/15.0.1147.130' => array('isMobile' => false, 'isTablet' => false),
-        // Chrome on Dell XPS 12
-        'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36' => array('isMobile' => false, 'isTablet' => false),
-        // Google search app from Windows Store
-        'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Win64; x64; Trident/6.0; Touch; MDDCJS; WebView/1.0)' => array('isMobile' => false, 'isTablet' => false),
-        ),
-
-    'Modecom' => array(
-        'Mozilla/5.0 (Linux; U; Android 4.2.2; pl-pl; FreeTAB 1014 IPS X4+ Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
-        ),
-
-    'Motorola' => array(
-        'MOT-W510/08.11.05R MIB/BER2.2 Profile/MIDP-2.0 Configuration/CLDC-1.1 EGE/1.0 UP.Link/6.3.0.0.0'   => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 2.2.2; zh-cn; ME722 Build/MLS2GC_2.6.0) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                       => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 2.3.4; en-us; DROIDX Build/4.5.1_57_DX8-51) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                   => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 2.3.5; en-us; MB855 Build/4.5.1A-1_SUN-254_13) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 2.3.5; es-us; MB526 Build/4.5.2-51_DFL-50) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                    => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 2.3.6; en-ca; MB860 Build/4.5.2A-51_OLL-17.8) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                 => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 2.3.7; en-us; MOT-XT535 Build/V1.540) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                         => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 2.3.7; ko-kr; A853 Build/SHOLS_U2_05.26.3; CyanogenMod-7.1.2) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 3.0; en-us; Xoom Build/HRI39) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13'                                      => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 3.1; en-us; Xoom Build/HMJ25) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13'                                      => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; DROID RAZR 4G Build/6.7.2-180_DHD-16_M4-31) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'   => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; Xoom Build/IMM76L) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                                   => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 4.0.4; pt-br; XT687 Build/V2.27D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                           => array('isMobile' => true, 'isTablet' => false, 'version' => array('Android' => '4.0.4', 'Webkit' => '534.30', 'Safari' => '4.0'), 'model' => 'XT687' ),
-        'Mozilla/5.0 (Linux; U; Android 4.0.4; es-es; MOT-XT910 Build/6.7.2-180_SPU-19-TA-11.6) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'     => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; Android 4.1.2; XT910 Build/9.8.2O-124_SPUL-17) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19'                => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; Android 4.1.2; XT915 Build/2_32A_2031) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.94 Mobile Safari/537.36'                         => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; Android 4.1.2; XT919 Build/2_290_2017) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.64 Mobile Safari/537.36'                         => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; Android 4.1.2; XT925 Build/9.8.2Q-50-XT925_VQLM-20) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.90 Mobile Safari/537.36'            => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; Android 4.1.2; XT907 Build/9.8.1Q-66) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.90 Mobile Safari/537.36'                          => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; Android 4.1.2; XT901 Build/9.8.2Q-50_SLS-13) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19'                  => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; Android 4.1.2; DROID BIONIC Build/9.8.2O-72_VZW-22) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Mobile Safari/537.36'            => array('isMobile' => true, 'isTablet' => false),
-        ),
-
-    // @ref: https://www.nabitablet.com/
-    'Nabi'	=> array(
-        'Mozilla/5.0 (Linux; U; Android 2.2.1; en-us; NABI-A Build/MASTER) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => true),
-        ),
-
-    'NEC'	=> array(
-        // @ref: http://www.n-keitai.com/n-08d/?from=mediasnet
-        // @ref: http://devlog.dcm-gate.com/2012/03/medias-tab-n-06duseragnet.html
-        // @ref: http://keitaiall.jp/N-08D.html aka MEDIAS TAB
-        'Mozilla/5.0 (Linux; U; Android 4.0.4; ja-jp; N-08D Build/A5001911) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android AAA; BBB; N-06D Build/CCC) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'     => array('isMobile' => true, 'isTablet' => true),
-
-        ),
-
-    'Nook' => array(
-
-        'Mozilla/5.0 (Linux; U; Android 2.2.1; en-us; NOOK BNRV200 Build/ERD79 1.4.3) Apple WebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                   => array( 'isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '2.2.1', 'Webkit' => '533.1', 'Safari' => '4.0') ),
-        'Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; NOOK BNTV400 Build/ICS) AppleWebKit/534.30 (KHTML like Gecko) Version/4.0 Safari/534.30'                                  => array( 'isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.0.4', 'Build' => 'ICS', 'Webkit' => '534.30', 'Safari' => '4.0') ),
-        'Mozilla/5.0 (Linux; Android 4.0.4; BNTV600 Build/IMM76L) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.94 Safari/537.36 Hughes-PFB/CID5391275.AID1376709964' => array( 'isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.0.4', 'Build' => 'IMM76L', 'Webkit' => '537.36', 'Chrome' => '28.0.1500.94') ),
-
-        ),
-
-    'Nokia' => array(
-        'Nokia200/2.0 (12.04) Profile/MIDP-2.1 Configuration/CLDC-1.1 UCWEB/2.0 (Java; U; MIDP-2.0; en-US; nokia200) U2/1.0.0 UCBrowser/8.9.0.251 U2/1.0.0 Mobile UNTRUSTED/1.0' => array('isMobile' => true, 'isTablet' => false),
-        'Nokia6303iclassic/5.0 (06.61) Profile/MIDP-2.1 Configuration/CLDC-1.1 Mozilla/5.0 AppleWebKit/420+ (KHTML, like Gecko) Safari/420+' => array('isMobile' => true, 'isTablet' => false),
-        'nokian73-1/UC Browser7.8.0.95/69/400 UNTRUSTED/1.0'                                                                                                                                                => array('isMobile' => true, 'isTablet' => false),
-        'Nokia2760/2.0 (06.82) Profile/MIDP-2.1 Configuration/CLDC-1.1'                                                                                                                                     => array('isMobile' => true, 'isTablet' => false),
-        'Nokia3650/1.0 SymbianOS/6.1 Series60/1.2 Profile/MIDP-1.0 Configuration/CLDC-1.0'                                                                                                                  => array('isMobile' => true, 'isTablet' => false),
-        'NokiaN70-1/5.0737.3.0.1 Series60/2.8 Profile/MIDP-2.0 Configuration/CLDC-1.1/UC Browser7.8.0.95/27/352'                                                                                            => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (S60V3; U; ru; NokiaN73) AppleWebKit/530.13 (KHTML, like Gecko) UCBrowser/8.6.0.199/28/444/UCWEB Mobile'                                                                               => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (S60V3; U; ru; NokiaC5-00.2)/UC Browser8.5.0.183/28/444/UCWEB Mobile'                                                                                                                  => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (S60V3; U; ru; NokiaC5-00.2) AppleWebKit/530.13 (KHTML, like Gecko) UCBrowser/8.7.0.218/28/352/UCWEB Mobile'                                                                           => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Series40; NokiaC3-00/08.63; Profile/MIDP-2.1 Configuration/CLDC-1.1) Gecko/20100401 S40OviBrowser/2.2.0.0.33'                                                                         => array('isMobile' => true, 'isTablet' => false),
-        'Opera/9.80 (Series 60; Opera Mini/7.0.31380/28.2725; U; es) Presto/2.8.119 Version/11.10'                                                                                                          => array('isMobile' => true, 'isTablet' => false, 'version' => array('Opera Mini' => '7.0.31380', 'Presto' => '2.8.119')),
-        'Mozilla/5.0 (Symbian/3; Series60/5.2 NokiaC7-00/025.007; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/533.4 (KHTML, like Gecko) NokiaBrowser/7.3.1.37 Mobile Safari/533.4 3gpp-gba'       => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Symbian/3; Series60/5.2 NokiaX7-00/022.014; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/533.4 (KHTML, like Gecko) NokiaBrowser/7.3.1.37 Mobile Safari/533.4 3gpp-gba'       => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Symbian/3; Series60/5.3 NokiaE6-00/111.140.0058; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/535.1 (KHTML, like Gecko) NokiaBrowser/8.3.1.4 Mobile Safari/535.1 3gpp-gba'   => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Symbian/3; Series60/5.3 NokiaC6-01/111.040.1511; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/535.1 (KHTML, like Gecko) NokiaBrowser/8.3.1.4 Mobile Safari/535.1'            => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Symbian/3; Series60/5.3 NokiaC6-01; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/533.4 (KHTML, like Gecko) NokiaBrowser/7.4.2.6 Mobile Safari/533.4 3gpp-gba'                => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Symbian/3; Series60/5.3 Nokia700/111.030.0609; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/533.4 (KHTML, like Gecko) NokiaBrowser/7.4.2.6 Mobile Safari/533.4 3gpp-gba'     => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Symbian/3; Series60/5.3 Nokia700/111.020.0308; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/533.4 (KHTML, like Gecko) NokiaBrowser/7.4.1.14 Mobile Safari/533.4 3gpp-gba'    => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Symbian/3; Series60/5.3 NokiaN8-00/111.040.1511; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/535.1 (KHTML, like Gecko) NokiaBrowser/8.3.1.4 Mobile Safari/535.1 3gpp-gba'   => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Symbian/3; Series60/5.3 Nokia701/111.030.0609; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/533.4 (KHTML, like Gecko) NokiaBrowser/7.4.2.6 Mobile Safari/533.4 3gpp-gba'     => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 Nokia6120c/3.83; Profile/MIDP-2.0 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413'                                             => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 Nokia6120ci/7.02; Profile/MIDP-2.0 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413'                                            => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 Nokia6120c/7.10; Profile/MIDP-2.0 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413'                                             => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 NokiaE66-1/510.21.009; Profile/MIDP-2.0 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413'                                       => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 NokiaE71-1/110.07.127; Profile/MIDP-2.0 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413'                                       => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 NokiaN95-3/20.2.011 Profile/MIDP-2.0 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413'                                          => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 NokiaE51-1/200.34.36; Profile/MIDP-2.0 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413'                                        => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 NokiaE63-1/500.21.009; Profile/MIDP-2.0 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413'                                       => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 NokiaN82/10.0.046; Profile/MIDP-2.0 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413'                                           => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (SymbianOS/9.3; Series60/3.2 NokiaE52-1/052.003; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/525 (KHTML, like Gecko) Version/3.0 BrowserNG/7.2.6.2'                          => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (SymbianOS/9.3; Series60/3.2 NokiaE52-1/@version@; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/533.4 (KHTML, like Gecko) NokiaBrowser/7.3.1.26 Mobile Safari/533.4 3gpp-gba' => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (SymbianOS/9.3; Series60/3.2 NokiaC5-00/031.022; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/525 (KHTML, like Gecko) Version/3.0 BrowserNG/7.2.3.1'						=> array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (SymbianOS/9.3; Series60/3.2 NokiaC5-00.2/081.003; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/533.4 (KHTML, like Gecko) NokiaBrowser/7.3.1.32 Mobile Safari/533.4 3gpp-gba' => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (SymbianOS/9.3; U; Series60/3.2 NokiaN79-1/32.001; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413'                                           => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (SymbianOS/9.3; U; Series60/3.2 Nokia6220c-1/06.101; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413'                                         => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (SymbianOS/9.3; Series60/3.2 NokiaC5-00.2/071.003; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/533.4 (KHTML, like Gecko) NokiaBrowser/7.3.1.26 Mobile Safari/533.4 3gpp-gba' => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (SymbianOS/9.3; Series60/3.2 NokiaE72-1/081.003; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/533.4 (KHTML, like Gecko) NokiaBrowser/7.3.1.32 Mobile Safari/533.4 3gpp-gba'   => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (SymbianOS/9.3; Series60/3.2 NokiaC5-00/061.005; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/525 (KHTML, like Gecko) Version/3.0 BrowserNG/7.2.6.2 3gpp-gba'                 => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (SymbianOS/9.4; Series60/5.0 NokiaX6-00/40.0.002; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/533.4 (KHTML, like Gecko) NokiaBrowser/7.3.1.33 Mobile Safari/533.4 3gpp-gb'   => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (SymbianOS/9.4; Series60/5.0 Nokia5800d-1/60.0.003; Profile/MIDP-2.1 Configuration/CLDC-1.1 AppleWebKit/533.4 (KHTML, like Gecko) NokiaBrowser/7.3.1.33 Mobile Safari/533.4 3gpp-gba'  => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (SymbianOS/9.4; Series60/5.0 NokiaC5-03/12.0.023; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/525 (KHTML, like Gecko) Version/3.0 BrowserNG/7.2.6.9 3gpp-gba'                => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (SymbianOS/9.4; Series60/5.0 Nokia5228/40.1.003; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/525 (KHTML, like Gecko) Version/3.0 BrowserNG/7.2.7.4 3gpp-gba'                 => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (SymbianOS/9.4; Series60/5.0 Nokia5230/51.0.002; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/533.4 (KHTML, like Gecko) NokiaBrowser/7.3.1.33 Mobile Safari/533.4 3gpp-gba'   => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (SymbianOS/9.4; Series60/5.0 Nokia5530c-2/32.0.007; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/525 (KHTML, like Gecko) Version/3.0 BrowserNG/7.2.6.9 3gpp-gba'              => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (SymbianOS/9.4; Series60/5.0 NokiaN97-1/21.0.045; Profile/MIDP-2.1 Configuration/CLDC-1.1) AppleWebKit/525 (KHTML, like Gecko) BrowserNG/7.1.4'                                        => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (SymbianOS/9.4; Series60/5.0 NokiaN97-4/30.0.004; Profile/MIDP-2.1 Configuration/CLDC-1.1) AppleWebKit/533.4 (KHTML, like Gecko) NokiaBrowser/7.3.1.28 3gpp-gba'                       => array('isMobile' => true, 'isTablet' => false, 'version' => array('Symbian' => '9.4', 'Webkit' => '533.4', 'NokiaBrowser' => '7.3.1.28'), 'model' => 'NokiaN97-4' ),
-
-        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; Nokia; 7 Mozart T8698)'                                                                                        => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; 710)'                                                                                                   => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; Nokia; 800)'                                                                                                   => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; Nokia; 800C)'                                                                                                  => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; Nokia; 800C; Orange)'                                                                                          => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; Nokia; 900)'                                                                                                   => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; Nokia; HD7 T9292)'                                                                                             => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; LG E-900)'                                                                                              => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Lumia 610)'                                                                                             => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Lumia 710)'                                                                                             => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Lumia 710; Orange)'                                                                                     => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Lumia 710; T-Mobile)'                                                                                   => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Lumia 710; Vodafone)'                                                                                   => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Lumia 800)'                                                                                             => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Lumia 800) UP.Link/5.1.2.6'                                                                             => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Lumia 800; Orange)'                                                                                     => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Lumia 800; SFR)'                                                                                        => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Lumia 800; T-Mobile)'                                                                                   => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Lumia 800; vodafone)'                                                                                   => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; Nokia; Lumia 800c)'                                                                                            => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Lumia 900)'                                                                                             => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; Nokia; Lumia 920)'                                                                                             => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 920)'                                                                                  => array('isMobile' => true, 'isTablet' => false, 'version' => array('IE' => '10.0', 'Windows Phone OS' => '8.0', 'Trident' => '6.0'), 'model' => 'Lumia 920' ),
-        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; Nokia; lumia800)'                                                                                              => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Nokia 610)'                                                                                             => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Nokia 710)'                                                                                             => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Nokia 800)'                                                                                             => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Nokia 800C)'                                                                                            => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Nokia 900)'                                                                                             => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; Nokia; Nokia)'                                                                                                 => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; Nokia; SGH-i917)'                                                                                              => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; Nokia; TITAN X310e)'                                                                                           => array('isMobile' => true, 'isTablet' => false, 'version' => array('Windows Phone OS' => '7.5', 'Trident' => '5.0'), 'model' => 'TITAN X310e' ),
-        ),
-
-    'Odys' => array(
-        'Mozilla/5.0 (Linux; U; Android 4.0.3; de-de; LOOX Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                                             => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 4.0.3; de-de; LOOX Plus Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                                        => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 4.1.X; de-de; XENO10 Build/ODYS XENO 10) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                                     => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 2.2.2; de-de; ODYS Space Build/I700T_P7_T04_TSCL_FT_R_0_03_1010_110623) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => true),
-    ),
-
-    'OverMax' => array(
-            'OV-SteelCore(B) Mozilla/5.0 (iPad; CPU OS 5_0_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A405 Safari/7534.48.3' => array('isMobile' => true, 'isTablet' => true),
-            'Mozilla/5.0 (Linux; U; Android 4.0.4; pl-pl; OV-SteelCore Build/ICS.g08refem611.20121010) AppleWebKit/534.30 (KHTML like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
-        ),
-
-    'YONESTablet' => array(
-        'Mozilla/5.0 (Linux; U; Android 4.0.4; pl-pl; BC1077 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
-        ),
-
-    // @todo: Research http://www.pantech.com/
-    'Pantech' => array(
-        'PANTECH-C790/JAUS08312009 Browser/Obigo/Q05A Profile/MIDP-2.0 Configuration/CLDC-1.1'                                                         => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 2.2.1; ko-kr; SKY IM-A600S Build/FRG83) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 2.3.3; en-us; ADR8995 4G Build/GRI40) AppleWebKit/533.1 (KHTML like Gecko) Version/4.0 Mobile Safari/533.1'    => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 3.2.1; en-us; PantechP4100 Build/HTK75) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13'		=> array('isMobile' => true, 'isTablet' => true),
-        ),
-
-    'Philips' => array(
-        'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; W732 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false),
-
-        ),
-
-    'PointOfView' => array(
-        'Mozilla/5.0 (Linux; U; Android 4.1.1; en-us; POV_TAB-PROTAB30-IPS10 Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
-        ),
-
-    'Prestigio' => array(
-        'Mozilla/5.0 (Linux; U; Android 4.2.2; en-gb; PMP5297C_QUAD Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 4.0.4; sk-sk; PMP7100D3G Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.0.4', 'Build' => 'IMM76D', 'Webkit' => '534.30', 'Safari' => '4.0'), 'model' => 'PMP7100D3G' ),
-        'Mozilla/5.0 (Linux; U; Android 4.1.2; sk-sk; PMP7280C3G Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 MobilSafari/534.30' => array('isMobile' => true, 'isTablet' => true),
-        ),
-
-    'PROSCAN' => array(
-        'Mozilla/5.0 (Linux; U; Android 4.1.1; en-us; PLT8088 Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.1.1', 'Build' => 'JRO03H', 'Webkit' => '534.30', 'Safari' => '4.0') ),
-        ),
-
-    'PyleAudio' => array(
-        'Mozilla/5.0 (Linux; Android 4.0.4; PTBL92BC Build/IMM76D) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.59 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.0.4', 'Build' => 'IMM76D', 'Webkit' => '537.36', 'Chrome' => '31.0.1650.59')),
-
-        ),
-
-    'RockChip' => array(
-        'Mozilla/5.0 (Linux; U; Android 2.2.1; hu-hu; RK2818, Build/MASTER) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                   => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android Android 2.1-RK2818-1.0.0; zh-cn; MD701 Build/ECLAIR) AppleWebKit/530.17 (KHTML like Gecko) Version/4.0 Mobile Safari/530.17' => array('isMobile' => true, 'isTablet' => true),
-        ),
-
-    'RossMoor' => array(
-        'Mozilla/5.0 (Linux; U; Android 4.2.1; ru-ru; RM-790 Build/JOP40D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true)
-
-        ),
-
-    // @ref: http://www.qmobile.com.pk/complete_range.php#
-    'QMobile' => array(
-        'Mozilla/5.0 (Linux; U; Android 2.3.6; en-us; A2 Build/GRK39F) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false),
-        ),
-
-    'Samsung' => array(
-        'MQQBrowser/4.0/Mozilla/5.0 (Linux; U; Android 3.2; zh-cn; GT-P6800 Build/HTJ85B) AppleWebKit/533.1 (KHTML, like Gecko) Mobile Safari/533.1'                                                                            => array('isMobile' => true, 'isTablet' => true, 'version' => array('MQQBrowser' => '4.0')),
-        'SAMSUNG-SGH-P250-ORANGE/P250BVHH8 Profile/MIDP-2.0 Configuration/CLDC-1.1 UP.Browser/6.2.3.3.c.1.101 (GUI) MMP/2.0'                                                                                                    => array('isMobile' => true, 'isTablet' => false),
-        'SAMSUNG-GT-B2710/B271MCXKF1 SHP/VPP/R5 Dolfin/2.0 QTV/5.3 SMM-MMS/1.2.0 profile/MIDP-2.1 configuration/CLDC-1.1 OPN-B'                                                                                                 => array('isMobile' => true, 'isTablet' => false, 'version' => array('Dolfin' => '2.0') ),
-        'SAMSUNG-SGH-D900i/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 UP.Browser/6.2.3.3.c.1.101 (GUI) MMP/2.0'                                                                                                                => array('isMobile' => true, 'isTablet' => false),
-        'SAMSUNG-GT-S5233T/S5233TXEJE3 SHP/VPP/R5 Jasmine/0.8 Qtv5.3 SMM-MMS/1.2.0 profile/MIDP-2.1 configuration/CLDC-1.1'                                                                                                     => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (SAMSUNG; SAMSUNG-GT-S5380D/S5380FXXKL3; U; Bada/2.0; ru-ru) AppleWebKit/534.20 (KHTML, like Gecko) Dolfin/3.0 Mobile HVGA SMM-MMS/1.2.0 OPN-B'                                                            => array('isMobile' => true, 'isTablet' => false),
-        'SAMSUNG-GT-C3312/1.0 NetFront/4.2 Profile/MIDP-2.0 Configuration/CLDC-1.1'                                                                                                                                             => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 1.5; de-de; Galaxy Build/CUPCAKE) AppleWebKit/528.5 (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1'                                                                           => array('isMobile' => true, 'isTablet' => false),
-        'SAMSUNG-GT-S3650/S3650XEII3 SHP/VPP/R5 Jasmine/1.0 Nextreaming SMM-MMS/1.2.0 profile/MIDP-2.1 configuration/CLDC-1.1'                                                                                                  => array('isMobile' => true, 'isTablet' => false),
-        'JUC (Linux; U; 2.3.6; zh-cn; GT-S5360; 240*320) UCWEB7.9.0.94/140/352'                                                                                                                                                 => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (SAMSUNG; SAMSUNG-GT-S5250/S5250XEKJ3; U; Bada/1.0; ru-ru) AppleWebKit/533.1 (KHTML, like Gecko) Dolfin/2.0 Mobile WQVGA SMM-MMS/1.2.0 NexPlayer/3.0 profile/MIDP-2.1 configuration/CLDC-1.1 OPN-B'        => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/4.0 (compatible; MSIE 7.0; Windows Phone OS 7.0; Trident/3.1; IEMobile/7.0; SAMSUNG; SGH-i917)'                                                                                                                => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (SAMSUNG; SAMSUNG-GT-S8530/S8530XXJKA; U; Bada/1.2; cs-cz) AppleWebKit/533.1 (KHTML, like Gecko) Dolfin/2.2 Mobile WVGA SMM-MMS/1.2.0 OPN-B'                                                               => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 1.6; ru-ru; Galaxy Build/Donut) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1'                                                                            => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 2.1-update1; ru-ru; GT-I5500 Build/ERE27) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17'                                                                      => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 2.2; en-us; GALAXY_Tab Build/MASTER) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                                                                             => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 2.2; ja-jp; SC-01C Build/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                                                                                  => array('isMobile' => true, 'isTablet' => true),
-        // @about FROYO: http://gizmodo.com/5543853/what-is-froyo
-        'Mozilla/5.0 (Linux; U; Android 2.2; fr-fr; GT-I9000 Build/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                                                                                => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 2.2.1; zh-cn; SCH-i909 Build/FROYO) UC AppleWebKit/534.31 (KHTML, like Gecko) Mobile Safari/534.31'                                                                                     => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 2.3.3; ja-jp; SC-01C Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                                                                          => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 2.3.3; en-gb; GT-P1000 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                                                                        => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 2.3.3; el-gr; GT-I9001 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                                                                        => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 2.3.3; en-ca; SGH-I896 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                                                                        => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 2.3.4; es-us; GT-S5660L Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 MicroMessenger/4.5.1.261'                                              => array('isMobile' => true, 'isTablet' => false, 'version' => array('MicroMessenger' => '4.5.1.261')),
-        'Mozilla/5.0 (Linux; U; Android 2.3.6; en-us; GT-S5660 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                                                                        => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 2.3.6; ru-ru; GT-S6102 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                                                                        => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 2.3.6; pt-br; GT-S5367 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                                                                        => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 2.3.6; fr-fr; GT-S5839i Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                                                                       => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 2.3.6; en-gb; GT-S7500 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                                                                        => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 2.3.6; en-gb; GT-S5830 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                                                                        => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 2.3.6; es-us; GT-B5510L Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                                                                       => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 2.3.6; pl-pl; GT-I9001-ORANGE/I9001BVKPC Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                                                      => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 2.3.6; en-us; GT-I8150 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                                                                        => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 2.3.6; nl-nl; GT-I9070 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                                                                        => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 2.3.6; en-gb; GT-S5360 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                                                                        => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 2.3.6; es-us; GT-S6102B Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                                                                       => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 2.3.6; en-us; GT-S5830i Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                                                                       => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 2.3.6; ru-ru; GT-I8160 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                                                                        => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 2.3.6; ru-ru; GT-S6802 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                                                                        => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 2.3.7; ru-ru; GT-S5830 Build/GRWK74; LeWa_ROM_Cooper_12.09.21) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                                                   => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 2.3.6; ru-ru; GT-N7000 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                                                                        => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 3.0.1; en-us; GT-P7100 Build/HRI83) AppleWebkit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13'                                                                                   => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 3.2; he-il; GT-P7300 Build/HTJ85B) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13'                                                                                    => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 3.2; en-gb; GT-P6200 Build/HTJ85B) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13'                                                                                    => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 4.0.3; en-gb; GT-I9100 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                                                                           => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; GT-I9100G Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                                                                          => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 4.0.3; nl-nl; GT-P5100 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                                                                                  => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android-4.0.3; en-us; Galaxy Nexus Build/IML74K) AppleWebKit/535.7 (KHTML, like Gecko) CrMo/16.0.912.75 Mobile Safari/535.7'                                                                    => array( 'isMobile' => true, 'isTablet' => false, 'version' => array('Chrome' => '16.0.912.75') ),
-        'Mozilla/5.0 (Linux; Android 4.0.3; SGH-T989 Build/IML74K) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19'                                                                            => array('isMobile' => true, 'isTablet' => false, 'version' => array('Chrome' => '18.0.1025.166') ),
-        'Mozilla/5.0 (Linux; U; Android 4.0.4; ru-ru; GT-P5100 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                                                                                  => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; Android 4.0.4; GT-I9300 Build/IMM76D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19'                                                                            => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; Android 4.0.4; SPH-D710 Build/IMM76I) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19'                                                                            => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 4.0.4; zh-cn; GT-I9300 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                                                                           => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 4.0.4; en-gb; GT-I9300-ORANGE/I9300BVBLG2 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                                                        => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 4.0.4; th-th; GT-I9300T Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                                                                          => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 4.0.4; ru-ru; GT-I9100 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                                                                           => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 4.0.4; en-us ; GT-I9100 Build/IMM76D) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1/UCBrowser/8.4.1.204/145/355'                                                => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 4.0.4; en-gb; GT-N7000 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                                                                           => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 4.0.4; th-th; GT-P6800 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                                                                                  => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; Android 4.0.4; SAMSUNG-SGH-I747 Build/IMM76D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19'                                                                    => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 4.0.3; es-es; GT-P5110 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                                                                                  => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; Android 4.0.4; GT-P5110 Build/IMM76D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19'                                                                                   => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 4.0.4; zh-cn; SAMSUNG-GT-S7568_TD/1.0 Android/4.0.4 Release/07.15.2012 Browser/AppleWebKit534.30 Build/IMM76D) ApplelWebkit/534.30 (KHTML,like Gecko) Version/4.0 Mobile Safari/534.30' => array( 'isMobile' => true, 'isTablet' => false, 'version' => array('Android' => '4.0.4') ),
-        'Mozilla/5.0 (Linux; U; Android 4.0.4; ru-ru; GT-P3100 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                                                                                  => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 4.0.4; tr-tr; GT-P3105 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                                                                                  => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 4.0.4; en-ca; GT-N8010 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                                                                                  => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 4.0.4; ru-ru; GT-S7562 Build/IMM76I) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                                                                           => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 4.1.1; en-us; GT-N7100 Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                                                                           => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; Android 4.1.2; GT-N7100 Build/JZO54K) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.123 Mobile Safari/537.22 OPR/14.0.1025.52315'                                                        => array( 'isMobile' => true, 'isTablet' => false, 'version' => array( 'Build' => 'JZO54K', 'Webkit' => '537.22', 'Opera' => '14.0.1025.52315' ) ),
-        'Mozilla/5.0 (Linux; U; Android 4.1.1; zh-hk; GT-N7105 Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                                                                           => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 4.1.1; ru-ru; GT-N8000 Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                                                                                  => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; Android 4.1.1; SGH-i747M Build/JRO03L) AppleWebKit/535.19(KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19'                                                                            => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 4.1.1; en-gb; Galaxy Nexus - 4.1.1 - with Google Apps - API 16 - 720x1280 Build/JRO03S) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; Android 4.1.2; GT-I8262 Build/JZO54K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Mobile Safari/537.36'                                                                             => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 4.1.2; it-it; Galaxy Nexus Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                                                                       => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 4.1.2; en-us; SGH-I777 Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                                                                           => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 4.1.2; en-us; GT-S7710 Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                                                                           => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 4.1.2; en-us; GT-I9082 Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                                                                           => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 4.1.2; en-us; SGH-T999L Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; Android 4.2.2; GT-P5210 Build/JDQ39) AppleWebKit/537.36 (KHTML, Like Gecko) Chrome/27.0.1453.90 Safari/537.36'                                                                                     => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; Android 4.2.2; en-us; SAMSUNG GT-I9200 Build/JDQ39) AppleWebKit/535.19 (KHTML, like Gecko) Version/1.0 Chrome/18.0.1025.308 Mobile Safari/535.19'                                                  => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; Android 4.2.2; zh-cn; SCH-I959 Build/JDQ39) AppleWebKit/535.19 (KHTML, like Gecko) Version/1.0 Chrome/18.0.1025.308 Mobile Safari/535.19'                                                          => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 4.2.2; nl-nl; SM-T310 Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; Android 4.3; en-us; SAMSUNG SM-P600 Build/JSS15J) AppleWebKit/537.36 (KHTML, like Gecko) Version/1.5 Chrome/28.0.1500.94 Safari/537.36' => array('isMobile' => true, 'isTablet' => true),
-
-        'Mozilla/5.0 (Linux; U; Android 4.2.2; en-gb; GT-N5100 Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; Android 4.4.2; en-us; SAMSUNG SM-T530NU Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/1.5 Chrome/28.0.1500.94 Safari/537.36' => array('isMobile' => true, 'isTablet' => true),
-
-        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; CETUS)'                                                                                                                   => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; Focus I917 By TC)'                                                                                                        => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; Focus i917)'                                                                                                              => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; FOCUS S)'                                                                                                                 => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; GT-I8350)'                                                                                                                => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; GT-i8700)'                                                                                                                => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; GT-S7530)'                                                                                                                => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; Hljchm\'s Wp)'                                                                                                            => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; I917)'                                                                                                                    => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; OMNIA 7)'                                                                                                                 => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; OMNIA7 By MWP_HS)'                                                                                                        => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; OMNIA7)'                                                                                                                  => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; OMNIA7; Orange)'                                                                                                          => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; SGH-i677)'                                                                                                                => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; SGH-i917)'                                                                                                                => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; SGH-i917.)'                                                                                                               => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; SGH-i917R)'                                                                                                               => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; SGH-i937)'                                                                                                                => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; SMG-917R)'                                                                                                                => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG_blocked_blocked_blocked; OMNIA7; Orange)'                                                                                  => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG_blocked_blocked_blocked_blocked; OMNIA7; Orange)'                                                                          => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SUMSUNG; OMNIA 7)'                                                                                                                 => array('isMobile' => true, 'isTablet' => false),
-
-        ),
-
-    'simvalley' => array(
-
-        'Mozilla/5.0 (Linux; U; Android 2.3.4; de-de; SP-80 Build/GRJ22) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false),
-
-        ),
-
-    'Sony' => array(
-        'SonyEricssonK800i/R1AA Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1'                                                                                   => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 2.1-update1; es-ar; SonyEricssonE15a Build/2.0.1.A.0.47) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17'       => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 2.1-update1; pt-br; SonyEricssonU20a Build/2.1.1.A.0.6) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17'        => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 2.3.3; en-au; SonyEricssonX10i Build/3.0.1.G.0.75) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'               => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 2.3.4; ru-ru; SonyEricssonST18i Build/4.0.2.A.0.62) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'              => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 2.3.4; hr-hr; SonyEricssonST15i Build/4.0.2.A.0.62) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'              => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 2.3.4; sk-sk; SonyEricssonLT15i Build/4.0.2.A.0.62) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'              => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 2.3.7; th-th; SonyEricssonST27i Build/6.0.B.3.184) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'               => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 2.3.7; de-de; SonyEricssonST25i Build/6.0.B.3.184) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'               => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 4.0.3; pt-br; Xperia Tablet S Build/TID0092) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                          => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.0.3', 'Build' => 'TID0092', 'Webkit' => '534.30', 'Safari' => '4.0') ),
-        'Mozilla/5.0 (Linux; Android 4.0.3; LT18i Build/4.1.A.0.562) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19'                          => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; Android 4.0.3; Sony Tablet S Build/TISU0R0110) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166  Safari/535.19'                         => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 4.0.3; es-es; Sony Tablet S Build/TISU0143) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                           => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 4.0.4; en-gb; SonyEricssonLT18i Build/4.1.B.0.587) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'             => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 4.0.4; fr-ch; SonyEricssonSK17i Build/4.1.B.0.587) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'             => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; SonyEricssonLT26i Build/6.1.A.2.45) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'              => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; Android 4.0.4; LT22i Build/6.1.B.0.544) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19'                          => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 4.0.4; vi-vn; SonyEricssonLT22i Build/6.1.B.0.544) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'             => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; Android 4.0.4; ST23i Build/11.0.A.5.5) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19'                           => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; Android 4.0.4; ST23i Build/11.0.A.2.10) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19'                          => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; Android 4.0.4; LT28h Build/6.1.E.3.7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.94 Mobile Safari/537.36'                             => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 4.1.1; en-us; SGPT13 Build/TJDS0170) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                                  => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 4.1.2; ja-jp; SonySO-03E Build/10.1.E.0.265) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                          => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.1.2', 'Build' => '10.1.E.0.265', 'Webkit' => '534.30', 'Safari' => '4.0') ),
-        'Mozilla/5.0 (Linux; Android 4.1.2; LT26w Build/6.2.B.1.96) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.72 Mobile Safari/537.36'                            => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; Android 4.2.2; SGP321 Build/10.3.1.A.0.33) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.58 Safari/537.31'                               => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.2.2', 'Build' => '10.3.1.A.0.33', 'Webkit' => '537.31', 'Chrome' => '26.0.1410.58') ),
-
-        'Mozilla/5.0 (Linux; U; Android 4.3; zh-cn; XL39h Build/14.2.A.1.136) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                                   => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 4.1.2; sv-se; C5503 Build/10.1.1.A.1.273) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                        => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 4.1.2; en-us; C5502 Build/10.1.1.A.1.310) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                        => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 4.2.2; zh-cn; SonyL39t Build/14.1.M.0.202) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                       => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 4.2.2; zh-cn; L39u Build/14.1.n.0.63) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                            => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 4.1.2; zh-tw; M35c Build/12.0.B.5.37) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                            => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; Android 4.1.2; M35c Build/12.0.B.2.42) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.90 Mobile Safari/537.36'                              => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 4.1.2; zh-CN; M35t Build/12.0.C.2.42) AppleWebKit/534.31 (KHTML, like Gecko) UCBrowser/9.3.2.349 U3/0.8.0 Mobile Safari/534.31'           => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; Android 4.4.2; D6502 Build/17.1.A.2.69) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36'                     => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; Android 4.4.2; D6503 Build/17.1.A.0.504) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Mobile Safari/537.36'                            => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; Android 4.4.2; D6543 Build/17.1.A.2.55) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Mobile Safari/537.36'                            => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; Android 4.3; D2004 Build/20.0.A.0.29) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.94 Mobile Safari/537.36'                               => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 4.3; en-gb; D2005 Build/20.0.A.1.12) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                             => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; Android 4.3; D2104 Build/20.0.B.0.84) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Mobile Safari/537.36'                              => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; Android 4.3; D2105 Build/20.0.B.0.74) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.170 Mobile Safari/537.36'                              => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 4.3; pt-br; D2114 Build/20.0.B.0.85) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                             => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; Android 4.3; D2302 Build/18.0.B.1.23) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.138 Mobile Safari/537.36'                              => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 4.3; zh-cn; S50h Build/18.0.b.1.23) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 UCBrowser/9.6.3.413 U3/0.8.0 Mobile Safari/533.1'   => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; Android 4.3; D2303 Build/18.0.C.1.13) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.138 Mobile Safari/537.36'                              => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; Android 4.3; D2305 Build/18.0.A.1.30) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.138 Mobile Safari/537.36'                              => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; Android 4.3; D2306 Build/18.0.C.1.7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.136 Mobile Safari/537.36'                               => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; Android 4.3; D5303 Build/19.0.1.A.0.207) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Mobile Safari/537.36'                           => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; Android 4.4.2; D5306 Build/19.1.A.0.264) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.136 Mobile Safari/537.36'                           => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 4.3; zh-CN; XM50h Build/19.0.D.0.269) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 UCBrowser/9.7.6.428 U3/0.8.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 4.3; zh-cn; XM50t Build/19.0.C.2.59) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                                    => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; Android 4.3; D5322 Build/19.0.D.0.253) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.131'                                                  => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 4.3; zh-cn; M51w Build/14.2.A.1.146) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/537.36'                             => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; Android 4.3; M51w Build/14.2.A.1.146) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.136 Mobile Safari/537.36'                              => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; Android 4.4.1; D5102 Build/18.2.A.0.9) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Mobile Safari/537.36'                              => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; Android 4.4.1; D5103 Build/18.1.A.0.11) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.92 Mobile Safari/537.36'                             => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; Android 4.4.1; D5106 Build/18.1.A.0.11) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Mobile Safari/537.36'                             => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 4.3; en-gb; C6902 Build/14.2.A.1.136) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 GSA/3.2.17.1009776.arm'     => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 4.2.2; es-es; C6943 Build/14.1.G.2.257) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                          => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; Android 4.4.2; C6943 Build/14.3.A.0.681) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Mobile Safari/537.36'                            => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; Android 4.2.2; SGP412 Build/14.1.B.3.320) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Mobile Safari/537.36'                          => array('isMobile' => true, 'isTablet' => false),
-
-        'Mozilla/5.0 (Linux; U; Android 4.1; en-us; SonySGP321 Build/10.2.C.0.143) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; Android 4.1.2; SGP351 Build/10.1.1.A.1.307) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19'  => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; Android 4.3; SGP341 Build/10.4.B.0.569) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Safari/537.36'       => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; Android 4.4.2; SGP511 Build/17.1.A.2.36) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.122 Safari/537.36'     => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; Android 4.4.2; SGP512 Build/17.1.A.2.36) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.122 Safari/537.36'     => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 4.1.2; fr-ch; SGP311 Build/10.1.C.0.344) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'   => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 4.1.2; en-us; SGP312 Build/10.1.C.0.344) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'   => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 4.4.2; de-de; SGP521 Build/17.1.A.2.69) AppleWebKit/537.16 (KHTML, like Gecko) Version/4.0 Safari/537.16'    => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 4.4.2; zh-cn; SGP541 Build/17.1.A.2.36) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'    => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; Android 4.4.2; SGP551 Build/17.1.A.2.72) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Safari/537.36'     => array('isMobile' => true, 'isTablet' => true),
-
-        'SonyEricssonU5i/R2CA; Mozilla/5.0 (SymbianOS/9.4; U; Series60/5.0 Profile/MIDP-2.1 Configuration/CLDC-1.1) AppleWebKit/525 (KHTML, like Gecko) Version/3.0 Safari/525' => array('isMobile' => true, 'isTablet' => false),
-        'SonyEricssonU5i/R2AA; Mozilla/5.0 (SymbianOS/9.4; U; Series60/5.0 Profile/MIDP-2.1 Configuration/CLDC-1.1) AppleWebKit/525 (KHTML, like Gecko) Version/3.0 Safari/525' => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/4.0 (PDA; PalmOS/sony/model prmr/Revision:1.1.54 (en)) NetFront/3.0'                                                                                           => array('isMobile' => true, 'isTablet' => false),
-        'Opera/9.80 (Linux mips; U; InettvBrowser/2.2 (00014A;SonyDTV115;0002;0100) KDL40EX720; CC/BEL; en) Presto/2.7.61 Version/11.00'                                        => array('isMobile' => false, 'isTablet' => false),
-        'Opera/9.80 (Linux armv7l; HbbTV/1.1.1 (; Sony; KDL32W650A; PKG3.211EUA; 2013;); ) Presto/2.12.362 Version/12.11'                                                       => array('isMobile' => false, 'isTablet' => false),
-        ),
-
-    'Skk' => array('Mozilla/5.0 (Linux; U; Android 4.1; en-us; CYCLOPS Build/F10) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true)),
-
-    'Storex' => array(
-        'Mozilla/5.0 (Linux; Android 4.1.1; eZee_Tab903 Build/JRO03H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Safari/537.36' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.1.1', 'Build' => 'JRO03H', 'Webkit' => '537.36')),
-        "Mozilla/5.0 (Linux; Android 4.1.1; eZee'Tab785 Build/JRO03C) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.59 Safari/537.36" => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.1.1', 'Build' => 'JRO03C', 'Webkit' => '537.36')),
-        "Mozilla/5.0 (Linux; Android 4.0.3; eZee'Tab971 Build/IML74K) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166  Safari/535.19" => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.0.3', 'Build' => 'IML74K', 'Webkit' => '535.19')),
-        ),
-
-    'Tecno' => array('Mozilla/5.0 (Linux; U; Android 4.2.2; en-us; TECNO P9 Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true)),
-
-    'Telstra' => array(
-        'Mozilla/5.0 (Linux; U; Android 2.3.7; en-au; T-Hub2 Build/TVA301TELBG3) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => true),
-        ),
-
-    // @info: http://www.texet.ru/tablet/
-    'texet' => array(
-
-        'Mozilla/5.0 (Linux; U; Android 2.3.4; ru-ru; TM-7021 Build/GB.m1ref.20120116) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '2.3.4', 'Webkit' => '533.1', 'Safari' => '4.0'), 'model' => 'TM-7021' ),
-
-        ),
-
-    'Tolino' => array(
-        'Mozilla/5.0 (Linux; U; Android 4.2.2; de-de; tolino tab 7 Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.2.2', 'Build' => 'JDQ39', 'Webkit' => '534.30', 'Safari' => '4.0')),
-            'Mozilla/5.0 (Linux; U; Android 4.2.2; de-de; tolino tab 8.9 Build/JDQ39) AppleWebKit/534.30 (KHTML like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.2.2', 'Build' => 'JDQ39', 'Webkit' => '534.30', 'Safari' => '4.0')),
-            'Mozilla/5.0 (Linux; Android 4.2.2; tolino tab 7 Build/JDQ39) AppleWebkit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36 OPR/18.0.1290.67495' => array('isMobile' => true, 'isTablet' => true),
-            'Mozilla/5.0 (Linux; U; Android 4.2.2; de-de; tolino tab 7 Build/JDQ39) AppleWebkit/537.36 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
-        ),
-
-    'Toshiba' => array(
-        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; TOSHIBA; TSUNAGI)' => array('isMobile' => true, 'isTablet' => false),
-        // @ref: http://www.toshiba.co.uk/discontinued-products/folio-100/
-        'Mozilla/5.0 (Linux; U; Android 2.2; it-it; TOSHIBA_FOLIO_AND_A Build/TOSHIBA_FOLIO_AND_A) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '2.2', 'Webkit' => '533.1', 'Safari' => '4.0') ),
-        ),
-
-    'Trekstor' => array(
-        'Mozilla/5.0 (Linux; Android 4.2.2; ST70408-1 Build/JDQ39) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.58 Safari/537.31' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.2.2', 'Build' => 'JDQ39', 'Webkit' => '537.31', 'Chrome' => '26.0.1410.58')),
-        'Mozilla/5.0 (Linux; Android 4.2.2; VT10416-2 Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.141 Safari/537.36' => array(
-            'isMobile' => true, 'isTablet' => true
-        ),
-        'Mozilla/5.0 (Linux; U; Android 4.1.1; de-de; ST10216-2A Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30;SurfTab_10.1' => array(
-            'isMobile' => true, 'isTablet' => true
-        ),
-        ),
-
-    'Visture' => array(
-
-        'Mozilla/5.0 (Linux; U; Android 4.2.2; en-gb; V97 HD Build/LR-97JC) Apple WebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'             =>  array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 4.1.1; en-us; Visture V4 Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'           => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 4.1.1; ru-ru; Visture V4 HD Build/Visture V4 HD) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 4.1.1; es-es; Visture V5 HD Build/Visture V5 HD) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 4.1.1; ru-ru; Visture V10 Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'          => array('isMobile' => true, 'isTablet' => true),
-        ),
-
-    'Versus' => array(
-        'Mozilla/5.0 (Linux; Android 4.0.4; VS-TOUCHPAD 9 Build/IMM76D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19'                                                                                                                 => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 4.0.4; en-gb; Versus Touchpad 9.7 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                                                                                                                 => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 4.0.3; en-gb; CnM-TOUCHPAD7 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30 BMID/E67A45B1AB'                                                                                                       => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 4.1.1; en-gb; CnM TouchPad 7DC Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30 TwonkyBeamBrowser/3.3.5-95 (Android 4.1.1; rockchip CnM TouchPad 7DC Build/meizhi_V2.80.wifi8723.20121225.b11c800)' => array('isMobile' => true, 'isTablet' => true),
-        'OneBrowser/3.5/Mozilla/5.0 (Linux; U; Android 4.0.4; en-gb; TOUCHPAD 7 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                                                                                                    => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 4.1.1; en-gb; TOUCHTAB Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                                                                                                                            => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.1.1', 'Build' => 'JRO03H', 'Webkit' => '534.30', 'Safari' => '4.0') ),
-        ),
-
-    'Viewsonic' => array(
-        'Mozilla/5.0 (Linux; U; Android 4.0.3; de-de; ViewPad 10e Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 2.2; it-it; ViewPad7 Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' =>array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 2.2.1; en-ca; ViewSonic VB733 Build/FRG83) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 3.2; en-gb; ViewPad7X Build/HTJ85B) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Safari/533.1' => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 2.2; pt-br; ViewPad 10S Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 4.1.1; en-us; VB100a Pro Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
-    ),
-
-    'Vodafone' => array(
-        'Mozilla/5.0 (Linux; U; Android 3.2; hu-hu; SmartTab10-MSM8260-V02d-Dec022011-Vodafone-HU) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0' => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; Android 4.0.3; SmartTabII10 Build/IML74K) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166  Safari/535.19'     => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 4.1.1; fr-fr; SmartTAB 1002 Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'    => array('isMobile' => true, 'isTablet' => true),
-        ),
-
-    'Vonino' => array(
-        'Mozilla/5.0 (Linux; U; Android 4.2.2; en-us; Sirius_Evo_QS Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 4.1.1; en-gb; Q8 Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
-
-        ),
-
-    'Xoro' => array(
-        'Mozilla/5.0 (Linux; U; Android 4.2.2; de-de; PAD 9720QR Build/PAD 9719QR) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; Android 4.2.2; PAD720 Build/JDQ39) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19' => array('isMobile' => true, 'isTablet' => true)
-    ),
-
-    'ZTE' => array(
-            'Mozilla/5.0 (Linux; U; Android 4.2.1;zh-cn; ZTE V987 Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30;' => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (Linux; U; Android 2.3.5; pt-pt; Blade Build/tejosunhsine) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; ZTE; N880e_Dawoer_Fulllock; China Telecom)'               => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; ZTE; V965W)'                                              => array('isMobile' => true, 'isTablet' => false),
-            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; ZTE; Windows Phone - Internet 7; SFR)'                    => array('isMobile' => true, 'isTablet' => false),
-        ),
-
-    'Zync' => array(
-            'Mozilla/5.0 (Linux; U; Android 2.3.3; en-us ; Z909 Build/GRI40) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1/UCBrowser/8.4.1.204/145/444' => array('isMobile' => true, 'isTablet' => true),
-        ),
-
-    'Console' => array(
-
-        //Nintendo Wii:
-        'Mozilla/5.0 (Nintendo WiiU) AppleWebKit/534.52 (KHTML, like Gecko) NX/{Version No} NintendoBrowser/{Version No}.US' => array('isMobile' => false, 'isTablet' => false),
-
-        //Sony PlayStation:
-        'Mozilla/5.0 (PLAYSTATION 3 4.21) AppleWebKit/531.22.8 (KHTML, like Gecko)' => array('isMobile' => false, 'isTablet' => false),
-
-        //Microsoft Xbox:
-        'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; Xbox)' => array('isMobile' => false, 'isTablet' => false),
-        // WTF? Must investigate.
-        //'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; Xbox)' => array('isMobile' => false, 'isTablet' => false),
-
-        ),
-
-    'Other' => array(
-        'Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/32.0.1700.102 Chrome/32.0.1700.102 Safari/537.36'                                                     => array('isMobile' => false, 'isTablet' => false),
-        'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Firefox/24.0'                                                                                                                  => array('isMobile' => false, 'isTablet' => false),
-        'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0 AlexaToolbar/psPCtGhf-2.2'                                                                                        => array('isMobile' => false, 'isTablet' => false),
-        'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:22.0) Gecko/20100101 Firefox/22.0'                                                                                                              => array('isMobile' => false, 'isTablet' => false),
-        'Mozilla/5.0 (X11; Linux ppc; rv:17.0) Gecko/20130626 Firefox/17.0 Iceweasel/17.0.7'                                                                                                        => array('isMobile' => false, 'isTablet' => false),
-        'Mozilla/5.0 (X11; Linux) AppleWebKit/535.22+ Midori/0.4'                                                                                                                                   => array('isMobile' => false, 'isTablet' => false),
-        'Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-us) AppleWebKit/535+ (KHTML, like Gecko) Version/5.0 Safari/535.20+ Midori/0.4'                                                              => array('isMobile' => false, 'isTablet' => false),
-        'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.20 Safari/537.36  OPR/15.0.1147.18 (Edition Next)'                                             => array('isMobile' => false, 'isTablet' => false),
-        'Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.94 Safari/537.36'                                                                                     => array('isMobile' => false, 'isTablet' => false),
-        'Mozilla/5.0 (Windows NT 5.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.94 Safari/537.36'                                                                              => array('isMobile' => false, 'isTablet' => false),
-        'Mozilla/5.0 (Windows NT 5.2; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0'                                                                                                                  => array('isMobile' => false, 'isTablet' => false),
-        'Opera/9.80 (Windows NT 5.2; WOW64) Presto/2.12.388 Version/12.14'                                                                                                                          => array('isMobile' => false, 'isTablet' => false),
-        'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0'                                                                                                                  => array('isMobile' => false, 'isTablet' => false),
-        'Mozilla/5.0 (X11; FreeBSD amd64; rv:14.0) Gecko/20100101 Firefox/14.0.1'                                                                                                                   => array('isMobile' => false, 'isTablet' => false),
-        'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.2; Win64; x64; Trident/6.0; Touch; .NET4.0E; .NET4.0C; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 2.0.50727; Tablet PC 2.0; MASMJS)' => array('isMobile' => false, 'isTablet' => false),
-        'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0; MANMJS)'                                                                                                           => array('isMobile' => false, 'isTablet' => false),
-        'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Win64; x64; Trident/6.0; MASMJS)'                                                                                                      => array('isMobile' => false, 'isTablet' => false),
-        'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0; Touch; MASMJS)'                                                                                                    => array('isMobile' => false, 'isTablet' => false),
-        'Opera/9.80 (Windows NT 6.2; WOW64; MRA 8.0 (build 5784)) Presto/2.12.388 Version/12.11'                                                                                                    => array('isMobile' => false, 'isTablet' => false),
-        // IE 10
-        'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)'                                                                                                                   => array('isMobile' => false, 'isTablet' => false),
-        // IE 11 @todo: Trident(.*)rv.(\d+)\.(\d+)
-        'Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv 11.0) like Gecko'                                                                                                                             => array('isMobile' => false, 'isTablet' => false),
-        'Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; Touch; rv:11.0) like Gecko'                                                                                                               => array('isMobile' => false, 'isTablet' => false),
-
-        // TV
-        'Mozilla/5.0 (Unknown; Linux armv7l) AppleWebKit/537.1+ (KHTML, like Gecko) Safari/537.1+ HbbTV/1.1.1 ( ;LGE ;NetCast 4.0 ;03.20.30 ;1.0M ;)'                                               => array('isMobile' => false, 'isTablet' => false),
-        'HbbTV/1.1.1 (;Panasonic;VIERA 2012;1.261;0071-3103 2000-0000;)'                                                                                                                            => array('isMobile' => false, 'isTablet' => false),
-        'Opera/9.80 (Linux armv7l; HbbTV/1.1.1 (; Sony; KDL32W650A; PKG3.211EUA; 2013;); ) Presto/2.12.362 Version/12.11'                                                                           => array('isMobile' => false, 'isTablet' => false),
-        ),
-
-    'Generic' => array(
-
-        'Mozilla/5.0 (Linux; Android 4.0.3; ALUMIUM10 Build/IML74K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Safari/537.36' => array('isMobile' => true, 'isTablet' => true),
-        'Mozilla/5.0 (Linux; U; Android 4.2.1; en-us; JY-G3 Build/JOP40D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 4.1.1; hu-hu; M758A Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
-
-        'Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; EVOTAB Build/IMM76I) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
-        'Java/1.6.0_22' => array('isMobile' => false, 'isTablet' => false, 'version' => array('Java' => '1.6.0_22') ),
-        'Opera/9.80 (Series 60; Opera Mini/6.5.29260/29.3417; U; ru) Presto/2.8.119 Version/11.10' => array('isMobile' => true, 'isTablet' => false),
-        'Opera/9.80 (Android; Opera Mini/6.5.27452/29.3417; U; ru) Presto/2.8.119 Version/11.10'  => array('isMobile' => true, 'isTablet' => false),
-        // New Opera
-        'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.60 Safari/537.17 OPR/14.0.1025.52315' => array('isMobile' => false, 'isTablet' => false),
-        // Unknown yet
-        // Looks like Chromebook
-        'Mozilla/5.0 (X11; CrOS armv7l 4920.83.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.103 Safari/537.36',
-        'Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_2 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8H7 Safari/6533.18.5',
-        'Mozilla/5.0 (Linux; U; Android 4.1.2; fr-fr; GT-I9070 Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30',
-        'Opera/9.80 (Android 2.3.7; Linux; Opera Mobi/46154) Presto/2.11.355 Version/12.10',
-        'Mozilla/5.0 (Linux; U; Android 4.0.3; it-it; DATAM819HD_C Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30',
-        'Mozilla/5.0 (Linux; U; Android 4.0.3; nl-nl; SGPT12 Build/TID0142) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30',
-        'Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; cm_tenderloin Build/IMM76L; CyanogenMod-9) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30',
-
-        'Mozilla/5.0 (Linux; U; Android 4.1.1; fr-fr; A210 Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30', // Acer Iconia Tab
-        'Mozilla/5.0 (iPad; CPU OS 6_1 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10B141 Safari/8536.25',
-        'Mozilla/5.0 (Linux; U; Android 2.3.6; en-gb; GT-I8150 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1',
-        'Mozilla/5.0 (iPad; CPU OS 6_0_1 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Mercury/7.2 Mobile/10A523 Safari/8536.25', // Mercurio Browser
-        'Opera/9.80 (Android 2.3.7; Linux; Opera Tablet/46154) Presto/2.11.355 Version/12.10',
-        'Mozilla/5.0 (Linux; U; Android 4.1.2; en-us; sdk Build/MASTER) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30', // sdk
-        'Mozilla/5.0 (Linux; U; Android 4.2; en-us; sdk Build/JB_MR1) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30', // sdk
-        'Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; GT-P7510 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30',
-        'Opera/9.80 (X11; Linux zbov) Presto/2.11.355 Version/12.10',
-        'Mozilla/5.0 (Linux; U; Android 4.0.4; en-gb; TOUCHPAD 7 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30', // 7" Verso Android tablet
-        'Mozilla/5.0 (iPhone; U; CPU OS 4_2_1 like Mac OS X) AppleWebKit/532.9 (KHTML, like Gecko) Version/5.0.3 Mobile/8B5097d Safari/6531.22.7',
-        'Mozilla/5.0 (Linux; U; Android 4.0.3; en-gb; SGPT12 Build/TID0142) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30', // sony xperia tablet s unforts
-        'Mozilla/5.0 (Nintendo 3DS; U; ; en) Version/1.7498.US',
-        'Mozilla/5.0 (Linux; U; Android 2.0.6_b1; ru-ru Build/ECLAIR) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17', // PocketBook IQ701 (tablet)
-        'Mozilla/5.0 (Linux; Android 4.0.4; z1000 Build/IMM76D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166  Safari/535.19', // It is a tablet with calling
-        'Mozilla/5.0 (Linux; Android 4.0.3; cm_tenderloin Build/GWK74) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166  Safari/535.19', // HP touch pad running android cyanogenmod
-        'Mozilla/5.0 (Linux; U; Android 2.3.3; en-us; Android for Techvision TV1T808 Board Build/GRI40) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1', // My device is tablet but its detected as phone
-        'BlackBerry8520/5.0.0.592 Profile/MIDP-2.1 Configuration/CLDC-1.1 VendorID/136',
-        'Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17', // its a lenovo tablet 2 with windows 8 pro
-        'Mozilla/5.0 (Linux; U; Android 3.1; ru-ru; LG-V900 Build/HMJ37) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13',
-        'Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; HTC; Windows Phone 8S by HTC)',
-        'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; ARM; Trident/6.0; Touch)', // MS Surface RT tablet actually!
-        'Mozilla/5.0 (PLAYSTATION 3 4.11) AppleWebKit/531.22.8 (KHTML, like Gecko)',
-        'Mozilla/5.0 (Linux; U; Android 3.2; ru-ru; V9S_V1.4) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13', // Wrong detection - 7-inch tablet was detected as a phone. Android 3.2.1, native browser
-        'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; ARM; Trident/6.0; Touch)', // Nope, its a Microsoft Surface tablet	 running Windows RT (8) with MSIE 10
-        'Mozilla/5.0 (Linux; U; Android 2.2; es-es; Broncho N701 Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1', // Tablet!
-        'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; ARM; Trident/6.0; Touch)', // its a Microsoft surface rt (tablet)
-        'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; ARM; Trident/6.0; Touch; WebView/1.0)',
-        'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; Next7P12 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30', // Nextbook 7SE Tablet
-        'Opera/9.80 (X11; Linux zbov) Presto/2.11.355 Version/12.10', // allview alldro speed tablet, android ics, opera mobile
-        'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; ARM; Trident/6.0; Touch)', // Its a surface in portrait
-        'Mozilla/5.0 (Linux; U; Android 2.3.6; es-es; SAMSUNG GT-S5830/S5830BUKT2 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1',
-        'Mozilla/5.0 (Linux; U; Android 3.2.1; en-gb;HTC_Flyer_P512 Build/HTK75C) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13',
-        // Am ramas la pozitia: 207
-
-        // Android on Windows :) www.socketeq.com
-        'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; full Android on Microsoft Windows, pad, pc, n*books Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30',
-
-        // TV
-        'Opera/9.80 (Linux mips; U; InettvBrowser/2.2 (00014A;SonyDTV115;0002;0100) KDL40EX720; CC/BEL; en) Presto/2.7.61 Version/11.00',
-
-        'Mozilla/5.0 (Android; Mobile; rv:18.0) Gecko/18.0 Firefox/18.0',
-        // Maxthon
-        'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.12 (KHTML, like Gecko) Maxthon/3.0 Chrome/18.0.966.0 Safari/535.12',
-        'Opera/9.80 (Windows NT 5.1; U; Edition Yx; ru) Presto/2.10.289 Version/12.02',
-        'Mozilla/5.0 (Linux; U; Android 4.2; en-us; sdk Build/JB_MR1) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30',
-        'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Windows Phone 6.5.3.5)',
-        'PalmCentro/v0001 Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; PalmSource/Palm-D061; Blazer/4.5) 16;320x320',
-        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0)',
-        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; Microsoft; XDeviceEmulator)',
-        // @todo: research N880E
-        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; MAL; N880E; China Telecom)',
-        'Opera/9.80 (Series 60; Opera Mini/7.0.29482/28.2859; U; ru) Presto/2.8.119 Version/11.10',
-        'Opera/9.80 (S60; SymbOS; Opera Mobi/SYB-1202242143; U; en-GB) Presto/2.10.254 Version/12.00',
-        'Mozilla/5.0 (Linux; U; Android 4.0.3; en-au; 97D Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30',
-        'Opera/9.80 (Android; Opera Mini/7.0.29952/28.2647; U; ru) Presto/2.8.119 Version/11.10',
-        'Opera/9.80 (Android; Opera Mini/6.1.25375/28.2555; U; en) Presto/2.8.119 Version/11.10',
-        'Opera/9.80 (Mac OS X; Opera Tablet/35779; U; en) Presto/2.10.254 Version/12.00',
-        'Mozilla/5.0 (Android; Tablet; rv:10.0.4) Gecko/10.0.4 Firefox/10.0.4 Fennec/10.0.4',
-        'Mozilla/5.0 (Android; Tablet; rv:18.0) Gecko/18.0 Firefox/18.0',
-        'Opera/9.80 (Linux armv7l; Maemo; Opera Mobi/14; U; en) Presto/2.9.201 Version/11.50',
-        'Opera/9.80 (Android 2.2.1; Linux; Opera Mobi/ADR-1207201819; U; en) Presto/2.10.254 Version/12.00' => array('isMobile' => true, 'isTablet' => false),
-        'Mozilla/5.0 (Linux; U; Android 4.1.1; en-us; sdk Build/JRO03E) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30',
-        'Mozilla/5.0 (Linux; U; Android 4.2.2; de-de; Endeavour 1010 Build/ONDA_MID) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),     // Blaupunkt Endeavour 1010
-        'Mozilla/5.0 (Linux; U; Android 4.0.4; de-de; Tablet-PC-4 Build/ICS.g08refem618.20121102) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
-        ),
-
-    'Bot' => array(
-        'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)' => array('isMobile' => false, 'isTablet' => false, /*'isBot' => true*/),
-        'grub-client-1.5.3; (grub-client-1.5.3; Crawl your own stuff with http://grub.org)' => array('isMobile' => false, 'isTablet' => false, /*'isBot' => true*/),
-        'Googlebot-Image/1.0' => array('isMobile' => false, 'isTablet' => false, /*'isBot' => true*/),
-        'Python-urllib/2.5' => array('isMobile' => false, 'isTablet' => false, /*'isBot' => true*/),
-        'facebookexternalhit/1.0 (+http://www.facebook.com/externalhit_uatext.php)' => array('isMobile' => false, 'isTablet' => false, /*'isBot' => true*/)
-        ),
-
-);
+// Setup.
+$includeBasePath = dirname(__FILE__) . '/providers/vendors';
+$list = array();
+
+// Scan.
+$dir = new DirectoryIterator($includeBasePath);
+foreach ($dir as $fileInfo) {
+    if ($fileInfo->isDot()) {
+        continue;
+    }
+    $listNew = include $includeBasePath . '/' . $fileInfo->getFilename();
+    if (is_array($listNew)) {
+        $list = array_merge($list, $listNew);
+    }
+}
+
+return $list;
diff --git a/htdocs/includes/mobiledetect/mobiledetectlib/tests/UserAgentTest.php b/htdocs/includes/mobiledetect/mobiledetectlib/tests/UserAgentTest.php
index 77cbc753858..6aca913ae66 100644
--- a/htdocs/includes/mobiledetect/mobiledetectlib/tests/UserAgentTest.php
+++ b/htdocs/includes/mobiledetect/mobiledetectlib/tests/UserAgentTest.php
@@ -1,37 +1,19 @@
 <?php
 /**
- * MIT License
- * ===========
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sublicense, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
- * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- *
- * @author      Serban Ghita <serbanghita@gmail.com>
  * @license     MIT License https://github.com/serbanghita/Mobile-Detect/blob/master/LICENSE.txt
  * @link        http://mobiledetect.net
  */
 class UserAgentTest extends PHPUnit_Framework_TestCase
 {
+    protected $detect;
     protected static $ualist = array();
     protected static $json;
 
+    public function setUp()
+    {
+        $this->detect = new Mobile_Detect;
+    }
+
     public static function generateJson()
     {
         //in case this gets run multiple times
@@ -43,6 +25,9 @@ class UserAgentTest extends PHPUnit_Framework_TestCase
         $jsonFile = dirname(__FILE__) . '/ualist.json';
         $phpFile = dirname(__FILE__) . '/UA_List.inc.php';
 
+        //currently stored as a PHP array
+        $list = include $phpFile;
+
         //check recency of the file
         if (file_exists($jsonFile) && is_readable($jsonFile)) {
             //read the json file
@@ -51,7 +36,7 @@ class UserAgentTest extends PHPUnit_Framework_TestCase
             //check that the hash matches
             $hash = isset($json['hash']) ? $json['hash'] : null;
 
-            if ($hash == sha1_file($phpFile)) {
+            if ($hash == sha1(serialize($list))) {
                 //file is up to date, just read the json file
                 self::$json = $json['user_agents'];
 
@@ -59,6 +44,7 @@ class UserAgentTest extends PHPUnit_Framework_TestCase
             }
         }
 
+
         //uses the UA_List.inc.php to generate a json file
         if (file_exists($jsonFile) && !is_writable($jsonFile)) {
             throw new RuntimeException("Need to be able to create/update $jsonFile from UA_List.inc.php.");
@@ -68,8 +54,9 @@ class UserAgentTest extends PHPUnit_Framework_TestCase
             throw new RuntimeException("Insufficient permissions to create this file: $jsonFile");
         }
 
-        //currently stored as a PHP array
-        $list = include $phpFile;
+
+
+        //print_r($list['Acer']); exit;
 
         $json = array();
 
@@ -107,7 +94,7 @@ class UserAgentTest extends PHPUnit_Framework_TestCase
         }
 
         //save the hash
-        $hash = sha1_file($phpFile);
+        $hash = sha1(serialize($list));
         $json = array(
             'hash' => $hash,
             'user_agents' => $json
@@ -149,8 +136,9 @@ class UserAgentTest extends PHPUnit_Framework_TestCase
 
     public function userAgentData()
     {
-        if (!count(self::$ualist))
+        if (!count(self::$ualist)) {
             self::setUpBeforeClass();
+        }
 
         return self::$ualist;
     }
@@ -169,25 +157,24 @@ class UserAgentTest extends PHPUnit_Framework_TestCase
         }
 
         //setup
-        $md = new Mobile_Detect;
-        $md->setUserAgent($userAgent);
+        $this->detect->setUserAgent($userAgent);
 
         //is mobile?
-        $this->assertEquals($md->isMobile(), $isMobile);
+        $this->assertEquals($this->detect->isMobile(), $isMobile);
 
         //is tablet?
-        $this->assertEquals($md->isTablet(), $isTablet);
+        $this->assertEquals($this->detect->isTablet(), $isTablet, 'FAILED: ' . $userAgent . ' isTablet: ' . $isTablet);
 
         if (isset($version)) {
             foreach ($version as $condition => $assertion) {
-                $this->assertEquals($assertion, $md->version($condition), 'FAILED UA (version("'.$condition.'")): '.$userAgent);
+                $this->assertEquals($assertion, $this->detect->version($condition), 'FAILED UA (version("'.$condition.'")): '.$userAgent);
             }
         }
 
         //version property tests
         if (isset($version)) {
             foreach ($version as $property => $stringVersion) {
-                $v = $md->version($property);
+                $v = $this->detect->version($property);
                 $this->assertSame($stringVersion, $v);
             }
         }
@@ -196,7 +183,7 @@ class UserAgentTest extends PHPUnit_Framework_TestCase
         //@todo: vendor test. The below is theoretical, but fails 50% of the tests...
         /*if (isset($vendor)) {
             $method = "is$vendor";
-            $this->assertTrue($md->{$method}(), "Expected Mobile_Detect::{$method}() to be true.");
+            $this->assertTrue($this->detect->{$method}(), "Expected Mobile_Detect::{$method}() to be true.");
         }*/
     }
 }
diff --git a/htdocs/includes/mobiledetect/mobiledetectlib/tests/VendorsTest.php b/htdocs/includes/mobiledetect/mobiledetectlib/tests/VendorsTest_tmp.php
similarity index 60%
rename from htdocs/includes/mobiledetect/mobiledetectlib/tests/VendorsTest.php
rename to htdocs/includes/mobiledetect/mobiledetectlib/tests/VendorsTest_tmp.php
index 06724144505..b2d7bf215d8 100644
--- a/htdocs/includes/mobiledetect/mobiledetectlib/tests/VendorsTest.php
+++ b/htdocs/includes/mobiledetect/mobiledetectlib/tests/VendorsTest_tmp.php
@@ -1,29 +1,5 @@
 <?php
 /**
- * MIT License
- * ===========
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sublicense, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
- * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- *
- * @author      Serban Ghita <serbanghita@gmail.com>
  * @license     MIT License https://github.com/serbanghita/Mobile-Detect/blob/master/LICENSE.txt
  * @link        http://mobiledetect.net
  */
@@ -49,21 +25,21 @@ class VendorsTest extends PHPUnit_Framework_TestCase
     public function testisMobileIsTablet()
     {
         foreach (self::$items as $brand => $deviceArr) {
-
             foreach ($deviceArr as $userAgent => $conditions) {
-
-                if (!is_array($conditions)) { continue; }
+                if (!is_array($conditions)) {
+                    continue;
+                }
 
                 $this->detect->setUserAgent($userAgent);
 
                 foreach ($conditions as $condition => $assert) {
-
                     // Currently not supporting version and model here.
                     // @todo: I need to split this tests!
-                    if ( in_array($condition, array('model') ) ) { continue; } // 'version',
+                    if (in_array($condition, array('model'))) {
+                        continue;
+                    } // 'version',
 
                     switch ($condition) {
-
                         case 'version':
                             // Android, iOS, Chrome, Build, etc.
                             foreach ($assert as $assertKey => $assertValue) {
@@ -72,13 +48,11 @@ class VendorsTest extends PHPUnit_Framework_TestCase
                                 //}
                                 $this->assertTrue( $this->detect->$condition( $assertKey ) == $assertValue, 'UA ('.$condition.'('.$assertKey.') === '.$assertValue.'): '.$userAgent);
                             }
-
-                        break;
+                            break;
 
                         default:
-                            $this->assertTrue( $this->detect->$condition() === $assert, 'UA ('.$condition.'): '.$userAgent);
-                        break;
-
+                            $this->assertTrue($this->detect->$condition() === $assert, 'UA ('.$condition.'): '.$userAgent);
+                            break;
                     }
 
                 }
diff --git a/htdocs/includes/mobiledetect/mobiledetectlib/tests/phpunit.xml b/htdocs/includes/mobiledetect/mobiledetectlib/tests/phpunit.xml
index c780cebe223..2b10958d550 100644
--- a/htdocs/includes/mobiledetect/mobiledetectlib/tests/phpunit.xml
+++ b/htdocs/includes/mobiledetect/mobiledetectlib/tests/phpunit.xml
@@ -1,15 +1,15 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <phpunit
 	backupGlobals="false"
-	strict="true"
 	colors="false"
-	verbose="false"
+	verbose="true"
+	stopOnFailure="true"
+	stopOnIncomplete="false"
 	bootstrap="bootstrap.php"
 	convertErrorsToExceptions="true"
 	convertNoticesToExceptions="true"
 	convertWarningsToExceptions="true"
-	mapTestClassNameToCoveredClassName="true"
-	timeoutForSmallTests="2">
+	mapTestClassNameToCoveredClassName="true">
 
 	<php>
 		<ini name="error_reporting" value="-1"/>
@@ -17,9 +17,11 @@
 	</php>
 
   <testsuite name="All Mobile Detect tests">
-    <directory suffix="Test.php">./</directory>
+ 	<directory suffix="Test.php">./</directory>
   </testsuite>
 
-
+	<listeners>
+	    <listener class="JohnKary\PHPUnit\Listener\SpeedTrapListener" />
+	</listeners>
 
 </phpunit>
diff --git a/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Acer.php b/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Acer.php
new file mode 100644
index 00000000000..d8fc582085f
--- /dev/null
+++ b/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Acer.php
@@ -0,0 +1,28 @@
+<?php
+return array(
+    'Acer' => array(
+        'Mozilla/5.0 (Linux; U; Android 3.2.1; en-us; A100 Build/HTK55D) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13'   => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.1; en-us; A110 Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'     => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.0.3; de-de; A200 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'   => array( 'isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.0.3', 'Webkit' => '534.30', 'Safari' => '4.0', 'Build' => 'IML74K'), 'model' => 'A200' ),
+        'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; A500 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'   => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; A501 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'   => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; Android 4.1.1; A701 Build/JRO03H) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166  Safari/535.19'   => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; Android 4.1.2; B1-A71 Build/JZO54K) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166  Safari/535.19' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; Android 4.1.2; B1-710 Build/JZO54K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.72 Safari/537.36'   => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; Android 4.2.2; A1-810 Build/JDQ39) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.58 Safari/537.31'    => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; nl-nl; A1-810 Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'  => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; Acer; Allegro)'                                 => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.2.2; A3-A10 Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Safari/537.36' => array(
+            'isMobile' => true, 'isTablet' => true, 'version' => array(
+                'Android' => '4.2.2', 'Build' => 'JDQ39', 'Webkit' => '537.36', 'Chrome' => '32.0.1700.99',
+            ),
+        ),
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; de-de; A1-811 Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array(
+            'isMobile' => true, 'isTablet' => true,
+        ),
+        'Mozilla/5.0 (Linux; Android 4.2.2; A1-830 Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.141 Safari/537.36' => array(
+            'isMobile' => true, 'isTablet' => true,
+        ),
+        'Mozilla/5.0 (Linux; Android 4.2.2; A3-A11 Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Safari/537.36'=> array('isMobile' => true, 'isTablet' => true)
+    ),
+);
diff --git a/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Alcatel.php b/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Alcatel.php
new file mode 100644
index 00000000000..96a36ac35e0
--- /dev/null
+++ b/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Alcatel.php
@@ -0,0 +1,49 @@
+<?php
+return array(
+    'Alcatel' => array(
+        'Mozilla/5.0 (Linux; U; Android 2.3.7; en-in; MB525 Build/GWK74; CyanogenMod-7.2.0) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                      => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 2.3.5; it-it; ALCATEL ONE TOUCH 918D Build/GRJ90) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                        => array('isMobile' => true, 'isTablet' => false, 'version' => array('Android' => '2.3.5', 'Webkit' => '533.1', 'Safari' => '4.0', 'Build' => 'GRJ90'), 'model' => 'ONE TOUCH 918D' ),
+        'Mozilla/5.0 (Linux; U; Android 2.3.6; ru-ru; ALCATEL ONE TOUCH 991 Build/GRJ90) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                         => array('isMobile' => true, 'isTablet' => false, 'version' => array('Android' => '2.3.6', 'Webkit' => '533.1', 'Safari' => '4.0', 'Build' => 'GRJ90'), 'model' => 'ONE TOUCH 991' ),
+        'Mozilla/5.0 (Linux; U; Android 4.0.4; ru-ru; ALCATEL ONE TOUCH 993D Build/ICECREAM) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                   => array('isMobile' => true, 'isTablet' => false, 'version' => array('Android' => '4.0.4', 'Webkit' => '534.30', 'Safari' => '4.0', 'Build' => 'ICECREAM'), 'model' => 'ONE TOUCH 993D' ),
+        'ALCATEL_A392G/1.0 ObigoInternetBrowser/Q05A[TF013513002719521000000013182904148]'                                                                                              => array('isMobile' => true, 'isTablet' => false, 'model' => 'A392G'),
+        'ALCATEL_3020D/1.0 ObigoInternetBrowser/Q03C'                                                                                                                                   => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.2; ALCATEL ONE TOUCH 5037A Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.141 Mobile Safari/537.36'                        => array('isMobile' => true, 'isTablet' => false),
+        'ALCATEL_3020G/1.0 ObigoInternetBrowser/Q03C'                                                                                                                                   => array('isMobile' => true, 'isTablet' => false),
+        'ALCATEL_3041D/1.0 ObigoInternetBrowser/Q03C'                                                                                                                                   => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; en-us; ALCATEL ONE TOUCH 5037E Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.2 Mobile Safari/534.30'                     => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.2.2; ALCATEL ONE TOUCH 5037X Build/JDQ39) AppleWebKit/537.36 (KHTML like Gecko) Chrome/31.0.1650.59 Mobile Safari/537.36'                        => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; en-us; ALCATEL ONE TOUCH 5037X Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.2 Mobile Safari/534.30'                     => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.2.2; ONE TOUCH 6012A Build/JDQ39) AppleWebKit/537.36 (KHTML like Gecko) Chrome/28.0.1500.94 Mobile Safari/537.36'                                => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; en-nz; ONE TOUCH 6012A Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.2 Mobile Safari/534.30'                             => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.2.2; ONE TOUCH 6012D Build/JDQ39) AppleWebKit/537.36 (KHTML like Gecko) Chrome/35.0.1916.141 Mobile Safari/537.36'                               => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; de-de; ONE TOUCH 6012D Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.2 Mobile Safari/534.30'                             => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; En-us; ONE TOUCH 6012E Build/JDQ39) AppleWebKit/534.30 (KHTML, Like Gecko) Version/4.2 Mobile Safari/534.30'                             => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.2.2; ONE TOUCH 6012X Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.12975 YaBrowser/13.12.1599.12975 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; bg-bg; ONE TOUCH 6012X Build/JDQ39) AppleWebKit/534.30 (KHTML like Gecko) Version/4.2 Mobile Safari/534.30'                              => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.2.2; ALCATEL ONE TOUCH 6012X_orange Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.59 Mobile Safari/537.36'                => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; fr-fr; ALCATEL ONE TOUCH 6012X_orange Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.2 Mobile Safari/534.30'              => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.3; fr-fr; 6016E Build/JLS36C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                                        => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.3; en-us; ALCATEL ONE TOUCH 6016E Build/JLS36C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                      => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.3; 6016X Build/JLS36C) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.141 Mobile Safari/537.36'                                         => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.3; ALCATEL ONE TOUCH 6016X Build/JLS36C) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.122 Mobile Safari/537.36'                       => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.3; ru-ru; 6016X Build/JLS36C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                                        => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.2.2; ALCATEL ONE TOUCH 6032A Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.170 Mobile Safari/537.36'                      => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; ru-ru; ALCATEL ONE TOUCH 6032X Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.2 Mobile Safari/534.30'                     => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; en-nz; ALCATEL ONE TOUCH 7040A Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.2 Mobile Safari/534.30'                     => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; th-th; ALCATEL ONE TOUCH 7040D Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.2 Mobile Safari/534.30'                     => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.2.2; ALCATEL ONE TOUCH 7040D Build/JDQ39) AppleWebKit/537.36 (KHTML like Gecko) Chrome/28.0.1500.94 Mobile Safari/537.36'                        => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.2.2; ALCATEL ONE TOUCH 7040E Build/JDQ39) AppleWebKit/537.36 (KHTML like Gecko) Chrome/28.0.1500.94 Mobile Safari/537.36'                        => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; it-it; ALCATEL ONE TOUCH 7041D Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.2 Mobile Safari/534.30'                     => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.2.2; ALCATEL ONE TOUCH 7041D Build/JDQ39) AppleWebKit/537.36 (KHTML like Gecko) Chrome/31.0.1650.59 Mobile Safari/537.36'                        => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.2.2; ALCATEL ONE TOUCH 7041X Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.138 Mobile Safari/537.36'                      => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; pt-pt; ALCATEL ONE TOUCH 7041X Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.2 Mobile Safari/534.30'                     => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.2.2; ALCATEL ONE TOUCH 8020A Build/JDQ39) AppleWebKit/537.36 (KHTML, Like Gecko) Chrome/30.0.1599.92 Mobile Safari/537.36'                       => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; en-us; ALCATEL ONE TOUCH 8020A Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.2 Mobile Safari/534.30'                     => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.2.2; ALCATEL ONE TOUCH 8020D Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.141 Mobile Safari/537.36'                      => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; es-es; ALCATEL ONE TOUCH 8020D Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.2 Mobile Safari/534.30'                     => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.2.2; ALCATEL ONE TOUCH 8020E Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Mobile Safari/537.36'                       => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; en-us; ALCATEL ONE TOUCH 8020E Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.2 Mobile Safari/534.30'                     => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.2.2; ALCATEL ONE TOUCH 8020X Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.136 Mobile Safari/537.36'                      => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; en-us; ALCATEL ONE TOUCH 8020X Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.2 Mobile Safari/534.30'                     => array('isMobile' => true, 'isTablet' => false),
+        ),
+);
diff --git a/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Allview.php b/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Allview.php
new file mode 100644
index 00000000000..7bbcb5ea25d
--- /dev/null
+++ b/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Allview.php
@@ -0,0 +1,11 @@
+ <?php
+ return array(
+    'Allview' => array(
+
+		'Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; ALLVIEW P5 Build/IML74K) AppleWebKit/534.30 (KHTML like Gecko) Version/4.0 Mobile Safari/534.30'                                 => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (Linux; U; Android 4.0.4; en-us ; ALLVIEW SPEEDI Build/IMM76D) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1/UCBrowser/8.5.3.246/145/355' => array('isMobile' => true, 'isTablet' => true),
+		'Mozilla/5.0 (Linux; U; Android 4.1.1; en-us; AllviewCity Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                               => array('isMobile' => true, 'isTablet' => true),
+		'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; ALLVIEWSPEED Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                                     => array('isMobile' => true, 'isTablet' => true),
+
+        ),
+);
diff --git a/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Amazon.php b/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Amazon.php
new file mode 100644
index 00000000000..82fa5ac44d2
--- /dev/null
+++ b/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Amazon.php
@@ -0,0 +1,14 @@
+<?php
+return array(
+    'Amazon' => array(
+        'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; KFTT Build/IML74K) AppleWebKit/535.19 (KHTML, like Gecko) Silk/3.4 Mobile Safari/535.19 Silk-Accelerated =true' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; en-US) AppleWebKit/528.5+ (KHTML, like Gecko, Safari/528.5+) Version/4.0 Kindle/3.0 (screen 600x800; rotate)'                  => array('isMobile' => true, 'isTablet' => true, 'version' => array('Webkit' => '528.5+', 'Kindle' => '3.0', 'Safari' => '4.0'), 'model' => 'Kindle' ),
+        'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; KFOTE Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                    => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.0.3', 'Build' => 'IML74K', 'Webkit' => '534.30', 'Safari' => '4.0') ),
+        'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; WFJWAE Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                   => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; en-us; KFTT Build/IML74K) AppleWebKit/535.19 (KHTML, like Gecko) Silk/3.21 Safari/535.19 Silk-Accelerated=true' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; en-us; KFTHWI Build/JDQ39) AppleWebKit/535.19 (KHTML, like Gecko) Silk/3.21 Safari/535.19 Silk-Accelerated=true' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; en-us; KFJWI Build/IMM76D) AppleWebKit/535.19 (KHTML, like Gecko) Silk/3.21 Safari/535.19 Silk-Accelerated=true' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; en-us; KFSOWI Build/JDQ39) AppleWebKit/535.19 (KHTML, like Gecko) Silk/3.21 Safari/535.19 Silk-Accelerated=true' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 2.1; xx-xx; T720-WIFI Build/ECLAIR) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17' => array('isMobile' => true, 'isTablet' => true),
+        ),
+);
diff --git a/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Apple.php b/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Apple.php
new file mode 100644
index 00000000000..931de962eba
--- /dev/null
+++ b/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Apple.php
@@ -0,0 +1,27 @@
+<?php
+return array(
+    'Apple' => array(
+        'iTunes/9.1.1'                                                                                                                                                                           => array('isMobile' => false, 'isTablet' => false),
+        'iTunes/11.0.2 (Windows; Microsoft Windows 8 x64 Business Edition (Build 9200)) AppleWebKit/536.27.1'                                                                                    => array('isMobile' => false, 'isTablet' => false),
+        'Mozilla/5.0 (iPod touch; CPU iPhone OS 7_0 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A4449d Safari/9537.53'                                          => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543 Safari/419.3'                                                              => array('isMobile' => true, 'isTablet' => false, 'version' => array('Webkit' => '420+', 'Safari' => '3.0') ),
+        'Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7A341 Safari/528.16'                                          => array('isMobile' => true, 'isTablet' => false, 'version' => array('iOS' => '3_0', 'Webkit' => '528.18', 'Safari' => '4.0'), 'model' => 'iPhone', 'mobileGrade' => 'B' ),
+        'Mozilla/5.0 (iPhone; CPU iPhone OS 5_1_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B206 Safari/7534.48.3'                                               => array('isMobile' => true, 'isTablet' => false, 'version' => array('iOS' => '5_1_1', 'Webkit' => '534.46', 'Mobile' => '9B206', 'Safari' => '5.1'), 'model' => 'iPhone' ),
+        'Mozilla/5.0 (iPod; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A403 Safari/8536.25'                                                    => array('isMobile' => true, 'isTablet' => false, 'version' => array('iOS' => '6_0', 'Webkit' => '536.26', 'Mobile' => '10A403', 'Safari' => '6.0'), 'model' => 'iPod'),
+        'Mozilla/5.0 (iPad; CPU OS 5_1_1 like Mac OS X; en-us) AppleWebKit/534.46.0 (KHTML, like Gecko) CriOS/21.0.1180.80 Mobile/9B206 Safari/7534.48.3 (6FF046A0-1BC4-4E7D-8A9D-6BF17622A123)' => array('isMobile' => true, 'isTablet' => true, 'version' => array('iOS' => '5_1_1', 'Webkit' => '534.46.0', 'Chrome' => '21.0.1180.80', 'Mobile' => '9B206'), 'model' => 'iPad' ),
+        'Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A403 Safari/8536.25'                                                           => array('isMobile' => true, 'isTablet' => true, 'version' => array('iOS' => '6_0', 'Webkit' => '536.26', 'Safari' => '6.0', 'Mobile' => '10A403'), 'model' => 'iPad' ),
+        'Mozilla/5.0 (iPad; U; CPU OS 4_2_1 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C148 Safari/6533.18.5'                                          => array('isMobile' => true, 'isTablet' => true, 'version' => array('iOS' => '4_2_1', 'Webkit' => '533.17.9', 'Safari' => '5.0.2', 'Mobile' => '8C148'), 'model' => 'iPad', 'mobileGrade' => 'B' ),
+        'Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari/531.21.10'                                          => array('isMobile' => true, 'isTablet' => true, 'version' => array('iOS' => '3_2', 'Webkit' => '531.21.10', 'Safari' => '4.0.4', 'Mobile' => '7B334b'), 'model' => 'iPad', 'mobileGrade' => 'B' ),
+        'Mozilla/5.0 (iPhone; CPU iPhone OS 6_0_1 like Mac OS X; da-dk) AppleWebKit/534.46.0 (KHTML, like Gecko) CriOS/21.0.1180.82 Mobile/10A523 Safari/7534.48.3'                              => array('isMobile' => true, 'isTablet' => false, 'version' => array('iOS' => '6_0_1', 'Webkit' => '534.46.0', 'Chrome' => '21.0.1180.82', 'Mobile' => '10A523'), 'model' => 'iPhone', 'mobileGrade' => 'A' ),
+        'Mozilla/5.0 (iPhone; CPU iPhone OS 6_0_1 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A523 Safari/8536.25'                                                => array('isMobile' => true, 'isTablet' => false, 'version' => array('iOS' => '6_0_1', 'Webkit' => '536.26', 'Safari' => '6.0', 'Mobile' => '10A523'), 'model' => 'iPhone', 'mobileGrade' => 'A' ),
+        'Mozilla/5.0 (iPhone; CPU iPhone OS 6_1 like Mac OS X; ru-ru) AppleWebKit/536.26 (KHTML, like Gecko) CriOS/23.0.1271.100 Mobile/10B142 Safari/8536.25'                                   => array('isMobile' => true, 'isTablet' => false, 'version' => array('iOS' => '6_1', 'Webkit' => '536.26', 'Chrome' => '23.0.1271.100', 'Mobile' => '10B142'), 'model' => 'iPhone', 'mobileGrade' => 'A' ),
+        'Mozilla/5.0 (iPhone; CPU iPhone OS 6_1_3 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10B329 Safari/8536.25'                                                => array('isMobile' => true, 'isTablet' => false, 'version' => array('iOS' => '6_1_3', 'Webkit' => '536.26', 'Safari' => '6.0', 'Mobile' => '10B329'), 'model' => 'iPhone', 'mobileGrade' => 'A' ),
+        'Mozilla/5.0 (iPad; CPU OS 6_1_3 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Coast/1.0.2.62956 Mobile/10B329 Safari/7534.48.3'                                                 => array('isMobile' => true, 'isTablet' => true, 'version' => array('Coast' => '1.0.2.62956')),
+        'CheckMyBus iOS mobile App 0.9.0 (iPhone; iPhone OS/7.1.1)'                                                                                                                              => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (iPad; CPU OS 7_0 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A465 Safari/9537.53'                                                         => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (iPhone; CPU iPhone OS 8_0_2 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) CriOS/38.0.2125.59 Mobile/12A405 Safari/600.1.4'                                        => array('isMobile' => true, 'isTablet' => false),
+        'VendorAppName/1.7.0 (iPhone; iOS 8.1.2; Scale/3.00)'                                                                                                                                    => array('isMobile' => true, 'isTablet' => false, 'version' => array('iOS' => '8.1.2'), 'model' => 'iPhone', 'mobileGrade' => 'A' ),
+        'Mozilla/5.0 (iPad; CPU OS 9_0 like Mac OS X) AppleWebKit/601.1.17 (KHTML, like Gecko) Version/8.0 Mobile/13A175 Safari/600.1.4' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (iPhone; CPU iPhone OS 9_0 like Mac OS X) AppleWebKit/601.1.37 (KHTML, like Gecko) Version/8.0 Mobile/13A4293g Safari/600.1.4' => array('isMobile' => true, 'isTablet' => false),
+    ),
+);
diff --git a/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Archos.php b/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Archos.php
new file mode 100644
index 00000000000..3fda3c9ab9c
--- /dev/null
+++ b/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Archos.php
@@ -0,0 +1,67 @@
+<?php
+return array(
+   'Archos' => array(
+
+        'Mozilla/5.0 (Linux; Android 4.2.2; Qilive 97R Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.92 Safari/537.36'                 => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; Android 4.1.2; Archos 50 Platinum Build/JZO54K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.94 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.0.4; ARCHOS 80G9 Build/IMM76D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166  Safari/535.19'             => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 2.2.1; fr-fr; A101IT Build/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'              => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; Android 4.2.2; Archos 101 Neon Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.141 Safari/537.36' => array(
+            'isMobile' => true, 'isTablet' => true
+        ),
+        'Mozilla/5.0 (Linux; Android 4.2.2; Archos 101 Cobalt Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.141 Safari/537.36' => array(
+            'isMobile' => true, 'isTablet' => true,
+        ),
+        'Mozilla/5.0 (Linux; U; Android 4.1.1; de-de; ARCHOS 80 TITANIUM Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array(
+            'isMobile' => true, 'isTablet' => true,
+        ),
+        'Mozilla/5.0 (Linux; Android 4.1.1; ARCHOS 101 Titanium Build/JRO03H) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166  Safari/535.19' => array(
+            'isMobile' => true, 'isTablet' => true,
+        ),
+        'Mozilla/5.0 (Linux; U; Android 4.1.1; de-de; ARCHOS 70b TITANIUM Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array(
+            'isMobile' => true, 'isTablet' => true,
+        ),
+        'Mozilla/5.0 (Linux; U; Android 4.1.2; de-de; Archos 80 Xenon Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array(
+            'isMobile' => true, 'isTablet' => true,
+        ),
+        'Mozilla/5.0 (Linux; Android 4.2.2; Archos 79 Xenon Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.141 Safari/537.36' => array(
+            'isMobile' => true, 'isTablet' => true,
+        ),
+        'Mozilla/5.0 (Linux; U; Android 4.1.1; de-de; ARCHOS 101 Titanium Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array(
+            'isMobile' => true, 'isTablet' => true,
+        ),
+        'Mozilla/5.0 (Linux; U; Android 4.1.1; de-de; ARCHOS 80XSK Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array(
+            'isMobile' => true, 'isTablet' => true,
+        ),
+        'Mozilla/5.0 (Linux; U; Android 4.1.1; de-de; ARCHOS FAMILYPAD 2 Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array(
+            'isMobile' => true, 'isTablet' => true,
+        ),
+        'Mozilla/5.0 (Linux; Android 4.1.1; ARCHOS 97B TITANIUM Build/JRO03H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.141 Safari/537.36' => array(
+            'isMobile' => true, 'isTablet' => true,
+        ),
+        'Mozilla/5.0 (Linux; Android 4.2.2; ARCHOS 101 XS 2 Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.141 Safari/537.36' => array(
+            'isMobile' => true, 'isTablet' => true,
+        ),
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; de-de; ARCHOS 80b PLATINUM Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array(
+            'isMobile' => true, 'isTablet' => true,
+        ),
+        'Mozilla/5.0 (Linux; Android 4.2.2; Archos 70 Xenon Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.141 Safari/537.36' => array(
+            'isMobile' => true, 'isTablet' => true,
+        ),
+        'Mozilla/5.0 (Linux; U; Android 4.0.3; de-de; ARCHOS 97 CARBON Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array(
+            'isMobile' => true, 'isTablet' => true,
+        ),
+        'Mozilla/5.0 (Linux; U; Android 4.1.1; de-de; ARCHOS 97 TITANIUMHD Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array(
+            'isMobile' => true, 'isTablet' => true,
+        ),
+        'Mozilla/5.0 (Linux; Android 4.2.2; Archos 90 Neon Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.141 Safari/537.36' => array(
+            'isMobile' => true, 'isTablet' => true,
+        ),
+        'Mozilla/5.0 (Linux; U; Android 1.6; de-de; Archos5 Build/Donut) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1' => array(
+            'isMobile' => true, 'isTablet' => true,
+        ),
+        'Mozilla/5.0 (Linux; U; Android 4.1.1; de-de; ARCHOS GAMEPAD Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array(
+            'isMobile' => true, 'isTablet' => true,
+        ),
+    ),
+);
diff --git a/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Asus.php b/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Asus.php
new file mode 100644
index 00000000000..5d817e34a94
--- /dev/null
+++ b/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Asus.php
@@ -0,0 +1,22 @@
+<?php
+return array(
+    'ASUS' => array(
+        'Mozilla/5.0 (Linux; U; Android 3.2.1; en-us; Transformer TF101 Build/HTK75) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13'            => array( 'isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '3.2.1', 'Webkit' => '534.13', 'Safari' => '4.0'), 'model' => 'Transformer TF101' ),
+        'Mozilla/5.0 (Linux; Android 4.1.1; Transformer Build/JRO03L) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19'                  => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; Android 4.1.1; ASUS Transformer Pad TF300T Build/JRO03C) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19'  => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.1.2; fr-fr; Transformer Build/JZO54K; CyanogenMod-10) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; asus_laptop Build/IMM76L) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                 => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.1.1; en-gb; PadFone 2 Build/JRO03L) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'            => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.1.1; en-gb; PadFone 2 Build/JRO03L) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                   => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.1.1', 'Build' => 'JRO03L', 'Webkit' => '534.30', 'Safari' => '4.0') ),
+        'Mozilla/5.0 (Linux; Android 4.2.1; ME301T Build/JOP40D) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.94 Safari/537.36'                        => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.2.1', 'Build' => 'JOP40D') ),
+        'Mozilla/5.0 (Linux; Android 4.2.1; ME173X Build/JOP40D) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.94 Safari/537.36'                        => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.2.1', 'Build' => 'JOP40D') ),
+        'Mozilla/5.0 (Linux; Android 4.2.2; TF300T Build/JDQ39E) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166  Safari/535.19'                      => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.2.2', 'Build' => 'JDQ39E') ),
+        'Mozilla/5.0 (Linux; Android 4.2.2; K00C Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Safari/537.36'                          => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; Android 4.2.2; K00E Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Safari/537.36'                          => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; Android 4.2.2; K00F Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Safari/537.36'                          => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; Android 4.2.2; K00L Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.131 Safari/537.36'                          => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; Android 4.2.2; ME302KL Build/JDQ39) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.58 Safari/537.31'                          => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; Android 4.4.2; K010 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.111 Safari/537.36' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; Android 4.4.2; K017 Build/KVT49L) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.111 Safari/537.36' => array('isMobile' => true, 'isTablet' => true),
+    ),
+);
diff --git a/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Blackberry.php b/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Blackberry.php
new file mode 100644
index 00000000000..7f1c106e47d
--- /dev/null
+++ b/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Blackberry.php
@@ -0,0 +1,35 @@
+<?php
+return array(
+    'BlackBerry' => array(
+        'Mozilla/5.0 (BlackBerry; U; BlackBerry 9300; en) AppleWebKit/534.8+ (KHTML, like Gecko) Version/6.0.0.546 Mobile Safari/534.8+'                          => array('isMobile' => true, 'isTablet' => false, 'version' => array('Webkit' => '534.8+', 'BlackBerry' => '6.0.0.546'), 'model' => 'BlackBerry 9300' ),
+        'Mozilla/5.0 (BlackBerry; U; BlackBerry 9360; en-US) AppleWebKit/534.11+ (KHTML, like Gecko) Version/7.0.0.400 Mobile Safari/534.11+'                     => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (BlackBerry; U; BlackBerry 9700; he) AppleWebKit/534.8+ (KHTML, like Gecko) Version/6.0.0.723 Mobile Safari/534.8+'                          => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (BlackBerry; U; BlackBerry 9700; en-US) AppleWebKit/534.8  (KHTML, like Gecko) Version/6.0.0.448 Mobile Safari/534.8'                        => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (BlackBerry; U; BlackBerry 9790; en-GB) AppleWebKit/534.11+ (KHTML, like Gecko) Version/7.1.0.714 Mobile Safari/534.11+'                     => array('isMobile' => true, 'isTablet' => false, 'version' => array('Webkit' => '534.11+', 'BlackBerry' => '7.1.0.714'), 'model' => 'BlackBerry 9790' ),
+        'Opera/9.80 (BlackBerry; Opera Mini/7.0.29990/28.2504; U; en) Presto/2.8.119 Version/11.10'                                                               => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (BlackBerry; U; BlackBerry 9981; en-GB) AppleWebKit/534.11+ (KHTML, like Gecko) Version/7.1.0.342 Mobile Safari/534.11+'                     => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (BlackBerry; U; BlackBerry 9800; en-GB) AppleWebKit/534.8+ (KHTML, like Gecko) Version/6.0.0.546 Mobile Safari/534.8+'                       => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (BlackBerry; U; BlackBerry 9780; es) AppleWebKit/534.8  (KHTML, like Gecko) Version/6.0.0.480 Mobile Safari/534.8'                           => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (BlackBerry; U; BlackBerry 9810; en-US) AppleWebKit/534.11  (KHTML, like Gecko) Version/7.0.0.583 Mobile Safari/534.11'                      => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (BlackBerry; U; BlackBerry 9860; es) AppleWebKit/534.11+ (KHTML, like Gecko) Version/7.0.0.576 Mobile Safari/534.11+'                        => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (BlackBerry; U; BlackBerry 9900; en-US) AppleWebKit/534.11  (KHTML, like Gecko) Version/7.1.0.523 Mobile Safari/534.11'                      => array('isMobile' => true, 'isTablet' => false),
+        'BlackBerry8520/5.0.0.592 Profile/MIDP-2.1 Configuration/CLDC-1.1 VendorID/136'                                                                           => array('isMobile' => true, 'isTablet' => false),
+        'BlackBerry8520/5.0.0.1067 Profile/MIDP-2.1 Configuration/CLDC-1.1 VendorID/603'                                                                          => array('isMobile' => true, 'isTablet' => false),
+        'BlackBerry8520/5.0.0.1036 Profile/MIDP-2.1 Configuration/CLDC-1.1 VendorID/611'                                                                          => array( 'isMobile' => true, 'isTablet' => false, 'version' => array('BlackBerry' => '5.0.0.1036', 'VendorID' => '611'), 'model' => 'BlackBerry8520' ),
+        'Mozilla/5.0 (BlackBerry; U; BlackBerry 9220; en) AppleWebKit/534.11+ (KHTML, like Gecko) Version/7.1.0.337 Mobile Safari/534.11+'                        => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (PlayBook; U; RIM Tablet OS 2.1.0; en-US) AppleWebKit/536.2+ (KHTML, like Gecko) Version/7.2.1.0 Safari/536.2+'                              => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (BB10; Touch) AppleWebKit/537.1+ (KHTML, like Gecko) Version/10.0.0.1337 Mobile Safari/537.1+'                                               => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (BB10; Touch) AppleWebKit/537.10+ (KHTML, like Gecko) Version/10.0.9.2372 Mobile Safari/537.10+'                                             => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (BB10; Touch) /537.10+ (KHTML, like Gecko) Version/10.0.9.2372 Mobile Safari/537.10+'                                                        => array( 'isMobile' => true, 'isTablet' => false, 'version' => array('BlackBerry' => '10.0.9.2372') ),
+        'Mozilla/5.0 (Linux; U; Android 3.2.1; en-us; Transformer TF101 Build/HTK75) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13'            => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '3.2.1', 'Webkit' => '534.13', 'Safari' => '4.0'), 'model' => 'Transformer TF101' ),
+        'Mozilla/5.0 (Linux; U; Android 4.0.3; de-de; A200 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                        => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.0.3', 'Webkit' => '534.30', 'Safari' => '4.0'), 'model' => 'A200' ),
+        'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; A500 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                        => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.0.3', 'Webkit' => '534.30', 'Safari' => '4.0'), 'model' => 'A500' ),
+        'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; A501 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                        => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.0.3', 'Webkit' => '534.30', 'Safari' => '4.0'), 'model' => 'A501' ),
+        'Mozilla/5.0 (Linux; Android 4.1.1; Transformer Build/JRO03L) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19'                  => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.1.1', 'Webkit' => '535.19', 'Chrome' => '18.0.1025.166'), 'model' => 'Transformer' ),
+        'Mozilla/5.0 (Linux; Android 4.1.1; ASUS Transformer Pad TF300T Build/JRO03C) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19'  => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.1.1', 'Webkit' => '535.19', 'Chrome' => '18.0.1025.166'), 'model' => 'Transformer Pad TF300T' ),
+        'Mozilla/5.0 (Linux; U; Android 4.1.2; fr-fr; Transformer Build/JZO54K; CyanogenMod-10) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.1.2', 'Webkit' => '534.30', 'Safari' => '4.0', 'Build' => 'JZO54K'), 'model' => 'Transformer' ),
+        'Mozilla/5.0 (Linux; Android 4.1.2; B1-A71 Build/JZO54K) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166  Safari/535.19'                      => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.1.2', 'Webkit' => '535.19', 'Chrome' => '18.0.1025.166'), 'model' => 'B1-A71' ),
+        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; Acer; Allegro)'                                                      => array('isMobile' => true, 'isTablet' => false, 'version' => array('Windows Phone OS' => '7.5', 'Trident' => '5.0', 'IE' => '9.0'), 'model' => 'Allegro' ),
+        ),
+
+);
diff --git a/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Dell.php b/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Dell.php
new file mode 100644
index 00000000000..2c94b9728a1
--- /dev/null
+++ b/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Dell.php
@@ -0,0 +1,13 @@
+<?php
+return array(
+    'Dell' => array(
+            'Mozilla/5.0 (Linux; U; Android 1.6; en-gb; Dell Streak Build/Donut AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/ 525.20.1'               => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 2.3.7; hd-us; Dell Venue Build/GWK74; CyanogenMod-7.2.0) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; DELL; Venue Pro)'                                                          => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.2; Venue 8 3830 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Safari/537.36'                        => array('isMobile' => true, 'isTablet' => true),
+            'Mozilla/5.0 (Linux; Android 4.4.2; Venue 7 3730 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Safari/537.36'                => array('isMobile' => true, 'isTablet' => true),
+            'Mozilla/5.0 (Linux; Android 4.4.2; Venue 7 HSPA+ Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.117 Safari/537.36'                      => array('isMobile' => true, 'isTablet' => true),
+            'Mozilla/5.0 (Linux; U; Android 4.3; en-us; Venue 8 3830 Build/JSS15Q) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                        => array('isMobile' => true, 'isTablet' => true),
+            'Mozilla/5.0 (Linux; U; Android 3.2; zh-cn; Dell Streak 10 Pro Build/HTJ85B) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13'                  => array('isMobile' => true, 'isTablet' => true),
+    ),
+);
diff --git a/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Google.php b/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Google.php
new file mode 100644
index 00000000000..688653304cd
--- /dev/null
+++ b/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Google.php
@@ -0,0 +1,18 @@
+<?php
+return array(
+    'Google' => array(
+        'Mozilla/5.0 (Linux; U; Android 2.2; en-us; Nexus One Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                                            => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.2.2; Nexus 4 Build/JDQ39) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.40 Mobile Safari/537.31 OPR/14.0.1074.54070'                        => array('isMobile' => true, 'isTablet' => false, 'version' => array('Android' => '4.2.2', 'Build' => 'JDQ39', 'Webkit' => '537.31', 'Opera' => '14.0.1074.54070') ),
+        'Mozilla/5.0 (Linux; Android 4.2.2; Nexus 4 Build/JDQ39) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.58 Mobile Safari/537.31'                                            => array('isMobile' => true, 'isTablet' => false, 'version' => array('Android' => '4.2.2', 'Chrome' => '26.0.1410.58')),
+        'Mozilla/5.0 (Linux; U; Android 4.1.1; en-us; Google Nexus 4 - 4.1.1 - API 16 - 768x1280 Build/JRO03S) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'      => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.1.1; en-us; Google Galaxy Nexus - 4.1.1 - API 16 - 720x1280 Build/JRO03S) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.1.1; Nexus 7 Build/JRO03D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166  Safari/535.19'                                                => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; Android 4.2; Nexus 7 Build/JOP40C) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19'                                                   => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; Android 4.1.2; Nexus 7 Build/JZ054K) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19'                                                 => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.1.2', 'Chrome' => '18.0.1025.166') ),
+        'Mozilla/5.0 (Linux; U; Android 4.1.2; cs-cz; Nexus S Build/JZO54K; CyanogenMod-10.0.0) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                     => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.3; Nexus 10 Build/JWR66Y) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.72 Safari/537.36'                                                   => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android; en_us; Nexus 7 Build/) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 NetFrontLifeBrowser/2.3 Mobile (Dragonfruit)'                             => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; Android 5.1; Nexus 5 Build/LMY47D) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/39.0.0.0 Mobile Safari/537.36 momoWebView/6.3.1 android/404(Nexus 5;android 5.1;zh_CN;10;netType/1)' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.3; Nexus 10 Build/JWR66Y) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.92 Safari/537.36' => array('isMobile' => true, 'isTablet' => true),
+        ),
+);
diff --git a/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/HP.php b/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/HP.php
new file mode 100644
index 00000000000..4f8b14a8217
--- /dev/null
+++ b/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/HP.php
@@ -0,0 +1,21 @@
+<?php
+return array(
+    'HP' => array(
+        'Mozilla/5.0 (hp-tablet; Linux; hpwOS/3.0.5; U; en-GB) AppleWebKit/534.6 (KHTML, like Gecko) wOSBrowser/234.83 Safari/534.6 TouchPad/1.0' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.1.1; en-gb; HP Slate 7 Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'  => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; Android 4.1.1; HP Slate 7 Build/JRO03H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.94 Safari/537.36'    => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; de-de; HP 8 Build/1.0.7_WW-FIR-13) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; Android 4.2.2; HP Slate 10 HD Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.141 Safari/537.36'    => array(
+            'isMobile' => true, 'isTablet' => true
+        ),
+        'Mozilla/5.0 (Linux; Android 4.4.2; HP Slate 8 Pro Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.141 Safari/537.36' => array(
+            'isMobile' => true, 'isTablet' => true
+        ),
+        'Mozilla/5.0 (Linux; Android 4.2.2; Slate 21 Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.138 Safari/537.36 OPR/22.0.1485.78487' => array(
+            'isMobile' => true, 'isTablet' => true
+        ),
+        'Mozilla/5.0 (Linux; Android 4.3; HP SlateBook 10 x2 PC Build/4.3-17r20-03-23) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.94 Safari/537.36' => array(
+            'isMobile' => true, 'isTablet' => true
+        ),
+    ),
+);
diff --git a/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/HTC.php b/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/HTC.php
new file mode 100644
index 00000000000..cf6caebacc1
--- /dev/null
+++ b/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/HTC.php
@@ -0,0 +1,363 @@
+<?php
+return array(
+    'HTC' => array(
+            'Mozilla/5.0 (X11; Linux x86_64; Z520m; en-ca) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.34 Safari/534.24' => array('isMobile' => true, 'isTablet' => false),
+            'HTC_Touch_HD_T8282 Mozilla/4.0 (compatible; MSIE 6.0; Windows CE; IEMobile 7.11)'                                                                              => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 1.5; en-us; ADR6200 Build/CUPCAKE) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1'                 => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 2.1; xx-xx; Desire_A8181 Build/ERE27) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17'                  => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 2.1-update1; de-de; HTC Desire 1.19.161.5 Build/ERE27) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 2.1-update1; en-gb; HTC Desire Build/ERE27) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17'            => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 2.2; fr-fr; HTC Desire Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                      => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 2.2; en-dk; Desire_A8181 Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                    => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 2.2; xx-xx; 001HT Build/FRF91) AppleWebKit/525.10+ (KHTML, like Gecko) Version/3.0.4 Mobile Safari/523.12.2'                    => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 2.2; xx-xx; HTCA8180/1.0 Android/2.2 release/06.23.2010 Browser/WAP 2.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 2.2.2; de-at; HTC Desire Build/FRG83G) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 2.2.2; en-sk; Desire_A8181 Build/FRG83G) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'              => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 2.3; xx-xx; HTC/DesireS/1.07.163.1 Build/GRH78C) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'      => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 2.3.3; en-lv; HTC_DesireZ_A7272 Build/GRI40) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'          => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 2.3.4; en-us; ADR6300 Build/GRJ22) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                    => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 2.3.5; en-gb; HTC/DesireS/2.10.161.3 Build/GRJ90) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'     => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 2.3.5; ru-ru; HTC_DesireS_S510e Build/GRJ90) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'          => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 2.3.5; en-us; Inspire 4G Build/GRJ90) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                 => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 2.3.5; de-de; HTC Explorer A310e Build/GRJ90) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'         => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 2.3.5; en-gb; HTC_ChaCha_A810e Build/GRJ90) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'           => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 2.3.5; nl-nl; HTC_DesireHD_A9191 Build/GRJ90) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'         => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 2.3.5; ru-ru; HTC Desire S Build/GRJ90) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'               => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 2.3.3; en-au; HTC Desire Build/GRI40) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                 => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 2.3.5; de-de; HTC_DesireHD Build/GRJ90) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'               => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 2.3.5; ru-ua; HTC_WildfireS_A510e Build/GRJ90) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'        => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 2.3.7; en-us; HTC Vision Build/GRI40; ILWT-CM7) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'       => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.0; xx-xx; HTC_GOF_U/1.05.161.1 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'      => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.0.3; hu-hu; HTC Sensation Z710e Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'     => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.0.3; zh-cn; HTC Sensation XE with Beats Audio Z715e Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 XiaoMi/MiuiBrowser/1.0' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.0.3; pl-pl; EVO3D_X515m Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'             => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.0.3; ru-ru; HTC_One_S Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'               => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.0.3; ru-ru; HTC_One_V Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'               => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.0.3; zh-cn; HTC_A320e Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'               => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.0.3; zh-tw; HTC Desire V Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'            => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.0.3; PG86100 Build/IML74K) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19'                  => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.0.3; en-nl; SensationXE_Beats_Z715e Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; ADR6425LVW 4G Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'           => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.0.3; HTC One V Build/IML74K) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19'                => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.0.3; cs-ee; Sensation_Z710e Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'         => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; HTC Evo 4G Build/MIUI) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.0.4; Desire HD Build/IMM76D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19'                => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.0.4; en-my; HTC_One_X Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'               => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.0.4; it-it; IncredibleS_S710e Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'       => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.0.4; fr-fr; HTC_Desire_S Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'            => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.1.1; HTC One X Build/JRO03C) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19'                => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.1.1; HTC Butterfly Build/JRO03C) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19'            => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.1.1; EVO Build/JRO03C) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.169 Mobile Safari/537.22'                      => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.1.2; HTCSensation Build/JRO03C) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Mobile Safari/537.36'              => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.1.2; en-us; GT-S6312 Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false),
+
+            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC 7 Mozart T8698; QSD8x50)'   => array(
+                'isMobile' => true, 'isTablet' => false, 'version' => array('IE' => '9.0', 'Windows Phone OS' => '7.5', 'Trident' => '5.0'), 'model' => '7 Mozart T8698',
+            ),
+            'Mozilla/5.0 (Linux; U; Android 3.2.1; en-gb;HTC_Flyer_P512 Build/HTK75C) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13' => array('isMobile' => true, 'isTablet' => true),
+
+            'Mozilla/5.0 (Linux; U; Android 3.1; zh-tw; HTC PG09410 Build/HMJ15) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13' => array('isMobile' => true, 'isTablet' => true),
+
+            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; 7 HTC MOZART)'             => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; 7 Mondrian T8788)'         => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; 7 Mozart T8698)'           => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; 7 Mozart)'                 => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; 7 Mozart; Orange)'         => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; 7 Pro T7576)'              => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; 7 Pro)'                    => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; 7 Schubert T9292)'         => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; 7 Surround)'               => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; 7 Trophy T8686)'           => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; 7 Trophy)'                 => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Eternity)'                 => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Gold)'                     => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; HD2 LEO)'                  => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; HD2)'                      => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; HD7 T9292)'                => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; HD7)'                      => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; iPad 3)'                   => array('isMobile' => true, 'isTablet' => true),
+            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; LEO)'                      => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Mazaa)'                    => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Mondrian)'                 => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Mozart T8698)'             => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Mozart)'                   => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; mwp6985)'                  => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; PC40100)'                  => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; PC40200)'                  => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; PD67100)'                  => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; PI39100)'                  => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; PI86100)'                  => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Radar 4G)'                 => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Radar C110e)'              => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Radar C110e; 1.08.164.02)' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Radar C110e; 2.05.164.01)' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Radar C110e; 2.05.168.02)' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Radar)'                    => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Radar; Orange)'            => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Schuber)'                  => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Schubert T9292)'           => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Schubert)'                 => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Spark)'                    => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Surround)'                 => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; T7575)'                    => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; T8697)'                    => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; T8788)'                    => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; T9295)'                    => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; T9296)'                    => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; TITAN X310e)'              => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Titan)'                    => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Torphy T8686)'             => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; X310e)'                    => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC_blocked; T8788)'            => array(
+                'isMobile' => true, 'isTablet' => false, 'version' => array('IE' => '9.0', 'Windows Phone OS' => '7.5', 'Trident' => '5.0'), 'model' => 'T8788',
+            ),
+
+            'Mozilla/5.0 (Linux; Android 4.0.4; HTC One S Build/IMM76D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.0.4; de-de; HTC One X Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.0.3; en-th; HTC One V Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.0.4; HTC One X Build/IMM76D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.1.1; en-id; HTC One X Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.0.3; HTC One S Build/IML74K) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.1.1; HTC One S Build/JRO03C) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.0.3; HTC One X Build/IML74K) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.1.1; de-at; HTC One S Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.1.1; HTC One X Build/JRO03L) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.1.1; en-gb; HTC One S Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.1.1; HTC One X Build/JRO03C) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.123 Mobile Safari/537.22' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.1.1; HTC One S Build/JRO03C) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.123 Mobile Safari/537.22' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.1.1; HTC One X Build/JRO03C) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.169 Mobile Safari/537.22' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.1.2; HTC One X Build/JZO54K) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.169 Mobile Safari/537.22' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.0.3; es-pe; HTC One V Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.1.1; HTC One S Build/JRO03C) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.169 Mobile Safari/537.22' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.0.3; HTC One V Build/IML74K) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.58 Mobile Safari/537.31' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.1.1; de-de; HTC One X Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 Maxthon/4.0.4.1000' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.0.3; HTC One X Build/IML74K) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.133 Mobile Safari/535.19 AlexaToolbar/alxf-2.17' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.1.1; HTC One X Build/JRO03C) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.58 Mobile Safari/537.31' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.1.2; HTC One Build/JZO54K) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.58 Mobile Safari/537.31' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.0.3; HTC One S Build/IML74K) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.58 Mobile Safari/537.31' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.1.1; HTC One S Build/JRO03C) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.58 Mobile Safari/537.31' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.1.1; HTC One X Build/JRO03C) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.90 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.1.1; HTC One S Build/JRO03C) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.90 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.1.2; HTC One Build/JZO54K) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.1.2; HTC One Build/JZO54K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.90 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.1.2; de-de; HTC One Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.1.1; HTC One S Build/JRO03C) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.58 Mobile Safari/537.31 OPR/14.0.1074.58201' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.1.1; es-es; HTC One S Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.1.2; HTC One Build/JZO54K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.64 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.1.1; HTC One S Build/JRO03C) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.64 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.0.3; HTC One V Build/IML74K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.64 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.2.2; HTC One X Build/JDQ39E) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.1.1; HTC One XL Build/JRO03C) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.1.1; HTC One S Build/JRO03C) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.63 Mobile Safari/537.36 OPR/15.0.1162.60140' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.2.2; HTC One Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.94 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.1.1; de-de; HTC One S Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.1.2; HTC One Build/JZO54K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.94 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.1.1; HTC One X Build/JRO03C) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.94 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.0.3; HTC One X Build/IML74K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.94 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.1.1; HTC One S Build/JRO03C) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.94 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.1.2; HTC One Build/JZO54K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.59 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.2.2; HTC One Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.59 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.1.1; HTC One S Build/JRO03C) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.24 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'HTC One X Linux/3.0.13 Android/4.1.9 Release/10.12.2012 Browser/AppleWebKit534.30 Profile/MIDP-2.0 Configuration/CLDC-1.1 Mobile Safari/534.30 Android 4.0.1;' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.2.2; HTC One X Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.59 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.2.2; zh-tw; HTC One 801e Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.0.4; HTC One X Build/IMM76D) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.63 Mobile Safari/537.36 OPR/15.0.1162.61541' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.2.2; HTC One Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.72 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.0.3; HTC One XL Build/IML74K) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.1.2; HTC One Build/JZO54K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.72 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.2.2; HTC One X Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.72 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.1.1; HTC One X+ Build/JRO03C) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; HTC One X Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30/4.05d.1002.m7' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.0.3; en-in; HTC One V Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.1.1; HTC One X Build/JRO03C) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.72 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.0.3; HTC One V Build/IML74K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.72 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.1.1; ru-ru; HTC One X Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 MicroMessenger/5.0.1.352' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.1.1; en-us; HTC One X Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.2.2; en-gb; HTC One Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.1.1; HTC One S Build/JRO03C) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.72 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.1.2; HTC One SV Build/JZO54K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.82 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.1.1; HTC One S Build/JRO03C) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.82 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.0.3; HTC One V Build/IML74K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.82 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.2.2; HTC One Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.82 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.1.1; HTC One X Build/JRO03C) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.82 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.1.1; HTC One S Build/JRO03C) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.92 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.2.2; HTC One mini Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.82 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; HTC One Build/IMM76D) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.3; HTC One Build/JSS15J) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.82 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.3; HTC One 801e Build/JSS15J) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.72 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.1.1; HTC One X Build/JRO03C) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.92 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.2.2; HTC One Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.92 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.2.2; HTC One X Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.92 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.2.2; de-ch; HTC One Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.2.2; nl-nl; HTC One X Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.3; HTC One Build/JSS15J) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.92 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.2.2; HTC One X Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.59 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.3; HTC One Build/JSS15J) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.59 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.1.1; HTC One S Build/JRO03C) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.59 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.0.3; zh-cn; HTC One S Build/IML74K) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17 T5/2.0 baidubrowser/3.1.6.4 (Baidu; P1 4.0.3)' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.1.1; HTC One X Build/JRO03C) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.59 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.1.1; HTC One X+ Build/JRO03C) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.59 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.3; en-us; HTC One 801e Build/JSS15J) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 UCBrowser/9.4.1.362 U3/0.8.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4; HTC One Build/KRT16S.H5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.59 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.2.2; HTC One Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.59 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.1.1; HTC One S Build/JRO03C) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.94 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.1.2; HTC One SV Build/JZO54K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.59 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.2.1; ru-ru; HTC One Build/JOP40D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.3; HTC One Build/JSS15J) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.2.2; HTC One X Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.2.2; ru-ru; HTC One 801e Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.2.2; HTC One 801e Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.2.2; HTC One mini Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.12975 YaBrowser/13.12.1599.12975 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4; HTC One Build/KRT16S) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.3; en-us; HTC One Build/JSS15J) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.2; HTC One Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.2.2; HTC One Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.1.1; HTC One X Build/JRO03C) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.1.2; HTC One X Build/JZO54K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.3; HTC One Build/JWR66Y.H1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.93 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.3; de-at; HTC One Build/JSS15J) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.3; HTC One Build/JSS15J) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.136 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.2; HTC One Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.135 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.2.2; HTC One X+ Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.136 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.2.2; HTC One dual sim Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.136 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.0.4; HTC One S Build/IMM76D) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.136 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.2; HTC One max Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.132 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.1.1; HTC One S Build/JRO03C) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.136 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.3; HTC One mini Build/JSS15Q) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.136 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.3; HTC One 801e Build/JSS15J) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.136 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.2.2; zh-cn; HTC One Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 MicroMessenger/5.2.380' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.2.2; HTC One Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.136 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.2; HTC One Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.166 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.0.3; HTC One X Build/IML74K) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.133 Mobile Safari/535.19' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.3; HTC One Build/JSS15J) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.166 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.2.2; HTC One X Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.166 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.2.2; HTC One X+ Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.166 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.2; HTC One Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.132 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.2; HTC One Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.3; HTC One Build/JSS15J) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.0.4; HTC One X Build/IMM76D) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.0.4; it-it; HTC One S Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.2.2; en-kw; HTC One X+ Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.2.2; HTC One Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.2; HTC One max Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36 MicroMessenger/5.3.0.49_r693790.420' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.1.1; HTC One S Build/JRO03C) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.2; HTC One Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.122 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.3; HTC One Build/JSS15J) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.122 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.2.2; HTC One X Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.122 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.0.3; ru; HTC One V Build/IML74K) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 UCBrowser/9.7.5.418 U3/0.8.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.2; HTC One Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.138 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.2; HTC One Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36 MicroMessenger/5.2.1.381' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.1.1; HTC One S Build/JRO03C) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.122 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.2.2; HTC One mini Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.138 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.4.2; ru-ru; HTC One mini Build/KOT49H) AppleWebKit/537.16 (KHTML, like Gecko) Version/4.0 Mobile Safari/537.16' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.2; HTC One Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.2; HTC One Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.141 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.0.3; ru; HTC One V Build/IML74K) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 UCBrowser/9.8.0.435 U3/0.8.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.2; HTC One 801e Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.141 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.2.2; HTC One X Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.2.2; en-us; HTC One X - 4.2.2 - API 17 - 720x1280 Build/JDQ39E) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.1.1; HTC One S Build/JRO03C) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.141 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.2; HTC One_M8 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.141 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.0.3; HTC One V Build/IML74K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.138 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.2.2; HTC One Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.141 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.2.2; HTC One X Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.141 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.2; HTC One Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.94 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.2.2; HTC One X+ Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.141 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.2.2; HTC One Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.128 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.2; HTC One_M8 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.128 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.2.2; HTC One X Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.128 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.2; HTC One_M8 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.131 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.2; HTC One Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.131 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.2.2; HTC One X Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.131 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.3; HTC One_M8 Build/KTU84L) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.131 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.1.2; HTC One VX Build/JZO54K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.131 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.2; HTC One Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.76 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.2; HTC One_M8 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.135 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.2; HTC One Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.135 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.0.3; HTC One V Build/IML74K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.2; HTC One dual sim Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.141 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.1.1; HTC One S Build/JRO03C) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.135 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.2; HTC One dual sim Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.138 Mobile Safari/537.36 OPR/22.0.1485.78487' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.2.2; HTC One X+ Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.135 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.3; HTC One Build/JSS15J) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.131 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.3; HTC One_M8 Build/KTU84L) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.135 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.2.2; HTC One X Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.135 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.3; HTC One Build/JSS15J) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.117 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.3; HTC One Build/KTU84L) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.135 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.3; HTC One 801e Build/KTU84L) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/33.0.0.0 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.3; HTC One 801e Build/KTU84L) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.117 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.0.3; HTC One X Build/IML74K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.138 Mobile Safari/537.36 OPR/22.0.1485.81203' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.2.2; HTC One X Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.117 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.2; HTC One 801e Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.3; HTC One Build/KTU84L) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.117 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.2; HTC One mini Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.135 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.1.1; HTC One S Build/JRO03C) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.117 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.1.1; zh-tw; HTC One S Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.3; HTC One_M8 Build/KTU84L) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.117 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; HTC One V Build/IML74K) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 UCBrowser/9.9.2.467 U3/0.8.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.2.2; HTC One Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.117 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.3; HTC One mini Build/JSS15Q) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.117 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.4.2; en-us; HTC One_M8 Build/KOT49H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.2; HTC One Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.117 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.3; HTC One dual sim Build/KTU84L) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.117 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.2.2; HTC One X Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.72 Mobile Safari/537.36 OPR/19.0.1340.69721' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.3; HTC One Build/JSS15J) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.102 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.3; HTC One Build/KTU84L) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.102 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.3; HTC One_M8 Build/KTU84L) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.102 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.2; HTC One_M8 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.102 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.2.2; HTC One SV Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.102 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.3; HTC One Build/KTU84L) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/33.0.0.0 Mobile Safari/537.36 ACHEETAHI/2100050056' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.4; HTC One_M8 Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.102 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.2.2; HTC One X Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.102 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.3; HTC One Build/KTU84L) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.114 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.3; HTC One_M8 Build/KTU84L) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/33.0.0.0 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.2.2; HTC One X Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.114 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.3; HTC One Build/JWR66Y.H1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.114 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.2.2; zh-tw; HTC One SV Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.2; HTC One mini Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.114 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.2.2; HTC One Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.114 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.4; HTC One_M8 Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/33.0.0.0 Mobile Safari/537.36 [FBAN/FB4A;FBAV/21.0.0.23.12;]' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.2.2; zh-tw; HTC One X Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.4; HTC One_M8 Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.59 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.3; HTC One Build/KTU84L) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.59 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.2.2; ru-si; HTC One X Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 MicroMessenger/6.0.0.67_r853700.483 NetType/WIFI' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.2; HTC One_M8 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36 [FBAN/FB4A;FBAV/22.0.0.15.13;]' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.1.1; en-US; HTC One X Build/JRO03C) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 UCBrowser/10.0.1.512 U3/0.8.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.4; HTC One Build/KTU84P.H1) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/33.0.0.0 Mobile Safari/537.36 [FBAN/FB4A;FBAV/22.0.0.15.13;]' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.2; HTC One mini Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36 [FBAN/FB4A;FBAV/22.0.0.15.13;]' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.2.2; HTC One SV Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.59 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.4; HTC One_M8 Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.93 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.3; HTC One Build/KTU84L) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.93 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.3; HTC One Build/KTU84L) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/33.0.0.0 Mobile Safari/537.36 [FBAN/FB4A;FBAV/22.0.0.15.13;]' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.2; HTC One_M8 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.1.1; zh-tw; HTC One X+ Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.4; HTC One_M8 Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/33.0.0.0 Mobile Safari/537.36 BingWeb/5.2.0.20140710' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.3; HTC One Build/JSS15J) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.93 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.1.1; es-mx; HTC One S Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 [FBAN/FB4A;FBAV/23.0.0.22.14;]' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.2; HTC One mini Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.4.3; es-es; HTC One 801e Build/KTU84L) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.2; HTC One mini Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.93 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.2.2; HTC One X+ Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.93 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.2; HTC One_M8 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.69 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.1.1; ru-ru; HTC One S Build/JRO03C) AppleWebKit/537.16 (KHTML, like Gecko) Version/4.0 Mobile Safari/537.16' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.3; HTC One Build/KTU84L) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/33.0.0.0 Mobile Safari/537.36 [FB_IAB/FB4A;FBAV/24.0.0.30.15;]' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.4.2; en-th; HTC One Build/KOT49H) AppleWebKit/537.16 (KHTML, like Gecko) Version/4.0 Mobile Safari/537.16' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.2.2; es-ar; HTC One X Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 [FB_IAB/FB4A;FBAV/24.0.0.30.15;]' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.2; HTC One_M8 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36 [FB_IAB/FB4A;FBAV/24.0.0.30.15;]' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.2; HTC One Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.93 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.1.1; es-us; HTC One X+ Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 [FB_IAB/FB4A;FBAV/24.0.0.30.15;]' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.0.3; es-mx; HTC One S Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 [FB_IAB/FB4A;FBAV/24.0.0.30.15;]' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.2; HTC One Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36 [FB_IAB/FB4A;FBAV/24.0.0.30.15;]' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.2; HTC One Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.136 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.3; HTC One Build/KTU84L) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.89 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.2; HTC One dual sim Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.89 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.2; HTC One Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36 [FB_IAB/FB4A;FBAV/25.0.0.19.30;]' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 5.0.1; HTC One_M8 Build/LRX22C) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/37.0.0.0 Mobile Safari/537.36 [FB_IAB/FB4A;FBAV/25.0.0.19.30;]' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.2; HTC One Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.89 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.4; HTC One_M8 Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.109 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.2.2; HTC One X Build/JDQ39) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.58 Mobile Safari/537.31' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.2; HTC One mini Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.109 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 5.0.1; HTC One_M8 Build/LRX22C.H5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.109 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+
+            ),
+);
diff --git a/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Huawei.php b/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Huawei.php
new file mode 100644
index 00000000000..f5ffca8e568
--- /dev/null
+++ b/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Huawei.php
@@ -0,0 +1,17 @@
+<?php
+return array(
+    'Huwaei' => array(
+            'Mozilla/5.0 (Linux; U; Android 2.1-update1; bg-bg; Ideos S7 Build/ERE27) AppleWebKit/525.10+ (KHTML, like Gecko) Version/3.0.4 Mobile Safari/523.12.2'              => array('isMobile' => true, 'isTablet' => true),
+            'Mozilla/5.0 (Linux; U; Android 2.1; en-us; Ideos S7 Build/ERE27) AppleWebKit/525.10+ (KHTML, like Gecko) Version/3.0.4 Mobile Safari/523.12.2'                      => array('isMobile' => true, 'isTablet' => true),
+            'Mozilla/5.0 (Linux; U; Android 2.3.6; lt-lt; U8660 Build/HuaweiU8660) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                        => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 2.3.7; ru-ru; HUAWEI-U8850 Build/HuaweiU8850) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                 => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 3.2; pl-pl; MediaPad Build/HuaweiMediaPad) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13'                         => array('isMobile' => true, 'isTablet' => true),
+            'Mozilla/5.0 (Linux; U; Android 3.2; nl-nl; HUAWEI MediaPad Build/HuaweiMediaPad) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13'                  => array('isMobile' => true, 'isTablet' => true),
+            'HUAWEI_T8951_TD/1.0 Android/4.0.4 (Linux; U; Android 4.0.4; zh-cn) Release/05.31.2012 Browser/WAP2.0 (AppleWebKit/534.30) Mobile Safari/534.30'                     => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.1.2; ar-eg; MediaPad 7 Youth Build/HuaweiMediaPad) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'               => array('isMobile' => true, 'isTablet' => true),
+            'Mozilla/5.0 (Linux; U; Android 4.1.2; zh-cn; HW-HUAWEI_C8815/C8815V100R001C541B135; 540*960; CTC/2.0) AppleWebKit/534.30 (KHTML, like Gecko) Mobile Safari/534.30'  => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.1.1; zh-cn; HW-HUAWEI_C8813D/C8813DV100R001C92B172; 480*854; CTC/2.0) AppleWebKit/534.30 (KHTML, like Gecko) Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.1.1; zh-cn; HW-HUAWEI_Y300C/Y300CV100R001C92B168; 480*800; CTC/2.0) AppleWebKit/534.30 (KHTML, like Gecko) Mobile Safari/534.30'   => array('isMobile' => true, 'isTablet' => false)
+            ),
+
+);
diff --git a/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/LG.php b/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/LG.php
new file mode 100644
index 00000000000..1b0bc7dd767
--- /dev/null
+++ b/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/LG.php
@@ -0,0 +1,35 @@
+<?php
+return array(
+    'LG' => array(
+            'Mozilla/5.0 (Linux; U; Android 2.3.6; en-us; LG-VS410PP Build/GRK39F) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 2.2; en-us; LG-P509 Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 MMS/LG-Android-MMS-V1.0/1.2'     => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 2.2.2; pt-br; LG-P350f Build/FRG83G) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 MMS/LG-Android-MMS-V1.0/1.2' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 2.3.3; en-us; LG-P500 Build/GRI40) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 MMS/LG-Android-MMS-V1.0/1.2'   => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 2.3.3; en-us; LS670 Build/GRI40) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                                 => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 2.3.4; ru-ru; LG-E510 Build/GRJ22) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 MMS/LG-Android-MMS-V1.0/1.2'   => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 2.3.4; en-us; VS910 4G Build/GRJ22) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                              => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.0.3; nl-nl; LG-P700 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                            => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.0.3; ko-kr; LG-L160L Build/IML74K) AppleWebkit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                           => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; LG-F160S Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                           => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.0.3; nl-nl; LG-E610v/V10f Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                      => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; LG-E612 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                            => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.1.2; LG-F180K Build/JZO54K) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19'                            => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.2.2; LG-V500 Build/JDQ39B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.59 Safari/537.36'                                     => array('isMobile' => true, 'isTablet' => true),
+            'Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; LG-LW770 Build/IMM76I) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                           => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; Android 4.4.2; LG-V510 Build/KOT49H.L004) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.141 Safari/537.36'                               => array('isMobile' => true, 'isTablet' => true),
+
+            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; LG; LG E-900)'                                                                     => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; LG; LG-C900)'                                                                      => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; LG; LG-C900k)'                                                                     => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; LG; LG-E900)'                                                                      => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; LG; LG-E900; Orange)'                                                              => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; LG; LG-E900h)'                                                                     => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; LG; LG-Optimus 7)'                                                                 => array('isMobile' => true, 'isTablet' => false),
+            // @ref: http://ja.wikipedia.org/wiki/L-06C
+            'Mozilla/5.0 (Linux; U; Android 3.0.1; ja-jp; L-06C Build/HRI66) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13'                                      => array('isMobile' => true, 'isTablet' => true),
+            'Mozilla/5.0 (Linux; U; Android 3.0; en-us; LG-V900 Build/HRI39) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13'                                      => array('isMobile' => true, 'isTablet' => true),
+            'Mozilla/5.0 (Linux; U; Android 4.4.2; en-gb; LG-V700 Build/KOT49I.A1403851714) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.1599.103 Safari/537.36' => array('isMobile' => true, 'isTablet' => true),
+            'Mozilla/5.0 (Linux; Android 4.4.2; LG-V500 Build/KOT49I.V50020d) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.102 Safari/537.36' => array('isMobile' => true, 'isTablet' => true),
+            'Mozilla/5.0 (Linux; U; Android 4.4.2; en-us; LG-V410/V41010d Build/KOT49I.V41010d) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.1599.103 Safari/537.36' => array('isMobile' => true, 'isTablet' => true),
+            ),
+);
diff --git a/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Lava.php b/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Lava.php
new file mode 100644
index 00000000000..95c37868842
--- /dev/null
+++ b/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Lava.php
@@ -0,0 +1,23 @@
+<?php
+return array(
+    'Lava' => array(
+        'Mozilla/5.0 (Linux; U; Android 2.3.6; en-us; Iris 349 Build/MocorDroid2.3.5) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; en-us; iris402+ Build/iris402+) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; en-us; IRIS402 Build/LAVAIRIS402) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.1.2; iris405 Build/LAVAIRIS405) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.1.1; IRIS_501 Build/LAVAIRIS501) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; en-us; iris402e Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; en-us; iris503e Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false),
+        'UCWEB/2.0 (Linux; U; Opera Mini/7.1.32052/30.3697; en-US; IRIS402) U2/1.0.0 UCBrowser/9.1.1.420 Mobile' => array('isMobile' => true, 'isTablet' => false),
+        'UCWEB/2.0 (MIDP-2.0; U; Adr 4.2.2; en-US; IRIS402) U2/1.0.0 UCBrowser/9.1.1.420 U2/1.0.0 Mobile' => array('isMobile' => true, 'isTablet' => false),
+        'UCWEB/2.0 (Linux; U; Opera Mini/7.1.32052/30.3697; en-US; IRIS355) U2/1.0.0 UCBrowser/9.1.1.420 Mobile' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; en-us; iris356 Build/irisIRIS356) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 UCBrowser/9.5.0.360 U3/0.8.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false),
+        'UCWEB/2.0 (Linux; U; Opera Mini/7.1.32052/30.3697; en-US; iris356) U2/1.0.0 UCBrowser/9.0.2.389 Mobile' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.4.2; iris500 Build/iris500) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.4.2; iris700 Build/iris700) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.2.2; QPAD E704 Build/JDQ39) AppleWebKit/537.36 (KHTML like Gecko) Chrome/36.0.1985.131 Safari/537.36' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.2; xx-xx; IvoryS Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.1.2; en-US; E-TAB IVORY Build/E702) AppleWebKit/534.31 (KHTML, like Gecko) UCBrowser/9.3.0.321 U3/0.8.0 Mobile Safari/534.31' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 2.3.4; tr-tr; E-TAB Build/GRJ22) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => true)
+        ),
+);
diff --git a/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Leader.php b/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Leader.php
new file mode 100644
index 00000000000..fbdf4b5cdc1
--- /dev/null
+++ b/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Leader.php
@@ -0,0 +1,6 @@
+<?php
+return array(
+    array(
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; en-au; TBLT10Q-32GB Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true)
+    )
+);
\ No newline at end of file
diff --git a/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Lenovo.php b/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Lenovo.php
new file mode 100644
index 00000000000..d4f6e6fd53e
--- /dev/null
+++ b/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Lenovo.php
@@ -0,0 +1,46 @@
+<?php
+return array(
+    'Lenovo' => array(
+
+        'Mozilla/5.0 (Linux; U; Android 4.0.4; es-es; IdeaTab_A1107 Build/MR1) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                      => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; Android 4.0.3; IdeaTab A2107A-H Build/IML74K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.90 Safari/537.36'                  => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.0.3; en-au; ThinkPad Tablet Build/ThinkPadTablet_A400_03) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
+        'UCWEB/2.0 (Linux; U; Opera Mini/7.1.32052/30.3697; en-US; IdeaTabA1000-G) U2/1.0.0 UCBrowser/9.2.0.419 Mobile'                                               => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; Android 4.1.2; IdeaTabA1000-F Build/JZO54K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Safari/537.36'                   => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; Android 4.2.1; Lenovo A3000-H Build/JOP40D) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.117 Safari/537.36'                   => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; Android 4.2.2; IdeaTab A3000-F Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Safari/537.360'                   => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.1; zh-cn; Lenovo-A3000-H/S100) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.1 Mobile Safari/534.300'                    => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; es-us; IdeaTab A3000-F Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                  => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; Android 4.0.3; IdeaTab A2107A-H Build/IML74K) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166  Safari/535.19'                => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.0.3; de-de; IdeaTab A2107A-H Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.1.1; es-es; IdeaTabA2109A Build/JRO03R) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                   => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.1.1; nl-nl; IdeaTabA2109A Build/JRO03R) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                   => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.0.4; es-es; IdeaTab_A1107 Build/MR1) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.300'                     => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; Android 4.2.2; IdeaTab S6000-H Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.138 Safari/537.36'                   => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; en-gb; IdeaTab S6000-F Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                  => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; Android 4.2.2; Lenovo B8000-F Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Safari/537.36'                    => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.2.2;it-it; Lenovo B8000-F/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.2.2 Mobile Safari/534.30'                 => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; it-it; Lenovo B6000-F/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.2.2 Mobile Safari/534.30'                => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; Android 4.2.2; Lenovo B6000-F Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Safari/537.36'                    => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; Android 4.2.2; IdeaPadA10 Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.166 Safari/537.36' => array(
+            'isMobile' => true, 'isTablet' => true,
+        ),
+        'Mozilla/5.0 (Linux; Android 4.1.2; Ideapad K1 Build/JZO54K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Safari/537.36' => array(
+            'isMobile' => true, 'isTablet' => true,
+        ),
+        'Mozilla/5.0 (Linux; U; Android 2.3.7; de-de; IdeaPad A1 Build/GRK393; CyanogenMod-7) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array(
+            'isMobile' => true, 'isTablet' => true,
+        ),
+        'Mozilla/5.0 (Linux; Android 4.3; Lenovo B8080-H Build/JLS36C) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.141 Safari/537.36' => array(
+            'isMobile' => true, 'isTablet' => true,
+        ),
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; hu-hu; Lenovo A3500-FL Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array(
+            'isMobile' => true, 'isTablet' => true,
+        ),
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; de-de; Lenovo A7600-F Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array(
+            'isMobile' => true, 'isTablet' => true,
+        ),
+        'Mozilla/5.0 (Linux; Android 4.4.2; Lenovo A5500-F Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.131 Safari/537.36' => array('isMobile' => true, 'isTablet' => true),
+        'Lenovo A390 Linux/3.0.13 Android/4.4.2 Release/04.03.2013 Browser/AppleWebKit534.30 Profile/MIDP-2.0 Configuration/CLDC-1.1 Mobile Safari/534.30 Android 4.0.1;' => array('isMobile' => true, 'isTablet' => false),
+    ),
+);
diff --git a/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Mi.php b/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Mi.php
new file mode 100644
index 00000000000..4cd332fcdd2
--- /dev/null
+++ b/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Mi.php
@@ -0,0 +1,22 @@
+<?php
+return array(
+    'Mi' => array(
+        'Mozilla/5.0 (Linux; U; Android 4.2; xx-xx; HM NOTE 1W Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 MobilSafari/534.30 XiaoMi/MiuiBrowser/1.0' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.0.1; zh-cn; MI-ONE Plus Build/ITL41D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 XiaoMi/MiuiBrowser/1.0' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.0.1; zh-cn; MI-ONE Plus Build/ITL41D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 XiaoMi/MiuiBrowser/1.0' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.1.1; zh-cn; MI 2SC Build/JRO03L) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 XiaoMi/MiuiBrowser/1.0' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.1.1; zh-cn; MI 2S Build/JRO03L) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 XiaoMi/MiuiBrowser/1.0' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.1.2; zh-tw; MI 1S Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 XiaoMi/MiuiBrowser/1.0' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.0.8; zh-cn; xiaomi2 Build/GRK39F) AppleWebKit/533.1 (KHTML, like Gecko)Version/4.0 MQQBrowser/4.4 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.1.1; es-es; MI 2A Build/miui.es JRO03L) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 XiaoMi/MiuiBrowser/1.0' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.2.1; zh-cn; MI 3 Build/JOP40D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 XiaoMi/MiuiBrowser/1.0' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.1.2; en-us; MI 1S Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 XiaoMi/MiuiBrowser/1.0' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.3; zh-cn; MI 3W Build/JLS36C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 XiaoMi/MiuiBrowser/1.0' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.3; zh-cn; HM 1SC Build/JLS36C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 XiaoMi/MiuiBrowser/1.0' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.3; en-us; HM 1SW Build/JLS36C) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Mobile Safari/537.36 XiaoMi/MiuiBrowser/2.0.1' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; en-us; HM NOTE 1W Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Mobile Safari/537.36 XiaoMi/MiuiBrowser/2.0.1' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.1.2; en-us; MI-ONE C1 Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 XiaoMi/MiuiBrowser/1.0' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.4.4; en-us; MI 4W Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Mobile Safari/537.36 XiaoMi/MiuiBrowser/2.0.1' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.4; MI PAD Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/33.0.0.0 Safari/537.36' => array('isMobile' => true, 'isTablet' => true),
+    ),
+);
diff --git a/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Microsoft.php b/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Microsoft.php
new file mode 100644
index 00000000000..e46edc0904b
--- /dev/null
+++ b/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Microsoft.php
@@ -0,0 +1,30 @@
+<?php
+return array(
+    'Microsoft' => array(		
+		// Surface tablet
+		'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; ARM; Trident/6.0; Touch; .NET4.0E; .NET4.0C; Tablet PC 2.0)'                => array('isMobile' => true, 'isTablet' => true, 'version' => array('IE' => '10.0', 'Windows NT' => '6.2', 'Trident' => '6.0') ),
+		// Ambiguos.
+		'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; ARM; Trident/6.0)'                                                          => array('isMobile' => true, 'isTablet' => false),
+		// Ambiguos.
+		'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; ARM; Trident/6.0; Touch)'                                                   => array('isMobile' => true, 'isTablet' => false),
+		// http://www.whatismybrowser.com/developers/unknown-user-agent-fragments
+		'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; ARM; Trident/6.0; Touch; ARMBJS)'                                           => array('isMobile' => true, 'isTablet' => true),
+		'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Win64; x64; Trident/6.0; Touch; MASMJS)'                                    => array('isMobile' => false, 'isTablet' => false),
+		
+		// Thanks to Jonathan Donzallaz!
+		// Firefox (nightly) in metro mode on Dell XPS 12
+		'Mozilla/5.0 (Windows NT 6.2; WOW64; rv:25.0) Gecko/20130626 Firefox/25.0'                                                       => array('isMobile' => false, 'isTablet' => false),
+		// Firefox in desktop mode on Dell XPS 12
+		'Mozilla/5.0 (Windows NT 6.2; WOW64; rv:22.0) Gecko/20100101 Firefox/22.0'                                                       => array('isMobile' => false, 'isTablet' => false),
+		// IE10 in metro mode on Dell XPS 12
+		'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Win64; x64; Trident/6.0; MDDCJS)'                                           => array('isMobile' => false, 'isTablet' => false),
+		// IE10 in desktop mode on Dell XPS 12
+		'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0; MDDCJS)'                                                => array('isMobile' => false, 'isTablet' => false),
+		// Opera on Dell XPS 12
+		'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.52 Safari/537.36 OPR/15.0.1147.130' => array('isMobile' => false, 'isTablet' => false),
+		// Chrome on Dell XPS 12
+		'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36'                  => array('isMobile' => false, 'isTablet' => false),
+		// Google search app from Windows Store
+		'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Win64; x64; Trident/6.0; Touch; MDDCJS; WebView/1.0)'                       => array('isMobile' => false, 'isTablet' => false),
+        ),
+);
diff --git a/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Motorola.php b/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Motorola.php
new file mode 100644
index 00000000000..d322660d1f3
--- /dev/null
+++ b/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Motorola.php
@@ -0,0 +1,52 @@
+<?php
+return array(
+    'Motorola' => array(
+        'MOT-W510/08.11.05R MIB/BER2.2 Profile/MIDP-2.0 Configuration/CLDC-1.1 EGE/1.0 UP.Link/6.3.0.0.0'   => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 2.2.2; zh-cn; ME722 Build/MLS2GC_2.6.0) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                       => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 2.3.4; en-us; DROIDX Build/4.5.1_57_DX8-51) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                   => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 2.3.5; en-us; MB855 Build/4.5.1A-1_SUN-254_13) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 2.3.5; es-us; MB526 Build/4.5.2-51_DFL-50) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                    => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 2.3.6; en-ca; MB860 Build/4.5.2A-51_OLL-17.8) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                 => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 2.3.7; en-us; MOT-XT535 Build/V1.540) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                         => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 2.3.7; ko-kr; A853 Build/SHOLS_U2_05.26.3; CyanogenMod-7.1.2) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 3.0; en-us; Xoom Build/HRI39) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13'                                      => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 3.1; en-us; Xoom Build/HMJ25) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13'                                      => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; DROID RAZR 4G Build/6.7.2-180_DHD-16_M4-31) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'   => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; Xoom Build/IMM76L) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                                   => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.0.4; pt-br; XT687 Build/V2.27D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                           => array('isMobile' => true, 'isTablet' => false, 'version' => array('Android' => '4.0.4', 'Webkit' => '534.30', 'Safari' => '4.0'), 'model' => 'XT687' ),
+        'Mozilla/5.0 (Linux; U; Android 4.0.4; es-es; MOT-XT910 Build/6.7.2-180_SPU-19-TA-11.6) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'     => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.1.2; XT910 Build/9.8.2O-124_SPUL-17) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19'                => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.1.2; XT915 Build/2_32A_2031) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.94 Mobile Safari/537.36'                         => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.1.2; XT919 Build/2_290_2017) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.64 Mobile Safari/537.36'                         => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.1.2; XT925 Build/9.8.2Q-50-XT925_VQLM-20) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.90 Mobile Safari/537.36'            => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.1.2; XT907 Build/9.8.1Q-66) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.90 Mobile Safari/537.36'                          => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.1.2; XT901 Build/9.8.2Q-50_SLS-13) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19'                  => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.1.2; DROID BIONIC Build/9.8.2O-72_VZW-22) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Mobile Safari/537.36'            => array('isMobile' => true, 'isTablet' => false),
+
+        'Mozilla/5.0 (Linux; Android 4.4.2; XT1022 Build/KXC20.82-14) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.4.4; en-in; XT1022 Build/KXC21.5-40) AppleWebKit/537.16 (KHTML, like Gecko) Version/4.0 Mobile Safari/537.16'=> array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.4.2; XT1025 Build/KXC20.82-13) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.4.2; XT1052 Build/KLA20.16-2.16.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; en-gb; XT1052 Build/13.9.0Q2.X_83) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.2.2; XT1053 Build/13.9.0Q2.X_61) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.58 Mobile Safari/537.31' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; en-us; XT1053 Build/13.9.0Q2.X_55) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.2.2; XT1056 Build/13.9.0Q2.X-116-MX-17-6-2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.64 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.4.2; XT1031 Build/KXB20.9-1.10-1.18-1.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.141 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.4.4; XT1032 Build/KXB21.14-L1.40) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.141 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.4.2; de-de; XT1032 Build/KLB20.9-1.10-1.24-1.1) AppleWebKit/537.16 (KHTML, like Gecko) Version/4.0 Mobile Safari/537.16' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.4.2; XT1034 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.3; en-us; XT1034 Build/14.10.0Q3.X-84-16) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.3; XT1035 Build/14.10.0Q3.X-23) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.59 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.4.3; XT1039 Build/KXB21.14-L1.31) AppleWebKit/537.36 (KHTML like Gecko) Chrome/35.0.1916.141 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.1.2; en-us; XT919 Build/2_290_2002) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.1.2; XT919 Build/2_290_2004) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.90 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.1.2; en-us; XT920 Build/2_290_2014) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.1.2; XT920 Build/2_310_2014) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.0.4; XT905 Build/7.7.1Q_GCIRD-16) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.169 Mobile Safari/537.22' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.4.2; XT908 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; XT897 Build/7.7.1Q-6_SPR-ASANTI_LE-18) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 5.0.2; XT1032 Build/LXB22.46-28.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.92 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 5.1.1; Moto E Build/LMY47V) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/39.0.0.0 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.4.4; XT1021 Build/KTU84Q) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/33.0.0.0 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+        ),
+);
diff --git a/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Nokia.php b/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Nokia.php
new file mode 100644
index 00000000000..99cf9d9bb62
--- /dev/null
+++ b/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Nokia.php
@@ -0,0 +1,84 @@
+<?php
+return array(
+    'Nokia' => array(
+		'Nokia200/2.0 (12.04) Profile/MIDP-2.1 Configuration/CLDC-1.1 UCWEB/2.0 (Java; U; MIDP-2.0; en-US; nokia200) U2/1.0.0 UCBrowser/8.9.0.251 U2/1.0.0 Mobile UNTRUSTED/1.0'                                      => array('isMobile' => true, 'isTablet' => false),
+		'Nokia6303iclassic/5.0 (06.61) Profile/MIDP-2.1 Configuration/CLDC-1.1 Mozilla/5.0 AppleWebKit/420+ (KHTML, like Gecko) Safari/420+'                                                                          => array('isMobile' => true, 'isTablet' => false),
+		'nokian73-1/UC Browser7.8.0.95/69/400 UNTRUSTED/1.0'                                                                                                                                                          => array('isMobile' => true, 'isTablet' => false),
+		'Nokia2760/2.0 (06.82) Profile/MIDP-2.1 Configuration/CLDC-1.1'                                                                                                                                               => array('isMobile' => true, 'isTablet' => false),
+		'Nokia3650/1.0 SymbianOS/6.1 Series60/1.2 Profile/MIDP-1.0 Configuration/CLDC-1.0'                                                                                                                            => array('isMobile' => true, 'isTablet' => false),
+		'NokiaN70-1/5.0737.3.0.1 Series60/2.8 Profile/MIDP-2.0 Configuration/CLDC-1.1/UC Browser7.8.0.95/27/352'                                                                                                      => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (S60V3; U; ru; NokiaN73) AppleWebKit/530.13 (KHTML, like Gecko) UCBrowser/8.6.0.199/28/444/UCWEB Mobile'                                                                                         => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (S60V3; U; ru; NokiaC5-00.2)/UC Browser8.5.0.183/28/444/UCWEB Mobile'                                                                                                                            => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (S60V3; U; ru; NokiaC5-00.2) AppleWebKit/530.13 (KHTML, like Gecko) UCBrowser/8.7.0.218/28/352/UCWEB Mobile'                                                                                     => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (Series40; NokiaC3-00/08.63; Profile/MIDP-2.1 Configuration/CLDC-1.1) Gecko/20100401 S40OviBrowser/2.2.0.0.33'                                                                                   => array('isMobile' => true, 'isTablet' => false),
+		'Opera/9.80 (Series 60; Opera Mini/7.0.31380/28.2725; U; es) Presto/2.8.119 Version/11.10'                                                                                                                    => array('isMobile' => true, 'isTablet' => false, 'version' => array('Opera Mini' => '7.0.31380', 'Presto' => '2.8.119')),
+		'Mozilla/5.0 (Symbian/3; Series60/5.2 NokiaC7-00/025.007; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/533.4 (KHTML, like Gecko) NokiaBrowser/7.3.1.37 Mobile Safari/533.4 3gpp-gba'                 => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (Symbian/3; Series60/5.2 NokiaX7-00/022.014; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/533.4 (KHTML, like Gecko) NokiaBrowser/7.3.1.37 Mobile Safari/533.4 3gpp-gba'                 => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (Symbian/3; Series60/5.3 NokiaE6-00/111.140.0058; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/535.1 (KHTML, like Gecko) NokiaBrowser/8.3.1.4 Mobile Safari/535.1 3gpp-gba'             => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (Symbian/3; Series60/5.3 NokiaC6-01/111.040.1511; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/535.1 (KHTML, like Gecko) NokiaBrowser/8.3.1.4 Mobile Safari/535.1'                      => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (Symbian/3; Series60/5.3 NokiaC6-01; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/533.4 (KHTML, like Gecko) NokiaBrowser/7.4.2.6 Mobile Safari/533.4 3gpp-gba'                          => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (Symbian/3; Series60/5.3 Nokia700/111.030.0609; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/533.4 (KHTML, like Gecko) NokiaBrowser/7.4.2.6 Mobile Safari/533.4 3gpp-gba'               => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (Symbian/3; Series60/5.3 Nokia700/111.020.0308; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/533.4 (KHTML, like Gecko) NokiaBrowser/7.4.1.14 Mobile Safari/533.4 3gpp-gba'              => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (Symbian/3; Series60/5.3 NokiaN8-00/111.040.1511; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/535.1 (KHTML, like Gecko) NokiaBrowser/8.3.1.4 Mobile Safari/535.1 3gpp-gba'             => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (Symbian/3; Series60/5.3 Nokia701/111.030.0609; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/533.4 (KHTML, like Gecko) NokiaBrowser/7.4.2.6 Mobile Safari/533.4 3gpp-gba'               => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 Nokia6120c/3.83; Profile/MIDP-2.0 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413'                                                       => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 Nokia6120ci/7.02; Profile/MIDP-2.0 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413'                                                      => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 Nokia6120c/7.10; Profile/MIDP-2.0 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413'                                                       => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 NokiaE66-1/510.21.009; Profile/MIDP-2.0 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413'                                                 => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 NokiaE71-1/110.07.127; Profile/MIDP-2.0 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413'                                                 => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 NokiaN95-3/20.2.011 Profile/MIDP-2.0 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413'                                                    => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 NokiaE51-1/200.34.36; Profile/MIDP-2.0 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413'                                                  => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 NokiaE63-1/500.21.009; Profile/MIDP-2.0 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413'                                                 => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 NokiaN82/10.0.046; Profile/MIDP-2.0 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413'                                                     => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (SymbianOS/9.3; Series60/3.2 NokiaE52-1/052.003; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/525 (KHTML, like Gecko) Version/3.0 BrowserNG/7.2.6.2'                                    => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (SymbianOS/9.3; Series60/3.2 NokiaE52-1/@version@; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/533.4 (KHTML, like Gecko) NokiaBrowser/7.3.1.26 Mobile Safari/533.4 3gpp-gba'           => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (SymbianOS/9.3; Series60/3.2 NokiaC5-00/031.022; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/525 (KHTML, like Gecko) Version/3.0 BrowserNG/7.2.3.1'                                    => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (SymbianOS/9.3; Series60/3.2 NokiaC5-00.2/081.003; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/533.4 (KHTML, like Gecko) NokiaBrowser/7.3.1.32 Mobile Safari/533.4 3gpp-gba'           => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (SymbianOS/9.3; U; Series60/3.2 NokiaN79-1/32.001; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413'                                                     => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (SymbianOS/9.3; U; Series60/3.2 Nokia6220c-1/06.101; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413'                                                   => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (SymbianOS/9.3; Series60/3.2 NokiaC5-00.2/071.003; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/533.4 (KHTML, like Gecko) NokiaBrowser/7.3.1.26 Mobile Safari/533.4 3gpp-gba'           => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (SymbianOS/9.3; Series60/3.2 NokiaE72-1/081.003; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/533.4 (KHTML, like Gecko) NokiaBrowser/7.3.1.32 Mobile Safari/533.4 3gpp-gba'             => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (SymbianOS/9.3; Series60/3.2 NokiaC5-00/061.005; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/525 (KHTML, like Gecko) Version/3.0 BrowserNG/7.2.6.2 3gpp-gba'                           => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (SymbianOS/9.4; Series60/5.0 NokiaX6-00/40.0.002; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/533.4 (KHTML, like Gecko) NokiaBrowser/7.3.1.33 Mobile Safari/533.4 3gpp-gb'             => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (SymbianOS/9.4; Series60/5.0 Nokia5800d-1/60.0.003; Profile/MIDP-2.1 Configuration/CLDC-1.1 AppleWebKit/533.4 (KHTML, like Gecko) NokiaBrowser/7.3.1.33 Mobile Safari/533.4 3gpp-gba'            => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (SymbianOS/9.4; Series60/5.0 NokiaC5-03/12.0.023; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/525 (KHTML, like Gecko) Version/3.0 BrowserNG/7.2.6.9 3gpp-gba'                          => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (SymbianOS/9.4; Series60/5.0 Nokia5228/40.1.003; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/525 (KHTML, like Gecko) Version/3.0 BrowserNG/7.2.7.4 3gpp-gba'                           => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (SymbianOS/9.4; Series60/5.0 Nokia5230/51.0.002; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/533.4 (KHTML, like Gecko) NokiaBrowser/7.3.1.33 Mobile Safari/533.4 3gpp-gba'             => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (SymbianOS/9.4; Series60/5.0 Nokia5530c-2/32.0.007; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/525 (KHTML, like Gecko) Version/3.0 BrowserNG/7.2.6.9 3gpp-gba'                        => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (SymbianOS/9.4; Series60/5.0 NokiaN97-1/21.0.045; Profile/MIDP-2.1 Configuration/CLDC-1.1) AppleWebKit/525 (KHTML, like Gecko) BrowserNG/7.1.4'                                                  => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (SymbianOS/9.4; Series60/5.0 NokiaN97-4/30.0.004; Profile/MIDP-2.1 Configuration/CLDC-1.1) AppleWebKit/533.4 (KHTML, like Gecko) NokiaBrowser/7.3.1.28 3gpp-gba'                                 => array('isMobile' => true, 'isTablet' => false, 'version' => array('Symbian' => '9.4', 'Webkit' => '533.4', 'NokiaBrowser' => '7.3.1.28'), 'model' => 'NokiaN97-4' ),		
+		'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; Nokia; 7 Mozart T8698)'                                                                                                  => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; 710)'                                                                                                             => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; Nokia; 800)'                                                                                                             => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; Nokia; 800C)'                                                                                                            => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; Nokia; 800C; Orange)'                                                                                                    => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; Nokia; 900)'                                                                                                             => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; Nokia; HD7 T9292)'                                                                                                       => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; LG E-900)'                                                                                                        => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Lumia 610)'                                                                                                       => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Lumia 710)'                                                                                                       => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Lumia 710; Orange)'                                                                                               => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Lumia 710; T-Mobile)'                                                                                             => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Lumia 710; Vodafone)'                                                                                             => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Lumia 800)'                                                                                                       => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Lumia 800) UP.Link/5.1.2.6'                                                                                       => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Lumia 800; Orange)'                                                                                               => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Lumia 800; SFR)'                                                                                                  => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Lumia 800; T-Mobile)'                                                                                             => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Lumia 800; vodafone)'                                                                                             => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; Nokia; Lumia 800c)'                                                                                                      => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Lumia 900)'                                                                                                       => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; Nokia; Lumia 920)'                                                                                                       => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 920)'                                                                                            => array('isMobile' => true, 'isTablet' => false, 'version' => array('IE' => '10.0', 'Windows Phone OS' => '8.0', 'Trident' => '6.0'), 'model' => 'Lumia 920' ),
+		'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; Nokia; lumia800)'                                                                                                        => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Nokia 610)'                                                                                                       => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Nokia 710)'                                                                                                       => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Nokia 800)'                                                                                                       => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Nokia 800C)'                                                                                                      => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Nokia 900)'                                                                                                       => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; Nokia; Nokia)'                                                                                                           => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; Nokia; SGH-i917)'                                                                                                        => array('isMobile' => true, 'isTablet' => false),
+		'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; Nokia; TITAN X310e)'                                                                                                     => array('isMobile' => true, 'isTablet' => false, 'version' => array('Windows Phone OS' => '7.5', 'Trident' => '5.0'), 'model' => 'TITAN X310e' ),
+		'Mozilla/5.0 (Mobile; Windows Phone 8.1; Android 4.0; ARM; Trident/7.0; Touch; rv:11.0; IEMobile/11.0; NOKIA; Lumia 520) like iPhone OS 7_0_3 Mac OS X AppleWebKit/537 (KHTML, like Gecko) Mobile Safari/537' => array('isMobile' => true, 'isTablet' => false),
+		),
+);
diff --git a/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Onda.php b/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Onda.php
new file mode 100644
index 00000000000..3887f5d8018
--- /dev/null
+++ b/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Onda.php
@@ -0,0 +1,12 @@
+<?php
+return array(
+    'Onda' => array(
+        'Mozilla/5.0 (Linux; Android 4.2.2; V975i Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.108 Safari/537.36' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Android; Tablet; rv:37.0) Gecko/37.0 Firefox/37.0' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; Android 4.4.2; V975m Core4 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.141 Safari/537.36' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.3; fr-fr; V975m Core4 Build/JSS15J) AppleWebKit/537.16 (KHTML, like Gecko) Version/4.0 Safari/537.16' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; Android 4.3; V975m Core4 Build/JSS15J) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.96 Safari/537.36' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; Android 4.4.2; V812 Core4 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.93 Safari/537.36' => array('isMobile' => true, 'isTablet' => true),
+    )
+
+);
\ No newline at end of file
diff --git a/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Others.php b/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Others.php
new file mode 100644
index 00000000000..56d64079ca2
--- /dev/null
+++ b/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Others.php
@@ -0,0 +1,531 @@
+<?php
+return array(
+
+    'AdvanDigital' => array(
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; en-us; E1C Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; id-id; T3C Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
+        ),
+
+    'Ainol' => array(
+
+        'Mozilla/5.0 (Linux; U; Android 2.3.4; en-us; Ainol Novo8 Advanced Build/GRJ22) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; Android 4.1.1; Novo10 Hero Build/20121115) AppleWebKit/535.19 (KHTML like Gecko) Chrome/18.0.1025.166 Safari/535.19' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; es-es; novo9-Spark Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
+
+        ),
+    'AllFine' => array(
+        'Mozilla/5.0 (Linux; U; Android 4.1.1; en-gb; FINE7 GENIUS Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
+        ),
+
+    'Amoi' => array(
+        'Amoi 8512/R18.0 NF-Browser/3.3' => array('isMobile' => true, 'isTablet' => false, 'model' => '8512'),
+        ),
+
+    'Arnova' => array(
+        'Mozilla/5.0 (Linux; U; Android 4.0.3; fr-fr; AN9G2I Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
+    ),
+
+    'AudioSonic' => array(
+        'Mozilla/5.0 (Linux; U; Android 4.1.1; en-au; T-17B Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
+        ),
+
+
+    'Blaupunkt' => array(
+        'Mozilla/5.0 (Linux; U; Android 4.1.1; de-de; Endeavour 800NG Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array(
+            'isMobile' => true, 'isTablet' => true,
+        ),
+    ),
+
+    'Broncho' => array(
+
+        'Mozilla/5.0 (Linux; U; Android 2.2; es-es; Broncho N701 Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'    => array('isMobile' => true, 'isTablet' => true),
+
+        ),
+
+    // @ref: http://www.bqreaders.com/gb/tablets-prices-sale.html
+    'bq' => array(
+        'Mozilla/5.0 (Linux; U; Android 4.0.4; es-es; bq Livingstone 2 Build/1.1.7 20121018-10:33) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.0.4; es-es; bq Edison Build/1.1.10-1015 20121230-18:00) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'  => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; Android 4.0.3; Maxwell Lite Build/v1.0.0.ICS.maxwell.20120920) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.0.4; zh-tw; bq Maxwell Plus Build/1.0.0 20120913-10:39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; Android 4.4.2; Aquaris E10 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.93 Safari/537.36' => array('isMobile' => true, 'isTablet' => true),
+        ),
+
+    'Captiva' => array(
+        'Opera/9.80 (X11; Linux zvav; U; de) Presto/2.8.119 Version/11.10 Mozilla/5.0 (Linux; U; Android 4.1.1; de-de; CAPTIVA PAD 10.1 Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array(
+            'isMobile' => true, 'isTablet' => true,
+        ),
+    ),
+
+    'Casio' => array(
+            'Mozilla/5.0 (Linux; U; Android 2.3.3; en-us; C771 Build/C771M120) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'               => array('isMobile' => true, 'isTablet' => false),
+            ),
+
+    'ChangJia' => array(
+
+        'Mozilla/5.0 (Linux; U; Android 4.0.4; pt-br; TPC97113 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; TPC7102 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true)
+
+        ),
+
+
+    'Celkon' => array(
+        'Mozilla/5.0 (Linux; U; Android 4.1.2; en-us; Celkon CT 910+ Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.0.4; en-in; CT-1 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
+        'CELKON.C64/R2AE SEMC-Browser/4.0.3 Profile/MIDP-2.0 Configuration/CLDC-1.1' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; en-us; Celkon A125 Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 2.3.6; en-US; Celkon*A86 Build/Celkon_A86) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1 UCBrowser/8.7.0.315 Mobile' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; en-us; Celkon A.R 40 Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false),
+        ),
+
+    // @ref: http://www.cobyusa.com/?p=pcat&pcat_id=3001
+    'Coby' => array(
+            'Mozilla/5.0 (Linux; U; Android 2.2; en-us; MID7010 Build/FRF85B) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => true),
+            'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; MID7048 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'    => array('isMobile' => true, 'isTablet' => true),
+            'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; MID8042 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'    => array('isMobile' => true, 'isTablet' => true),
+        ),
+
+    'Concorde' => array(
+        'Mozilla/5.0 (Linux; U; Android 4.1.1; hu-hu; ConCorde Tab T10 Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.1.1; hu-hu; ConCorde tab PLAY Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
+        ),
+
+    'Cresta' => array(
+        'Mozilla/5.0 (Linux; U; Android 4.0.4; nl-nl; CRESTA.CTP888 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
+        ),
+
+    'Cube' => array(
+            'Mozilla/5.0 (Linux; U; Android 4.0.3; ru-ru; CUBE U9GT 2 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'               => array('isMobile' => true, 'isTablet' => true),
+    ),
+
+    'Danew' => array(
+
+        'Mozilla/5.0 (Linux; U; Android 4.0.3; es-es; Dslide 700 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array( 'isMobile' => true, 'isTablet' => true, 'version' => array( 'Android' => '4.0.3', 'Build' => 'IML74K', 'Webkit' => '534.30', 'Safari' => '4.0' ), 'model' => 'Dslide 700' )
+
+        ),
+
+    'DanyTech' => array(
+        'Mozilla/5.0 (Linux; Android 4.2.2; Genius Tab Q4 Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.59 Safari/537.36' => array('isMobile' => true, 'isTablet' => true),
+        ),
+
+
+
+    'Digma' => array(
+            'Mozilla/5.0 (Linux; U; Android 4.0.3; ru-ru; iDx10 3G Build/ICS.b02ref.20120331) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
+        ),
+
+    'DPS' => array(
+        'Mozilla/5.0 (Linux; U; Android 4.1.1; en-us; DPS Dream 9 Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
+        ),
+
+    'ECS' => array(
+        'Mozilla/5.0 (Linux; U; Android 4.0.4; it-it; TM105A Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.0.4', 'Build' => 'IMM76D', 'Webkit' => '534.30'))
+        ),
+
+    'Eboda' => array(
+            'Mozilla/5.0 (Linux; U; Android 4.1.1; ro-ro; E-Boda Supreme Dual Core X190 Build/JRO03C) AppleWebKit/534.30 (KHTML like Gecko) Version/4.0 Safari/534.30'                       => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.1.1', 'Webkit' => '534.30', 'Safari' => '4.0')),
+            'Mozilla/5.0 (Linux; U; Android 4.1.1; ro-ro; E-Boda Essential A160 Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                              => array('isMobile' => true, 'isTablet' => true),
+            'Mozilla/5.0 (Linux; Android 4.0.3; E-Boda Supreme X80 Dual Core Build/ICS.g12refM806A1YBD.20120925) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166  Safari/535.19' => array('isMobile' => true, 'isTablet' => true),
+            'Mozilla/5.0 (Linux; U; Android 4.1.1; ro-ro; E-boda essential smile Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                             => array('isMobile' => true, 'isTablet' => true),
+            'Mozilla/5.0 (Linux; U; Android 4.1.1; ro-ro; E-Boda Supreme X80 Dual Core Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                       => array('isMobile' => true, 'isTablet' => true),
+            'Mozilla/5.0 (Linux; U; Android 4.1.1; ro-ro; E-Boda Supreme XL200IPS Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                            => array('isMobile' => true, 'isTablet' => true),
+        ),
+
+    'Evolio' => array(
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; en-us; Evolio X7 Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.1.1; ro-ro; ARIA_Mini_wifi Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
+        ),
+
+    'Fly'   => array(
+            'Mozilla/5.0 (Linux; U; Android 4.0.4; ru-ru; Fly IQ440; Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'         => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 2.3.6; ru-ru; FLY IQ256 Build/GRK39F) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'            => array('isMobile' => true, 'isTablet' => false),
+        ),
+
+    'Fujitsu' => array(
+
+        'Mozilla/5.0 (Linux; U; Android 4.0.3; ja-jp; F-10D Build/V21R48A) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.0.3', 'Build' => 'V21R48A', 'Webkit' => '534.30', 'Safari' => '4.0') ),
+        'Mozilla/5.0 (Linux; U; Android 4.0.3; ru-ru; M532 Build/IML74K) AppleWebKit/534.30 (KHTML like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.0.3', 'Build' => 'IML74K', 'Webkit' => '534.30', 'Safari' => '4.0') ),
+
+        ),
+
+    'FX2' => array(
+
+            'Mozilla/5.0 (Linux; U; Android 4.2.2; de-de; FX2 PAD7 RK Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
+
+        ),
+
+    // @ref: http://www.galapad.net/product.html
+    'Galapad' => array(
+
+        'Mozilla/5.0 (Linux; U; Android 4.1.1; zh-tw; G1 Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.1.1', 'Webkit' => '534.30', 'Safari' => '4.0', 'Build' => 'JRO03C') ),
+
+        ),
+
+    'GoClever' => array(
+        'Mozilla/5.0 (Linux; U; Android 4.0.3; el-gr; GOCLEVER TAB A103 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'   => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 2.3.4; zh-tw; A7GOCLEVER Build/GRJ22) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'      => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; Android 4.0.4; GOCLEVER TAB A104 Build/IMM76D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19'    => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.0.4; cs-cz; GOCLEVER TAB A93.2 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'  => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.0.3; sk-sk; GOCLEVER TAB A971 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'   => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.0.4; lv-lv; GOCLEVER TAB A972BK Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.0.4; fr-fr; GOCLEVER TAB A104.2 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.0.3; pt-pt; GOCLEVER TAB T76 Build/MID) AppleWebKit/534.30 (KHTML like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
+        ),
+
+    'GU' => array(
+
+        'Mozilla/5.0 (Linux; U; Android 4.0.4; vi-vn; TX-A1301 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.0.4', 'Build' => 'IMM76D', 'Webkit' => '534.30', 'Safari' => '4.0')),
+        'Mozilla/5.0 (Linux; U; Android 4.0.3; da-dk; Q702 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.0.3', 'Build' => 'IML74K', 'Webkit' => '534.30', 'Safari' => '4.0')),
+
+        ),
+
+    'HCL' => array(
+        'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; U1 Build/HCL ME Tablet U1) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; U1 Build/HCL ME Tablet U1) AppleWebKit/534.30 (KHTML like Gecko) Version/4.0 Mobile Safari/534.30'  => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; Android 4.1.2; Connect-3G-2.0 Build/HCL) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.72 Safari/537.36'           => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 2.3.3; pt-br; X1 Build/HCL ME Tablet X1) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'   => array('isMobile' => true, 'isTablet' => true),
+        ),
+
+
+
+    'Hudl'  => array(
+        'Mozilla/5.0 (Linux; Android 4.2.2; Hudl HT7S3 Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.82 Safari/537.36' => array('isMobile' => true, 'isTablet' => true),
+        ),
+
+
+    'Iconbit' => array(
+        'Mozilla/5.0 (Linux; Android 4.1.1; NT-3702M Build/JRO03C) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.72 Safari/537.36 OPR/16.0.1212.65583' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.1.1; ru-ru; NetTAB SPACE II Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
+        ),
+
+    'iJoy' => array('Mozilla/5.0 (Linux; U; Android 4.1.1; fr-fr; Tablet Planet II-v3 Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true)),
+
+    'Intenso' => array(
+        'Mozilla/5.0 (Linux; U; Android 4.1.1.;de-de; INM8002KP Build/JR003H) AppleWebKit/534.30 (KHTML, like Gecko)Version/4.0 Safari/534.30' => array(
+            'isMobile' => true, 'isTablet' => true, 'version' => array(
+                'Android' => '4.1.1.', 'Webkit' => '534.30', 'Safari' => '4.0'
+            ),
+        ),
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; de-de; TAB1004 Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array(
+            'isMobile' => true, 'isTablet' => true,
+        ),
+    ),
+
+    'INQ' => array(
+        'INQ1/R3.9.12 NF-Browser/3.5' => array('isMobile' => true, 'isTablet' => false, 'model' => 'INQ1'),
+        ),
+
+    // @todo: Test this
+    'Intex' => array(
+        'Mozilla/5.0 (Linux; U; Android 2.3; en-US; Cloud_X2 Build/MocorDroid4.0.1) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1 UCBrowser/9.2.0.419 Mobile' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; en-us; Cloud Y2 Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; en-in; Cloud X5 Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false),
+        ),
+
+    'IRU'   => array(
+
+        'Mozilla/5.0 (Linux; U; Android 4.1.1; ru-ru; M702pro Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
+
+        ),
+
+    'JXD' => array('Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; F3000 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true)
+        ),
+
+    'Karbonn' => array(
+        'Mozilla/5.0 (Linux; Android 4.1.1; ST10 Build/JRO03C) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166  Safari/535.19' => array('isMobile' => true, 'isTablet' => true),
+        ),
+
+    'Kobo' => array(
+            'Mozilla/5.0 (Linux; U; Android 2.0; en-us;) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 (Kobo Touch)' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '2.0', 'Webkit' => '533.1', 'Safari' => '4.0') ),
+        ),
+
+    'Megafon' => array(
+        'Mozilla/5.0 (Linux; U; Android 2.3.5; ru-ru; MegaFon V9 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; Android 4.1.1; MT7A Build/JRO03C) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.58 Safari/537.31' => array('isMobile' => true, 'isTablet' => true),
+        ),
+
+    'MediaTek' => array(
+        'Mozilla/5.0 (Linux; U; Android 4.1.1; fr-fr; MT8377 Build/JRO03C) AppleWebKit/534.30 (KHTML like Gecko) Version/4.0 Safari/534.30/4.05d.1002.m7' => array('isMobile' => true, 'isTablet' => true),
+        ),
+
+    'Micromax' => array(
+
+        'Mozilla/5.0 (Linux; Android 4.1.1; Micromax A110 Build/JRO03C) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.169 Mobile Safari/537.22' => array('isMobile' => true, 'isTablet' => false, 'version' => array('Android' => '4.1.1', 'Build' => 'JRO03C', 'Webkit' => '537.22', 'Chrome' => '25.0.1364.169') ),
+        'Mozilla/5.0 (Linux; U; Android 4.0; xx-xx; Micromax P250(Funbook) Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Webkit' => '534.30', 'Android' => '4.0', 'Build' => 'IMM76D', 'Safari' => '4.0') ),
+
+        ),
+
+    'Modecom' => array(
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; pl-pl; FreeTAB 1014 IPS X4+ Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
+        ),
+
+    'MSI' => array(
+            'Mozilla/5.0 (Linux; U; Android 2.3.5; el-gr; MSI Enjoy 10 Plus Build/1.2) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => true),
+        ),
+
+    // @ref: https://www.nabitablet.com/
+    'Nabi'  => array(
+        'Mozilla/5.0 (Linux; U; Android 2.2.1; en-us; NABI-A Build/MASTER) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => true),
+        ),
+
+    'NEC'   => array(
+        // @ref: http://www.n-keitai.com/n-08d/?from=mediasnet
+        // @ref: http://devlog.dcm-gate.com/2012/03/medias-tab-n-06duseragnet.html
+        // @ref: http://keitaiall.jp/N-08D.html aka MEDIAS TAB
+        'Mozilla/5.0 (Linux; U; Android 4.0.4; ja-jp; N-08D Build/A5001911) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android AAA; BBB; N-06D Build/CCC) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'     => array('isMobile' => true, 'isTablet' => true),
+
+        ),
+
+    'Nexo' => array(
+        'Mozilla/5.0 (Linux; U; Android 4.1.1; pl-pl; NEXO 3G Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30 ACHEETAHI/2100050074' => array('isMobile' => true, 'isTablet' => true),
+        ),
+
+    'Nibiru' => array(
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; zh-tw; Nibiru H1 Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 XiaoMi/MiuiBrowser/1.0' => array('isMobile' => true, 'isTablet' => false),
+        ),
+
+    'Nook' => array(
+
+        'Mozilla/5.0 (Linux; U; Android 2.2.1; en-us; NOOK BNRV200 Build/ERD79 1.4.3) Apple WebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                   => array( 'isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '2.2.1', 'Webkit' => '533.1', 'Safari' => '4.0') ),
+        'Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; NOOK BNTV400 Build/ICS) AppleWebKit/534.30 (KHTML like Gecko) Version/4.0 Safari/534.30'                                  => array( 'isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.0.4', 'Build' => 'ICS', 'Webkit' => '534.30', 'Safari' => '4.0') ),
+        'Mozilla/5.0 (Linux; Android 4.0.4; BNTV600 Build/IMM76L) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.94 Safari/537.36 Hughes-PFB/CID5391275.AID1376709964' => array( 'isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.0.4', 'Build' => 'IMM76L', 'Webkit' => '537.36', 'Chrome' => '28.0.1500.94') ),
+
+        ),
+
+    'Oneplus' => array(
+        'Mozilla/5.0 (Linux; Android 4.3; A0001 Build/JLS36C) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.141 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.3; xx-xx; A0001 Build/JLS36C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false),
+        ),
+
+    'Odys' => array(
+        'Mozilla/5.0 (Linux; U; Android 4.0.3; de-de; LOOX Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                                             => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.0.3; de-de; LOOX Plus Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                                        => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.1.X; de-de; XENO10 Build/ODYS XENO 10) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                                     => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 2.2.2; de-de; ODYS Space Build/I700T_P7_T04_TSCL_FT_R_0_03_1010_110623) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.0.3; de-de; ODYS-EVO Build/ODYS-EVO) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array(
+            'isMobile' => true, 'isTablet' => true
+        ),
+        'Mozilla/5.0 (Linux; U; Android 4.1.X; de-de; Xelio 10 Pro Build/ODYS_Xelio) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array(
+            'isMobile' => true, 'isTablet' => true
+        ),
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; de-de; NEO_QUAD10 Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array(
+            'isMobile' => true, 'isTablet' => true
+        ),
+        'Mozilla/5.0 (Linux; U; Android 4.1.X; de-de; Xelio10Pro Build/ODYS_Xelio) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array(
+            'isMobile' => true, 'isTablet' => true,
+        ),
+        'Mozilla/5.0 (Linux; U; Android 2.3.1; en-us; ODYS-Xpress Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array(
+            'isMobile' => true, 'isTablet' => true,
+        ),
+        'Mozilla/5.0 (Linux; U; Android 4.0.4; de-de; XELIO7PHONETAB Build/IMM76I) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array(
+            'isMobile' => true, 'isTablet' => true,
+        ),
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; de-de; XELIO10EXTREME Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array(
+            'isMobile' => true, 'isTablet' => true,
+        ),
+        'Mozilla/5.0 (Linux; U; Android 4.0.4; de-de; XELIO Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30 Mobile UCBrowser/3.2.1.441' => array(
+            'isMobile' => true, 'isTablet' => true,
+        ),
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; de-de; XELIOPT2 Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array(
+            'isMobile' => true, 'isTablet' => true,
+        ),
+        'Mozilla/5.0 (Linux; U; Android 4.1.1; nl-nl; ODYS-NOON Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
+    ),
+
+    'OverMax' => array(
+            'OV-SteelCore(B) Mozilla/5.0 (iPad; CPU OS 5_0_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A405 Safari/7534.48.3' => array('isMobile' => true, 'isTablet' => true),
+            'Mozilla/5.0 (Linux; U; Android 4.0.4; pl-pl; OV-SteelCore Build/ICS.g08refem611.20121010) AppleWebKit/534.30 (KHTML like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
+        ),
+
+    'YONESTablet' => array(
+        'Mozilla/5.0 (Linux; U; Android 4.0.4; pl-pl; BC1077 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
+        ),
+
+    // @todo: Research http://www.pantech.com/
+    'Pantech' => array(
+        'PANTECH-C790/JAUS08312009 Browser/Obigo/Q05A Profile/MIDP-2.0 Configuration/CLDC-1.1'                                                         => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 2.2.1; ko-kr; SKY IM-A600S Build/FRG83) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 2.3.3; en-us; ADR8995 4G Build/GRI40) AppleWebKit/533.1 (KHTML like Gecko) Version/4.0 Mobile Safari/533.1'    => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 3.2.1; en-us; PantechP4100 Build/HTK75) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13' => array(
+            'isMobile' => true, 'isTablet' => true),
+        ),
+
+    'Philips' => array(
+        'Mozilla/5.0 (Linux; Android 4.0.4; Philips W336 Build/IMM76D) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.45 Mobile Safari/537.36 OPR/15.0.1162.59192' => array('isMobile' => true, 'isTablet' => false),
+        'Philips_T3500/V1 Linux/3.4.5 Android/4.2.2 Release/03.26.2013 Browser/AppleWebKit534.30 Mobile Safari/534.30 MBBMS/2.2 System/Android 4.2.2;'                            => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.2.2; Philips W3568 Build/Philips_W3568) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19'                  => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.0.4; ru-ru; Philips W832 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                         => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux;U;Android 4.2.2;es-us;Philips S388 Build/JDQ39) AppleWebkit/534.30 (HTML,like Gecko) Version/4.0 Mobile Safari/534.30;'                               => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.0.4; Philips W536 Build/IMM76D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19'                          => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux;U;Android 4.2.2;es-us;Philips S308 Build/JDQ39) AppleWebkit/534.30 (HTML,like Gecko) Version/4.0 Mobile Safari/534.30;'                               => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.1.2; ru-ru; Philips-W8500 Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                        => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; ru; Philips W8510 Build/JDQ39) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 UCBrowser/9.8.9.457 U3/0.8.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; ru-RU; Philips W3568 Build/Philips W3568) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.1 Mobile Safari/534.30;'                => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.2.2; Philips S388 Build/JDQ39) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19'                           => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.1.1; Build/PI3100.00.00.24) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.141 Safari/537.36'                                     => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; W732 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                                 => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.2.1; PI7100_93 Build/PI7100.C.00.00.11) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.92 Safari/537.36' => array('isMobile' => true, 'isTablet' => true),
+        ),
+
+    'PocketBook' => array(
+        'Mozilla/5.0 (Linux; U; Android 2.3.7; en-ru; PocketBook A10 3G Build/GRJ90) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => true),
+        ),
+
+    'PointOfView' => array(
+        'Mozilla/5.0 (Linux; U; Android 4.1.1; en-us; POV_TAB-PROTAB30-IPS10 Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
+        ),
+
+    'Praktica' => array(
+        'Mozilla/5.0 (Linux; Android 4.0.4; TP750 3GGSM Build/IMM76I) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.93 Safari/537.36' => array('isMobile' => true, 'isTablet' => true)
+    ),
+    
+    'PROSCAN' => array(
+        'Mozilla/5.0 (Linux; U; Android 4.1.1; en-us; PLT8088 Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.1.1', 'Build' => 'JRO03H', 'Webkit' => '534.30', 'Safari' => '4.0') ),
+        ),
+
+    'PyleAudio' => array(
+        'Mozilla/5.0 (Linux; Android 4.0.4; PTBL92BC Build/IMM76D) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.59 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.0.4', 'Build' => 'IMM76D', 'Webkit' => '537.36', 'Chrome' => '31.0.1650.59')),
+
+        ),
+
+    'RockChip' => array(
+        'Mozilla/5.0 (Linux; U; Android 2.2.1; hu-hu; RK2818, Build/MASTER) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                   => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android Android 2.1-RK2818-1.0.0; zh-cn; MD701 Build/ECLAIR) AppleWebKit/530.17 (KHTML like Gecko) Version/4.0 Mobile Safari/530.17' => array('isMobile' => true, 'isTablet' => true),
+        ),
+
+    'RossMoor' => array(
+        'Mozilla/5.0 (Linux; U; Android 4.2.1; ru-ru; RM-790 Build/JOP40D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true)
+
+        ),
+
+    // @ref: http://www.qmobile.com.pk/complete_range.php#
+    'QMobile' => array(
+        'Mozilla/5.0 (Linux; U; Android 2.3.6; en-us; A2 Build/GRK39F) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false),
+        ),
+
+    'simvalley' => array(
+        'Mozilla/5.0 (Linux; U; Android 2.3.4; de-de; SP-80 Build/GRJ22) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false),
+        ),
+
+    'Skk' => array('Mozilla/5.0 (Linux; U; Android 4.1; en-us; CYCLOPS Build/F10) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true)),
+
+    'Storex' => array(
+        'Mozilla/5.0 (Linux; Android 4.1.1; eZee_Tab903 Build/JRO03H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Safari/537.36' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.1.1', 'Build' => 'JRO03H', 'Webkit' => '537.36')),
+        "Mozilla/5.0 (Linux; Android 4.1.1; eZee'Tab785 Build/JRO03C) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.59 Safari/537.36" => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.1.1', 'Build' => 'JRO03C', 'Webkit' => '537.36')),
+        "Mozilla/5.0 (Linux; Android 4.0.3; eZee'Tab971 Build/IML74K) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166  Safari/535.19" => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.0.3', 'Build' => 'IML74K', 'Webkit' => '535.19')),
+        ),
+
+    'Teclast' => array(
+        'Mozilla/5.0 (Linux; Android 4.4.2; P98 3G\xE5\x85\xAB\xE6\xA0\xB8(A3HY) Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Safari/537.36' => array('isMobile' => true, 'isTablet' => true),
+        'QQ\xe9\x9f\xb3\xe4\xb9\x90HD 4.0.1 (iPad; iPhone OS 8.0; zh_CN)' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.0; xx-xx; A15(E6C2) Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 2.3; xx-xx; A10 Build/GRJ22) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; Teclast A10T Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.0.4; zh-cn; Teclast P85(A9D3) Build/IMM76D) AppleWebKit/534.30 (KHTML like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; en-us; A70H Build/JDQ39) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 UCBrowser/9.8.0.435 U3/0.8.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => true),
+        ),
+
+    'Tecno' => array(
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; en-us; TECNO P9 Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true)
+        ),
+
+    'Telstra' => array(
+        'Mozilla/5.0 (Linux; U; Android 2.3.7; en-au; T-Hub2 Build/TVA301TELBG3) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => true),
+        ),
+
+    // @info: http://www.texet.ru/tablet/
+    'texet' => array(
+        'Mozilla/5.0 (Linux; U; Android 2.3.4; ru-ru; TM-7021 Build/GB.m1ref.20120116) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '2.3.4', 'Webkit' => '533.1', 'Safari' => '4.0'), 'model' => 'TM-7021' ),
+        ),
+
+    'Tolino' => array(
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; de-de; tolino tab 7 Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.2.2', 'Build' => 'JDQ39', 'Webkit' => '534.30', 'Safari' => '4.0')),
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; de-de; tolino tab 8.9 Build/JDQ39) AppleWebKit/534.30 (KHTML like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.2.2', 'Build' => 'JDQ39', 'Webkit' => '534.30', 'Safari' => '4.0')),
+        'Mozilla/5.0 (Linux; Android 4.2.2; tolino tab 7 Build/JDQ39) AppleWebkit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36 OPR/18.0.1290.67495' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; de-de; tolino tab 7 Build/JDQ39) AppleWebkit/537.36 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
+        ),
+
+    'Toshiba' => array(
+        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; TOSHIBA; TSUNAGI)' => array('isMobile' => true, 'isTablet' => false),
+        // @ref: http://www.toshiba.co.uk/discontinued-products/folio-100/
+        'Mozilla/5.0 (Linux; U; Android 2.2; it-it; TOSHIBA_FOLIO_AND_A Build/TOSHIBA_FOLIO_AND_A) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '2.2', 'Webkit' => '533.1', 'Safari' => '4.0') ),
+    ),
+
+    'Trekstor' => array(
+        'Mozilla/5.0 (Linux; Android 4.2.2; ST70408-1 Build/JDQ39) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.58 Safari/537.31' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.2.2', 'Build' => 'JDQ39', 'Webkit' => '537.31', 'Chrome' => '26.0.1410.58')),
+        'Mozilla/5.0 (Linux; U; Android 4.1.1; engb; Build/IMM76D) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A405 Safari/7534.48.3 SurfTab_7.0' => array(
+            'isMobile' => true, 'isTablet' => true,
+        ),
+        'Mozilla/5.0 (Linux; Android 4.2.2; VT10416-2 Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.141 Safari/537.36' => array(
+            'isMobile' => true, 'isTablet' => true
+        ),
+        'Mozilla/5.0 (Linux; U; Android 4.1.1; de-de; ST10216-2A Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30;SurfTab_10.1' => array(
+            'isMobile' => true, 'isTablet' => true
+        ),
+    ),
+
+    'Ubislate' => array(
+            'Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; UBISLATE7C+ Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => true)
+        ),
+
+    'Visture' => array(
+
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; en-gb; V97 HD Build/LR-97JC) Apple WebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'             =>  array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.1.1; en-us; Visture V4 Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'           => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.1.1; ru-ru; Visture V4 HD Build/Visture V4 HD) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.1.1; es-es; Visture V5 HD Build/Visture V5 HD) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.1.1; ru-ru; Visture V10 Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'          => array('isMobile' => true, 'isTablet' => true),
+        ),
+
+    'Versus' => array(
+        'Mozilla/5.0 (Linux; Android 4.0.4; VS-TOUCHPAD 9 Build/IMM76D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19'                                                                                                                 => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.0.4; en-gb; Versus Touchpad 9.7 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                                                                                                                 => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.0.3; en-gb; CnM-TOUCHPAD7 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30 BMID/E67A45B1AB'                                                                                                       => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.1.1; en-gb; CnM TouchPad 7DC Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30 TwonkyBeamBrowser/3.3.5-95 (Android 4.1.1; rockchip CnM TouchPad 7DC Build/meizhi_V2.80.wifi8723.20121225.b11c800)' => array('isMobile' => true, 'isTablet' => true),
+        'OneBrowser/3.5/Mozilla/5.0 (Linux; U; Android 4.0.4; en-gb; TOUCHPAD 7 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                                                                                                    => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.1.1; en-gb; TOUCHTAB Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                                                                                                                            => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.1.1', 'Build' => 'JRO03H', 'Webkit' => '534.30', 'Safari' => '4.0') ),
+        ),
+
+    'Viewsonic' => array(
+        'Mozilla/5.0 (Linux; U; Android 4.0.3; de-de; ViewPad 10e Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 2.2; it-it; ViewPad7 Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' =>array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 2.2.1; en-ca; ViewSonic VB733 Build/FRG83) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 3.2; en-gb; ViewPad7X Build/HTJ85B) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Safari/533.1' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 2.2; pt-br; ViewPad 10S Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.1.1; en-us; VB100a Pro Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
+    ),
+
+    'Vonino' => array(
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; en-us; Sirius_Evo_QS Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.1.1; en-gb; Q8 Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
+
+        ),
+
+    'Wolder' => array(
+        'Mozilla/5.0 (Linux; Android 4.4; miTab LIVE Build/KVT49L) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Safari/537.36' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.0.4; pt-pt; miTab FUNK Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
+    ),
+
+    'Wolfgang' => array(
+        'Mozilla/5.0 (Linux; U; Android 4.2.1; nl-nl; AT-AS45q2 Build/JOP40D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false)
+        ),
+
+    'Xoro' => array(
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; de-de; PAD 9720QR Build/PAD 9719QR) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; Android 4.2.2; PAD720 Build/JDQ39) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19' => array('isMobile' => true, 'isTablet' => true)
+    ),
+
+    'ZTE' => array(
+            'Mozilla/5.0 (Linux; U; Android 4.2.1;zh-cn; ZTE V987 Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30;' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (Linux; U; Android 2.3.5; pt-pt; Blade Build/tejosunhsine) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; ZTE; N880e_Dawoer_Fulllock; China Telecom)'               => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; ZTE; V965W)'                                              => array('isMobile' => true, 'isTablet' => false),
+            'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; ZTE; Windows Phone - Internet 7; SFR)'                    => array('isMobile' => true, 'isTablet' => false),
+        ),
+
+    'Zync' => array(
+            'Mozilla/5.0 (Linux; U; Android 2.3.3; en-us ; Z909 Build/GRI40) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1/UCBrowser/8.4.1.204/145/444' => array('isMobile' => true, 'isTablet' => true)
+        )
+
+);
diff --git a/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Prestigio.php b/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Prestigio.php
new file mode 100644
index 00000000000..c86e3b192eb
--- /dev/null
+++ b/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Prestigio.php
@@ -0,0 +1,12 @@
+<?php
+return array(
+    'Prestigio' => array(
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; en-gb; PMP5297C_QUAD Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.0.4; sk-sk; PMP7100D3G Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.0.4', 'Build' => 'IMM76D', 'Webkit' => '534.30', 'Safari' => '4.0'), 'model' => 'PMP7100D3G' ),
+        'Mozilla/5.0 (Linux; U; Android 4.1.2; sk-sk; PMP7280C3G Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 MobilSafari/534.30' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; Android 4.4.2; PMT3017_WI Build/KVT49L) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Safari/537.36' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; Android 4.4.2; PMT3037_3G Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Safari/537.36' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; Android 4.4.2; PMT5002_Wi Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.93 Safari/537.36' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; el-gr; PMT5887_3G Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
+        ),
+);
\ No newline at end of file
diff --git a/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Samsung.php b/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Samsung.php
new file mode 100644
index 00000000000..e7099c5efc2
--- /dev/null
+++ b/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Samsung.php
@@ -0,0 +1,131 @@
+<?php
+return array(
+    'Samsung' => array(
+        'MQQBrowser/4.0/Mozilla/5.0 (Linux; U; Android 3.2; zh-cn; GT-P6800 Build/HTJ85B) AppleWebKit/533.1 (KHTML, like Gecko) Mobile Safari/533.1'                                                                            => array('isMobile' => true, 'isTablet' => true, 'version' => array('MQQBrowser' => '4.0')),
+        'SAMSUNG-SGH-P250-ORANGE/P250BVHH8 Profile/MIDP-2.0 Configuration/CLDC-1.1 UP.Browser/6.2.3.3.c.1.101 (GUI) MMP/2.0'                                                                                                    => array('isMobile' => true, 'isTablet' => false),
+        'SAMSUNG-GT-B2710/B271MCXKF1 SHP/VPP/R5 Dolfin/2.0 QTV/5.3 SMM-MMS/1.2.0 profile/MIDP-2.1 configuration/CLDC-1.1 OPN-B'                                                                                                 => array('isMobile' => true, 'isTablet' => false, 'version' => array('Dolfin' => '2.0') ),
+        'SAMSUNG-SGH-D900i/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 UP.Browser/6.2.3.3.c.1.101 (GUI) MMP/2.0'                                                                                                                => array('isMobile' => true, 'isTablet' => false),
+        'SAMSUNG-GT-S5233T/S5233TXEJE3 SHP/VPP/R5 Jasmine/0.8 Qtv5.3 SMM-MMS/1.2.0 profile/MIDP-2.1 configuration/CLDC-1.1'                                                                                                     => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (SAMSUNG; SAMSUNG-GT-S5380D/S5380FXXKL3; U; Bada/2.0; ru-ru) AppleWebKit/534.20 (KHTML, like Gecko) Dolfin/3.0 Mobile HVGA SMM-MMS/1.2.0 OPN-B'                                                            => array('isMobile' => true, 'isTablet' => false),
+        'SAMSUNG-GT-C3312/1.0 NetFront/4.2 Profile/MIDP-2.0 Configuration/CLDC-1.1'                                                                                                                                             => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 1.5; de-de; Galaxy Build/CUPCAKE) AppleWebKit/528.5 (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1'                                                                           => array('isMobile' => true, 'isTablet' => false),
+        'SAMSUNG-GT-S3650/S3650XEII3 SHP/VPP/R5 Jasmine/1.0 Nextreaming SMM-MMS/1.2.0 profile/MIDP-2.1 configuration/CLDC-1.1'                                                                                                  => array('isMobile' => true, 'isTablet' => false),
+        'JUC (Linux; U; 2.3.6; zh-cn; GT-S5360; 240*320) UCWEB7.9.0.94/140/352'                                                                                                                                                 => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (SAMSUNG; SAMSUNG-GT-S5250/S5250XEKJ3; U; Bada/1.0; ru-ru) AppleWebKit/533.1 (KHTML, like Gecko) Dolfin/2.0 Mobile WQVGA SMM-MMS/1.2.0 NexPlayer/3.0 profile/MIDP-2.1 configuration/CLDC-1.1 OPN-B'        => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/4.0 (compatible; MSIE 7.0; Windows Phone OS 7.0; Trident/3.1; IEMobile/7.0; SAMSUNG; SGH-i917)'                                                                                                                => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (SAMSUNG; SAMSUNG-GT-S8530/S8530XXJKA; U; Bada/1.2; cs-cz) AppleWebKit/533.1 (KHTML, like Gecko) Dolfin/2.2 Mobile WVGA SMM-MMS/1.2.0 OPN-B'                                                               => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 1.6; ru-ru; Galaxy Build/Donut) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1'                                                                            => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 2.1-update1; ru-ru; GT-I5500 Build/ERE27) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17'                                                                      => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 2.2; en-us; GALAXY_Tab Build/MASTER) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                                                                             => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 2.2; ja-jp; SC-01C Build/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                                                                                  => array('isMobile' => true, 'isTablet' => true),
+        // @about FROYO: http://gizmodo.com/5543853/what-is-froyo
+        'Mozilla/5.0 (Linux; U; Android 2.2; fr-fr; GT-I9000 Build/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                                                                                => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 2.2.1; zh-cn; SCH-i909 Build/FROYO) UC AppleWebKit/534.31 (KHTML, like Gecko) Mobile Safari/534.31'                                                                                     => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 2.3.3; ja-jp; SC-01C Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                                                                          => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 2.3.3; en-gb; GT-P1000 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                                                                        => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 2.3.3; el-gr; GT-I9001 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                                                                        => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 2.3.3; en-ca; SGH-I896 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                                                                        => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 2.3.4; es-us; GT-S5660L Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 MicroMessenger/4.5.1.261'                                              => array('isMobile' => true, 'isTablet' => false, 'version' => array('MicroMessenger' => '4.5.1.261')),
+        'Mozilla/5.0 (Linux; U; Android 2.3.6; en-us; GT-S5660 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                                                                        => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 2.3.6; ru-ru; GT-S6102 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                                                                        => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 2.3.6; pt-br; GT-S5367 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                                                                        => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 2.3.6; fr-fr; GT-S5839i Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                                                                       => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 2.3.6; en-gb; GT-S7500 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                                                                        => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 2.3.6; en-gb; GT-S5830 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                                                                        => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 2.3.6; es-us; GT-B5510L Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                                                                       => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 2.3.6; pl-pl; GT-I9001-ORANGE/I9001BVKPC Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                                                      => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 2.3.6; en-us; GT-I8150 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                                                                        => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 2.3.6; nl-nl; GT-I9070 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                                                                        => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 2.3.6; en-gb; GT-S5360 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                                                                        => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 2.3.6; es-us; GT-S6102B Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                                                                       => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 2.3.6; en-us; GT-S5830i Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                                                                       => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 2.3.6; ru-ru; GT-I8160 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                                                                        => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 2.3.6; ru-ru; GT-S6802 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                                                                        => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 2.3.7; ru-ru; GT-S5830 Build/GRWK74; LeWa_ROM_Cooper_12.09.21) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                                                   => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 2.3.6; ru-ru; GT-N7000 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                                                                        => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 3.0.1; en-us; GT-P7100 Build/HRI83) AppleWebkit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13'                                                                                   => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 3.2; he-il; GT-P7300 Build/HTJ85B) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13'                                                                                    => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 3.2; en-gb; GT-P6200 Build/HTJ85B) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13'                                                                                    => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.0.3; en-gb; GT-I9100 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                                                                           => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; GT-I9100G Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                                                                          => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.0.3; nl-nl; GT-P5100 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                                                                                  => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android-4.0.3; en-us; Galaxy Nexus Build/IML74K) AppleWebKit/535.7 (KHTML, like Gecko) CrMo/16.0.912.75 Mobile Safari/535.7'                                                                    => array( 'isMobile' => true, 'isTablet' => false, 'version' => array('Chrome' => '16.0.912.75') ),
+        'Mozilla/5.0 (Linux; Android 4.0.3; SGH-T989 Build/IML74K) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19'                                                                            => array('isMobile' => true, 'isTablet' => false, 'version' => array('Chrome' => '18.0.1025.166') ),
+        'Mozilla/5.0 (Linux; U; Android 4.0.4; ru-ru; GT-P5100 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                                                                                  => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; Android 4.0.4; GT-I9300 Build/IMM76D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19'                                                                            => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.0.4; SPH-D710 Build/IMM76I) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19'                                                                            => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.0.4; zh-cn; GT-I9300 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                                                                           => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.0.4; en-gb; GT-I9300-ORANGE/I9300BVBLG2 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                                                        => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.0.4; th-th; GT-I9300T Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                                                                          => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.0.4; ru-ru; GT-I9100 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                                                                           => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.0.4; en-us ; GT-I9100 Build/IMM76D) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1/UCBrowser/8.4.1.204/145/355'                                                => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.0.4; en-gb; GT-N7000 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                                                                           => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.0.4; th-th; GT-P6800 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                                                                                  => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; Android 4.0.4; SAMSUNG-SGH-I747 Build/IMM76D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19'                                                                    => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.0.3; es-es; GT-P5110 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                                                                                  => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; Android 4.0.4; GT-P5110 Build/IMM76D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19'                                                                                   => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.0.4; zh-cn; SAMSUNG-GT-S7568_TD/1.0 Android/4.0.4 Release/07.15.2012 Browser/AppleWebKit534.30 Build/IMM76D) ApplelWebkit/534.30 (KHTML,like Gecko) Version/4.0 Mobile Safari/534.30' => array( 'isMobile' => true, 'isTablet' => false, 'version' => array('Android' => '4.0.4') ),
+        'Mozilla/5.0 (Linux; U; Android 4.0.4; ru-ru; GT-P3100 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                                                                                  => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.0.4; tr-tr; GT-P3105 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                                                                                  => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.0.4; en-ca; GT-N8010 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                                                                                  => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.0.4; ru-ru; GT-S7562 Build/IMM76I) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                                                                           => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.1.1; en-us; GT-N7100 Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                                                                           => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.1.2; GT-N7100 Build/JZO54K) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.123 Mobile Safari/537.22 OPR/14.0.1025.52315'                                                        => array( 'isMobile' => true, 'isTablet' => false, 'version' => array( 'Build' => 'JZO54K', 'Webkit' => '537.22', 'Opera' => '14.0.1025.52315' ) ),
+        'Mozilla/5.0 (Linux; U; Android 4.1.1; zh-hk; GT-N7105 Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                                                                           => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.1.1; ru-ru; GT-N8000 Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                                                                                  => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; Android 4.1.1; SGH-i747M Build/JRO03L) AppleWebKit/535.19(KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19'                                                                            => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.1.1; en-gb; Galaxy Nexus - 4.1.1 - with Google Apps - API 16 - 720x1280 Build/JRO03S) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.1.2; GT-I8262 Build/JZO54K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Mobile Safari/537.36'                                                                             => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.1.2; it-it; Galaxy Nexus Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                                                                       => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.1.2; en-us; SGH-I777 Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                                                                           => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.1.2; en-us; GT-S7710 Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                                                                           => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.1.2; en-us; GT-I9082 Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                                                                           => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.1.2; en-us; SGH-T999L Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.2.2; GT-P5210 Build/JDQ39) AppleWebKit/537.36 (KHTML, Like Gecko) Chrome/27.0.1453.90 Safari/537.36'                                                                                     => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; Android 4.2.2; en-us; SAMSUNG GT-I9200 Build/JDQ39) AppleWebKit/535.19 (KHTML, like Gecko) Version/1.0 Chrome/18.0.1025.308 Mobile Safari/535.19'                                                  => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; Android 4.2.2; zh-cn; SCH-I959 Build/JDQ39) AppleWebKit/535.19 (KHTML, like Gecko) Version/1.0 Chrome/18.0.1025.308 Mobile Safari/535.19'                                                          => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; nl-nl; SM-T310 Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; Android 4.3; en-us; SAMSUNG SM-P600 Build/JSS15J) AppleWebKit/537.36 (KHTML, like Gecko) Version/1.5 Chrome/28.0.1500.94 Safari/537.36' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; en-gb; GT-N5100 Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; Android 4.4.2; en-us; SAMSUNG SM-T530NU Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/1.5 Chrome/28.0.1500.94 Safari/537.36' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; Android 4.4.2; SM-T800 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.135 Safari/537.36' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; Android 4.4.2; fr-fr; SAMSUNG SM-T800 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/1.5 Chrome/28.0.1500.94 Safari/537.36' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; Android 4.4.2; SM-T700 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.517 Safari/537.36' => array('isMobile' => true, 'isTablet' => true),
+        
+        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; CETUS)'                                                                                                                   => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; Focus I917 By TC)'                                                                                                        => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; Focus i917)'                                                                                                              => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; FOCUS S)'                                                                                                                 => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; GT-I8350)'                                                                                                                => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; GT-i8700)'                                                                                                                => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; GT-S7530)'                                                                                                                => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; Hljchm\'s Wp)'                                                                                                            => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; I917)'                                                                                                                    => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; OMNIA 7)'                                                                                                                 => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; OMNIA7 By MWP_HS)'                                                                                                        => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; OMNIA7)'                                                                                                                  => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; OMNIA7; Orange)'                                                                                                          => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; SGH-i677)'                                                                                                                => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; SGH-i917)'                                                                                                                => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; SGH-i917.)'                                                                                                               => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; SGH-i917R)'                                                                                                               => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; SGH-i937)'                                                                                                                => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG; SMG-917R)'                                                                                                                => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG_blocked_blocked_blocked; OMNIA7; Orange)'                                                                                  => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SAMSUNG_blocked_blocked_blocked_blocked; OMNIA7; Orange)'                                                                          => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; SUMSUNG; OMNIA 7)'                                                                                                                 => array('isMobile' => true, 'isTablet' => false),
+        
+        'Mozilla/5.0 (Windows NT 6.2; ARM; Trident/7.0; Touch; rv:11.0; WPDesktop; SAMSUNG; GT-I8750) like Gecko' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Windows NT 6.2; ARM; Trident/7.0; Touch; rv:11.0; WPDesktop; GT-I8750) like Gecko' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.2.2; en-gb; SAMSUNG GT-I9205 Build/JDQ39) AppleWebKit/535.19 (KHTML, like Gecko) Version/1.0 Chrome/18.0.1025.308 Mobile Safari/535.19' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; GT-P7510 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; SHV-E160K/VI10.1802 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false),
+
+        'Mozilla/5.0 (Linux; Android 5.0.2; SM-T805 Build/LRX22G) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.92 Safari/537.36' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; Android 4.4.4; SM-T116NQ Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.92 Safari/537.36' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; Android 5.0.2; SM-G9250 Build/LRX22G; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/43.0.2357.121 Mobile Safari/537.36 [FB_IAB/FB4A;FBAV/35.0.0.48.273;]' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.4.2; SM-T705Y Build/KOT49H) AppleWebKit/537.36(KHTML, like Gecko) Chrome/42.0.2311.111 Safari/537.36' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; Android 4.4.2; GT-I9505 Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Version/1.5 Chrome/28.0.1500.94 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.4.2; SM-T705 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.45 Safari/537.36' => array('isMobile' => true, 'isTablet' => true)
+    ),
+);
diff --git a/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Sony.php b/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Sony.php
new file mode 100644
index 00000000000..4155daf0496
--- /dev/null
+++ b/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Sony.php
@@ -0,0 +1,85 @@
+<?php
+return array(
+    'Sony' => array(
+        'SonyEricssonK800i/R1AA Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1'                                                                                     => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 2.1-update1; es-ar; SonyEricssonE15a Build/2.0.1.A.0.47) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17'         => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 2.1-update1; pt-br; SonyEricssonU20a Build/2.1.1.A.0.6) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17'          => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 2.3.3; en-au; SonyEricssonX10i Build/3.0.1.G.0.75) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                 => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 2.3.4; ru-ru; SonyEricssonST18i Build/4.0.2.A.0.62) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 2.3.4; hr-hr; SonyEricssonST15i Build/4.0.2.A.0.62) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 2.3.4; sk-sk; SonyEricssonLT15i Build/4.0.2.A.0.62) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 2.3.7; th-th; SonyEricssonST27i Build/6.0.B.3.184) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                 => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 2.3.7; de-de; SonyEricssonST25i Build/6.0.B.3.184) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'                 => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.0.3; pt-br; Xperia Tablet S Build/TID0092) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                            => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.0.3', 'Build' => 'TID0092', 'Webkit' => '534.30', 'Safari' => '4.0') ),
+        'Mozilla/5.0 (Linux; Android 4.0.3; LT18i Build/4.1.A.0.562) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19'                            => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.0.3; Sony Tablet S Build/TISU0R0110) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166  Safari/535.19'                           => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.0.3; es-es; Sony Tablet S Build/TISU0143) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                             => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.0.4; en-gb; SonyEricssonLT18i Build/4.1.B.0.587) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'               => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.0.4; fr-ch; SonyEricssonSK17i Build/4.1.B.0.587) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'               => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; SonyEricssonLT26i Build/6.1.A.2.45) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.0.4; LT22i Build/6.1.B.0.544) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19'                            => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.0.4; vi-vn; SonyEricssonLT22i Build/6.1.B.0.544) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'               => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.0.4; ST23i Build/11.0.A.5.5) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19'                             => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.0.4; ST23i Build/11.0.A.2.10) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19'                            => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.0.4; LT28h Build/6.1.E.3.7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.94 Mobile Safari/537.36'                               => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.1.1; en-us; SGPT13 Build/TJDS0170) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                                    => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.1.2; ja-jp; SonySO-03E Build/10.1.E.0.265) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                            => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.1.2', 'Build' => '10.1.E.0.265', 'Webkit' => '534.30', 'Safari' => '4.0') ),
+        'Mozilla/5.0 (Linux; Android 4.1.2; LT26w Build/6.2.B.1.96) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.72 Mobile Safari/537.36'                              => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.2.2; SGP321 Build/10.3.1.A.0.33) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.58 Safari/537.31'                                 => array('isMobile' => true, 'isTablet' => true, 'version' => array('Android' => '4.2.2', 'Build' => '10.3.1.A.0.33', 'Webkit' => '537.31', 'Chrome' => '26.0.1410.58') ),
+        'Mozilla/5.0 (Linux; Android 4.3; C5303 Build/12.1.A.1.205) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.135 Mobile Safari/537.36'                             => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.3; zh-cn; XL39h Build/14.2.A.1.136) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                                   => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.1.2; sv-se; C5503 Build/10.1.1.A.1.273) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                        => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.1.2; en-us; C5502 Build/10.1.1.A.1.310) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                        => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; zh-cn; SonyL39t Build/14.1.M.0.202) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                       => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; zh-cn; L39u Build/14.1.n.0.63) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                            => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.1.2; zh-tw; M35c Build/12.0.B.5.37) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                            => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.1.2; M35c Build/12.0.B.2.42) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.90 Mobile Safari/537.36'                              => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.1.2; zh-CN; M35t Build/12.0.C.2.42) AppleWebKit/534.31 (KHTML, like Gecko) UCBrowser/9.3.2.349 U3/0.8.0 Mobile Safari/534.31'           => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.4.2; D6502 Build/17.1.A.2.69) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36'                     => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.4.2; D6503 Build/17.1.A.0.504) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Mobile Safari/537.36'                            => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.4.2; D6543 Build/17.1.A.2.55) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Mobile Safari/537.36'                            => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.3; D2004 Build/20.0.A.0.29) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.94 Mobile Safari/537.36'                               => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.3; en-gb; D2005 Build/20.0.A.1.12) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                             => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.3; D2104 Build/20.0.B.0.84) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Mobile Safari/537.36'                              => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.3; D2105 Build/20.0.B.0.74) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.170 Mobile Safari/537.36'                              => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.3; pt-br; D2114 Build/20.0.B.0.85) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                             => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.3; D2302 Build/18.0.B.1.23) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.138 Mobile Safari/537.36'                              => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.3; zh-cn; S50h Build/18.0.b.1.23) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 UCBrowser/9.6.3.413 U3/0.8.0 Mobile Safari/533.1'   => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.3; D2303 Build/18.0.C.1.13) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.138 Mobile Safari/537.36'                              => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.3; D2305 Build/18.0.A.1.30) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.138 Mobile Safari/537.36'                              => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.3; D2306 Build/18.0.C.1.7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.136 Mobile Safari/537.36'                               => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.3; D5303 Build/19.0.1.A.0.207) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Mobile Safari/537.36'                           => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.4.2; D5306 Build/19.1.A.0.264) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.136 Mobile Safari/537.36'                           => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.3; zh-CN; XM50h Build/19.0.D.0.269) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 UCBrowser/9.7.6.428 U3/0.8.0 Mobile Safari/533.1' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.3; zh-cn; XM50t Build/19.0.C.2.59) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                                    => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.3; D5322 Build/19.0.D.0.253) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.131'                                                  => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.3; zh-cn; M51w Build/14.2.A.1.146) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/537.36'                             => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.3; M51w Build/14.2.A.1.146) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.136 Mobile Safari/537.36'                              => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.4.1; D5102 Build/18.2.A.0.9) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Mobile Safari/537.36'                              => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.4.1; D5103 Build/18.1.A.0.11) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.92 Mobile Safari/537.36'                             => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.4.1; D5106 Build/18.1.A.0.11) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Mobile Safari/537.36'                             => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.3; en-gb; C6902 Build/14.2.A.1.136) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 GSA/3.2.17.1009776.arm'     => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; es-es; C6943 Build/14.1.G.2.257) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                          => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.4.2; C6943 Build/14.3.A.0.681) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Mobile Safari/537.36'                            => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.2.2; SGP412 Build/14.1.B.3.320) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Mobile Safari/537.36'                          => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.1; en-us; SonySGP321 Build/10.2.C.0.143) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                              => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; Android 4.1.2; SGP351 Build/10.1.1.A.1.307) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19'                               => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; Android 4.3; SGP341 Build/10.4.B.0.569) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Safari/537.36'                                    => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; Android 4.4.2; SGP511 Build/17.1.A.2.36) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.122 Safari/537.36'                                  => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; Android 4.4.2; SGP512 Build/17.1.A.2.36) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.122 Safari/537.36'                                  => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.1.2; fr-ch; SGP311 Build/10.1.C.0.344) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                                => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.1.2; en-us; SGP312 Build/10.1.C.0.344) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                                => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.4.2; de-de; SGP521 Build/17.1.A.2.69) AppleWebKit/537.16 (KHTML, like Gecko) Version/4.0 Safari/537.16'                                 => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.4.2; zh-cn; SGP541 Build/17.1.A.2.36) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'                                 => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; Android 4.4.2; SGP551 Build/17.1.A.2.72) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Safari/537.36'                                  => array('isMobile' => true, 'isTablet' => true),
+        'SonyEricssonU5i/R2CA; Mozilla/5.0 (SymbianOS/9.4; U; Series60/5.0 Profile/MIDP-2.1 Configuration/CLDC-1.1) AppleWebKit/525 (KHTML, like Gecko) Version/3.0 Safari/525'   => array('isMobile' => true, 'isTablet' => false),
+        'SonyEricssonU5i/R2AA; Mozilla/5.0 (SymbianOS/9.4; U; Series60/5.0 Profile/MIDP-2.1 Configuration/CLDC-1.1) AppleWebKit/525 (KHTML, like Gecko) Version/3.0 Safari/525'   => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/4.0 (PDA; PalmOS/sony/model prmr/Revision:1.1.54 (en)) NetFront/3.0'                                                                                             => array('isMobile' => true, 'isTablet' => false),
+        'Opera/9.80 (Linux mips; U; InettvBrowser/2.2 (00014A;SonyDTV115;0002;0100) KDL40EX720; CC/BEL; en) Presto/2.7.61 Version/11.00'                                          => array('isMobile' => false, 'isTablet' => false),
+        'Opera/9.80 (Linux armv7l; HbbTV/1.1.1 (; Sony; KDL32W650A; PKG3.211EUA; 2013;); ) Presto/2.12.362 Version/12.11'                                                         => array('isMobile' => false, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.0.4; es-ve; SonyST21a2 Build/11.0.A.6.5) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'                       => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.4.2; D2533 Build/19.2.A.0.391) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36'                    => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; Android 4.4.4; Xperia SP Build/KTU84Q) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.96 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla / 5.0 (Linux; Android 5.0.2; SOT31 Build / 28.0.D.6.71) AppleWebKit / 537.36 (KHTML, like Gecko) Chrome / 39.0.2171.93 Safari / 537.36' => array('isMobile' => true, 'isTablet' => true),
+        ),
+);
diff --git a/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/SpecialCases.php b/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/SpecialCases.php
new file mode 100644
index 00000000000..363aac9fcc1
--- /dev/null
+++ b/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/SpecialCases.php
@@ -0,0 +1,206 @@
+<?php
+return array(
+    'Avant' => array(
+        'Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; Avant Browser; rv:11.0) like Gecko' => array('isMobile' => false, 'isTablet' => false),
+        'Mozilla/5.0 (Windows NT 6.1; WOW64; Avant TriCore) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36' => array('isMobile' => false, 'isTablet' => false),
+        'Mozilla/5.0 (Windows NT 5.1; rv:27.0; Avant TriCore) Gecko/20100101 Firefox/27.0' => array('isMobile' => false, 'isTablet' => false),
+    ),
+    'Console' => array(
+
+        //Nintendo Wii:
+        'Mozilla/5.0 (Nintendo WiiU) AppleWebKit/536.28 (KHTML, like Gecko) NX/3.0.3.12.14 NintendoBrowser/3.1.1.9577.EU'    => array('isMobile' => false, 'isTablet' => false),
+        'Mozilla/5.0 (Nintendo WiiU) AppleWebKit/534.52 (KHTML, like Gecko) NX/{Version No} NintendoBrowser/{Version No}.US' => array('isMobile' => false, 'isTablet' => false),
+        'Mozilla/5.0 (Nintendo 3DS; U; ; en) Version/1.7567.US'                                                              => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Nintendo 3DS; U; ; en) Version/1.7498.US'                                                              => array('isMobile' => true, 'isTablet' => false),
+        //Sony PlayStation:
+        'Mozilla/5.0 (PLAYSTATION 3 4.21) AppleWebKit/531.22.8 (KHTML, like Gecko)'                                          => array('isMobile' => false, 'isTablet' => false),
+        //Microsoft Xbox:
+        'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; Xbox)'                                              => array('isMobile' => false, 'isTablet' => false),
+        // WTF? Must investigate.
+        //'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; Xbox)'                        => array('isMobile' => false, 'isTablet' => false),
+
+        ),
+
+    'Other' => array(
+        // Unknown
+        'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SV1; [eburo v4.0]; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; InfoPath.3; .NET4.0C; .NET4.0E)' => array('isMobile' => false, 'isTablet' => false),
+
+        'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10) AppleWebKit/600.1.25 (KHTML, like Gecko) Version/8.0 Safari/600.1.25' => array('isMobile' => false, 'isTablet' => false),
+        'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.111 Safari/537.36' => array('isMobile' => false, 'isTablet' => false),
+
+        // @todo 3Q - http://3q-int.com/en/download/tablets7/
+        //'Mozilla/5.0 (Linux; U; Android 4.0.4; it-it; MT0729B Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => null,
+        //'Mozilla/5.0 (Linux; U; Android 4.0.4; uk-us; RC9716B Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => null,
+
+        // Sogou Explorer (Browser)
+        //'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36 SE 2.X MetaSr 1.0' => null,
+        //'Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1; SV1; SE 2.x)' => null,
+
+        'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Iron/37.0.2000.0 Chrome/37.0.2000.0 Safari/537.36' => array('isMobile' => false, 'isTablet' => false, 'version' => array('Iron' => '37.0.2000.0')),
+        // Liebao Browser
+        //'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.137 Safari/537.36 LBBROWSER',
+        'Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/32.0.1700.102 Chrome/32.0.1700.102 Safari/537.36'                                                     => array('isMobile' => false, 'isTablet' => false),
+        'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Firefox/24.0'                                                                                                                  => array('isMobile' => false, 'isTablet' => false),
+        'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0 AlexaToolbar/psPCtGhf-2.2'                                                                                        => array('isMobile' => false, 'isTablet' => false),
+        'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:22.0) Gecko/20100101 Firefox/22.0'                                                                                                              => array('isMobile' => false, 'isTablet' => false),
+        'Mozilla/5.0 (X11; Linux ppc; rv:17.0) Gecko/20130626 Firefox/17.0 Iceweasel/17.0.7'                                                                                                        => array('isMobile' => false, 'isTablet' => false),
+        'Mozilla/5.0 (X11; Linux) AppleWebKit/535.22+ Midori/0.4'                                                                                                                                   => array('isMobile' => false, 'isTablet' => false),
+        'Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-us) AppleWebKit/535+ (KHTML, like Gecko) Version/5.0 Safari/535.20+ Midori/0.4'                                                              => array('isMobile' => false, 'isTablet' => false),
+        'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.20 Safari/537.36  OPR/15.0.1147.18 (Edition Next)'                                             => array('isMobile' => false, 'isTablet' => false),
+        'Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.94 Safari/537.36'                                                                                     => array('isMobile' => false, 'isTablet' => false),
+        'Mozilla/5.0 (Windows NT 5.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.94 Safari/537.36'                                                                              => array('isMobile' => false, 'isTablet' => false),
+        'Mozilla/5.0 (Windows NT 5.2; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0'                                                                                                                  => array('isMobile' => false, 'isTablet' => false),
+        'Opera/9.80 (Windows NT 5.2; WOW64) Presto/2.12.388 Version/12.14'                                                                                                                          => array('isMobile' => false, 'isTablet' => false),
+        'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0'                                                                                                                  => array('isMobile' => false, 'isTablet' => false),
+        'Mozilla/5.0 (X11; FreeBSD amd64; rv:14.0) Gecko/20100101 Firefox/14.0.1'                                                                                                                   => array('isMobile' => false, 'isTablet' => false),
+        // @todo Inspect https://gist.githubusercontent.com/pongacm/b7775bebf2b26c09e1f8/raw/0aff83747959386663f3a5c68d7f7150764a8e2d/Varnish%20-%20Tablet%20PC%20(TAB)
+        // https://github.com/varnish/varnish-devicedetect/issues/19
+        'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.2; Win64; x64; Trident/6.0; Touch; .NET4.0E; .NET4.0C; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 2.0.50727; Tablet PC 2.0; MASMJS)' => array('isMobile' => false, 'isTablet' => false),
+        'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0; MANMJS)'                                                                                                           => array('isMobile' => false, 'isTablet' => false),
+        'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Win64; x64; Trident/6.0; MASMJS)'                                                                                                      => array('isMobile' => false, 'isTablet' => false),
+        'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0; Touch; MASMJS)'                                                                                                    => array('isMobile' => false, 'isTablet' => false),
+        'Opera/9.80 (Windows NT 6.2; WOW64; MRA 8.0 (build 5784)) Presto/2.12.388 Version/12.11'                                                                                                    => array('isMobile' => false, 'isTablet' => false),
+        // IE 10
+        'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)'                                                                                                                   => array('isMobile' => false, 'isTablet' => false),
+        // IE 11 @todo: Trident(.*)rv.(\d+)\.(\d+)
+        'Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv 11.0) like Gecko'                                                                                                                             => array('isMobile' => false, 'isTablet' => false),
+        'Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; Touch; rv:11.0) like Gecko'                                                                                                               => array('isMobile' => false, 'isTablet' => false),
+
+        // TV
+        'Mozilla/5.0 (Unknown; Linux armv7l) AppleWebKit/537.1+ (KHTML, like Gecko) Safari/537.1+ HbbTV/1.1.1 ( ;LGE ;NetCast 4.0 ;03.20.30 ;1.0M ;)'                                               => array('isMobile' => false, 'isTablet' => false),
+        'HbbTV/1.1.1 (;Panasonic;VIERA 2012;1.261;0071-3103 2000-0000;)'                                                                                                                            => array('isMobile' => false, 'isTablet' => false),
+        'Opera/9.80 (Linux armv7l; HbbTV/1.1.1 (; Sony; KDL32W650A; PKG3.211EUA; 2013;); ) Presto/2.12.362 Version/12.11'                                                                           => array('isMobile' => false, 'isTablet' => false),
+        ),
+
+    'TV' => array(
+        //'Opera/9.80 (Linux mips ; U; HbbTV/1.1.1 (; Philips; ; ; ; ) CE-HTML/1.0 NETTV/3.2.1; en) Presto/2.6.33 Version/10.70' => null
+        ),
+
+    'Generic' => array(
+
+        'Mozilla/5.0 (Linux; U; Jolla; Sailfish; Mobile; rv:20.0) Gecko/20.0 Firefox/20.0 Sailfish Browser/1.0 like Safari/535.19' => array('isMobile' => true, 'isTablet' => true),
+
+        // Generic Firefox User-agents
+        // https://developer.mozilla.org/en-US/docs/Web/HTTP/Gecko_user_agent_string_reference#Firefox_OS
+        'Mozilla/5.0 (Mobile; rv:26.0) Gecko/26.0 Firefox/26.0' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Tablet; rv:26.0) Gecko/26.0 Firefox/26.0' => array('isMobile' => true, 'isTablet' => true),
+
+        // Facebook WebView
+        //'Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_1 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Mobile/11D201 [FBAN/FBIOS;FBAV/12.1.0.24.20;FBBV/3214247;FBDV/iPhone6,1;FBMD/iPhone;FBSN/iPhone OS;FBSV/7.1.1;FBSS/2; FBCR/AT&T;FBID/phone;FBLC/en_US;FBOP/5]' => null,
+
+        // Outlook
+        //'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E; InfoPath.3; IM-2014-026; IM-2014-043; Microsoft Outlook 14.0.7113; ms-office; MSOffice 14)' => null,
+
+        // Carrefour tablet
+        'Mozilla/5.0 (Linux; Android 4.2.2; CT1020W Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.94 Safari/537.36' => array('isMobile' => true, 'isTablet' => true),
+
+        // @comment: Pipo m6pro tablet
+        'Mozilla/5.0 (Linux; Android 4.2.2; M6pro Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.141 Safari/537.36' => array('isMobile' => true, 'isTablet' => true),
+
+        // https://github.com/varnish/varnish-devicedetect/issues/17
+        // To be researched.
+        'MobileSafari/9537.53 CFNetwork/672.1.13 Darwin/13.1.0' => array('isMobile' => true, 'isTablet' => false),
+        'Appcelerator Titanium/3.2.2.GA (iPod touch/6.1.6; iPhone OS; en_US;)' => array('isMobile' => true, 'isTablet' => false),
+
+        'Opera Coast/3.0.3.78307 CFNetwork/672.1.15 Darwin/14.0.0' => array('isMobile' => true, 'isTablet' => false),
+
+        'Mozilla/5.0 (Linux; Android 4.0.3; ALUMIUM10 Build/IML74K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Safari/537.36' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.2.1; en-us; JY-G3 Build/JOP40D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.1.1; hu-hu; M758A Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
+
+        'Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; EVOTAB Build/IMM76I) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
+        'Java/1.6.0_22' => array('isMobile' => false, 'isTablet' => false, 'version' => array('Java' => '1.6.0_22') ),
+        'Opera/9.80 (Series 60; Opera Mini/6.5.29260/29.3417; U; ru) Presto/2.8.119 Version/11.10' => array('isMobile' => true, 'isTablet' => false),
+        'Opera/9.80 (Android; Opera Mini/6.5.27452/29.3417; U; ru) Presto/2.8.119 Version/11.10'  => array('isMobile' => true, 'isTablet' => false),
+        'Opera/9.80 (iPhone; Opera Mini/7.1.32694/27.1407; U; en) Presto/2.8.119 Version/11.10' => array('isMobile' => true, 'isTablet' => false),
+        // New Opera
+        'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.60 Safari/537.17 OPR/14.0.1025.52315' => array('isMobile' => false, 'isTablet' => false),
+        // Unknown yet
+        // Looks like Chromebook
+        //'Mozilla/5.0 (X11; CrOS armv7l 4920.83.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.103 Safari/537.36' => null,
+        'Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_2 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8H7 Safari/6533.18.5' => array('isMobile' => true, 'isTablet' => false),
+        'Opera/9.80 (Android 2.3.7; Linux; Opera Mobi/46154) Presto/2.11.355 Version/12.10' => array('isMobile' => true, 'isTablet' => false),
+        //'Mozilla/5.0 (Linux; U; Android 4.0.3; it-it; DATAM819HD_C Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => null,
+        //'Mozilla/5.0 (Linux; U; Android 4.0.3; nl-nl; SGPT12 Build/TID0142) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => null,
+        //'Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; cm_tenderloin Build/IMM76L; CyanogenMod-9) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => null,
+
+        //'Mozilla/5.0 (Linux; U; Android 4.1.1; fr-fr; A210 Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => null, // Acer Iconia Tab
+        'Mozilla/5.0 (iPad; CPU OS 6_1 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10B141 Safari/8536.25' => array('isMobile' => true, 'isTablet' => true),
+        //'Mozilla/5.0 (Linux; U; Android 2.3.6; en-gb; GT-I8150 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => null,
+        //'Mozilla/5.0 (iPad; CPU OS 6_0_1 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Mercury/7.2 Mobile/10A523 Safari/8536.25' => null, // Mercurio Browser
+        //'Opera/9.80 (Android 2.3.7; Linux; Opera Tablet/46154) Presto/2.11.355 Version/12.10' => null,
+        'Mozilla/5.0 (Linux; U; Android 4.1.2; en-us; sdk Build/MASTER) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => false), // sdk
+        'Mozilla/5.0 (Linux; U; Android 4.2; en-us; sdk Build/JB_MR1) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false), // sdk
+
+        //'Opera/9.80 (X11; Linux zbov) Presto/2.11.355 Version/12.10' => null,
+        //'Mozilla/5.0 (Linux; U; Android 4.0.4; en-gb; TOUCHPAD 7 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => null, // 7" Verso Android tablet
+        //'Mozilla/5.0 (iPhone; U; CPU OS 4_2_1 like Mac OS X) AppleWebKit/532.9 (KHTML, like Gecko) Version/5.0.3 Mobile/8B5097d Safari/6531.22.7' => null,
+        //'Mozilla/5.0 (Linux; U; Android 4.0.3; en-gb; SGPT12 Build/TID0142) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => null, // sony xperia tablet s unforts
+        //'Mozilla/5.0 (Linux; U; Android 2.0.6_b1; ru-ru Build/ECLAIR) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17' => null, // PocketBook IQ701 (tablet)
+        //'Mozilla/5.0 (Linux; Android 4.0.4; z1000 Build/IMM76D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166  Safari/535.19' => null, // It is a tablet with calling
+        //'Mozilla/5.0 (Linux; Android 4.0.3; cm_tenderloin Build/GWK74) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166  Safari/535.19' => null, // HP touch pad running android cyanogenmod
+        //'Mozilla/5.0 (Linux; U; Android 2.3.3; en-us; Android for Techvision TV1T808 Board Build/GRI40) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => null, // My device is tablet but its detected as phone
+        //'BlackBerry8520/5.0.0.592 Profile/MIDP-2.1 Configuration/CLDC-1.1 VendorID/136' => null,
+        //'Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17' => null, // its a lenovo tablet 2 with windows 8 pro
+        //'Mozilla/5.0 (Linux; U; Android 3.1; ru-ru; LG-V900 Build/HMJ37) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13' => null,
+        //'Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; HTC; Windows Phone 8S by HTC)' => null,
+        //'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; ARM; Trident/6.0; Touch)' => null, // MS Surface RT tablet actually!
+        //'Mozilla/5.0 (PLAYSTATION 3 4.11) AppleWebKit/531.22.8 (KHTML, like Gecko)' => null,
+        //'Mozilla/5.0 (Linux; U; Android 3.2; ru-ru; V9S_V1.4) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13' => null, // Wrong detection - 7-inch tablet was detected as a phone. Android 3.2.1, native browser
+        //'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; ARM; Trident/6.0; Touch)' => null, // Nope, its a Microsoft Surface tablet  running Windows RT (8) with MSIE 10
+        //'Mozilla/5.0 (Linux; U; Android 2.2; es-es; Broncho N701 Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' => null, // Tablet!
+        //'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; ARM; Trident/6.0; Touch)' => null, // its a Microsoft surface rt (tablet)
+        //'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; ARM; Trident/6.0; Touch; WebView/1.0)' => null,
+        //'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; Next7P12 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => null, // Nextbook 7SE Tablet
+        //'Opera/9.80 (X11; Linux zbov) Presto/2.11.355 Version/12.10' => null, // allview alldro speed tablet, android ics, opera mobile
+        //'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; ARM; Trident/6.0; Touch)' => null, // Its a surface in portrait
+        // Am ramas la pozitia: 207
+
+        // Android on Windows :) www.socketeq.com
+        //'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; full Android on Microsoft Windows, pad, pc, n*books Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => null,
+
+        // TV
+        //'Opera/9.80 (Linux mips; U; InettvBrowser/2.2 (00014A;SonyDTV115;0002;0100) KDL40EX720; CC/BEL; en) Presto/2.7.61 Version/11.00' => null,
+
+        'Mozilla/5.0 (Android; Mobile; rv:18.0) Gecko/18.0 Firefox/18.0' => array('isMobile' => true, 'isTablet' => false),
+        // Maxthon
+        'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.12 (KHTML, like Gecko) Maxthon/3.0 Chrome/18.0.966.0 Safari/535.12' => array('isMobile' => false, 'isTablet' => false),
+        'Opera/9.80 (Windows NT 5.1; U; Edition Yx; ru) Presto/2.10.289 Version/12.02' => array('isMobile' => false, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.2; en-us; sdk Build/JB_MR1) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Windows Phone 6.5.3.5)' => array('isMobile' => true, 'isTablet' => false),
+        'PalmCentro/v0001 Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; PalmSource/Palm-D061; Blazer/4.5) 16;320x320' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0)' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; Microsoft; XDeviceEmulator)' => array('isMobile' => true, 'isTablet' => false),
+        // ZTE phone
+        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; MAL; N880E; China Telecom)' => array('isMobile' => true, 'isTablet' => false),
+        'Opera/9.80 (Series 60; Opera Mini/7.0.29482/28.2859; U; ru) Presto/2.8.119 Version/11.10' => array('isMobile' => true, 'isTablet' => false),
+        'Opera/9.80 (S60; SymbOS; Opera Mobi/SYB-1202242143; U; en-GB) Presto/2.10.254 Version/12.00' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.0.3; en-au; 97D Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
+        'Opera/9.80 (Android; Opera Mini/7.0.29952/28.2647; U; ru) Presto/2.8.119 Version/11.10' => array('isMobile' => true, 'isTablet' => false),
+        'Opera/9.80 (Android; Opera Mini/6.1.25375/28.2555; U; en) Presto/2.8.119 Version/11.10' => array('isMobile' => true, 'isTablet' => false),
+        'Opera/9.80 (Mac OS X; Opera Tablet/35779; U; en) Presto/2.10.254 Version/12.00' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Android; Tablet; rv:10.0.4) Gecko/10.0.4 Firefox/10.0.4 Fennec/10.0.4' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Android; Tablet; rv:18.0) Gecko/18.0 Firefox/18.0' => array('isMobile' => true, 'isTablet' => true),
+        'Opera/9.80 (Linux armv7l; Maemo; Opera Mobi/14; U; en) Presto/2.9.201 Version/11.50' => array('isMobile' => true, 'isTablet' => false),
+        'Opera/9.80 (Android 2.2.1; Linux; Opera Mobi/ADR-1207201819; U; en) Presto/2.10.254 Version/12.00' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.1.1; en-us; sdk Build/JRO03E) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' => array('isMobile' => true, 'isTablet' => false),
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; de-de; Endeavour 1010 Build/ONDA_MID) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),     // Blaupunkt Endeavour 1010
+        'Mozilla/5.0 (Linux; U; Android 4.0.4; de-de; Tablet-PC-4 Build/ICS.g08refem618.20121102) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array('isMobile' => true, 'isTablet' => true),
+        // Tagi tablets
+        'Mozilla/5.0 (Linux; U; Android 4.2.2; de-de; Tagi Tab S10 Build/8089) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array(
+            'isMobile' => true, 'isTablet' => true,
+        ),
+        ),
+
+    'Bot' => array(
+        'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)' => array('isMobile' => false, 'isTablet' => false, /*'isBot' => true*/),
+        'grub-client-1.5.3; (grub-client-1.5.3; Crawl your own stuff with http://grub.org)' => array('isMobile' => false, 'isTablet' => false, /*'isBot' => true*/),
+        'Googlebot-Image/1.0' => array('isMobile' => false, 'isTablet' => false, /*'isBot' => true*/),
+        'Python-urllib/2.5' => array('isMobile' => false, 'isTablet' => false, /*'isBot' => true*/),
+        'facebookexternalhit/1.0 (+http://www.facebook.com/externalhit_uatext.php)' => array('isMobile' => false, 'isTablet' => false, /*'isBot' => true*/),
+        'AdsBot-Google (+http://www.google.com/adsbot.html)' => array('isMobile' => false, 'isTablet' => false, /*'isBot' => true*/),
+        'AdsBot-Google-Mobile (+http://www.google.com/mobile/adsbot.html) Mozilla (iPhone; U; CPU iPhone OS 3 0 like Mac OS X) AppleWebKit (KHTML, like Gecko) Mobile Safari' => array('isMobile' => true, 'isTablet' => false, /*'isBot' => true*/),
+        'Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.16 (KHTML, like Gecko, Google Keyword Suggestion) Chrome/10.0.648.127 Safari/534.16' => array('isMobile' => false, 'isTablet' => false, /*'isBot' => true*/),
+        'Facebot' => array('isMobile' => false, 'isTablet' => false, /*'isBot' => true*/)
+        ),
+);
diff --git a/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Vodafone.php b/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Vodafone.php
new file mode 100644
index 00000000000..2074a041de0
--- /dev/null
+++ b/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/Vodafone.php
@@ -0,0 +1,11 @@
+<?php
+return array(
+    'Vodafone' => array(
+        'Mozilla/5.0 (Linux; U; Android 3.2; hu-hu; SmartTab10-MSM8260-V02d-Dec022011-Vodafone-HU) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0' => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; Android 4.0.3; SmartTabII10 Build/IML74K) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166  Safari/535.19'     => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.1.1; fr-fr; SmartTAB 1002 Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'    => array('isMobile' => true, 'isTablet' => true),
+        'Mozilla/5.0 (Linux; U; Android 4.0.4; de-de, SmartTabII7 Build/A2107A_A404_107_055_130124_VODA) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' => array(
+            'isMobile' => true, 'isTablet' => true,
+        ),
+        ),
+);
diff --git a/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/ZTE.php b/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/ZTE.php
new file mode 100644
index 00000000000..4f29b7a633b
--- /dev/null
+++ b/htdocs/includes/mobiledetect/mobiledetectlib/tests/providers/vendors/ZTE.php
@@ -0,0 +1,6 @@
+<?php
+return array(
+    'ZTE' => array(
+        'Mozilla/5.0 (Linux; Android 4.0.4; V8200plus Build/IMM76I) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.166 Mobile Safari/537.36' => array('isMobile' => true, 'isTablet' => false)
+    )
+);
\ No newline at end of file
diff --git a/htdocs/includes/mobiledetect/mobiledetectlib/tests/ualist.json b/htdocs/includes/mobiledetect/mobiledetectlib/tests/ualist.json
index c8b6db5b3ee..165832d6e6f 100644
--- a/htdocs/includes/mobiledetect/mobiledetectlib/tests/ualist.json
+++ b/htdocs/includes/mobiledetect/mobiledetectlib/tests/ualist.json
@@ -1 +1,8196 @@
-{"hash":"0f2ce8fdb263e38dc366cecd67ec5ac87ad4c637","user_agents":[{"vendor":"Acer","user_agent":"Mozilla\/5.0 (Linux; U; Android 3.2.1; en-us; A100 Build\/HTK55D) AppleWebKit\/534.13 (KHTML, like Gecko) Version\/4.0 Safari\/534.13","mobile":true,"tablet":true},{"vendor":"Acer","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1; en-us; A110 Build\/JZO54K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Acer","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; de-de; A200 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true,"version":{"Android":"4.0.3","Webkit":"534.30","Safari":"4.0","Build":"IML74K"},"model":"A200"},{"vendor":"Acer","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; en-us; A500 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Acer","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; en-us; A501 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Acer","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.1; A701 Build\/JRO03H) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166  Safari\/535.19","mobile":true,"tablet":true},{"vendor":"Acer","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.2; B1-A71 Build\/JZO54K) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166  Safari\/535.19","mobile":true,"tablet":true},{"vendor":"Acer","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.2; B1-710 Build\/JZO54K) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/29.0.1547.72 Safari\/537.36","mobile":true,"tablet":true},{"vendor":"Acer","user_agent":"Mozilla\/5.0 (Linux; Android 4.2.2; A1-810 Build\/JDQ39) AppleWebKit\/537.31 (KHTML, like Gecko) Chrome\/26.0.1410.58 Safari\/537.31","mobile":true,"tablet":true},{"vendor":"Acer","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.2.2; nl-nl; A1-810 Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Acer","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; Acer; Allegro)","mobile":true,"tablet":false},{"vendor":"Acer","user_agent":"Mozilla\/5.0 (Linux; Android 4.2.2; A3-A10 Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/32.0.1700.99 Safari\/537.36","mobile":true,"tablet":true,"version":{"Android":"4.2.2","Build":"JDQ39","Webkit":"537.36","Chrome":"32.0.1700.99"}},{"vendor":"Acer","user_agent":"Mozilla\/5.0 (Linux; Android 4.2.2; A1-830 Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.141 Safari\/537.36","mobile":true,"tablet":true},{"vendor":"AdvanDigital","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.2.2; en-us; E1C Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":true},{"vendor":"AdvanDigital","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.2.2; id-id; T3C Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Ainol","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.4; en-us; Ainol Novo8 Advanced Build\/GRJ22) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":true},{"vendor":"Ainol","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.1; Novo10 Hero Build\/20121115) AppleWebKit\/535.19 (KHTML like Gecko) Chrome\/18.0.1025.166 Safari\/535.19","mobile":true,"tablet":true},{"vendor":"Ainol","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.2.2; es-es; novo9-Spark Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"AllFine","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; en-gb; FINE7 GENIUS Build\/JRO03C) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"ASUS","user_agent":"Mozilla\/5.0 (Linux; U; Android 3.2.1; en-us; Transformer TF101 Build\/HTK75) AppleWebKit\/534.13 (KHTML, like Gecko) Version\/4.0 Safari\/534.13","mobile":true,"tablet":true,"version":{"Android":"3.2.1","Webkit":"534.13","Safari":"4.0"},"model":"Transformer TF101"},{"vendor":"ASUS","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.1; Transformer Build\/JRO03L) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Safari\/535.19","mobile":true,"tablet":true},{"vendor":"ASUS","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.1; ASUS Transformer Pad TF300T Build\/JRO03C) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Safari\/535.19","mobile":true,"tablet":true},{"vendor":"ASUS","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.2; fr-fr; Transformer Build\/JZO54K; CyanogenMod-10) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"ASUS","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; en-us; asus_laptop Build\/IMM76L) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":false},{"vendor":"ASUS","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; en-gb; PadFone 2 Build\/JRO03L) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"ASUS","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; en-gb; PadFone 2 Build\/JRO03L) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true,"version":{"Android":"4.1.1","Build":"JRO03L","Webkit":"534.30","Safari":"4.0"}},{"vendor":"ASUS","user_agent":"Mozilla\/5.0 (Linux; Android 4.2.1; ME301T Build\/JOP40D) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/28.0.1500.94 Safari\/537.36","mobile":true,"tablet":true,"version":{"Android":"4.2.1","Build":"JOP40D"}},{"vendor":"ASUS","user_agent":"Mozilla\/5.0 (Linux; Android 4.2.1; ME173X Build\/JOP40D) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/28.0.1500.94 Safari\/537.36","mobile":true,"tablet":true,"version":{"Android":"4.2.1","Build":"JOP40D"}},{"vendor":"ASUS","user_agent":"Mozilla\/5.0 (Linux; Android 4.2.2; TF300T Build\/JDQ39E) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166  Safari\/535.19","mobile":true,"tablet":true,"version":{"Android":"4.2.2","Build":"JDQ39E"}},{"vendor":"Alcatel","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.7; en-in; MB525 Build\/GWK74; CyanogenMod-7.2.0) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Alcatel","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.5; it-it; ALCATEL ONE TOUCH 918D Build\/GRJ90) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false,"version":{"Android":"2.3.5","Webkit":"533.1","Safari":"4.0","Build":"GRJ90"},"model":"ONE TOUCH 918D"},{"vendor":"Alcatel","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.6; ru-ru; ALCATEL ONE TOUCH 991 Build\/GRJ90) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false,"version":{"Android":"2.3.6","Webkit":"533.1","Safari":"4.0","Build":"GRJ90"},"model":"ONE TOUCH 991"},{"vendor":"Alcatel","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; ru-ru; ALCATEL ONE TOUCH 993D Build\/ICECREAM) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false,"version":{"Android":"4.0.4","Webkit":"534.30","Safari":"4.0","Build":"ICECREAM"},"model":"ONE TOUCH 993D"},{"vendor":"Allview","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; en-us; ALLVIEW P5 Build\/IML74K) AppleWebKit\/534.30 (KHTML like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Allview","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; en-us ; ALLVIEW SPEEDI Build\/IMM76D) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1\/UCBrowser\/8.5.3.246\/145\/355","mobile":true,"tablet":true},{"vendor":"Allview","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; en-us; AllviewCity Build\/JRO03C) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Allview","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; en-us; ALLVIEWSPEED Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Amazon","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; en-us; KFTT Build\/IML74K) AppleWebKit\/535.19 (KHTML, like Gecko) Silk\/3.4 Mobile Safari\/535.19 Silk-Accelerated=true","mobile":true,"tablet":true},{"vendor":"Amazon","user_agent":"Mozilla\/5.0 (Linux; U; en-US) AppleWebKit\/528.5+ (KHTML, like Gecko, Safari\/528.5+) Version\/4.0 Kindle\/3.0 (screen 600x800; rotate)","mobile":true,"tablet":true,"version":{"Webkit":"528.5+","Kindle":"3.0","Safari":"4.0"},"model":"Kindle"},{"vendor":"Amazon","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; en-us; KFOTE Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true,"version":{"Android":"4.0.3","Build":"IML74K","Webkit":"534.30","Safari":"4.0"}},{"vendor":"Amazon","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; en-us; WFJWAE Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Apple","user_agent":"iTunes\/9.1.1","mobile":false,"tablet":false},{"vendor":"Apple","user_agent":"iTunes\/11.0.2 (Windows; Microsoft Windows 8 x64 Business Edition (Build 9200)) AppleWebKit\/536.27.1","mobile":false,"tablet":false},{"vendor":"Apple","user_agent":"Mozilla\/5.0 (iPod touch; CPU iPhone OS 7_0 like Mac OS X) AppleWebKit\/537.51.1 (KHTML, like Gecko) Version\/7.0 Mobile\/11A4449d Safari\/9537.53","mobile":true,"tablet":false},{"vendor":"Apple","user_agent":"Mozilla\/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit\/420+ (KHTML, like Gecko) Version\/3.0 Mobile\/1A543 Safari\/419.3","mobile":true,"tablet":false,"version":{"Webkit":"420+","Safari":"3.0"}},{"vendor":"Apple","user_agent":"Mozilla\/5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit\/528.18 (KHTML, like Gecko) Version\/4.0 Mobile\/7A341 Safari\/528.16","mobile":true,"tablet":false,"version":{"iOS":"3_0","Webkit":"528.18","Safari":"4.0"},"model":"iPhone"},{"vendor":"Apple","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 5_1_1 like Mac OS X) AppleWebKit\/534.46 (KHTML, like Gecko) Version\/5.1 Mobile\/9B206 Safari\/7534.48.3","mobile":true,"tablet":false,"version":{"iOS":"5_1_1","Webkit":"534.46","Mobile":"9B206","Safari":"5.1"},"model":"iPhone"},{"vendor":"Apple","user_agent":"Mozilla\/5.0 (iPod; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit\/536.26 (KHTML, like Gecko) Version\/6.0 Mobile\/10A403 Safari\/8536.25","mobile":true,"tablet":false,"version":{"iOS":"6_0","Webkit":"536.26","Mobile":"10A403","Safari":"6.0"},"model":"iPod"},{"vendor":"Apple","user_agent":"Mozilla\/5.0 (iPad; CPU OS 5_1_1 like Mac OS X; en-us) AppleWebKit\/534.46.0 (KHTML, like Gecko) CriOS\/21.0.1180.80 Mobile\/9B206 Safari\/7534.48.3 (6FF046A0-1BC4-4E7D-8A9D-6BF17622A123)","mobile":true,"tablet":true,"version":{"iOS":"5_1_1","Webkit":"534.46.0","Chrome":"21.0.1180.80","Mobile":"9B206"},"model":"iPad"},{"vendor":"Apple","user_agent":"Mozilla\/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit\/536.26 (KHTML, like Gecko) Version\/6.0 Mobile\/10A403 Safari\/8536.25","mobile":true,"tablet":true,"version":{"iOS":"6_0","Webkit":"536.26","Safari":"6.0","Mobile":"10A403"},"model":"iPad"},{"vendor":"Apple","user_agent":"Mozilla\/5.0 (iPad; U; CPU OS 4_2_1 like Mac OS X; en-us) AppleWebKit\/533.17.9 (KHTML, like Gecko) Version\/5.0.2 Mobile\/8C148 Safari\/6533.18.5","mobile":true,"tablet":true,"version":{"iOS":"4_2_1","Webkit":"533.17.9","Safari":"5.0.2","Mobile":"8C148"},"model":"iPad"},{"vendor":"Apple","user_agent":"Mozilla\/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit\/531.21.10 (KHTML, like Gecko) Version\/4.0.4 Mobile\/7B334b Safari\/531.21.10","mobile":true,"tablet":true,"version":{"iOS":"3_2","Webkit":"531.21.10","Safari":"4.0.4","Mobile":"7B334b"},"model":"iPad"},{"vendor":"Apple","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 6_0_1 like Mac OS X; da-dk) AppleWebKit\/534.46.0 (KHTML, like Gecko) CriOS\/21.0.1180.82 Mobile\/10A523 Safari\/7534.48.3","mobile":true,"tablet":false,"version":{"iOS":"6_0_1","Webkit":"534.46.0","Chrome":"21.0.1180.82","Mobile":"10A523"},"model":"iPhone"},{"vendor":"Apple","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 6_0_1 like Mac OS X) AppleWebKit\/536.26 (KHTML, like Gecko) Version\/6.0 Mobile\/10A523 Safari\/8536.25","mobile":true,"tablet":false,"version":{"iOS":"6_0_1","Webkit":"536.26","Safari":"6.0","Mobile":"10A523"},"model":"iPhone"},{"vendor":"Apple","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 6_1 like Mac OS X; ru-ru) AppleWebKit\/536.26 (KHTML, like Gecko) CriOS\/23.0.1271.100 Mobile\/10B142 Safari\/8536.25","mobile":true,"tablet":false,"version":{"iOS":"6_1","Webkit":"536.26","Chrome":"23.0.1271.100","Mobile":"10B142"},"model":"iPhone"},{"vendor":"Apple","user_agent":"Mozilla\/5.0 (iPhone; CPU iPhone OS 6_1_3 like Mac OS X) AppleWebKit\/536.26 (KHTML, like Gecko) Version\/6.0 Mobile\/10B329 Safari\/8536.25","mobile":true,"tablet":false,"version":{"iOS":"6_1_3","Webkit":"536.26","Safari":"6.0","Mobile":"10B329"},"model":"iPhone"},{"vendor":"Apple","user_agent":"Mozilla\/5.0 (iPad; CPU OS 6_1_3 like Mac OS X) AppleWebKit\/536.26 (KHTML, like Gecko) Coast\/1.0.2.62956 Mobile\/10B329 Safari\/7534.48.3","mobile":true,"tablet":true,"version":{"Coast":"1.0.2.62956"}},{"vendor":"Archos","user_agent":"Mozilla\/5.0 (Linux; Android 4.2.2; Qilive 97R Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/30.0.1599.92 Safari\/537.36","mobile":true,"tablet":true},{"vendor":"Archos","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.2; Archos 50 Platinum Build\/JZO54K) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/28.0.1500.94 Mobile Safari\/537.36","mobile":true,"tablet":false},{"vendor":"Archos","user_agent":"Mozilla\/5.0 (Linux; Android 4.0.4; ARCHOS 80G9 Build\/IMM76D) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166  Safari\/535.19","mobile":true,"tablet":true},{"vendor":"Archos","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.2.1; fr-fr; A101IT Build\/FROYO) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":true},{"vendor":"Archos","user_agent":"Mozilla\/5.0 (Linux; Android 4.2.2; Archos 101 Neon Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.141 Safari\/537.36","mobile":true,"tablet":true},{"vendor":"AudioSonic","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; en-au; T-17B Build\/JRO03H) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"BlackBerry","user_agent":"Mozilla\/5.0 (BlackBerry; U; BlackBerry 9300; en) AppleWebKit\/534.8+ (KHTML, like Gecko) Version\/6.0.0.546 Mobile Safari\/534.8+","mobile":true,"tablet":false,"version":{"Webkit":"534.8+","BlackBerry":"6.0.0.546"},"model":"BlackBerry 9300"},{"vendor":"BlackBerry","user_agent":"Mozilla\/5.0 (BlackBerry; U; BlackBerry 9360; en-US) AppleWebKit\/534.11+ (KHTML, like Gecko) Version\/7.0.0.400 Mobile Safari\/534.11+","mobile":true,"tablet":false},{"vendor":"BlackBerry","user_agent":"Mozilla\/5.0 (BlackBerry; U; BlackBerry 9700; he) AppleWebKit\/534.8+ (KHTML, like Gecko) Version\/6.0.0.723 Mobile Safari\/534.8+","mobile":true,"tablet":false},{"vendor":"BlackBerry","user_agent":"Mozilla\/5.0 (BlackBerry; U; BlackBerry 9700; en-US) AppleWebKit\/534.8  (KHTML, like Gecko) Version\/6.0.0.448 Mobile Safari\/534.8","mobile":true,"tablet":false},{"vendor":"BlackBerry","user_agent":"Mozilla\/5.0 (BlackBerry; U; BlackBerry 9790; en-GB) AppleWebKit\/534.11+ (KHTML, like Gecko) Version\/7.1.0.714 Mobile Safari\/534.11+","mobile":true,"tablet":false,"version":{"Webkit":"534.11+","BlackBerry":"7.1.0.714"},"model":"BlackBerry 9790"},{"vendor":"BlackBerry","user_agent":"Opera\/9.80 (BlackBerry; Opera Mini\/7.0.29990\/28.2504; U; en) Presto\/2.8.119 Version\/11.10","mobile":true,"tablet":false},{"vendor":"BlackBerry","user_agent":"Mozilla\/5.0 (BlackBerry; U; BlackBerry 9981; en-GB) AppleWebKit\/534.11+ (KHTML, like Gecko) Version\/7.1.0.342 Mobile Safari\/534.11+","mobile":true,"tablet":false},{"vendor":"BlackBerry","user_agent":"Mozilla\/5.0 (BlackBerry; U; BlackBerry 9800; en-GB) AppleWebKit\/534.8+ (KHTML, like Gecko) Version\/6.0.0.546 Mobile Safari\/534.8+","mobile":true,"tablet":false},{"vendor":"BlackBerry","user_agent":"Mozilla\/5.0 (BlackBerry; U; BlackBerry 9780; es) AppleWebKit\/534.8  (KHTML, like Gecko) Version\/6.0.0.480 Mobile Safari\/534.8","mobile":true,"tablet":false},{"vendor":"BlackBerry","user_agent":"Mozilla\/5.0 (BlackBerry; U; BlackBerry 9810; en-US) AppleWebKit\/534.11  (KHTML, like Gecko) Version\/7.0.0.583 Mobile Safari\/534.11","mobile":true,"tablet":false},{"vendor":"BlackBerry","user_agent":"Mozilla\/5.0 (BlackBerry; U; BlackBerry 9860; es) AppleWebKit\/534.11+ (KHTML, like Gecko) Version\/7.0.0.576 Mobile Safari\/534.11+","mobile":true,"tablet":false},{"vendor":"BlackBerry","user_agent":"Mozilla\/5.0 (BlackBerry; U; BlackBerry 9900; en-US) AppleWebKit\/534.11  (KHTML, like Gecko) Version\/7.1.0.523 Mobile Safari\/534.11","mobile":true,"tablet":false},{"vendor":"BlackBerry","user_agent":"BlackBerry8520\/5.0.0.592 Profile\/MIDP-2.1 Configuration\/CLDC-1.1 VendorID\/136","mobile":true,"tablet":false},{"vendor":"BlackBerry","user_agent":"BlackBerry8520\/5.0.0.1067 Profile\/MIDP-2.1 Configuration\/CLDC-1.1 VendorID\/603","mobile":true,"tablet":false},{"vendor":"BlackBerry","user_agent":"BlackBerry8520\/5.0.0.1036 Profile\/MIDP-2.1 Configuration\/CLDC-1.1 VendorID\/611","mobile":true,"tablet":false,"version":{"BlackBerry":"5.0.0.1036","VendorID":"611"},"model":"BlackBerry8520"},{"vendor":"BlackBerry","user_agent":"Mozilla\/5.0 (BlackBerry; U; BlackBerry 9220; en) AppleWebKit\/534.11+ (KHTML, like Gecko) Version\/7.1.0.337 Mobile Safari\/534.11+","mobile":true,"tablet":false},{"vendor":"BlackBerry","user_agent":"Mozilla\/5.0 (PlayBook; U; RIM Tablet OS 2.1.0; en-US) AppleWebKit\/536.2+ (KHTML, like Gecko) Version\/7.2.1.0 Safari\/536.2+","mobile":true,"tablet":true},{"vendor":"BlackBerry","user_agent":"Mozilla\/5.0 (BB10; Touch) AppleWebKit\/537.1+ (KHTML, like Gecko) Version\/10.0.0.1337 Mobile Safari\/537.1+","mobile":true,"tablet":false},{"vendor":"BlackBerry","user_agent":"Mozilla\/5.0 (BB10; Touch) AppleWebKit\/537.10+ (KHTML, like Gecko) Version\/10.0.9.2372 Mobile Safari\/537.10+","mobile":true,"tablet":false},{"vendor":"BlackBerry","user_agent":"Mozilla\/5.0 (BB10; Touch) \/537.10+ (KHTML, like Gecko) Version\/10.0.9.2372 Mobile Safari\/537.10+","mobile":true,"tablet":false,"version":{"BlackBerry":"10.0.9.2372"}},{"vendor":"BlackBerry","user_agent":"Mozilla\/5.0 (Linux; U; Android 3.2.1; en-us; Transformer TF101 Build\/HTK75) AppleWebKit\/534.13 (KHTML, like Gecko) Version\/4.0 Safari\/534.13","mobile":true,"tablet":true,"version":{"Android":"3.2.1","Webkit":"534.13","Safari":"4.0"},"model":"Transformer TF101"},{"vendor":"BlackBerry","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; de-de; A200 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true,"version":{"Android":"4.0.3","Webkit":"534.30","Safari":"4.0"},"model":"A200"},{"vendor":"BlackBerry","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; en-us; A500 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true,"version":{"Android":"4.0.3","Webkit":"534.30","Safari":"4.0"},"model":"A500"},{"vendor":"BlackBerry","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; en-us; A501 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true,"version":{"Android":"4.0.3","Webkit":"534.30","Safari":"4.0"},"model":"A501"},{"vendor":"BlackBerry","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.1; Transformer Build\/JRO03L) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Safari\/535.19","mobile":true,"tablet":true,"version":{"Android":"4.1.1","Webkit":"535.19","Chrome":"18.0.1025.166"},"model":"Transformer"},{"vendor":"BlackBerry","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.1; ASUS Transformer Pad TF300T Build\/JRO03C) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Safari\/535.19","mobile":true,"tablet":true,"version":{"Android":"4.1.1","Webkit":"535.19","Chrome":"18.0.1025.166"},"model":"Transformer Pad TF300T"},{"vendor":"BlackBerry","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.2; fr-fr; Transformer Build\/JZO54K; CyanogenMod-10) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true,"version":{"Android":"4.1.2","Webkit":"534.30","Safari":"4.0","Build":"JZO54K"},"model":"Transformer"},{"vendor":"BlackBerry","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.2; B1-A71 Build\/JZO54K) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166  Safari\/535.19","mobile":true,"tablet":true,"version":{"Android":"4.1.2","Webkit":"535.19","Chrome":"18.0.1025.166"},"model":"B1-A71"},{"vendor":"BlackBerry","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; Acer; Allegro)","mobile":true,"tablet":false,"version":{"Windows Phone OS":"7.5","Trident":"5.0","IE":"9.0"},"model":"Allegro"},{"vendor":"Broncho","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.2; es-es; Broncho N701 Build\/FRF91) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":true},{"vendor":"bq","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; es-es; bq Livingstone 2 Build\/1.1.7 20121018-10:33) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"bq","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; es-es; bq Edison Build\/1.1.10-1015 20121230-18:00) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"bq","user_agent":"Mozilla\/5.0 (Linux; Android 4.0.3; Maxwell Lite Build\/v1.0.0.ICS.maxwell.20120920) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Safari\/535.19","mobile":true,"tablet":true},{"vendor":"bq","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; zh-tw; bq Maxwell Plus Build\/1.0.0 20120913-10:39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Captiva","user_agent":"Opera\/9.80 (X11; Linux zvav; U; de) Presto\/2.8.119 Version\/11.10 Mozilla\/5.0 (Linux; U; Android 4.1.1; de-de; CAPTIVA PAD 10.1 Build\/JRO03H) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Casio","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.3; en-us; C771 Build\/C771M120) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"ChangJia","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; pt-br; TPC97113 Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"ChangJia","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; en-us; TPC7102 Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Coby","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.2; en-us; MID7010 Build\/FRF85B) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":true},{"vendor":"Coby","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; en-us; MID7048 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Coby","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; en-us; MID8042 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Concorde","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; hu-hu; ConCorde Tab T10 Build\/JRO03H) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Concorde","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; hu-hu; ConCorde tab PLAY Build\/JRO03H) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Cresta","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; nl-nl; CRESTA.CTP888 Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Cube","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; ru-ru; CUBE U9GT 2 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Danew","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; es-es; Dslide 700 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true,"version":{"Android":"4.0.3","Build":"IML74K","Webkit":"534.30","Safari":"4.0"},"model":"Dslide 700"},{"vendor":"DanyTech","user_agent":"Mozilla\/5.0 (Linux; Android 4.2.2; Genius Tab Q4 Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/31.0.1650.59 Safari\/537.36","mobile":true,"tablet":true},{"vendor":"Dell","user_agent":"Mozilla\/5.0 (Linux; U; Android 1.6; en-gb; Dell Streak Build\/Donut AppleWebKit\/528.5+ (KHTML, like Gecko) Version\/3.1.2 Mobile Safari\/ 525.20.1","mobile":true,"tablet":false},{"vendor":"Dell","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.7; hd-us; Dell Venue Build\/GWK74; CyanogenMod-7.2.0) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Dell","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; DELL; Venue Pro)","mobile":true,"tablet":false},{"vendor":"DPS","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; en-us; DPS Dream 9 Build\/JRO03C) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"ECS","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; it-it; TM105A Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true,"version":{"Android":"4.0.4","Build":"IMM76D","Webkit":"534.30"}},{"vendor":"Eboda","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; ro-ro; E-Boda Supreme Dual Core X190 Build\/JRO03C) AppleWebKit\/534.30 (KHTML like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true,"version":{"Android":"4.1.1","Webkit":"534.30","Safari":"4.0"}},{"vendor":"Eboda","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; ro-ro; E-Boda Essential A160 Build\/JRO03C) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Eboda","user_agent":"Mozilla\/5.0 (Linux; Android 4.0.3; E-Boda Supreme X80 Dual Core Build\/ICS.g12refM806A1YBD.20120925) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166  Safari\/535.19","mobile":true,"tablet":true},{"vendor":"Eboda","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; ro-ro; E-boda essential smile Build\/JRO03C) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Fly","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; ru-ru; Fly IQ440; Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Fly","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.6; ru-ru; FLY IQ256 Build\/GRK39F) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Fujitsu","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; ja-jp; F-10D Build\/V21R48A) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":true,"version":{"Android":"4.0.3","Build":"V21R48A","Webkit":"534.30","Safari":"4.0"}},{"vendor":"Fujitsu","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; ru-ru; M532 Build\/IML74K) AppleWebKit\/534.30 (KHTML like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true,"version":{"Android":"4.0.3","Build":"IML74K","Webkit":"534.30","Safari":"4.0"}},{"vendor":"FX2","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.2.2; de-de; FX2 PAD7 RK Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Galapad","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; zh-tw; G1 Build\/JRO03C) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true,"version":{"Android":"4.1.1","Webkit":"534.30","Safari":"4.0","Build":"JRO03C"}},{"vendor":"GoClever","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; el-gr; GOCLEVER TAB A103 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"GoClever","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.4; zh-tw; A7GOCLEVER Build\/GRJ22) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":true},{"vendor":"GoClever","user_agent":"Mozilla\/5.0 (Linux; Android 4.0.4; GOCLEVER TAB A104 Build\/IMM76D) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Safari\/535.19","mobile":true,"tablet":true},{"vendor":"GoClever","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; cs-cz; GOCLEVER TAB A93.2 Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"GoClever","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; sk-sk; GOCLEVER TAB A971 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"GoClever","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; lv-lv; GOCLEVER TAB A972BK Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"GoClever","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; fr-fr; GOCLEVER TAB A104.2 Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"GoClever","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; pt-pt; GOCLEVER TAB T76 Build\/MID) AppleWebKit\/534.30 (KHTML like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Google","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.2; en-us; Nexus One Build\/FRF91) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Google","user_agent":"Mozilla\/5.0 (Linux; Android 4.2.2; Nexus 4 Build\/JDQ39) AppleWebKit\/537.31 (KHTML, like Gecko) Chrome\/26.0.1410.40 Mobile Safari\/537.31 OPR\/14.0.1074.54070","mobile":true,"tablet":false,"version":{"Android":"4.2.2","Build":"JDQ39","Webkit":"537.31","Opera":"14.0.1074.54070"}},{"vendor":"Google","user_agent":"Mozilla\/5.0 (Linux; Android 4.2.2; Nexus 4 Build\/JDQ39) AppleWebKit\/537.31 (KHTML, like Gecko) Chrome\/26.0.1410.58 Mobile Safari\/537.31","mobile":true,"tablet":false,"version":{"Android":"4.2.2","Chrome":"26.0.1410.58"}},{"vendor":"Google","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; en-us; Google Nexus 4 - 4.1.1 - API 16 - 768x1280 Build\/JRO03S) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Google","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; en-us; Google Galaxy Nexus - 4.1.1 - API 16 - 720x1280 Build\/JRO03S) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Google","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.1; Nexus 7 Build\/JRO03D) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166  Safari\/535.19","mobile":true,"tablet":true},{"vendor":"Google","user_agent":"Mozilla\/5.0 (Linux; Android 4.2; Nexus 7 Build\/JOP40C) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Safari\/535.19","mobile":true,"tablet":true},{"vendor":"Google","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.2; Nexus 7 Build\/JZ054K) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Safari\/535.19","mobile":true,"tablet":true,"version":{"Android":"4.1.2","Chrome":"18.0.1025.166"}},{"vendor":"Google","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.2; cs-cz; Nexus S Build\/JZO54K; CyanogenMod-10.0.0) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Google","user_agent":"Mozilla\/5.0 (Linux; Android 4.3; Nexus 10 Build\/JWR66Y) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/29.0.1547.72 Safari\/537.36","mobile":true,"tablet":true},{"vendor":"Google","user_agent":"Mozilla\/5.0 (Linux; U; Android; en_us; Nexus 7 Build\/) AppleWebKit\/530.17 (KHTML, like Gecko) Version\/4.0 NetFrontLifeBrowser\/2.3 Mobile (Dragonfruit)","mobile":true,"tablet":true},{"vendor":"GU","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; vi-vn; TX-A1301 Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true,"version":{"Android":"4.0.4","Build":"IMM76D","Webkit":"534.30","Safari":"4.0"}},{"vendor":"GU","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; da-dk; Q702 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true,"version":{"Android":"4.0.3","Build":"IML74K","Webkit":"534.30","Safari":"4.0"}},{"vendor":"HCL","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; en-us; U1 Build\/HCL ME Tablet U1) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":true},{"vendor":"HCL","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; en-us; U1 Build\/HCL ME Tablet U1) AppleWebKit\/534.30 (KHTML like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":true},{"vendor":"HCL","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.2; Connect-3G-2.0 Build\/HCL) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/29.0.1547.72 Safari\/537.36","mobile":true,"tablet":true},{"vendor":"HCL","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.3; pt-br; X1 Build\/HCL ME Tablet X1) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":true},{"vendor":"HP","user_agent":"Mozilla\/5.0 (hp-tablet; Linux; hpwOS\/3.0.5; U; en-GB) AppleWebKit\/534.6 (KHTML, like Gecko) wOSBrowser\/234.83 Safari\/534.6 TouchPad\/1.0","mobile":true,"tablet":true},{"vendor":"HP","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; en-gb; HP Slate 7 Build\/JRO03H) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"HP","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.1; HP Slate 7 Build\/JRO03H) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/28.0.1500.94 Safari\/537.36","mobile":true,"tablet":true},{"vendor":"HP","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.2.2; de-de; HP 8 Build\/1.0.7_WW-FIR-13) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (X11; Linux x86_64; Z520m; en-ca) AppleWebKit\/534.24 (KHTML, like Gecko) Chrome\/11.0.696.34 Safari\/534.24","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"HTC_Touch_HD_T8282 Mozilla\/4.0 (compatible; MSIE 6.0; Windows CE; IEMobile 7.11)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 1.5; en-us; ADR6200 Build\/CUPCAKE) AppleWebKit\/528.5+ (KHTML, like Gecko) Version\/3.1.2 Mobile Safari\/525.20.1","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.1; xx-xx; Desire_A8181 Build\/ERE27) AppleWebKit\/530.17 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/530.17","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.1-update1; de-de; HTC Desire 1.19.161.5 Build\/ERE27) AppleWebKit\/530.17 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/530.17","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.1-update1; en-gb; HTC Desire Build\/ERE27) AppleWebKit\/530.17 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/530.17","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.2; fr-fr; HTC Desire Build\/FRF91) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.2; en-dk; Desire_A8181 Build\/FRF91) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.2; xx-xx; 001HT Build\/FRF91) AppleWebKit\/525.10+ (KHTML, like Gecko) Version\/3.0.4 Mobile Safari\/523.12.2","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.2; xx-xx; HTCA8180\/1.0 Android\/2.2 release\/06.23.2010 Browser\/WAP 2.0 Profile\/MIDP-2.0 Configuration\/CLDC-1.1 Build\/FRF91) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.2.2; de-at; HTC Desire Build\/FRG83G) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.2.2; en-sk; Desire_A8181 Build\/FRG83G) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3; xx-xx; HTC\/DesireS\/1.07.163.1 Build\/GRH78C) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.3; en-lv; HTC_DesireZ_A7272 Build\/GRI40) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.4; en-us; ADR6300 Build\/GRJ22) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.5; en-gb; HTC\/DesireS\/2.10.161.3 Build\/GRJ90) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.5; ru-ru; HTC_DesireS_S510e Build\/GRJ90) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.5; en-us; Inspire 4G Build\/GRJ90) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.5; de-de; HTC Explorer A310e Build\/GRJ90) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.5; en-gb; HTC_ChaCha_A810e Build\/GRJ90) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.5; nl-nl; HTC_DesireHD_A9191 Build\/GRJ90) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.5; ru-ru; HTC Desire S Build\/GRJ90) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.3; en-au; HTC Desire Build\/GRI40) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.5; de-de; HTC_DesireHD Build\/GRJ90) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.5; ru-ua; HTC_WildfireS_A510e Build\/GRJ90) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.7; en-us; HTC Vision Build\/GRI40; ILWT-CM7) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0; xx-xx; HTC_GOF_U\/1.05.161.1 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; hu-hu; HTC Sensation Z710e Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; pl-pl; EVO3D_X515m Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; ru-ru; HTC_One_S Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; ru-ru; HTC_One_V Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; zh-cn; HTC_A320e Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; zh-tw; HTC Desire V Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; Android 4.0.3; PG86100 Build\/IML74K) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; en-nl; SensationXE_Beats_Z715e Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; en-us; ADR6425LVW 4G Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; Android 4.0.3; HTC One V Build\/IML74K) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; cs-ee; Sensation_Z710e Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; en-us; HTC Evo 4G Build\/MIUI) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; Android 4.0.4; Desire HD Build\/IMM76D) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; en-my; HTC_One_X Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; it-it; IncredibleS_S710e Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; fr-fr; HTC_Desire_S Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.1; HTC One X Build\/JRO03C) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.1; HTC Butterfly Build\/JRO03C) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.1; EVO Build\/JRO03C) AppleWebKit\/537.22 (KHTML, like Gecko) Chrome\/25.0.1364.169 Mobile Safari\/537.22","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.2; HTCSensation Build\/JRO03C) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/32.0.1700.99 Mobile Safari\/537.36","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC 7 Mozart T8698; QSD8x50)","mobile":true,"tablet":false,"version":{"IE":"9.0","Windows Phone OS":"7.5","Trident":"5.0"},"model":"7 Mozart T8698"},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; 7 HTC MOZART)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; 7 Mondrian T8788)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; 7 Mozart T8698)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; 7 Mozart)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; 7 Mozart; Orange)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; 7 Pro T7576)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; 7 Pro)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; 7 Schubert T9292)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; 7 Surround)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; 7 Trophy T8686)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; 7 Trophy)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; Eternity)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; Gold)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; HD2 LEO)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; HD2)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; HD7 T9292)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; HD7)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; iPad 3)","mobile":true,"tablet":true},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; LEO)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; Mazaa)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; Mondrian)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; Mozart T8698)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; Mozart)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; mwp6985)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; PC40100)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; PC40200)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; PD67100)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; PI39100)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; PI86100)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; Radar 4G)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; Radar C110e)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; Radar C110e; 1.08.164.02)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; Radar C110e; 2.05.164.01)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; Radar C110e; 2.05.168.02)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; Radar)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; Radar; Orange)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; Schuber)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; Schubert T9292)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; Schubert)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; Spark)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; Surround)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; T7575)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; T8697)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; T8788)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; T9295)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; T9296)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; TITAN X310e)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; Titan)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; Torphy T8686)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; X310e)","mobile":true,"tablet":false},{"vendor":"HTC","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC_blocked; T8788)","mobile":true,"tablet":false,"version":{"IE":"9.0","Windows Phone OS":"7.5","Trident":"5.0"},"model":"T8788"},{"vendor":"Hudl","user_agent":"Mozilla\/5.0 (Linux; Android 4.2.2; Hudl HT7S3 Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/30.0.1599.82 Safari\/537.36","mobile":true,"tablet":true},{"vendor":"Huwaei","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.1-update1; bg-bg; Ideos S7 Build\/ERE27) AppleWebKit\/525.10+ (KHTML, like Gecko) Version\/3.0.4 Mobile Safari\/523.12.2","mobile":true,"tablet":true},{"vendor":"Huwaei","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.1; en-us; Ideos S7 Build\/ERE27) AppleWebKit\/525.10+ (KHTML, like Gecko) Version\/3.0.4 Mobile Safari\/523.12.2","mobile":true,"tablet":true},{"vendor":"Huwaei","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.6; lt-lt; U8660 Build\/HuaweiU8660) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Huwaei","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.7; ru-ru; HUAWEI-U8850 Build\/HuaweiU8850) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Huwaei","user_agent":"Mozilla\/5.0 (Linux; U; Android 3.2; pl-pl; MediaPad Build\/HuaweiMediaPad) AppleWebKit\/534.13 (KHTML, like Gecko) Version\/4.0 Safari\/534.13","mobile":true,"tablet":true},{"vendor":"Huwaei","user_agent":"Mozilla\/5.0 (Linux; U; Android 3.2; nl-nl; HUAWEI MediaPad Build\/HuaweiMediaPad) AppleWebKit\/534.13 (KHTML, like Gecko) Version\/4.0 Safari\/534.13","mobile":true,"tablet":true},{"vendor":"Huwaei","user_agent":"HUAWEI_T8951_TD\/1.0 Android\/4.0.4 (Linux; U; Android 4.0.4; zh-cn) Release\/05.31.2012 Browser\/WAP2.0 (AppleWebKit\/534.30) Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Huwaei","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.2; ar-eg; MediaPad 7 Youth Build\/HuaweiMediaPad) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Huwaei","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.2; zh-cn; HW-HUAWEI_C8815\/C8815V100R001C541B135; 540*960; CTC\/2.0) AppleWebKit\/534.30 (KHTML, like Gecko) Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Huwaei","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; zh-cn; HW-HUAWEI_C8813D\/C8813DV100R001C92B172; 480*854; CTC\/2.0) AppleWebKit\/534.30 (KHTML, like Gecko) Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Huwaei","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; zh-cn; HW-HUAWEI_Y300C\/Y300CV100R001C92B168; 480*800; CTC\/2.0) AppleWebKit\/534.30 (KHTML, like Gecko) Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Iconbit","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.1; NT-3702M Build\/JRO03C) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/29.0.1547.72 Safari\/537.36 OPR\/16.0.1212.65583","mobile":true,"tablet":true},{"vendor":"Iconbit","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; ru-ru; NetTAB SPACE II Build\/JRO03H) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"iJoy","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; fr-fr; Tablet Planet II-v3 Build\/JRO03H) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Intenso","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1.;de-de; INM8002KP Build\/JR003H) AppleWebKit\/534.30 (KHTML, like Gecko)Version\/4.0 Safari\/534.30","mobile":true,"tablet":true,"version":{"Android":"4.1.1.","Webkit":"534.30","Safari":"4.0"}},{"vendor":"IRU","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; ru-ru; M702pro Build\/JRO03C) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"JXD","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; en-us; F3000 Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Karbonn","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.1; ST10 Build\/JRO03C) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166  Safari\/535.19","mobile":true,"tablet":true},{"vendor":"Kobo","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.0; en-us;) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1 (Kobo Touch)","mobile":true,"tablet":true,"version":{"Android":"2.0","Webkit":"533.1","Safari":"4.0"}},{"vendor":"Lenovo","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; es-es; IdeaTab_A1107 Build\/MR1) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Lenovo","user_agent":"Mozilla\/5.0 (Linux; Android 4.0.3; IdeaTab A2107A-H Build\/IML74K) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/27.0.1453.90 Safari\/537.36","mobile":true,"tablet":true},{"vendor":"Lenovo","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; en-au; ThinkPad Tablet Build\/ThinkPadTablet_A400_03) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Lenovo","user_agent":"UCWEB\/2.0 (Linux; U; Opera Mini\/7.1.32052\/30.3697; en-US; IdeaTabA1000-G) U2\/1.0.0 UCBrowser\/9.2.0.419 Mobile","mobile":true,"tablet":true},{"vendor":"Lenovo","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.2; IdeaTabA1000-F Build\/JZO54K) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/34.0.1847.114 Safari\/537.36","mobile":true,"tablet":true},{"vendor":"Lenovo","user_agent":"Mozilla\/5.0 (Linux; Android 4.2.1; Lenovo A3000-H Build\/JOP40D) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.117 Safari\/537.36","mobile":true,"tablet":true},{"vendor":"Lenovo","user_agent":"Mozilla\/5.0 (Linux; Android 4.2.2; IdeaTab A3000-F Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/32.0.1700.99 Safari\/537.360","mobile":true,"tablet":true},{"vendor":"Lenovo","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1; zh-cn; Lenovo-A3000-H\/S100) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.1 Mobile Safari\/534.300","mobile":true,"tablet":true},{"vendor":"Lenovo","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.2.2; es-us; IdeaTab A3000-F Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Lenovo","user_agent":"Mozilla\/5.0 (Linux; Android 4.0.3; IdeaTab A2107A-H Build\/IML74K) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166  Safari\/535.19","mobile":true,"tablet":true},{"vendor":"Lenovo","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; de-de; IdeaTab A2107A-H Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Lenovo","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; es-es; IdeaTabA2109A Build\/JRO03R) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Lenovo","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; nl-nl; IdeaTabA2109A Build\/JRO03R) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Lenovo","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; es-es; IdeaTab_A1107 Build\/MR1) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.300","mobile":true,"tablet":true},{"vendor":"Lenovo","user_agent":"Mozilla\/5.0 (Linux; Android 4.2.2; IdeaTab S6000-H Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.138 Safari\/537.36","mobile":true,"tablet":true},{"vendor":"Lenovo","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.2.2; en-gb; IdeaTab S6000-F Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Lenovo","user_agent":"Mozilla\/5.0 (Linux; Android 4.2.2; Lenovo B8000-F Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/34.0.1847.114 Safari\/537.36","mobile":true,"tablet":true},{"vendor":"Lenovo","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.2.2;it-it; Lenovo B8000-F\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.2.2 Mobile Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Lenovo","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.2.2; it-it; Lenovo B6000-F\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.2.2 Mobile Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Lenovo","user_agent":"Mozilla\/5.0 (Linux; Android 4.2.2; Lenovo B6000-F Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/34.0.1847.114 Safari\/537.36","mobile":true,"tablet":true},{"vendor":"LG","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.2; en-us; LG-P509 Build\/FRF91) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1 MMS\/LG-Android-MMS-V1.0\/1.2","mobile":true,"tablet":false},{"vendor":"LG","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.2.2; pt-br; LG-P350f Build\/FRG83G) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1 MMS\/LG-Android-MMS-V1.0\/1.2","mobile":true,"tablet":false},{"vendor":"LG","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.3; en-us; LG-P500 Build\/GRI40) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1 MMS\/LG-Android-MMS-V1.0\/1.2","mobile":true,"tablet":false},{"vendor":"LG","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.3; en-us; LS670 Build\/GRI40) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"LG","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.4; ru-ru; LG-E510 Build\/GRJ22) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1 MMS\/LG-Android-MMS-V1.0\/1.2","mobile":true,"tablet":false},{"vendor":"LG","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.4; en-us; VS910 4G Build\/GRJ22) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"LG","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; nl-nl; LG-P700 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"LG","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; ko-kr; LG-L160L Build\/IML74K) AppleWebkit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"LG","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; en-us; LG-F160S Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"LG","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; nl-nl; LG-E610v\/V10f Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"LG","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; en-us; LG-E612 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"LG","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.2; LG-F180K Build\/JZO54K) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19","mobile":true,"tablet":false},{"vendor":"LG","user_agent":"Mozilla\/5.0 (Linux; Android 4.2.2; LG-V500 Build\/JDQ39B) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/31.0.1650.59 Safari\/537.36","mobile":true,"tablet":true},{"vendor":"LG","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; en-us; LG-LW770 Build\/IMM76I) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"LG","user_agent":"Mozilla\/5.0 (Linux; Android 4.4.2; LG-V510 Build\/KOT49H.L004) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.141 Safari\/537.36","mobile":true,"tablet":true},{"vendor":"LG","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; LG; LG E-900)","mobile":true,"tablet":false},{"vendor":"LG","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; LG; LG-C900)","mobile":true,"tablet":false},{"vendor":"LG","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; LG; LG-C900k)","mobile":true,"tablet":false},{"vendor":"LG","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; LG; LG-E900)","mobile":true,"tablet":false},{"vendor":"LG","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; LG; LG-E900; Orange)","mobile":true,"tablet":false},{"vendor":"LG","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; LG; LG-E900h)","mobile":true,"tablet":false},{"vendor":"LG","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; LG; LG-Optimus 7)","mobile":true,"tablet":false},{"vendor":"LG","user_agent":"Mozilla\/5.0 (Linux; U; Android 3.0.1; ja-jp; L-06C Build\/HRI66) AppleWebKit\/534.13 (KHTML, like Gecko) Version\/4.0 Safari\/534.13","mobile":true,"tablet":true},{"vendor":"LG","user_agent":"Mozilla\/5.0 (Linux; U; Android 3.0; en-us; LG-V900 Build\/HRI39) AppleWebKit\/534.13 (KHTML, like Gecko) Version\/4.0 Safari\/534.13","mobile":true,"tablet":true},{"vendor":"Megafon","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.5; ru-ru; MegaFon V9 Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":true},{"vendor":"Megafon","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.1; MT7A Build\/JRO03C) AppleWebKit\/537.31 (KHTML, like Gecko) Chrome\/26.0.1410.58 Safari\/537.31","mobile":true,"tablet":true},{"vendor":"MediaTek","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; fr-fr; MT8377 Build\/JRO03C) AppleWebKit\/534.30 (KHTML like Gecko) Version\/4.0 Safari\/534.30\/4.05d.1002.m7","mobile":true,"tablet":true},{"vendor":"Micromax","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.1; Micromax A110 Build\/JRO03C) AppleWebKit\/537.22 (KHTML, like Gecko) Chrome\/25.0.1364.169 Mobile Safari\/537.22","mobile":true,"tablet":false,"version":{"Android":"4.1.1","Build":"JRO03C","Webkit":"537.22","Chrome":"25.0.1364.169"}},{"vendor":"Micromax","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0; xx-xx; Micromax P250(Funbook) Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true,"version":{"Webkit":"534.30","Android":"4.0","Build":"IMM76D","Safari":"4.0"}},{"vendor":"Microsoft","user_agent":"Mozilla\/5.0 (compatible; MSIE 10.0; Windows NT 6.2; ARM; Trident\/6.0; Touch; .NET4.0E; .NET4.0C; Tablet PC 2.0)","mobile":true,"tablet":true,"version":{"IE":"10.0","Windows NT":"6.2","Trident":"6.0"}},{"vendor":"Microsoft","user_agent":"Mozilla\/5.0 (compatible; MSIE 10.0; Windows NT 6.2; ARM; Trident\/6.0)","mobile":true,"tablet":true},{"vendor":"Microsoft","user_agent":"Mozilla\/5.0 (compatible; MSIE 10.0; Windows NT 6.2; ARM; Trident\/6.0; Touch)","mobile":true,"tablet":true},{"vendor":"Microsoft","user_agent":"Mozilla\/5.0 (compatible; MSIE 10.0; Windows NT 6.2; ARM; Trident\/6.0; Touch; ARMBJS)","mobile":true,"tablet":true},{"vendor":"Microsoft","user_agent":"Mozilla\/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Win64; x64; Trident\/6.0; Touch; MASMJS)","mobile":false,"tablet":false},{"vendor":"Microsoft","user_agent":"Mozilla\/5.0 (Windows NT 6.2; WOW64; rv:25.0) Gecko\/20130626 Firefox\/25.0","mobile":false,"tablet":false},{"vendor":"Microsoft","user_agent":"Mozilla\/5.0 (Windows NT 6.2; WOW64; rv:22.0) Gecko\/20100101 Firefox\/22.0","mobile":false,"tablet":false},{"vendor":"Microsoft","user_agent":"Mozilla\/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Win64; x64; Trident\/6.0; MDDCJS)","mobile":false,"tablet":false},{"vendor":"Microsoft","user_agent":"Mozilla\/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident\/6.0; MDDCJS)","mobile":false,"tablet":false},{"vendor":"Microsoft","user_agent":"Mozilla\/5.0 (Windows NT 6.2; WOW64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/28.0.1500.52 Safari\/537.36 OPR\/15.0.1147.130","mobile":false,"tablet":false},{"vendor":"Microsoft","user_agent":"Mozilla\/5.0 (Windows NT 6.2; WOW64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/27.0.1453.116 Safari\/537.36","mobile":false,"tablet":false},{"vendor":"Microsoft","user_agent":"Mozilla\/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Win64; x64; Trident\/6.0; Touch; MDDCJS; WebView\/1.0)","mobile":false,"tablet":false},{"vendor":"Modecom","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.2.2; pl-pl; FreeTAB 1014 IPS X4+ Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Motorola","user_agent":"MOT-W510\/08.11.05R MIB\/BER2.2 Profile\/MIDP-2.0 Configuration\/CLDC-1.1 EGE\/1.0 UP.Link\/6.3.0.0.0","mobile":true,"tablet":false},{"vendor":"Motorola","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.2.2; zh-cn; ME722 Build\/MLS2GC_2.6.0) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Motorola","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.4; en-us; DROIDX Build\/4.5.1_57_DX8-51) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Motorola","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.5; en-us; MB855 Build\/4.5.1A-1_SUN-254_13) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Motorola","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.5; es-us; MB526 Build\/4.5.2-51_DFL-50) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Motorola","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.6; en-ca; MB860 Build\/4.5.2A-51_OLL-17.8) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Motorola","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.7; en-us; MOT-XT535 Build\/V1.540) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Motorola","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.7; ko-kr; A853 Build\/SHOLS_U2_05.26.3; CyanogenMod-7.1.2) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Motorola","user_agent":"Mozilla\/5.0 (Linux; U; Android 3.0; en-us; Xoom Build\/HRI39) AppleWebKit\/534.13 (KHTML, like Gecko) Version\/4.0 Safari\/534.13","mobile":true,"tablet":true},{"vendor":"Motorola","user_agent":"Mozilla\/5.0 (Linux; U; Android 3.1; en-us; Xoom Build\/HMJ25) AppleWebKit\/534.13 (KHTML, like Gecko) Version\/4.0 Safari\/534.13","mobile":true,"tablet":true},{"vendor":"Motorola","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; en-us; DROID RAZR 4G Build\/6.7.2-180_DHD-16_M4-31) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Motorola","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; en-us; Xoom Build\/IMM76L) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Motorola","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; pt-br; XT687 Build\/V2.27D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false,"version":{"Android":"4.0.4","Webkit":"534.30","Safari":"4.0"},"model":"XT687"},{"vendor":"Motorola","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; es-es; MOT-XT910 Build\/6.7.2-180_SPU-19-TA-11.6) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Motorola","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.2; XT910 Build\/9.8.2O-124_SPUL-17) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19","mobile":true,"tablet":false},{"vendor":"Motorola","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.2; XT915 Build\/2_32A_2031) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/28.0.1500.94 Mobile Safari\/537.36","mobile":true,"tablet":false},{"vendor":"Motorola","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.2; XT919 Build\/2_290_2017) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/28.0.1500.64 Mobile Safari\/537.36","mobile":true,"tablet":false},{"vendor":"Motorola","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.2; XT925 Build\/9.8.2Q-50-XT925_VQLM-20) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/27.0.1453.90 Mobile Safari\/537.36","mobile":true,"tablet":false},{"vendor":"Motorola","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.2; XT907 Build\/9.8.1Q-66) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/27.0.1453.90 Mobile Safari\/537.36","mobile":true,"tablet":false},{"vendor":"Motorola","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.2; XT901 Build\/9.8.2Q-50_SLS-13) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19","mobile":true,"tablet":false},{"vendor":"Motorola","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.2; DROID BIONIC Build\/9.8.2O-72_VZW-22) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/32.0.1700.99 Mobile Safari\/537.36","mobile":true,"tablet":false},{"vendor":"Nabi","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.2.1; en-us; NABI-A Build\/MASTER) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":true},{"vendor":"NEC","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; ja-jp; N-08D Build\/A5001911) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"NEC","user_agent":"Mozilla\/5.0 (Linux; U; Android AAA; BBB; N-06D Build\/CCC) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":true},{"vendor":"Nook","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.2.1; en-us; NOOK BNRV200 Build\/ERD79 1.4.3) Apple WebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":true,"version":{"Android":"2.2.1","Webkit":"533.1","Safari":"4.0"}},{"vendor":"Nook","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; en-us; NOOK BNTV400 Build\/ICS) AppleWebKit\/534.30 (KHTML like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true,"version":{"Android":"4.0.4","Build":"ICS","Webkit":"534.30","Safari":"4.0"}},{"vendor":"Nook","user_agent":"Mozilla\/5.0 (Linux; Android 4.0.4; BNTV600 Build\/IMM76L) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/28.0.1500.94 Safari\/537.36 Hughes-PFB\/CID5391275.AID1376709964","mobile":true,"tablet":true,"version":{"Android":"4.0.4","Build":"IMM76L","Webkit":"537.36","Chrome":"28.0.1500.94"}},{"vendor":"Nokia","user_agent":"Nokia200\/2.0 (12.04) Profile\/MIDP-2.1 Configuration\/CLDC-1.1 UCWEB\/2.0 (Java; U; MIDP-2.0; en-US; nokia200) U2\/1.0.0 UCBrowser\/8.9.0.251 U2\/1.0.0 Mobile UNTRUSTED\/1.0","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Nokia6303iclassic\/5.0 (06.61) Profile\/MIDP-2.1 Configuration\/CLDC-1.1 Mozilla\/5.0 AppleWebKit\/420+ (KHTML, like Gecko) Safari\/420+","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"nokian73-1\/UC Browser7.8.0.95\/69\/400 UNTRUSTED\/1.0","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Nokia2760\/2.0 (06.82) Profile\/MIDP-2.1 Configuration\/CLDC-1.1","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Nokia3650\/1.0 SymbianOS\/6.1 Series60\/1.2 Profile\/MIDP-1.0 Configuration\/CLDC-1.0","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"NokiaN70-1\/5.0737.3.0.1 Series60\/2.8 Profile\/MIDP-2.0 Configuration\/CLDC-1.1\/UC Browser7.8.0.95\/27\/352","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (S60V3; U; ru; NokiaN73) AppleWebKit\/530.13 (KHTML, like Gecko) UCBrowser\/8.6.0.199\/28\/444\/UCWEB Mobile","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (S60V3; U; ru; NokiaC5-00.2)\/UC Browser8.5.0.183\/28\/444\/UCWEB Mobile","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (S60V3; U; ru; NokiaC5-00.2) AppleWebKit\/530.13 (KHTML, like Gecko) UCBrowser\/8.7.0.218\/28\/352\/UCWEB Mobile","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (Series40; NokiaC3-00\/08.63; Profile\/MIDP-2.1 Configuration\/CLDC-1.1) Gecko\/20100401 S40OviBrowser\/2.2.0.0.33","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Opera\/9.80 (Series 60; Opera Mini\/7.0.31380\/28.2725; U; es) Presto\/2.8.119 Version\/11.10","mobile":true,"tablet":false,"version":{"Opera Mini":"7.0.31380","Presto":"2.8.119"}},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (Symbian\/3; Series60\/5.2 NokiaC7-00\/025.007; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/533.4 (KHTML, like Gecko) NokiaBrowser\/7.3.1.37 Mobile Safari\/533.4 3gpp-gba","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (Symbian\/3; Series60\/5.2 NokiaX7-00\/022.014; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/533.4 (KHTML, like Gecko) NokiaBrowser\/7.3.1.37 Mobile Safari\/533.4 3gpp-gba","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (Symbian\/3; Series60\/5.3 NokiaE6-00\/111.140.0058; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/535.1 (KHTML, like Gecko) NokiaBrowser\/8.3.1.4 Mobile Safari\/535.1 3gpp-gba","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (Symbian\/3; Series60\/5.3 NokiaC6-01\/111.040.1511; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/535.1 (KHTML, like Gecko) NokiaBrowser\/8.3.1.4 Mobile Safari\/535.1","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (Symbian\/3; Series60\/5.3 NokiaC6-01; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/533.4 (KHTML, like Gecko) NokiaBrowser\/7.4.2.6 Mobile Safari\/533.4 3gpp-gba","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (Symbian\/3; Series60\/5.3 Nokia700\/111.030.0609; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/533.4 (KHTML, like Gecko) NokiaBrowser\/7.4.2.6 Mobile Safari\/533.4 3gpp-gba","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (Symbian\/3; Series60\/5.3 Nokia700\/111.020.0308; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/533.4 (KHTML, like Gecko) NokiaBrowser\/7.4.1.14 Mobile Safari\/533.4 3gpp-gba","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (Symbian\/3; Series60\/5.3 NokiaN8-00\/111.040.1511; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/535.1 (KHTML, like Gecko) NokiaBrowser\/8.3.1.4 Mobile Safari\/535.1 3gpp-gba","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (Symbian\/3; Series60\/5.3 Nokia701\/111.030.0609; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/533.4 (KHTML, like Gecko) NokiaBrowser\/7.4.2.6 Mobile Safari\/533.4 3gpp-gba","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (SymbianOS\/9.2; U; Series60\/3.1 Nokia6120c\/3.83; Profile\/MIDP-2.0 Configuration\/CLDC-1.1 ) AppleWebKit\/413 (KHTML, like Gecko) Safari\/413","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (SymbianOS\/9.2; U; Series60\/3.1 Nokia6120ci\/7.02; Profile\/MIDP-2.0 Configuration\/CLDC-1.1 ) AppleWebKit\/413 (KHTML, like Gecko) Safari\/413","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (SymbianOS\/9.2; U; Series60\/3.1 Nokia6120c\/7.10; Profile\/MIDP-2.0 Configuration\/CLDC-1.1 ) AppleWebKit\/413 (KHTML, like Gecko) Safari\/413","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (SymbianOS\/9.2; U; Series60\/3.1 NokiaE66-1\/510.21.009; Profile\/MIDP-2.0 Configuration\/CLDC-1.1 ) AppleWebKit\/413 (KHTML, like Gecko) Safari\/413","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (SymbianOS\/9.2; U; Series60\/3.1 NokiaE71-1\/110.07.127; Profile\/MIDP-2.0 Configuration\/CLDC-1.1 ) AppleWebKit\/413 (KHTML, like Gecko) Safari\/413","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (SymbianOS\/9.2; U; Series60\/3.1 NokiaN95-3\/20.2.011 Profile\/MIDP-2.0 Configuration\/CLDC-1.1 ) AppleWebKit\/413 (KHTML, like Gecko) Safari\/413","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (SymbianOS\/9.2; U; Series60\/3.1 NokiaE51-1\/200.34.36; Profile\/MIDP-2.0 Configuration\/CLDC-1.1 ) AppleWebKit\/413 (KHTML, like Gecko) Safari\/413","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (SymbianOS\/9.2; U; Series60\/3.1 NokiaE63-1\/500.21.009; Profile\/MIDP-2.0 Configuration\/CLDC-1.1 ) AppleWebKit\/413 (KHTML, like Gecko) Safari\/413","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (SymbianOS\/9.2; U; Series60\/3.1 NokiaN82\/10.0.046; Profile\/MIDP-2.0 Configuration\/CLDC-1.1 ) AppleWebKit\/413 (KHTML, like Gecko) Safari\/413","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (SymbianOS\/9.3; Series60\/3.2 NokiaE52-1\/052.003; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/525 (KHTML, like Gecko) Version\/3.0 BrowserNG\/7.2.6.2","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (SymbianOS\/9.3; Series60\/3.2 NokiaE52-1\/@version@; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/533.4 (KHTML, like Gecko) NokiaBrowser\/7.3.1.26 Mobile Safari\/533.4 3gpp-gba","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (SymbianOS\/9.3; Series60\/3.2 NokiaC5-00\/031.022; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/525 (KHTML, like Gecko) Version\/3.0 BrowserNG\/7.2.3.1","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (SymbianOS\/9.3; Series60\/3.2 NokiaC5-00.2\/081.003; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/533.4 (KHTML, like Gecko) NokiaBrowser\/7.3.1.32 Mobile Safari\/533.4 3gpp-gba","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (SymbianOS\/9.3; U; Series60\/3.2 NokiaN79-1\/32.001; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/413 (KHTML, like Gecko) Safari\/413","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (SymbianOS\/9.3; U; Series60\/3.2 Nokia6220c-1\/06.101; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/413 (KHTML, like Gecko) Safari\/413","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (SymbianOS\/9.3; Series60\/3.2 NokiaC5-00.2\/071.003; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/533.4 (KHTML, like Gecko) NokiaBrowser\/7.3.1.26 Mobile Safari\/533.4 3gpp-gba","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (SymbianOS\/9.3; Series60\/3.2 NokiaE72-1\/081.003; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/533.4 (KHTML, like Gecko) NokiaBrowser\/7.3.1.32 Mobile Safari\/533.4 3gpp-gba","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (SymbianOS\/9.3; Series60\/3.2 NokiaC5-00\/061.005; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/525 (KHTML, like Gecko) Version\/3.0 BrowserNG\/7.2.6.2 3gpp-gba","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (SymbianOS\/9.4; Series60\/5.0 NokiaX6-00\/40.0.002; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/533.4 (KHTML, like Gecko) NokiaBrowser\/7.3.1.33 Mobile Safari\/533.4 3gpp-gb","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (SymbianOS\/9.4; Series60\/5.0 Nokia5800d-1\/60.0.003; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 AppleWebKit\/533.4 (KHTML, like Gecko) NokiaBrowser\/7.3.1.33 Mobile Safari\/533.4 3gpp-gba","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (SymbianOS\/9.4; Series60\/5.0 NokiaC5-03\/12.0.023; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/525 (KHTML, like Gecko) Version\/3.0 BrowserNG\/7.2.6.9 3gpp-gba","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (SymbianOS\/9.4; Series60\/5.0 Nokia5228\/40.1.003; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/525 (KHTML, like Gecko) Version\/3.0 BrowserNG\/7.2.7.4 3gpp-gba","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (SymbianOS\/9.4; Series60\/5.0 Nokia5230\/51.0.002; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/533.4 (KHTML, like Gecko) NokiaBrowser\/7.3.1.33 Mobile Safari\/533.4 3gpp-gba","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (SymbianOS\/9.4; Series60\/5.0 Nokia5530c-2\/32.0.007; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/525 (KHTML, like Gecko) Version\/3.0 BrowserNG\/7.2.6.9 3gpp-gba","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (SymbianOS\/9.4; Series60\/5.0 NokiaN97-1\/21.0.045; Profile\/MIDP-2.1 Configuration\/CLDC-1.1) AppleWebKit\/525 (KHTML, like Gecko) BrowserNG\/7.1.4","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (SymbianOS\/9.4; Series60\/5.0 NokiaN97-4\/30.0.004; Profile\/MIDP-2.1 Configuration\/CLDC-1.1) AppleWebKit\/533.4 (KHTML, like Gecko) NokiaBrowser\/7.3.1.28 3gpp-gba","mobile":true,"tablet":false,"version":{"Symbian":"9.4","Webkit":"533.4","NokiaBrowser":"7.3.1.28"},"model":"NokiaN97-4"},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; Nokia; 7 Mozart T8698)","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; NOKIA; 710)","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; Nokia; 800)","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; Nokia; 800C)","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; Nokia; 800C; Orange)","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; Nokia; 900)","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; Nokia; HD7 T9292)","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; NOKIA; LG E-900)","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; NOKIA; Lumia 610)","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; NOKIA; Lumia 710)","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; NOKIA; Lumia 710; Orange)","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; NOKIA; Lumia 710; T-Mobile)","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; NOKIA; Lumia 710; Vodafone)","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; NOKIA; Lumia 800)","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; NOKIA; Lumia 800) UP.Link\/5.1.2.6","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; NOKIA; Lumia 800; Orange)","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; NOKIA; Lumia 800; SFR)","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; NOKIA; Lumia 800; T-Mobile)","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; NOKIA; Lumia 800; vodafone)","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; Nokia; Lumia 800c)","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; NOKIA; Lumia 900)","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; Nokia; Lumia 920)","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident\/6.0; IEMobile\/10.0; ARM; Touch; NOKIA; Lumia 920)","mobile":true,"tablet":false,"version":{"IE":"10.0","Windows Phone OS":"8.0","Trident":"6.0"},"model":"Lumia 920"},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; Nokia; lumia800)","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; NOKIA; Nokia 610)","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; NOKIA; Nokia 710)","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; NOKIA; Nokia 800)","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; NOKIA; Nokia 800C)","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; NOKIA; Nokia 900)","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; Nokia; Nokia)","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; Nokia; SGH-i917)","mobile":true,"tablet":false},{"vendor":"Nokia","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; Nokia; TITAN X310e)","mobile":true,"tablet":false,"version":{"Windows Phone OS":"7.5","Trident":"5.0"},"model":"TITAN X310e"},{"vendor":"Odys","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; de-de; LOOX Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Odys","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; de-de; LOOX Plus Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Odys","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.X; de-de; XENO10 Build\/ODYS XENO 10) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Odys","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.2.2; de-de; ODYS Space Build\/I700T_P7_T04_TSCL_FT_R_0_03_1010_110623) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":true},{"vendor":"OverMax","user_agent":"OV-SteelCore(B) Mozilla\/5.0 (iPad; CPU OS 5_0_1 like Mac OS X) AppleWebKit\/534.46 (KHTML, like Gecko) Version\/5.1 Mobile\/9A405 Safari\/7534.48.3","mobile":true,"tablet":true},{"vendor":"OverMax","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; pl-pl; OV-SteelCore Build\/ICS.g08refem611.20121010) AppleWebKit\/534.30 (KHTML like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"YONESTablet","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; pl-pl; BC1077 Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Pantech","user_agent":"PANTECH-C790\/JAUS08312009 Browser\/Obigo\/Q05A Profile\/MIDP-2.0 Configuration\/CLDC-1.1","mobile":true,"tablet":false},{"vendor":"Pantech","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.2.1; ko-kr; SKY IM-A600S Build\/FRG83) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Pantech","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.3; en-us; ADR8995 4G Build\/GRI40) AppleWebKit\/533.1 (KHTML like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Pantech","user_agent":"Mozilla\/5.0 (Linux; U; Android 3.2.1; en-us; PantechP4100 Build\/HTK75) AppleWebKit\/534.13 (KHTML, like Gecko) Version\/4.0 Safari\/534.13","mobile":true,"tablet":true},{"vendor":"Philips","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; en-us; W732 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"PointOfView","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; en-us; POV_TAB-PROTAB30-IPS10 Build\/JRO03H) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Prestigio","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.2.2; en-gb; PMP5297C_QUAD Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Prestigio","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; sk-sk; PMP7100D3G Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true,"version":{"Android":"4.0.4","Build":"IMM76D","Webkit":"534.30","Safari":"4.0"},"model":"PMP7100D3G"},{"vendor":"Prestigio","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.2; sk-sk; PMP7280C3G Build\/JZO54K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 MobilSafari\/534.30","mobile":true,"tablet":true},{"vendor":"PROSCAN","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; en-us; PLT8088 Build\/JRO03H) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true,"version":{"Android":"4.1.1","Build":"JRO03H","Webkit":"534.30","Safari":"4.0"}},{"vendor":"PyleAudio","user_agent":"Mozilla\/5.0 (Linux; Android 4.0.4; PTBL92BC Build\/IMM76D) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/31.0.1650.59 Mobile Safari\/537.36","mobile":true,"tablet":true,"version":{"Android":"4.0.4","Build":"IMM76D","Webkit":"537.36","Chrome":"31.0.1650.59"}},{"vendor":"RockChip","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.2.1; hu-hu; RK2818, Build\/MASTER) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":true},{"vendor":"RockChip","user_agent":"Mozilla\/5.0 (Linux; U; Android Android 2.1-RK2818-1.0.0; zh-cn; MD701 Build\/ECLAIR) AppleWebKit\/530.17 (KHTML like Gecko) Version\/4.0 Mobile Safari\/530.17","mobile":true,"tablet":true},{"vendor":"RossMoor","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.2.1; ru-ru; RM-790 Build\/JOP40D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"QMobile","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.6; en-us; A2 Build\/GRK39F) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"MQQBrowser\/4.0\/Mozilla\/5.0 (Linux; U; Android 3.2; zh-cn; GT-P6800 Build\/HTJ85B) AppleWebKit\/533.1 (KHTML, like Gecko) Mobile Safari\/533.1","mobile":true,"tablet":true,"version":{"MQQBrowser":"4.0"}},{"vendor":"Samsung","user_agent":"SAMSUNG-SGH-P250-ORANGE\/P250BVHH8 Profile\/MIDP-2.0 Configuration\/CLDC-1.1 UP.Browser\/6.2.3.3.c.1.101 (GUI) MMP\/2.0","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"SAMSUNG-GT-B2710\/B271MCXKF1 SHP\/VPP\/R5 Dolfin\/2.0 QTV\/5.3 SMM-MMS\/1.2.0 profile\/MIDP-2.1 configuration\/CLDC-1.1 OPN-B","mobile":true,"tablet":false,"version":{"Dolfin":"2.0"}},{"vendor":"Samsung","user_agent":"SAMSUNG-SGH-D900i\/1.0 Profile\/MIDP-2.0 Configuration\/CLDC-1.1 UP.Browser\/6.2.3.3.c.1.101 (GUI) MMP\/2.0","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"SAMSUNG-GT-S5233T\/S5233TXEJE3 SHP\/VPP\/R5 Jasmine\/0.8 Qtv5.3 SMM-MMS\/1.2.0 profile\/MIDP-2.1 configuration\/CLDC-1.1","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (SAMSUNG; SAMSUNG-GT-S5380D\/S5380FXXKL3; U; Bada\/2.0; ru-ru) AppleWebKit\/534.20 (KHTML, like Gecko) Dolfin\/3.0 Mobile HVGA SMM-MMS\/1.2.0 OPN-B","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"SAMSUNG-GT-C3312\/1.0 NetFront\/4.2 Profile\/MIDP-2.0 Configuration\/CLDC-1.1","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 1.5; de-de; Galaxy Build\/CUPCAKE) AppleWebKit\/528.5 (KHTML, like Gecko) Version\/3.1.2 Mobile Safari\/525.20.1","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"SAMSUNG-GT-S3650\/S3650XEII3 SHP\/VPP\/R5 Jasmine\/1.0 Nextreaming SMM-MMS\/1.2.0 profile\/MIDP-2.1 configuration\/CLDC-1.1","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"JUC (Linux; U; 2.3.6; zh-cn; GT-S5360; 240*320) UCWEB7.9.0.94\/140\/352","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (SAMSUNG; SAMSUNG-GT-S5250\/S5250XEKJ3; U; Bada\/1.0; ru-ru) AppleWebKit\/533.1 (KHTML, like Gecko) Dolfin\/2.0 Mobile WQVGA SMM-MMS\/1.2.0 NexPlayer\/3.0 profile\/MIDP-2.1 configuration\/CLDC-1.1 OPN-B","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/4.0 (compatible; MSIE 7.0; Windows Phone OS 7.0; Trident\/3.1; IEMobile\/7.0; SAMSUNG; SGH-i917)","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (SAMSUNG; SAMSUNG-GT-S8530\/S8530XXJKA; U; Bada\/1.2; cs-cz) AppleWebKit\/533.1 (KHTML, like Gecko) Dolfin\/2.2 Mobile WVGA SMM-MMS\/1.2.0 OPN-B","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 1.6; ru-ru; Galaxy Build\/Donut) AppleWebKit\/528.5+ (KHTML, like Gecko) Version\/3.1.2 Mobile Safari\/525.20.1","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.1-update1; ru-ru; GT-I5500 Build\/ERE27) AppleWebKit\/530.17 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/530.17","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.2; en-us; GALAXY_Tab Build\/MASTER) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":true},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.2; ja-jp; SC-01C Build\/FROYO) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":true},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.2; fr-fr; GT-I9000 Build\/FROYO) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.2.1; zh-cn; SCH-i909 Build\/FROYO) UC AppleWebKit\/534.31 (KHTML, like Gecko) Mobile Safari\/534.31","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.3; ja-jp; SC-01C Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":true},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.3; en-gb; GT-P1000 Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":true},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.3; el-gr; GT-I9001 Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.3; en-ca; SGH-I896 Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.4; es-us; GT-S5660L Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1 MicroMessenger\/4.5.1.261","mobile":true,"tablet":false,"version":{"MicroMessenger":"4.5.1.261"}},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.6; en-us; GT-S5660 Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.6; ru-ru; GT-S6102 Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.6; pt-br; GT-S5367 Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.6; fr-fr; GT-S5839i Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.6; en-gb; GT-S7500 Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.6; en-gb; GT-S5830 Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.6; es-us; GT-B5510L Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.6; pl-pl; GT-I9001-ORANGE\/I9001BVKPC Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.6; en-us; GT-I8150 Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.6; nl-nl; GT-I9070 Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.6; en-gb; GT-S5360 Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.6; es-us; GT-S6102B Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.6; en-us; GT-S5830i Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.6; ru-ru; GT-I8160 Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.6; ru-ru; GT-S6802 Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.7; ru-ru; GT-S5830 Build\/GRWK74; LeWa_ROM_Cooper_12.09.21) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.6; ru-ru; GT-N7000 Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 3.0.1; en-us; GT-P7100 Build\/HRI83) AppleWebkit\/534.13 (KHTML, like Gecko) Version\/4.0 Safari\/534.13","mobile":true,"tablet":true},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 3.2; he-il; GT-P7300 Build\/HTJ85B) AppleWebKit\/534.13 (KHTML, like Gecko) Version\/4.0 Safari\/534.13","mobile":true,"tablet":true},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 3.2; en-gb; GT-P6200 Build\/HTJ85B) AppleWebKit\/534.13 (KHTML, like Gecko) Version\/4.0 Safari\/534.13","mobile":true,"tablet":true},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; en-gb; GT-I9100 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; en-us; GT-I9100G Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; nl-nl; GT-P5100 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android-4.0.3; en-us; Galaxy Nexus Build\/IML74K) AppleWebKit\/535.7 (KHTML, like Gecko) CrMo\/16.0.912.75 Mobile Safari\/535.7","mobile":true,"tablet":false,"version":{"Chrome":"16.0.912.75"}},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; Android 4.0.3; SGH-T989 Build\/IML74K) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19","mobile":true,"tablet":false,"version":{"Chrome":"18.0.1025.166"}},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; ru-ru; GT-P5100 Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; Android 4.0.4; GT-I9300 Build\/IMM76D) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; Android 4.0.4; SPH-D710 Build\/IMM76I) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; zh-cn; GT-I9300 Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; en-gb; GT-I9300-ORANGE\/I9300BVBLG2 Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; th-th; GT-I9300T Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; ru-ru; GT-I9100 Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; en-us ; GT-I9100 Build\/IMM76D) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1\/UCBrowser\/8.4.1.204\/145\/355","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; en-gb; GT-N7000 Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; th-th; GT-P6800 Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; Android 4.0.4; SAMSUNG-SGH-I747 Build\/IMM76D) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; es-es; GT-P5110 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; Android 4.0.4; GT-P5110 Build\/IMM76D) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Safari\/535.19","mobile":true,"tablet":true},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; zh-cn; SAMSUNG-GT-S7568_TD\/1.0 Android\/4.0.4 Release\/07.15.2012 Browser\/AppleWebKit534.30 Build\/IMM76D) ApplelWebkit\/534.30 (KHTML,like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false,"version":{"Android":"4.0.4"}},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; ru-ru; GT-P3100 Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; tr-tr; GT-P3105 Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; en-ca; GT-N8010 Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; ru-ru; GT-S7562 Build\/IMM76I) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; en-us; GT-N7100 Build\/JRO03C) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.2; GT-N7100 Build\/JZO54K) AppleWebKit\/537.22 (KHTML, like Gecko) Chrome\/25.0.1364.123 Mobile Safari\/537.22 OPR\/14.0.1025.52315","mobile":true,"tablet":false,"version":{"Build":"JZO54K","Webkit":"537.22","Opera":"14.0.1025.52315"}},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; zh-hk; GT-N7105 Build\/JRO03C) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; ru-ru; GT-N8000 Build\/JRO03C) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.1; SGH-i747M Build\/JRO03L) AppleWebKit\/535.19(KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; en-gb; Galaxy Nexus - 4.1.1 - with Google Apps - API 16 - 720x1280 Build\/JRO03S) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.2; GT-I8262 Build\/JZO54K) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/32.0.1700.99 Mobile Safari\/537.36","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.2; it-it; Galaxy Nexus Build\/JZO54K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.2; en-us; SGH-I777 Build\/JZO54K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.2; en-us; GT-S7710 Build\/JZO54K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.2; en-us; GT-I9082 Build\/JZO54K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.2; en-us; SGH-T999L Build\/JZO54K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; Android 4.2.2; GT-P5210 Build\/JDQ39) AppleWebKit\/537.36 (KHTML, Like Gecko) Chrome\/27.0.1453.90 Safari\/537.36","mobile":true,"tablet":true},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; Android 4.2.2; en-us; SAMSUNG GT-I9200 Build\/JDQ39) AppleWebKit\/535.19 (KHTML, like Gecko) Version\/1.0 Chrome\/18.0.1025.308 Mobile Safari\/535.19","mobile":true,"tablet":true},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; Android 4.2.2; zh-cn; SCH-I959 Build\/JDQ39) AppleWebKit\/535.19 (KHTML, like Gecko) Version\/1.0 Chrome\/18.0.1025.308 Mobile Safari\/535.19","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.2.2; nl-nl; SM-T310 Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; Android 4.3; en-us; SAMSUNG SM-P600 Build\/JSS15J) AppleWebKit\/537.36 (KHTML, like Gecko) Version\/1.5 Chrome\/28.0.1500.94 Safari\/537.36","mobile":true,"tablet":true},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.2.2; en-gb; GT-N5100 Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (Linux; Android 4.4.2; en-us; SAMSUNG SM-T530NU Build\/KOT49H) AppleWebKit\/537.36 (KHTML, like Gecko) Version\/1.5 Chrome\/28.0.1500.94 Safari\/537.36","mobile":true,"tablet":true},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SAMSUNG; CETUS)","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SAMSUNG; Focus I917 By TC)","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SAMSUNG; Focus i917)","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SAMSUNG; FOCUS S)","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SAMSUNG; GT-I8350)","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SAMSUNG; GT-i8700)","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SAMSUNG; GT-S7530)","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SAMSUNG; Hljchm's Wp)","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SAMSUNG; I917)","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SAMSUNG; OMNIA 7)","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SAMSUNG; OMNIA7 By MWP_HS)","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SAMSUNG; OMNIA7)","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SAMSUNG; OMNIA7; Orange)","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SAMSUNG; SGH-i677)","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SAMSUNG; SGH-i917)","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SAMSUNG; SGH-i917.)","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SAMSUNG; SGH-i917R)","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SAMSUNG; SGH-i937)","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SAMSUNG; SMG-917R)","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SAMSUNG_blocked_blocked_blocked; OMNIA7; Orange)","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SAMSUNG_blocked_blocked_blocked_blocked; OMNIA7; Orange)","mobile":true,"tablet":false},{"vendor":"Samsung","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SUMSUNG; OMNIA 7)","mobile":true,"tablet":false},{"vendor":"simvalley","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.4; de-de; SP-80 Build\/GRJ22) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"SonyEricssonK800i\/R1AA Browser\/NetFront\/3.3 Profile\/MIDP-2.0 Configuration\/CLDC-1.1","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.1-update1; es-ar; SonyEricssonE15a Build\/2.0.1.A.0.47) AppleWebKit\/530.17 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/530.17","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.1-update1; pt-br; SonyEricssonU20a Build\/2.1.1.A.0.6) AppleWebKit\/530.17 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/530.17","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.3; en-au; SonyEricssonX10i Build\/3.0.1.G.0.75) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.4; ru-ru; SonyEricssonST18i Build\/4.0.2.A.0.62) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.4; hr-hr; SonyEricssonST15i Build\/4.0.2.A.0.62) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.4; sk-sk; SonyEricssonLT15i Build\/4.0.2.A.0.62) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.7; th-th; SonyEricssonST27i Build\/6.0.B.3.184) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.7; de-de; SonyEricssonST25i Build\/6.0.B.3.184) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; pt-br; Xperia Tablet S Build\/TID0092) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true,"version":{"Android":"4.0.3","Build":"TID0092","Webkit":"534.30","Safari":"4.0"}},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.0.3; LT18i Build\/4.1.A.0.562) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.0.3; Sony Tablet S Build\/TISU0R0110) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166  Safari\/535.19","mobile":true,"tablet":true},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; es-es; Sony Tablet S Build\/TISU0143) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; en-gb; SonyEricssonLT18i Build\/4.1.B.0.587) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; fr-ch; SonyEricssonSK17i Build\/4.1.B.0.587) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; en-us; SonyEricssonLT26i Build\/6.1.A.2.45) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.0.4; LT22i Build\/6.1.B.0.544) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; vi-vn; SonyEricssonLT22i Build\/6.1.B.0.544) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.0.4; ST23i Build\/11.0.A.5.5) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.0.4; ST23i Build\/11.0.A.2.10) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.0.4; LT28h Build\/6.1.E.3.7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/28.0.1500.94 Mobile Safari\/537.36","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; en-us; SGPT13 Build\/TJDS0170) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.2; ja-jp; SonySO-03E Build\/10.1.E.0.265) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true,"version":{"Android":"4.1.2","Build":"10.1.E.0.265","Webkit":"534.30","Safari":"4.0"}},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.2; LT26w Build\/6.2.B.1.96) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/29.0.1547.72 Mobile Safari\/537.36","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.2.2; SGP321 Build\/10.3.1.A.0.33) AppleWebKit\/537.31 (KHTML, like Gecko) Chrome\/26.0.1410.58 Safari\/537.31","mobile":true,"tablet":true,"version":{"Android":"4.2.2","Build":"10.3.1.A.0.33","Webkit":"537.31","Chrome":"26.0.1410.58"}},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.3; zh-cn; XL39h Build\/14.2.A.1.136) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.2; sv-se; C5503 Build\/10.1.1.A.1.273) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.2; en-us; C5502 Build\/10.1.1.A.1.310) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.2.2; zh-cn; SonyL39t Build\/14.1.M.0.202) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.2.2; zh-cn; L39u Build\/14.1.n.0.63) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.2; zh-tw; M35c Build\/12.0.B.5.37) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.2; M35c Build\/12.0.B.2.42) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/27.0.1453.90 Mobile Safari\/537.36","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.2; zh-CN; M35t Build\/12.0.C.2.42) AppleWebKit\/534.31 (KHTML, like Gecko) UCBrowser\/9.3.2.349 U3\/0.8.0 Mobile Safari\/534.31","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.4.2; D6502 Build\/17.1.A.2.69) AppleWebKit\/537.36 (KHTML, like Gecko) Version\/4.0 Chrome\/30.0.0.0 Mobile Safari\/537.36","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.4.2; D6503 Build\/17.1.A.0.504) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/32.0.1700.99 Mobile Safari\/537.36","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.4.2; D6543 Build\/17.1.A.2.55) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/34.0.1847.114 Mobile Safari\/537.36","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.3; D2004 Build\/20.0.A.0.29) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/28.0.1500.94 Mobile Safari\/537.36","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.3; en-gb; D2005 Build\/20.0.A.1.12) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.3; D2104 Build\/20.0.B.0.84) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/34.0.1847.114 Mobile Safari\/537.36","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.3; D2105 Build\/20.0.B.0.74) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/33.0.1750.170 Mobile Safari\/537.36","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.3; pt-br; D2114 Build\/20.0.B.0.85) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.3; D2302 Build\/18.0.B.1.23) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.138 Mobile Safari\/537.36","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.3; zh-cn; S50h Build\/18.0.b.1.23) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 UCBrowser\/9.6.3.413 U3\/0.8.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.3; D2303 Build\/18.0.C.1.13) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.138 Mobile Safari\/537.36","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.3; D2305 Build\/18.0.A.1.30) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.138 Mobile Safari\/537.36","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.3; D2306 Build\/18.0.C.1.7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/33.0.1750.136 Mobile Safari\/537.36","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.3; D5303 Build\/19.0.1.A.0.207) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/34.0.1847.114 Mobile Safari\/537.36","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.4.2; D5306 Build\/19.1.A.0.264) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/33.0.1750.136 Mobile Safari\/537.36","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.3; zh-CN; XM50h Build\/19.0.D.0.269) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 UCBrowser\/9.7.6.428 U3\/0.8.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.3; zh-cn; XM50t Build\/19.0.C.2.59) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.3; D5322 Build\/19.0.D.0.253) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/34.0.1847.131","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.3; zh-cn; M51w Build\/14.2.A.1.146) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/537.36","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.3; M51w Build\/14.2.A.1.146) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/33.0.1750.136 Mobile Safari\/537.36","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.4.1; D5102 Build\/18.2.A.0.9) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/32.0.1700.99 Mobile Safari\/537.36","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.4.1; D5103 Build\/18.1.A.0.11) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/30.0.1599.92 Mobile Safari\/537.36","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.4.1; D5106 Build\/18.1.A.0.11) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/32.0.1700.99 Mobile Safari\/537.36","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.3; en-gb; C6902 Build\/14.2.A.1.136) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30 GSA\/3.2.17.1009776.arm","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.2.2; es-es; C6943 Build\/14.1.G.2.257) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.4.2; C6943 Build\/14.3.A.0.681) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/32.0.1700.99 Mobile Safari\/537.36","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.2.2; SGP412 Build\/14.1.B.3.320) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/34.0.1847.114 Mobile Safari\/537.36","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1; en-us; SonySGP321 Build\/10.2.C.0.143) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.2; SGP351 Build\/10.1.1.A.1.307) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Safari\/535.19","mobile":true,"tablet":true},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.3; SGP341 Build\/10.4.B.0.569) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/32.0.1700.99 Safari\/537.36","mobile":true,"tablet":true},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.4.2; SGP511 Build\/17.1.A.2.36) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.122 Safari\/537.36","mobile":true,"tablet":true},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.4.2; SGP512 Build\/17.1.A.2.36) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.122 Safari\/537.36","mobile":true,"tablet":true},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.2; fr-ch; SGP311 Build\/10.1.C.0.344) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.2; en-us; SGP312 Build\/10.1.C.0.344) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.4.2; de-de; SGP521 Build\/17.1.A.2.69) AppleWebKit\/537.16 (KHTML, like Gecko) Version\/4.0 Safari\/537.16","mobile":true,"tablet":true},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.4.2; zh-cn; SGP541 Build\/17.1.A.2.36) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Sony","user_agent":"Mozilla\/5.0 (Linux; Android 4.4.2; SGP551 Build\/17.1.A.2.72) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/34.0.1847.114 Safari\/537.36","mobile":true,"tablet":true},{"vendor":"Sony","user_agent":"SonyEricssonU5i\/R2CA; Mozilla\/5.0 (SymbianOS\/9.4; U; Series60\/5.0 Profile\/MIDP-2.1 Configuration\/CLDC-1.1) AppleWebKit\/525 (KHTML, like Gecko) Version\/3.0 Safari\/525","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"SonyEricssonU5i\/R2AA; Mozilla\/5.0 (SymbianOS\/9.4; U; Series60\/5.0 Profile\/MIDP-2.1 Configuration\/CLDC-1.1) AppleWebKit\/525 (KHTML, like Gecko) Version\/3.0 Safari\/525","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Mozilla\/4.0 (PDA; PalmOS\/sony\/model prmr\/Revision:1.1.54 (en)) NetFront\/3.0","mobile":true,"tablet":false},{"vendor":"Sony","user_agent":"Opera\/9.80 (Linux mips; U; InettvBrowser\/2.2 (00014A;SonyDTV115;0002;0100) KDL40EX720; CC\/BEL; en) Presto\/2.7.61 Version\/11.00","mobile":false,"tablet":false},{"vendor":"Sony","user_agent":"Opera\/9.80 (Linux armv7l; HbbTV\/1.1.1 (; Sony; KDL32W650A; PKG3.211EUA; 2013;); ) Presto\/2.12.362 Version\/12.11","mobile":false,"tablet":false},{"vendor":"Skk","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1; en-us; CYCLOPS Build\/F10) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Storex","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.1; eZee_Tab903 Build\/JRO03H) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/32.0.1700.99 Safari\/537.36","mobile":true,"tablet":true,"version":{"Android":"4.1.1","Build":"JRO03H","Webkit":"537.36"}},{"vendor":"Storex","user_agent":"Mozilla\/5.0 (Linux; Android 4.1.1; eZee'Tab785 Build\/JRO03C) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/31.0.1650.59 Safari\/537.36","mobile":true,"tablet":true,"version":{"Android":"4.1.1","Build":"JRO03C","Webkit":"537.36"}},{"vendor":"Storex","user_agent":"Mozilla\/5.0 (Linux; Android 4.0.3; eZee'Tab971 Build\/IML74K) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166  Safari\/535.19","mobile":true,"tablet":true,"version":{"Android":"4.0.3","Build":"IML74K","Webkit":"535.19"}},{"vendor":"Tecno","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.2.2; en-us; TECNO P9 Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Telstra","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.7; en-au; T-Hub2 Build\/TVA301TELBG3) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":true},{"vendor":"texet","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.4; ru-ru; TM-7021 Build\/GB.m1ref.20120116) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":true,"version":{"Android":"2.3.4","Webkit":"533.1","Safari":"4.0"},"model":"TM-7021"},{"vendor":"Tolino","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.2.2; de-de; tolino tab 7 Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true,"version":{"Android":"4.2.2","Build":"JDQ39","Webkit":"534.30","Safari":"4.0"}},{"vendor":"Tolino","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.2.2; de-de; tolino tab 8.9 Build\/JDQ39) AppleWebKit\/534.30 (KHTML like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true,"version":{"Android":"4.2.2","Build":"JDQ39","Webkit":"534.30","Safari":"4.0"}},{"vendor":"Tolino","user_agent":"Mozilla\/5.0 (Linux; Android 4.2.2; tolino tab 7 Build\/JDQ39) AppleWebkit\/537.36 (KHTML, like Gecko) Chrome\/31.0.1650.57 Safari\/537.36 OPR\/18.0.1290.67495","mobile":true,"tablet":true},{"vendor":"Tolino","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.2.2; de-de; tolino tab 7 Build\/JDQ39) AppleWebkit\/537.36 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Toshiba","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; TOSHIBA; TSUNAGI)","mobile":true,"tablet":false},{"vendor":"Toshiba","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.2; it-it; TOSHIBA_FOLIO_AND_A Build\/TOSHIBA_FOLIO_AND_A) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":true,"version":{"Android":"2.2","Webkit":"533.1","Safari":"4.0"}},{"vendor":"Trekstor","user_agent":"Mozilla\/5.0 (Linux; Android 4.2.2; ST70408-1 Build\/JDQ39) AppleWebKit\/537.31 (KHTML, like Gecko) Chrome\/26.0.1410.58 Safari\/537.31","mobile":true,"tablet":true,"version":{"Android":"4.2.2","Build":"JDQ39","Webkit":"537.31","Chrome":"26.0.1410.58"}},{"vendor":"Trekstor","user_agent":"Mozilla\/5.0 (Linux; Android 4.2.2; VT10416-2 Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.141 Safari\/537.36","mobile":true,"tablet":true},{"vendor":"Trekstor","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; de-de; ST10216-2A Build\/JRO03H) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30;SurfTab_10.1","mobile":true,"tablet":true},{"vendor":"Visture","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.2.2; en-gb; V97 HD Build\/LR-97JC) Apple WebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Visture","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; en-us; Visture V4 Build\/JRO03H) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Visture","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; ru-ru; Visture V4 HD Build\/Visture V4 HD) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Visture","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; es-es; Visture V5 HD Build\/Visture V5 HD) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Visture","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; ru-ru; Visture V10 Build\/JRO03H) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Versus","user_agent":"Mozilla\/5.0 (Linux; Android 4.0.4; VS-TOUCHPAD 9 Build\/IMM76D) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19","mobile":true,"tablet":true},{"vendor":"Versus","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; en-gb; Versus Touchpad 9.7 Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Versus","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; en-gb; CnM-TOUCHPAD7 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30 BMID\/E67A45B1AB","mobile":true,"tablet":true},{"vendor":"Versus","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; en-gb; CnM TouchPad 7DC Build\/JRO03H) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30 TwonkyBeamBrowser\/3.3.5-95 (Android 4.1.1; rockchip CnM TouchPad 7DC Build\/meizhi_V2.80.wifi8723.20121225.b11c800)","mobile":true,"tablet":true},{"vendor":"Versus","user_agent":"OneBrowser\/3.5\/Mozilla\/5.0 (Linux; U; Android 4.0.4; en-gb; TOUCHPAD 7 Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Versus","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; en-gb; TOUCHTAB Build\/JRO03H) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true,"version":{"Android":"4.1.1","Build":"JRO03H","Webkit":"534.30","Safari":"4.0"}},{"vendor":"Viewsonic","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; de-de; ViewPad 10e Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Viewsonic","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.2; it-it; ViewPad7 Build\/FRF91) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":true},{"vendor":"Viewsonic","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.2.1; en-ca; ViewSonic VB733 Build\/FRG83) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":true},{"vendor":"Viewsonic","user_agent":"Mozilla\/5.0 (Linux; U; Android 3.2; en-gb; ViewPad7X Build\/HTJ85B) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Safari\/533.1","mobile":true,"tablet":true},{"vendor":"Viewsonic","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.2; pt-br; ViewPad 10S Build\/FRF91) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":true},{"vendor":"Viewsonic","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; en-us; VB100a Pro Build\/JRO03C) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Vodafone","user_agent":"Mozilla\/5.0 (Linux; U; Android 3.2; hu-hu; SmartTab10-MSM8260-V02d-Dec022011-Vodafone-HU) AppleWebKit\/534.13 (KHTML, like Gecko) Version\/4.0","mobile":true,"tablet":true},{"vendor":"Vodafone","user_agent":"Mozilla\/5.0 (Linux; Android 4.0.3; SmartTabII10 Build\/IML74K) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166  Safari\/535.19","mobile":true,"tablet":true},{"vendor":"Vodafone","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; fr-fr; SmartTAB 1002 Build\/JRO03H) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Vonino","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.2.2; en-us; Sirius_Evo_QS Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Vonino","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; en-gb; Q8 Build\/JRO03H) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Xoro","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.2.2; de-de; PAD 9720QR Build\/PAD 9719QR) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Xoro","user_agent":"Mozilla\/5.0 (Linux; Android 4.2.2; PAD720 Build\/JDQ39) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19","mobile":true,"tablet":true},{"vendor":"ZTE","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.2.1;zh-cn; ZTE V987 Build\/JZO54K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30;","mobile":true,"tablet":false},{"vendor":"ZTE","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.5; pt-pt; Blade Build\/tejosunhsine) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1","mobile":true,"tablet":false},{"vendor":"ZTE","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; ZTE; N880e_Dawoer_Fulllock; China Telecom)","mobile":true,"tablet":false},{"vendor":"ZTE","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; ZTE; V965W)","mobile":true,"tablet":false},{"vendor":"ZTE","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; ZTE; Windows Phone - Internet 7; SFR)","mobile":true,"tablet":false},{"vendor":"Zync","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.3; en-us ; Z909 Build\/GRI40) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1\/UCBrowser\/8.4.1.204\/145\/444","mobile":true,"tablet":true},{"vendor":"Console","user_agent":"Mozilla\/5.0 (Nintendo WiiU) AppleWebKit\/534.52 (KHTML, like Gecko) NX\/{Version No} NintendoBrowser\/{Version No}.US","mobile":false,"tablet":false},{"vendor":"Console","user_agent":"Mozilla\/5.0 (PLAYSTATION 3 4.21) AppleWebKit\/531.22.8 (KHTML, like Gecko)","mobile":false,"tablet":false},{"vendor":"Console","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident\/5.0; Xbox)","mobile":false,"tablet":false},{"vendor":"Other","user_agent":"Mozilla\/5.0 (X11; Linux i686) AppleWebKit\/537.36 (KHTML, like Gecko) Ubuntu Chromium\/32.0.1700.102 Chrome\/32.0.1700.102 Safari\/537.36","mobile":false,"tablet":false},{"vendor":"Other","user_agent":"Mozilla\/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko\/20100101 Firefox\/24.0","mobile":false,"tablet":false},{"vendor":"Other","user_agent":"Mozilla\/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko\/20100101 Firefox\/18.0 AlexaToolbar\/psPCtGhf-2.2","mobile":false,"tablet":false},{"vendor":"Other","user_agent":"Mozilla\/5.0 (X11; Ubuntu; Linux x86_64; rv:22.0) Gecko\/20100101 Firefox\/22.0","mobile":false,"tablet":false},{"vendor":"Other","user_agent":"Mozilla\/5.0 (X11; Linux ppc; rv:17.0) Gecko\/20130626 Firefox\/17.0 Iceweasel\/17.0.7","mobile":false,"tablet":false},{"vendor":"Other","user_agent":"Mozilla\/5.0 (X11; Linux) AppleWebKit\/535.22+ Midori\/0.4","mobile":false,"tablet":false},{"vendor":"Other","user_agent":"Mozilla\/5.0 (Macintosh; U; Intel Mac OS X; en-us) AppleWebKit\/535+ (KHTML, like Gecko) Version\/5.0 Safari\/535.20+ Midori\/0.4","mobile":false,"tablet":false},{"vendor":"Other","user_agent":"Mozilla\/5.0 (Windows NT 6.2; WOW64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/28.0.1500.20 Safari\/537.36  OPR\/15.0.1147.18 (Edition Next)","mobile":false,"tablet":false},{"vendor":"Other","user_agent":"Mozilla\/5.0 (Windows NT 6.2) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/27.0.1453.94 Safari\/537.36","mobile":false,"tablet":false},{"vendor":"Other","user_agent":"Mozilla\/5.0 (Windows NT 5.2; WOW64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/27.0.1453.94 Safari\/537.36","mobile":false,"tablet":false},{"vendor":"Other","user_agent":"Mozilla\/5.0 (Windows NT 5.2; WOW64; rv:21.0) Gecko\/20100101 Firefox\/21.0","mobile":false,"tablet":false},{"vendor":"Other","user_agent":"Opera\/9.80 (Windows NT 5.2; WOW64) Presto\/2.12.388 Version\/12.14","mobile":false,"tablet":false},{"vendor":"Other","user_agent":"Mozilla\/5.0 (Windows NT 6.1; WOW64; rv:19.0) Gecko\/20100101 Firefox\/19.0","mobile":false,"tablet":false},{"vendor":"Other","user_agent":"Mozilla\/5.0 (X11; FreeBSD amd64; rv:14.0) Gecko\/20100101 Firefox\/14.0.1","mobile":false,"tablet":false},{"vendor":"Other","user_agent":"Mozilla\/4.0 (compatible; MSIE 7.0; Windows NT 6.2; Win64; x64; Trident\/6.0; Touch; .NET4.0E; .NET4.0C; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 2.0.50727; Tablet PC 2.0; MASMJS)","mobile":false,"tablet":false},{"vendor":"Other","user_agent":"Mozilla\/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident\/6.0; MANMJS)","mobile":false,"tablet":false},{"vendor":"Other","user_agent":"Mozilla\/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Win64; x64; Trident\/6.0; MASMJS)","mobile":false,"tablet":false},{"vendor":"Other","user_agent":"Mozilla\/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident\/6.0; Touch; MASMJS)","mobile":false,"tablet":false},{"vendor":"Other","user_agent":"Opera\/9.80 (Windows NT 6.2; WOW64; MRA 8.0 (build 5784)) Presto\/2.12.388 Version\/12.11","mobile":false,"tablet":false},{"vendor":"Other","user_agent":"Mozilla\/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident\/6.0)","mobile":false,"tablet":false},{"vendor":"Other","user_agent":"Mozilla\/5.0 (Windows NT 6.3; Trident\/7.0; rv 11.0) like Gecko","mobile":false,"tablet":false},{"vendor":"Other","user_agent":"Mozilla\/5.0 (Windows NT 6.3; WOW64; Trident\/7.0; Touch; rv:11.0) like Gecko","mobile":false,"tablet":false},{"vendor":"Other","user_agent":"Mozilla\/5.0 (Unknown; Linux armv7l) AppleWebKit\/537.1+ (KHTML, like Gecko) Safari\/537.1+ HbbTV\/1.1.1 ( ;LGE ;NetCast 4.0 ;03.20.30 ;1.0M ;)","mobile":false,"tablet":false},{"vendor":"Other","user_agent":"HbbTV\/1.1.1 (;Panasonic;VIERA 2012;1.261;0071-3103 2000-0000;)","mobile":false,"tablet":false},{"vendor":"Other","user_agent":"Opera\/9.80 (Linux armv7l; HbbTV\/1.1.1 (; Sony; KDL32W650A; PKG3.211EUA; 2013;); ) Presto\/2.12.362 Version\/12.11","mobile":false,"tablet":false},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Linux; Android 4.0.3; ALUMIUM10 Build\/IML74K) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/32.0.1700.99 Safari\/537.36","mobile":true,"tablet":true},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.2.1; en-us; JY-G3 Build\/JOP40D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":false},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; hu-hu; M758A Build\/JRO03C) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; en-us; EVOTAB Build\/IMM76I) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Generic","user_agent":"Java\/1.6.0_22","mobile":false,"tablet":false,"version":{"Java":"1.6.0_22"}},{"vendor":"Generic","user_agent":"Opera\/9.80 (Series 60; Opera Mini\/6.5.29260\/29.3417; U; ru) Presto\/2.8.119 Version\/11.10","mobile":true,"tablet":false},{"vendor":"Generic","user_agent":"Opera\/9.80 (Android; Opera Mini\/6.5.27452\/29.3417; U; ru) Presto\/2.8.119 Version\/11.10","mobile":true,"tablet":false},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Windows NT 6.1; WOW64) AppleWebKit\/537.17 (KHTML, like Gecko) Chrome\/24.0.1312.60 Safari\/537.17 OPR\/14.0.1025.52315","mobile":false,"tablet":false},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (X11; CrOS armv7l 4920.83.0) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/32.0.1700.103 Safari\/537.36"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (iPhone; U; CPU iPhone OS 4_3_2 like Mac OS X; en-us) AppleWebKit\/533.17.9 (KHTML, like Gecko) Version\/5.0.2 Mobile\/8H7 Safari\/6533.18.5"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.2; fr-fr; GT-I9070 Build\/JZO54K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30"},{"vendor":"Generic","user_agent":"Opera\/9.80 (Android 2.3.7; Linux; Opera Mobi\/46154) Presto\/2.11.355 Version\/12.10"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; it-it; DATAM819HD_C Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; nl-nl; SGPT12 Build\/TID0142) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; en-us; cm_tenderloin Build\/IMM76L; CyanogenMod-9) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; fr-fr; A210 Build\/JRO03H) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (iPad; CPU OS 6_1 like Mac OS X) AppleWebKit\/536.26 (KHTML, like Gecko) Version\/6.0 Mobile\/10B141 Safari\/8536.25"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.6; en-gb; GT-I8150 Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (iPad; CPU OS 6_0_1 like Mac OS X) AppleWebKit\/536.26 (KHTML, like Gecko) Mercury\/7.2 Mobile\/10A523 Safari\/8536.25"},{"vendor":"Generic","user_agent":"Opera\/9.80 (Android 2.3.7; Linux; Opera Tablet\/46154) Presto\/2.11.355 Version\/12.10"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.2; en-us; sdk Build\/MASTER) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.2; en-us; sdk Build\/JB_MR1) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; en-us; GT-P7510 Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30"},{"vendor":"Generic","user_agent":"Opera\/9.80 (X11; Linux zbov) Presto\/2.11.355 Version\/12.10"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; en-gb; TOUCHPAD 7 Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (iPhone; U; CPU OS 4_2_1 like Mac OS X) AppleWebKit\/532.9 (KHTML, like Gecko) Version\/5.0.3 Mobile\/8B5097d Safari\/6531.22.7"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; en-gb; SGPT12 Build\/TID0142) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Nintendo 3DS; U; ; en) Version\/1.7498.US"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.0.6_b1; ru-ru Build\/ECLAIR) AppleWebKit\/530.17 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/530.17"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Linux; Android 4.0.4; z1000 Build\/IMM76D) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166  Safari\/535.19"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Linux; Android 4.0.3; cm_tenderloin Build\/GWK74) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166  Safari\/535.19"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.3; en-us; Android for Techvision TV1T808 Board Build\/GRI40) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1"},{"vendor":"Generic","user_agent":"BlackBerry8520\/5.0.0.592 Profile\/MIDP-2.1 Configuration\/CLDC-1.1 VendorID\/136"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Windows NT 6.2) AppleWebKit\/537.17 (KHTML, like Gecko) Chrome\/24.0.1312.56 Safari\/537.17"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Linux; U; Android 3.1; ru-ru; LG-V900 Build\/HMJ37) AppleWebKit\/534.13 (KHTML, like Gecko) Version\/4.0 Safari\/534.13"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident\/6.0; IEMobile\/10.0; ARM; Touch; HTC; Windows Phone 8S by HTC)"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (compatible; MSIE 10.0; Windows NT 6.2; ARM; Trident\/6.0; Touch)"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (PLAYSTATION 3 4.11) AppleWebKit\/531.22.8 (KHTML, like Gecko)"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Linux; U; Android 3.2; ru-ru; V9S_V1.4) AppleWebKit\/534.13 (KHTML, like Gecko) Version\/4.0 Safari\/534.13"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (compatible; MSIE 10.0; Windows NT 6.2; ARM; Trident\/6.0; Touch)"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.2; es-es; Broncho N701 Build\/FRF91) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (compatible; MSIE 10.0; Windows NT 6.2; ARM; Trident\/6.0; Touch)"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (compatible; MSIE 10.0; Windows NT 6.2; ARM; Trident\/6.0; Touch; WebView\/1.0)"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; en-us; Next7P12 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30"},{"vendor":"Generic","user_agent":"Opera\/9.80 (X11; Linux zbov) Presto\/2.11.355 Version\/12.10"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (compatible; MSIE 10.0; Windows NT 6.2; ARM; Trident\/6.0; Touch)"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Linux; U; Android 2.3.6; es-es; SAMSUNG GT-S5830\/S5830BUKT2 Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Linux; U; Android 3.2.1; en-gb;HTC_Flyer_P512 Build\/HTK75C) AppleWebKit\/534.13 (KHTML, like Gecko) Version\/4.0 Safari\/534.13"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; en-us; full Android on Microsoft Windows, pad, pc, n*books Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30"},{"vendor":"Generic","user_agent":"Opera\/9.80 (Linux mips; U; InettvBrowser\/2.2 (00014A;SonyDTV115;0002;0100) KDL40EX720; CC\/BEL; en) Presto\/2.7.61 Version\/11.00"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Android; Mobile; rv:18.0) Gecko\/18.0 Firefox\/18.0"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Windows NT 6.1) AppleWebKit\/535.12 (KHTML, like Gecko) Maxthon\/3.0 Chrome\/18.0.966.0 Safari\/535.12"},{"vendor":"Generic","user_agent":"Opera\/9.80 (Windows NT 5.1; U; Edition Yx; ru) Presto\/2.10.289 Version\/12.02"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.2; en-us; sdk Build\/JB_MR1) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30"},{"vendor":"Generic","user_agent":"Mozilla\/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Windows Phone 6.5.3.5)"},{"vendor":"Generic","user_agent":"PalmCentro\/v0001 Mozilla\/4.0 (compatible; MSIE 6.0; Windows 98; PalmSource\/Palm-D061; Blazer\/4.5) 16;320x320"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0)"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; Microsoft; XDeviceEmulator)"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; MAL; N880E; China Telecom)"},{"vendor":"Generic","user_agent":"Opera\/9.80 (Series 60; Opera Mini\/7.0.29482\/28.2859; U; ru) Presto\/2.8.119 Version\/11.10"},{"vendor":"Generic","user_agent":"Opera\/9.80 (S60; SymbOS; Opera Mobi\/SYB-1202242143; U; en-GB) Presto\/2.10.254 Version\/12.00"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.3; en-au; 97D Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30"},{"vendor":"Generic","user_agent":"Opera\/9.80 (Android; Opera Mini\/7.0.29952\/28.2647; U; ru) Presto\/2.8.119 Version\/11.10"},{"vendor":"Generic","user_agent":"Opera\/9.80 (Android; Opera Mini\/6.1.25375\/28.2555; U; en) Presto\/2.8.119 Version\/11.10"},{"vendor":"Generic","user_agent":"Opera\/9.80 (Mac OS X; Opera Tablet\/35779; U; en) Presto\/2.10.254 Version\/12.00"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Android; Tablet; rv:10.0.4) Gecko\/10.0.4 Firefox\/10.0.4 Fennec\/10.0.4"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Android; Tablet; rv:18.0) Gecko\/18.0 Firefox\/18.0"},{"vendor":"Generic","user_agent":"Opera\/9.80 (Linux armv7l; Maemo; Opera Mobi\/14; U; en) Presto\/2.9.201 Version\/11.50"},{"vendor":"Generic","user_agent":"Opera\/9.80 (Android 2.2.1; Linux; Opera Mobi\/ADR-1207201819; U; en) Presto\/2.10.254 Version\/12.00","mobile":true,"tablet":false},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.1.1; en-us; sdk Build\/JRO03E) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30"},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.2.2; de-de; Endeavour 1010 Build\/ONDA_MID) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Generic","user_agent":"Mozilla\/5.0 (Linux; U; Android 4.0.4; de-de; Tablet-PC-4 Build\/ICS.g08refem618.20121102) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30","mobile":true,"tablet":true},{"vendor":"Bot","user_agent":"Mozilla\/5.0 (compatible; Googlebot\/2.1; +http:\/\/www.google.com\/bot.html)","mobile":false,"tablet":false},{"vendor":"Bot","user_agent":"grub-client-1.5.3; (grub-client-1.5.3; Crawl your own stuff with http:\/\/grub.org)","mobile":false,"tablet":false},{"vendor":"Bot","user_agent":"Googlebot-Image\/1.0","mobile":false,"tablet":false},{"vendor":"Bot","user_agent":"Python-urllib\/2.5","mobile":false,"tablet":false},{"vendor":"Bot","user_agent":"facebookexternalhit\/1.0 (+http:\/\/www.facebook.com\/externalhit_uatext.php)","mobile":false,"tablet":false}]}
\ No newline at end of file
+{
+    "hash": "169521cbf4b919b69880fa76746cd4f78bbc99f5",
+    "user_agents": [
+        {
+            "vendor": "Acer",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 3.2.1; en-us; A100 Build\/HTK55D) AppleWebKit\/534.13 (KHTML, like Gecko) Version\/4.0 Safari\/534.13",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Acer",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1; en-us; A110 Build\/JZO54K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Acer",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; de-de; A200 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true,
+            "version": {
+                "Android": "4.0.3",
+                "Webkit": "534.30",
+                "Safari": "4.0",
+                "Build": "IML74K"
+            },
+            "model": "A200"
+        },
+        {
+            "vendor": "Acer",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; en-us; A500 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Acer",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; en-us; A501 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Acer",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.1; A701 Build\/JRO03H) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166  Safari\/535.19",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Acer",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.2; B1-A71 Build\/JZO54K) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166  Safari\/535.19",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Acer",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.2; B1-710 Build\/JZO54K) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/29.0.1547.72 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Acer",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; A1-810 Build\/JDQ39) AppleWebKit\/537.31 (KHTML, like Gecko) Chrome\/26.0.1410.58 Safari\/537.31",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Acer",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; nl-nl; A1-810 Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Acer",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; Acer; Allegro)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Acer",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; A3-A10 Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/32.0.1700.99 Safari\/537.36",
+            "mobile": true,
+            "tablet": true,
+            "version": {
+                "Android": "4.2.2",
+                "Build": "JDQ39",
+                "Webkit": "537.36",
+                "Chrome": "32.0.1700.99"
+            }
+        },
+        {
+            "vendor": "Acer",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; de-de; A1-811 Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Acer",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; A1-830 Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.141 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Acer",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; A3-A11 Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/34.0.1847.114 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Alcatel",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.7; en-in; MB525 Build\/GWK74; CyanogenMod-7.2.0) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Alcatel",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.5; it-it; ALCATEL ONE TOUCH 918D Build\/GRJ90) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false,
+            "version": {
+                "Android": "2.3.5",
+                "Webkit": "533.1",
+                "Safari": "4.0",
+                "Build": "GRJ90"
+            },
+            "model": "ONE TOUCH 918D"
+        },
+        {
+            "vendor": "Alcatel",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.6; ru-ru; ALCATEL ONE TOUCH 991 Build\/GRJ90) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false,
+            "version": {
+                "Android": "2.3.6",
+                "Webkit": "533.1",
+                "Safari": "4.0",
+                "Build": "GRJ90"
+            },
+            "model": "ONE TOUCH 991"
+        },
+        {
+            "vendor": "Alcatel",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; ru-ru; ALCATEL ONE TOUCH 993D Build\/ICECREAM) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false,
+            "version": {
+                "Android": "4.0.4",
+                "Webkit": "534.30",
+                "Safari": "4.0",
+                "Build": "ICECREAM"
+            },
+            "model": "ONE TOUCH 993D"
+        },
+        {
+            "vendor": "Alcatel",
+            "user_agent": "ALCATEL_A392G\/1.0 ObigoInternetBrowser\/Q05A[TF013513002719521000000013182904148]",
+            "mobile": true,
+            "tablet": false,
+            "model": "A392G"
+        },
+        {
+            "vendor": "Alcatel",
+            "user_agent": "ALCATEL_3020D\/1.0 ObigoInternetBrowser\/Q03C",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Alcatel",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2; ALCATEL ONE TOUCH 5037A Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.141 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Alcatel",
+            "user_agent": "ALCATEL_3020G\/1.0 ObigoInternetBrowser\/Q03C",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Alcatel",
+            "user_agent": "ALCATEL_3041D\/1.0 ObigoInternetBrowser\/Q03C",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Alcatel",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; en-us; ALCATEL ONE TOUCH 5037E Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.2 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Alcatel",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; ALCATEL ONE TOUCH 5037X Build\/JDQ39) AppleWebKit\/537.36 (KHTML like Gecko) Chrome\/31.0.1650.59 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Alcatel",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; en-us; ALCATEL ONE TOUCH 5037X Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.2 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Alcatel",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; ONE TOUCH 6012A Build\/JDQ39) AppleWebKit\/537.36 (KHTML like Gecko) Chrome\/28.0.1500.94 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Alcatel",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; en-nz; ONE TOUCH 6012A Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.2 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Alcatel",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; ONE TOUCH 6012D Build\/JDQ39) AppleWebKit\/537.36 (KHTML like Gecko) Chrome\/35.0.1916.141 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Alcatel",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; de-de; ONE TOUCH 6012D Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.2 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Alcatel",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; En-us; ONE TOUCH 6012E Build\/JDQ39) AppleWebKit\/534.30 (KHTML, Like Gecko) Version\/4.2 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Alcatel",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; ONE TOUCH 6012X Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/30.0.1599.12975 YaBrowser\/13.12.1599.12975 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Alcatel",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; bg-bg; ONE TOUCH 6012X Build\/JDQ39) AppleWebKit\/534.30 (KHTML like Gecko) Version\/4.2 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Alcatel",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; ALCATEL ONE TOUCH 6012X_orange Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/29.0.1547.59 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Alcatel",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; fr-fr; ALCATEL ONE TOUCH 6012X_orange Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.2 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Alcatel",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.3; fr-fr; 6016E Build\/JLS36C) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Alcatel",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.3; en-us; ALCATEL ONE TOUCH 6016E Build\/JLS36C) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Alcatel",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.3; 6016X Build\/JLS36C) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.141 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Alcatel",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.3; ALCATEL ONE TOUCH 6016X Build\/JLS36C) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.122 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Alcatel",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.3; ru-ru; 6016X Build\/JLS36C) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Alcatel",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; ALCATEL ONE TOUCH 6032A Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/33.0.1750.170 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Alcatel",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; ru-ru; ALCATEL ONE TOUCH 6032X Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.2 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Alcatel",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; en-nz; ALCATEL ONE TOUCH 7040A Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.2 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Alcatel",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; th-th; ALCATEL ONE TOUCH 7040D Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.2 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Alcatel",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; ALCATEL ONE TOUCH 7040D Build\/JDQ39) AppleWebKit\/537.36 (KHTML like Gecko) Chrome\/28.0.1500.94 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Alcatel",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; ALCATEL ONE TOUCH 7040E Build\/JDQ39) AppleWebKit\/537.36 (KHTML like Gecko) Chrome\/28.0.1500.94 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Alcatel",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; it-it; ALCATEL ONE TOUCH 7041D Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.2 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Alcatel",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; ALCATEL ONE TOUCH 7041D Build\/JDQ39) AppleWebKit\/537.36 (KHTML like Gecko) Chrome\/31.0.1650.59 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Alcatel",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; ALCATEL ONE TOUCH 7041X Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.138 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Alcatel",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; pt-pt; ALCATEL ONE TOUCH 7041X Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.2 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Alcatel",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; ALCATEL ONE TOUCH 8020A Build\/JDQ39) AppleWebKit\/537.36 (KHTML, Like Gecko) Chrome\/30.0.1599.92 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Alcatel",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; en-us; ALCATEL ONE TOUCH 8020A Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.2 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Alcatel",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; ALCATEL ONE TOUCH 8020D Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.141 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Alcatel",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; es-es; ALCATEL ONE TOUCH 8020D Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.2 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Alcatel",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; ALCATEL ONE TOUCH 8020E Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/32.0.1700.99 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Alcatel",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; en-us; ALCATEL ONE TOUCH 8020E Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.2 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Alcatel",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; ALCATEL ONE TOUCH 8020X Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/33.0.1750.136 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Alcatel",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; en-us; ALCATEL ONE TOUCH 8020X Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.2 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Allview",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; en-us; ALLVIEW P5 Build\/IML74K) AppleWebKit\/534.30 (KHTML like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Allview",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; en-us ; ALLVIEW SPEEDI Build\/IMM76D) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1\/UCBrowser\/8.5.3.246\/145\/355",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Allview",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; en-us; AllviewCity Build\/JRO03C) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Allview",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; en-us; ALLVIEWSPEED Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Amazon",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; en-us; KFTT Build\/IML74K) AppleWebKit\/535.19 (KHTML, like Gecko) Silk\/3.4 Mobile Safari\/535.19 Silk-Accelerated =true",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Amazon",
+            "user_agent": "Mozilla\/5.0 (Linux; U; en-US) AppleWebKit\/528.5+ (KHTML, like Gecko, Safari\/528.5+) Version\/4.0 Kindle\/3.0 (screen 600x800; rotate)",
+            "mobile": true,
+            "tablet": true,
+            "version": {
+                "Webkit": "528.5+",
+                "Kindle": "3.0",
+                "Safari": "4.0"
+            },
+            "model": "Kindle"
+        },
+        {
+            "vendor": "Amazon",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; en-us; KFOTE Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true,
+            "version": {
+                "Android": "4.0.3",
+                "Build": "IML74K",
+                "Webkit": "534.30",
+                "Safari": "4.0"
+            }
+        },
+        {
+            "vendor": "Amazon",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; en-us; WFJWAE Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Amazon",
+            "user_agent": "Mozilla\/5.0 (Linux; U; en-us; KFTT Build\/IML74K) AppleWebKit\/535.19 (KHTML, like Gecko) Silk\/3.21 Safari\/535.19 Silk-Accelerated=true",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Amazon",
+            "user_agent": "Mozilla\/5.0 (Linux; U; en-us; KFTHWI Build\/JDQ39) AppleWebKit\/535.19 (KHTML, like Gecko) Silk\/3.21 Safari\/535.19 Silk-Accelerated=true",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Amazon",
+            "user_agent": "Mozilla\/5.0 (Linux; U; en-us; KFJWI Build\/IMM76D) AppleWebKit\/535.19 (KHTML, like Gecko) Silk\/3.21 Safari\/535.19 Silk-Accelerated=true",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Amazon",
+            "user_agent": "Mozilla\/5.0 (Linux; U; en-us; KFSOWI Build\/JDQ39) AppleWebKit\/535.19 (KHTML, like Gecko) Silk\/3.21 Safari\/535.19 Silk-Accelerated=true",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Amazon",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.1; xx-xx; T720-WIFI Build\/ECLAIR) AppleWebKit\/530.17 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/530.17",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Apple",
+            "user_agent": "iTunes\/9.1.1",
+            "mobile": false,
+            "tablet": false
+        },
+        {
+            "vendor": "Apple",
+            "user_agent": "iTunes\/11.0.2 (Windows; Microsoft Windows 8 x64 Business Edition (Build 9200)) AppleWebKit\/536.27.1",
+            "mobile": false,
+            "tablet": false
+        },
+        {
+            "vendor": "Apple",
+            "user_agent": "Mozilla\/5.0 (iPod touch; CPU iPhone OS 7_0 like Mac OS X) AppleWebKit\/537.51.1 (KHTML, like Gecko) Version\/7.0 Mobile\/11A4449d Safari\/9537.53",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Apple",
+            "user_agent": "Mozilla\/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit\/420+ (KHTML, like Gecko) Version\/3.0 Mobile\/1A543 Safari\/419.3",
+            "mobile": true,
+            "tablet": false,
+            "version": {
+                "Webkit": "420+",
+                "Safari": "3.0"
+            }
+        },
+        {
+            "vendor": "Apple",
+            "user_agent": "Mozilla\/5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit\/528.18 (KHTML, like Gecko) Version\/4.0 Mobile\/7A341 Safari\/528.16",
+            "mobile": true,
+            "tablet": false,
+            "version": {
+                "iOS": "3_0",
+                "Webkit": "528.18",
+                "Safari": "4.0"
+            },
+            "model": "iPhone"
+        },
+        {
+            "vendor": "Apple",
+            "user_agent": "Mozilla\/5.0 (iPhone; CPU iPhone OS 5_1_1 like Mac OS X) AppleWebKit\/534.46 (KHTML, like Gecko) Version\/5.1 Mobile\/9B206 Safari\/7534.48.3",
+            "mobile": true,
+            "tablet": false,
+            "version": {
+                "iOS": "5_1_1",
+                "Webkit": "534.46",
+                "Mobile": "9B206",
+                "Safari": "5.1"
+            },
+            "model": "iPhone"
+        },
+        {
+            "vendor": "Apple",
+            "user_agent": "Mozilla\/5.0 (iPod; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit\/536.26 (KHTML, like Gecko) Version\/6.0 Mobile\/10A403 Safari\/8536.25",
+            "mobile": true,
+            "tablet": false,
+            "version": {
+                "iOS": "6_0",
+                "Webkit": "536.26",
+                "Mobile": "10A403",
+                "Safari": "6.0"
+            },
+            "model": "iPod"
+        },
+        {
+            "vendor": "Apple",
+            "user_agent": "Mozilla\/5.0 (iPad; CPU OS 5_1_1 like Mac OS X; en-us) AppleWebKit\/534.46.0 (KHTML, like Gecko) CriOS\/21.0.1180.80 Mobile\/9B206 Safari\/7534.48.3 (6FF046A0-1BC4-4E7D-8A9D-6BF17622A123)",
+            "mobile": true,
+            "tablet": true,
+            "version": {
+                "iOS": "5_1_1",
+                "Webkit": "534.46.0",
+                "Chrome": "21.0.1180.80",
+                "Mobile": "9B206"
+            },
+            "model": "iPad"
+        },
+        {
+            "vendor": "Apple",
+            "user_agent": "Mozilla\/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit\/536.26 (KHTML, like Gecko) Version\/6.0 Mobile\/10A403 Safari\/8536.25",
+            "mobile": true,
+            "tablet": true,
+            "version": {
+                "iOS": "6_0",
+                "Webkit": "536.26",
+                "Safari": "6.0",
+                "Mobile": "10A403"
+            },
+            "model": "iPad"
+        },
+        {
+            "vendor": "Apple",
+            "user_agent": "Mozilla\/5.0 (iPad; U; CPU OS 4_2_1 like Mac OS X; en-us) AppleWebKit\/533.17.9 (KHTML, like Gecko) Version\/5.0.2 Mobile\/8C148 Safari\/6533.18.5",
+            "mobile": true,
+            "tablet": true,
+            "version": {
+                "iOS": "4_2_1",
+                "Webkit": "533.17.9",
+                "Safari": "5.0.2",
+                "Mobile": "8C148"
+            },
+            "model": "iPad"
+        },
+        {
+            "vendor": "Apple",
+            "user_agent": "Mozilla\/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit\/531.21.10 (KHTML, like Gecko) Version\/4.0.4 Mobile\/7B334b Safari\/531.21.10",
+            "mobile": true,
+            "tablet": true,
+            "version": {
+                "iOS": "3_2",
+                "Webkit": "531.21.10",
+                "Safari": "4.0.4",
+                "Mobile": "7B334b"
+            },
+            "model": "iPad"
+        },
+        {
+            "vendor": "Apple",
+            "user_agent": "Mozilla\/5.0 (iPhone; CPU iPhone OS 6_0_1 like Mac OS X; da-dk) AppleWebKit\/534.46.0 (KHTML, like Gecko) CriOS\/21.0.1180.82 Mobile\/10A523 Safari\/7534.48.3",
+            "mobile": true,
+            "tablet": false,
+            "version": {
+                "iOS": "6_0_1",
+                "Webkit": "534.46.0",
+                "Chrome": "21.0.1180.82",
+                "Mobile": "10A523"
+            },
+            "model": "iPhone"
+        },
+        {
+            "vendor": "Apple",
+            "user_agent": "Mozilla\/5.0 (iPhone; CPU iPhone OS 6_0_1 like Mac OS X) AppleWebKit\/536.26 (KHTML, like Gecko) Version\/6.0 Mobile\/10A523 Safari\/8536.25",
+            "mobile": true,
+            "tablet": false,
+            "version": {
+                "iOS": "6_0_1",
+                "Webkit": "536.26",
+                "Safari": "6.0",
+                "Mobile": "10A523"
+            },
+            "model": "iPhone"
+        },
+        {
+            "vendor": "Apple",
+            "user_agent": "Mozilla\/5.0 (iPhone; CPU iPhone OS 6_1 like Mac OS X; ru-ru) AppleWebKit\/536.26 (KHTML, like Gecko) CriOS\/23.0.1271.100 Mobile\/10B142 Safari\/8536.25",
+            "mobile": true,
+            "tablet": false,
+            "version": {
+                "iOS": "6_1",
+                "Webkit": "536.26",
+                "Chrome": "23.0.1271.100",
+                "Mobile": "10B142"
+            },
+            "model": "iPhone"
+        },
+        {
+            "vendor": "Apple",
+            "user_agent": "Mozilla\/5.0 (iPhone; CPU iPhone OS 6_1_3 like Mac OS X) AppleWebKit\/536.26 (KHTML, like Gecko) Version\/6.0 Mobile\/10B329 Safari\/8536.25",
+            "mobile": true,
+            "tablet": false,
+            "version": {
+                "iOS": "6_1_3",
+                "Webkit": "536.26",
+                "Safari": "6.0",
+                "Mobile": "10B329"
+            },
+            "model": "iPhone"
+        },
+        {
+            "vendor": "Apple",
+            "user_agent": "Mozilla\/5.0 (iPad; CPU OS 6_1_3 like Mac OS X) AppleWebKit\/536.26 (KHTML, like Gecko) Coast\/1.0.2.62956 Mobile\/10B329 Safari\/7534.48.3",
+            "mobile": true,
+            "tablet": true,
+            "version": {
+                "Coast": "1.0.2.62956"
+            }
+        },
+        {
+            "vendor": "Apple",
+            "user_agent": "CheckMyBus iOS mobile App 0.9.0 (iPhone; iPhone OS\/7.1.1)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Apple",
+            "user_agent": "Mozilla\/5.0 (iPad; CPU OS 7_0 like Mac OS X) AppleWebKit\/537.51.1 (KHTML, like Gecko) Version\/7.0 Mobile\/11A465 Safari\/9537.53",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Apple",
+            "user_agent": "Mozilla\/5.0 (iPhone; CPU iPhone OS 8_0_2 like Mac OS X) AppleWebKit\/600.1.4 (KHTML, like Gecko) CriOS\/38.0.2125.59 Mobile\/12A405 Safari\/600.1.4",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Apple",
+            "user_agent": "VendorAppName\/1.7.0 (iPhone; iOS 8.1.2; Scale\/3.00)",
+            "mobile": true,
+            "tablet": false,
+            "version": {
+                "iOS": "8.1.2"
+            },
+            "model": "iPhone"
+        },
+        {
+            "vendor": "Apple",
+            "user_agent": "Mozilla\/5.0 (iPad; CPU OS 9_0 like Mac OS X) AppleWebKit\/601.1.17 (KHTML, like Gecko) Version\/8.0 Mobile\/13A175 Safari\/600.1.4",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Apple",
+            "user_agent": "Mozilla\/5.0 (iPhone; CPU iPhone OS 9_0 like Mac OS X) AppleWebKit\/601.1.37 (KHTML, like Gecko) Version\/8.0 Mobile\/13A4293g Safari\/600.1.4",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Archos",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; Qilive 97R Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/30.0.1599.92 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Archos",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.2; Archos 50 Platinum Build\/JZO54K) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/28.0.1500.94 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Archos",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.0.4; ARCHOS 80G9 Build\/IMM76D) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166  Safari\/535.19",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Archos",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.2.1; fr-fr; A101IT Build\/FROYO) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Archos",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; Archos 101 Neon Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.141 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Archos",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; Archos 101 Cobalt Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.141 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Archos",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; de-de; ARCHOS 80 TITANIUM Build\/JRO03H) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Archos",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.1; ARCHOS 101 Titanium Build\/JRO03H) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166  Safari\/535.19",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Archos",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; de-de; ARCHOS 70b TITANIUM Build\/JRO03H) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Archos",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.2; de-de; Archos 80 Xenon Build\/JZO54K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Archos",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; Archos 79 Xenon Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.141 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Archos",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; de-de; ARCHOS 101 Titanium Build\/JRO03H) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Archos",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; de-de; ARCHOS 80XSK Build\/JRO03H) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Archos",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; de-de; ARCHOS FAMILYPAD 2 Build\/JRO03H) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Archos",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.1; ARCHOS 97B TITANIUM Build\/JRO03H) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.141 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Archos",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; ARCHOS 101 XS 2 Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.141 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Archos",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; de-de; ARCHOS 80b PLATINUM Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Archos",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; Archos 70 Xenon Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.141 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Archos",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; de-de; ARCHOS 97 CARBON Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Archos",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; de-de; ARCHOS 97 TITANIUMHD Build\/JRO03H) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Archos",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; Archos 90 Neon Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.141 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Archos",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 1.6; de-de; Archos5 Build\/Donut) AppleWebKit\/528.5+ (KHTML, like Gecko) Version\/3.1.2 Mobile Safari\/525.20.1",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Archos",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; de-de; ARCHOS GAMEPAD Build\/JRO03H) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "ASUS",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 3.2.1; en-us; Transformer TF101 Build\/HTK75) AppleWebKit\/534.13 (KHTML, like Gecko) Version\/4.0 Safari\/534.13",
+            "mobile": true,
+            "tablet": true,
+            "version": {
+                "Android": "3.2.1",
+                "Webkit": "534.13",
+                "Safari": "4.0"
+            },
+            "model": "Transformer TF101"
+        },
+        {
+            "vendor": "ASUS",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.1; Transformer Build\/JRO03L) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Safari\/535.19",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "ASUS",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.1; ASUS Transformer Pad TF300T Build\/JRO03C) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Safari\/535.19",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "ASUS",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.2; fr-fr; Transformer Build\/JZO54K; CyanogenMod-10) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "ASUS",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; en-us; asus_laptop Build\/IMM76L) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "ASUS",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; en-gb; PadFone 2 Build\/JRO03L) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "ASUS",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; en-gb; PadFone 2 Build\/JRO03L) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true,
+            "version": {
+                "Android": "4.1.1",
+                "Build": "JRO03L",
+                "Webkit": "534.30",
+                "Safari": "4.0"
+            }
+        },
+        {
+            "vendor": "ASUS",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.1; ME301T Build\/JOP40D) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/28.0.1500.94 Safari\/537.36",
+            "mobile": true,
+            "tablet": true,
+            "version": {
+                "Android": "4.2.1",
+                "Build": "JOP40D"
+            }
+        },
+        {
+            "vendor": "ASUS",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.1; ME173X Build\/JOP40D) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/28.0.1500.94 Safari\/537.36",
+            "mobile": true,
+            "tablet": true,
+            "version": {
+                "Android": "4.2.1",
+                "Build": "JOP40D"
+            }
+        },
+        {
+            "vendor": "ASUS",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; TF300T Build\/JDQ39E) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166  Safari\/535.19",
+            "mobile": true,
+            "tablet": true,
+            "version": {
+                "Android": "4.2.2",
+                "Build": "JDQ39E"
+            }
+        },
+        {
+            "vendor": "ASUS",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; K00C Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/34.0.1847.114 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "ASUS",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; K00E Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/34.0.1847.114 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "ASUS",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; K00F Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/34.0.1847.114 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "ASUS",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; K00L Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.131 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "ASUS",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; ME302KL Build\/JDQ39) AppleWebKit\/537.31 (KHTML, like Gecko) Chrome\/26.0.1410.58 Safari\/537.31",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "ASUS",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; K010 Build\/KOT49H) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/42.0.2311.111 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "ASUS",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; K017 Build\/KVT49L) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/42.0.2311.111 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "BlackBerry",
+            "user_agent": "Mozilla\/5.0 (BlackBerry; U; BlackBerry 9300; en) AppleWebKit\/534.8+ (KHTML, like Gecko) Version\/6.0.0.546 Mobile Safari\/534.8+",
+            "mobile": true,
+            "tablet": false,
+            "version": {
+                "Webkit": "534.8+",
+                "BlackBerry": "6.0.0.546"
+            },
+            "model": "BlackBerry 9300"
+        },
+        {
+            "vendor": "BlackBerry",
+            "user_agent": "Mozilla\/5.0 (BlackBerry; U; BlackBerry 9360; en-US) AppleWebKit\/534.11+ (KHTML, like Gecko) Version\/7.0.0.400 Mobile Safari\/534.11+",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "BlackBerry",
+            "user_agent": "Mozilla\/5.0 (BlackBerry; U; BlackBerry 9700; he) AppleWebKit\/534.8+ (KHTML, like Gecko) Version\/6.0.0.723 Mobile Safari\/534.8+",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "BlackBerry",
+            "user_agent": "Mozilla\/5.0 (BlackBerry; U; BlackBerry 9700; en-US) AppleWebKit\/534.8  (KHTML, like Gecko) Version\/6.0.0.448 Mobile Safari\/534.8",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "BlackBerry",
+            "user_agent": "Mozilla\/5.0 (BlackBerry; U; BlackBerry 9790; en-GB) AppleWebKit\/534.11+ (KHTML, like Gecko) Version\/7.1.0.714 Mobile Safari\/534.11+",
+            "mobile": true,
+            "tablet": false,
+            "version": {
+                "Webkit": "534.11+",
+                "BlackBerry": "7.1.0.714"
+            },
+            "model": "BlackBerry 9790"
+        },
+        {
+            "vendor": "BlackBerry",
+            "user_agent": "Opera\/9.80 (BlackBerry; Opera Mini\/7.0.29990\/28.2504; U; en) Presto\/2.8.119 Version\/11.10",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "BlackBerry",
+            "user_agent": "Mozilla\/5.0 (BlackBerry; U; BlackBerry 9981; en-GB) AppleWebKit\/534.11+ (KHTML, like Gecko) Version\/7.1.0.342 Mobile Safari\/534.11+",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "BlackBerry",
+            "user_agent": "Mozilla\/5.0 (BlackBerry; U; BlackBerry 9800; en-GB) AppleWebKit\/534.8+ (KHTML, like Gecko) Version\/6.0.0.546 Mobile Safari\/534.8+",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "BlackBerry",
+            "user_agent": "Mozilla\/5.0 (BlackBerry; U; BlackBerry 9780; es) AppleWebKit\/534.8  (KHTML, like Gecko) Version\/6.0.0.480 Mobile Safari\/534.8",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "BlackBerry",
+            "user_agent": "Mozilla\/5.0 (BlackBerry; U; BlackBerry 9810; en-US) AppleWebKit\/534.11  (KHTML, like Gecko) Version\/7.0.0.583 Mobile Safari\/534.11",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "BlackBerry",
+            "user_agent": "Mozilla\/5.0 (BlackBerry; U; BlackBerry 9860; es) AppleWebKit\/534.11+ (KHTML, like Gecko) Version\/7.0.0.576 Mobile Safari\/534.11+",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "BlackBerry",
+            "user_agent": "Mozilla\/5.0 (BlackBerry; U; BlackBerry 9900; en-US) AppleWebKit\/534.11  (KHTML, like Gecko) Version\/7.1.0.523 Mobile Safari\/534.11",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "BlackBerry",
+            "user_agent": "BlackBerry8520\/5.0.0.592 Profile\/MIDP-2.1 Configuration\/CLDC-1.1 VendorID\/136",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "BlackBerry",
+            "user_agent": "BlackBerry8520\/5.0.0.1067 Profile\/MIDP-2.1 Configuration\/CLDC-1.1 VendorID\/603",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "BlackBerry",
+            "user_agent": "BlackBerry8520\/5.0.0.1036 Profile\/MIDP-2.1 Configuration\/CLDC-1.1 VendorID\/611",
+            "mobile": true,
+            "tablet": false,
+            "version": {
+                "BlackBerry": "5.0.0.1036",
+                "VendorID": "611"
+            },
+            "model": "BlackBerry8520"
+        },
+        {
+            "vendor": "BlackBerry",
+            "user_agent": "Mozilla\/5.0 (BlackBerry; U; BlackBerry 9220; en) AppleWebKit\/534.11+ (KHTML, like Gecko) Version\/7.1.0.337 Mobile Safari\/534.11+",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "BlackBerry",
+            "user_agent": "Mozilla\/5.0 (PlayBook; U; RIM Tablet OS 2.1.0; en-US) AppleWebKit\/536.2+ (KHTML, like Gecko) Version\/7.2.1.0 Safari\/536.2+",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "BlackBerry",
+            "user_agent": "Mozilla\/5.0 (BB10; Touch) AppleWebKit\/537.1+ (KHTML, like Gecko) Version\/10.0.0.1337 Mobile Safari\/537.1+",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "BlackBerry",
+            "user_agent": "Mozilla\/5.0 (BB10; Touch) AppleWebKit\/537.10+ (KHTML, like Gecko) Version\/10.0.9.2372 Mobile Safari\/537.10+",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "BlackBerry",
+            "user_agent": "Mozilla\/5.0 (BB10; Touch) \/537.10+ (KHTML, like Gecko) Version\/10.0.9.2372 Mobile Safari\/537.10+",
+            "mobile": true,
+            "tablet": false,
+            "version": {
+                "BlackBerry": "10.0.9.2372"
+            }
+        },
+        {
+            "vendor": "BlackBerry",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 3.2.1; en-us; Transformer TF101 Build\/HTK75) AppleWebKit\/534.13 (KHTML, like Gecko) Version\/4.0 Safari\/534.13",
+            "mobile": true,
+            "tablet": true,
+            "version": {
+                "Android": "3.2.1",
+                "Webkit": "534.13",
+                "Safari": "4.0"
+            },
+            "model": "Transformer TF101"
+        },
+        {
+            "vendor": "BlackBerry",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; de-de; A200 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true,
+            "version": {
+                "Android": "4.0.3",
+                "Webkit": "534.30",
+                "Safari": "4.0"
+            },
+            "model": "A200"
+        },
+        {
+            "vendor": "BlackBerry",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; en-us; A500 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true,
+            "version": {
+                "Android": "4.0.3",
+                "Webkit": "534.30",
+                "Safari": "4.0"
+            },
+            "model": "A500"
+        },
+        {
+            "vendor": "BlackBerry",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; en-us; A501 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true,
+            "version": {
+                "Android": "4.0.3",
+                "Webkit": "534.30",
+                "Safari": "4.0"
+            },
+            "model": "A501"
+        },
+        {
+            "vendor": "BlackBerry",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.1; Transformer Build\/JRO03L) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Safari\/535.19",
+            "mobile": true,
+            "tablet": true,
+            "version": {
+                "Android": "4.1.1",
+                "Webkit": "535.19",
+                "Chrome": "18.0.1025.166"
+            },
+            "model": "Transformer"
+        },
+        {
+            "vendor": "BlackBerry",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.1; ASUS Transformer Pad TF300T Build\/JRO03C) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Safari\/535.19",
+            "mobile": true,
+            "tablet": true,
+            "version": {
+                "Android": "4.1.1",
+                "Webkit": "535.19",
+                "Chrome": "18.0.1025.166"
+            },
+            "model": "Transformer Pad TF300T"
+        },
+        {
+            "vendor": "BlackBerry",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.2; fr-fr; Transformer Build\/JZO54K; CyanogenMod-10) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true,
+            "version": {
+                "Android": "4.1.2",
+                "Webkit": "534.30",
+                "Safari": "4.0",
+                "Build": "JZO54K"
+            },
+            "model": "Transformer"
+        },
+        {
+            "vendor": "BlackBerry",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.2; B1-A71 Build\/JZO54K) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166  Safari\/535.19",
+            "mobile": true,
+            "tablet": true,
+            "version": {
+                "Android": "4.1.2",
+                "Webkit": "535.19",
+                "Chrome": "18.0.1025.166"
+            },
+            "model": "B1-A71"
+        },
+        {
+            "vendor": "BlackBerry",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; Acer; Allegro)",
+            "mobile": true,
+            "tablet": false,
+            "version": {
+                "Windows Phone OS": "7.5",
+                "Trident": "5.0",
+                "IE": "9.0"
+            },
+            "model": "Allegro"
+        },
+        {
+            "vendor": "Dell",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 1.6; en-gb; Dell Streak Build\/Donut AppleWebKit\/528.5+ (KHTML, like Gecko) Version\/3.1.2 Mobile Safari\/ 525.20.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Dell",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.7; hd-us; Dell Venue Build\/GWK74; CyanogenMod-7.2.0) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Dell",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; DELL; Venue Pro)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Dell",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; Venue 8 3830 Build\/KOT49H) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/32.0.1700.99 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Dell",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; Venue 7 3730 Build\/KOT49H) AppleWebKit\/537.36 (KHTML, like Gecko) Version\/4.0 Chrome\/30.0.0.0 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Dell",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; Venue 7 HSPA+ Build\/KOT49H) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/37.0.2062.117 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Dell",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.3; en-us; Venue 8 3830 Build\/JSS15Q) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Dell",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 3.2; zh-cn; Dell Streak 10 Pro Build\/HTJ85B) AppleWebKit\/534.13 (KHTML, like Gecko) Version\/4.0 Safari\/534.13",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Google",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.2; en-us; Nexus One Build\/FRF91) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Google",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; Nexus 4 Build\/JDQ39) AppleWebKit\/537.31 (KHTML, like Gecko) Chrome\/26.0.1410.40 Mobile Safari\/537.31 OPR\/14.0.1074.54070",
+            "mobile": true,
+            "tablet": false,
+            "version": {
+                "Android": "4.2.2",
+                "Build": "JDQ39",
+                "Webkit": "537.31",
+                "Opera": "14.0.1074.54070"
+            }
+        },
+        {
+            "vendor": "Google",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; Nexus 4 Build\/JDQ39) AppleWebKit\/537.31 (KHTML, like Gecko) Chrome\/26.0.1410.58 Mobile Safari\/537.31",
+            "mobile": true,
+            "tablet": false,
+            "version": {
+                "Android": "4.2.2",
+                "Chrome": "26.0.1410.58"
+            }
+        },
+        {
+            "vendor": "Google",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; en-us; Google Nexus 4 - 4.1.1 - API 16 - 768x1280 Build\/JRO03S) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Google",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; en-us; Google Galaxy Nexus - 4.1.1 - API 16 - 720x1280 Build\/JRO03S) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Google",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.1; Nexus 7 Build\/JRO03D) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166  Safari\/535.19",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Google",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2; Nexus 7 Build\/JOP40C) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Safari\/535.19",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Google",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.2; Nexus 7 Build\/JZ054K) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Safari\/535.19",
+            "mobile": true,
+            "tablet": true,
+            "version": {
+                "Android": "4.1.2",
+                "Chrome": "18.0.1025.166"
+            }
+        },
+        {
+            "vendor": "Google",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.2; cs-cz; Nexus S Build\/JZO54K; CyanogenMod-10.0.0) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Google",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.3; Nexus 10 Build\/JWR66Y) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/29.0.1547.72 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Google",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android; en_us; Nexus 7 Build\/) AppleWebKit\/530.17 (KHTML, like Gecko) Version\/4.0 NetFrontLifeBrowser\/2.3 Mobile (Dragonfruit)",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Google",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 5.1; Nexus 5 Build\/LMY47D) AppleWebKit\/537.36 (KHTML, like Gecko) Version\/4.0 Chrome\/39.0.0.0 Mobile Safari\/537.36 momoWebView\/6.3.1 android\/404(Nexus 5;android 5.1;zh_CN;10;netType\/1)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Google",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.3; Nexus 10 Build\/JWR66Y) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/30.0.1599.92 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "HP",
+            "user_agent": "Mozilla\/5.0 (hp-tablet; Linux; hpwOS\/3.0.5; U; en-GB) AppleWebKit\/534.6 (KHTML, like Gecko) wOSBrowser\/234.83 Safari\/534.6 TouchPad\/1.0",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "HP",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; en-gb; HP Slate 7 Build\/JRO03H) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "HP",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.1; HP Slate 7 Build\/JRO03H) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/28.0.1500.94 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "HP",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; de-de; HP 8 Build\/1.0.7_WW-FIR-13) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "HP",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; HP Slate 10 HD Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.141 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "HP",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; HP Slate 8 Pro Build\/KOT49H) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.141 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "HP",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; Slate 21 Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.138 Safari\/537.36 OPR\/22.0.1485.78487",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "HP",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.3; HP SlateBook 10 x2 PC Build\/4.3-17r20-03-23) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/28.0.1500.94 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (X11; Linux x86_64; Z520m; en-ca) AppleWebKit\/534.24 (KHTML, like Gecko) Chrome\/11.0.696.34 Safari\/534.24",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "HTC_Touch_HD_T8282 Mozilla\/4.0 (compatible; MSIE 6.0; Windows CE; IEMobile 7.11)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 1.5; en-us; ADR6200 Build\/CUPCAKE) AppleWebKit\/528.5+ (KHTML, like Gecko) Version\/3.1.2 Mobile Safari\/525.20.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.1; xx-xx; Desire_A8181 Build\/ERE27) AppleWebKit\/530.17 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/530.17",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.1-update1; de-de; HTC Desire 1.19.161.5 Build\/ERE27) AppleWebKit\/530.17 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/530.17",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.1-update1; en-gb; HTC Desire Build\/ERE27) AppleWebKit\/530.17 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/530.17",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.2; fr-fr; HTC Desire Build\/FRF91) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.2; en-dk; Desire_A8181 Build\/FRF91) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.2; xx-xx; 001HT Build\/FRF91) AppleWebKit\/525.10+ (KHTML, like Gecko) Version\/3.0.4 Mobile Safari\/523.12.2",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.2; xx-xx; HTCA8180\/1.0 Android\/2.2 release\/06.23.2010 Browser\/WAP 2.0 Profile\/MIDP-2.0 Configuration\/CLDC-1.1 Build\/FRF91) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.2.2; de-at; HTC Desire Build\/FRG83G) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.2.2; en-sk; Desire_A8181 Build\/FRG83G) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3; xx-xx; HTC\/DesireS\/1.07.163.1 Build\/GRH78C) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.3; en-lv; HTC_DesireZ_A7272 Build\/GRI40) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.4; en-us; ADR6300 Build\/GRJ22) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.5; en-gb; HTC\/DesireS\/2.10.161.3 Build\/GRJ90) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.5; ru-ru; HTC_DesireS_S510e Build\/GRJ90) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.5; en-us; Inspire 4G Build\/GRJ90) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.5; de-de; HTC Explorer A310e Build\/GRJ90) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.5; en-gb; HTC_ChaCha_A810e Build\/GRJ90) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.5; nl-nl; HTC_DesireHD_A9191 Build\/GRJ90) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.5; ru-ru; HTC Desire S Build\/GRJ90) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.3; en-au; HTC Desire Build\/GRI40) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.5; de-de; HTC_DesireHD Build\/GRJ90) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.5; ru-ua; HTC_WildfireS_A510e Build\/GRJ90) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.7; en-us; HTC Vision Build\/GRI40; ILWT-CM7) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0; xx-xx; HTC_GOF_U\/1.05.161.1 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; hu-hu; HTC Sensation Z710e Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; zh-cn; HTC Sensation XE with Beats Audio Z715e Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30 XiaoMi\/MiuiBrowser\/1.0",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; pl-pl; EVO3D_X515m Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; ru-ru; HTC_One_S Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; ru-ru; HTC_One_V Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; zh-cn; HTC_A320e Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; zh-tw; HTC Desire V Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.0.3; PG86100 Build\/IML74K) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; en-nl; SensationXE_Beats_Z715e Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; en-us; ADR6425LVW 4G Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.0.3; HTC One V Build\/IML74K) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; cs-ee; Sensation_Z710e Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; en-us; HTC Evo 4G Build\/MIUI) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.0.4; Desire HD Build\/IMM76D) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; en-my; HTC_One_X Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; it-it; IncredibleS_S710e Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; fr-fr; HTC_Desire_S Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.1; HTC One X Build\/JRO03C) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.1; HTC Butterfly Build\/JRO03C) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.1; EVO Build\/JRO03C) AppleWebKit\/537.22 (KHTML, like Gecko) Chrome\/25.0.1364.169 Mobile Safari\/537.22",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.2; HTCSensation Build\/JRO03C) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/32.0.1700.99 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.2; en-us; GT-S6312 Build\/JZO54K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC 7 Mozart T8698; QSD8x50)",
+            "mobile": true,
+            "tablet": false,
+            "version": {
+                "IE": "9.0",
+                "Windows Phone OS": "7.5",
+                "Trident": "5.0"
+            },
+            "model": "7 Mozart T8698"
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 3.2.1; en-gb;HTC_Flyer_P512 Build\/HTK75C) AppleWebKit\/534.13 (KHTML, like Gecko) Version\/4.0 Safari\/534.13",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 3.1; zh-tw; HTC PG09410 Build\/HMJ15) AppleWebKit\/534.13 (KHTML, like Gecko) Version\/4.0 Safari\/534.13",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; 7 HTC MOZART)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; 7 Mondrian T8788)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; 7 Mozart T8698)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; 7 Mozart)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; 7 Mozart; Orange)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; 7 Pro T7576)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; 7 Pro)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; 7 Schubert T9292)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; 7 Surround)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; 7 Trophy T8686)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; 7 Trophy)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; Eternity)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; Gold)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; HD2 LEO)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; HD2)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; HD7 T9292)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; HD7)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; iPad 3)",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; LEO)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; Mazaa)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; Mondrian)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; Mozart T8698)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; Mozart)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; mwp6985)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; PC40100)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; PC40200)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; PD67100)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; PI39100)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; PI86100)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; Radar 4G)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; Radar C110e)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; Radar C110e; 1.08.164.02)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; Radar C110e; 2.05.164.01)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; Radar C110e; 2.05.168.02)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; Radar)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; Radar; Orange)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; Schuber)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; Schubert T9292)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; Schubert)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; Spark)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; Surround)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; T7575)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; T8697)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; T8788)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; T9295)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; T9296)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; TITAN X310e)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; Titan)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; Torphy T8686)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC; X310e)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; HTC_blocked; T8788)",
+            "mobile": true,
+            "tablet": false,
+            "version": {
+                "IE": "9.0",
+                "Windows Phone OS": "7.5",
+                "Trident": "5.0"
+            },
+            "model": "T8788"
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.0.4; HTC One S Build\/IMM76D) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; de-de; HTC One X Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; en-th; HTC One V Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.0.4; HTC One X Build\/IMM76D) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; en-id; HTC One X Build\/JRO03C) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.0.3; HTC One S Build\/IML74K) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.1; HTC One S Build\/JRO03C) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.0.3; HTC One X Build\/IML74K) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; de-at; HTC One S Build\/JRO03C) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.1; HTC One X Build\/JRO03L) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; en-gb; HTC One S Build\/JRO03C) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.1; HTC One X Build\/JRO03C) AppleWebKit\/537.22 (KHTML, like Gecko) Chrome\/25.0.1364.123 Mobile Safari\/537.22",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.1; HTC One S Build\/JRO03C) AppleWebKit\/537.22 (KHTML, like Gecko) Chrome\/25.0.1364.123 Mobile Safari\/537.22",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.1; HTC One X Build\/JRO03C) AppleWebKit\/537.22 (KHTML, like Gecko) Chrome\/25.0.1364.169 Mobile Safari\/537.22",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.2; HTC One X Build\/JZO54K) AppleWebKit\/537.22 (KHTML, like Gecko) Chrome\/25.0.1364.169 Mobile Safari\/537.22",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; es-pe; HTC One V Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.1; HTC One S Build\/JRO03C) AppleWebKit\/537.22 (KHTML, like Gecko) Chrome\/25.0.1364.169 Mobile Safari\/537.22",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.0.3; HTC One V Build\/IML74K) AppleWebKit\/537.31 (KHTML, like Gecko) Chrome\/26.0.1410.58 Mobile Safari\/537.31",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; de-de; HTC One X Build\/JRO03C) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30 Maxthon\/4.0.4.1000",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.0.3; HTC One X Build\/IML74K) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.133 Mobile Safari\/535.19 AlexaToolbar\/alxf-2.17",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.1; HTC One X Build\/JRO03C) AppleWebKit\/537.31 (KHTML, like Gecko) Chrome\/26.0.1410.58 Mobile Safari\/537.31",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.2; HTC One Build\/JZO54K) AppleWebKit\/537.31 (KHTML, like Gecko) Chrome\/26.0.1410.58 Mobile Safari\/537.31",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.0.3; HTC One S Build\/IML74K) AppleWebKit\/537.31 (KHTML, like Gecko) Chrome\/26.0.1410.58 Mobile Safari\/537.31",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.1; HTC One S Build\/JRO03C) AppleWebKit\/537.31 (KHTML, like Gecko) Chrome\/26.0.1410.58 Mobile Safari\/537.31",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.1; HTC One X Build\/JRO03C) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/27.0.1453.90 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.1; HTC One S Build\/JRO03C) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/27.0.1453.90 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.2; HTC One Build\/JZO54K) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.2; HTC One Build\/JZO54K) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/27.0.1453.90 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.2; de-de; HTC One Build\/JZO54K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.1; HTC One S Build\/JRO03C) AppleWebKit\/537.31 (KHTML, like Gecko) Chrome\/26.0.1410.58 Mobile Safari\/537.31 OPR\/14.0.1074.58201",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; es-es; HTC One S Build\/JRO03C) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.2; HTC One Build\/JZO54K) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/28.0.1500.64 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.1; HTC One S Build\/JRO03C) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/28.0.1500.64 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.0.3; HTC One V Build\/IML74K) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/28.0.1500.64 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; HTC One X Build\/JDQ39E) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.1; HTC One XL Build\/JRO03C) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.1; HTC One S Build\/JRO03C) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/28.0.1500.63 Mobile Safari\/537.36 OPR\/15.0.1162.60140",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; HTC One Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/28.0.1500.94 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; de-de; HTC One S Build\/JRO03C) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.2; HTC One Build\/JZO54K) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/28.0.1500.94 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.1; HTC One X Build\/JRO03C) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/28.0.1500.94 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.0.3; HTC One X Build\/IML74K) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/28.0.1500.94 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.1; HTC One S Build\/JRO03C) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/28.0.1500.94 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.2; HTC One Build\/JZO54K) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/29.0.1547.59 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; HTC One Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/29.0.1547.59 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.1; HTC One S Build\/JRO03C) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/30.0.1599.24 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "HTC One X Linux\/3.0.13 Android\/4.1.9 Release\/10.12.2012 Browser\/AppleWebKit534.30 Profile\/MIDP-2.0 Configuration\/CLDC-1.1 Mobile Safari\/534.30 Android 4.0.1;",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; HTC One X Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/29.0.1547.59 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; zh-tw; HTC One 801e Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.0.4; HTC One X Build\/IMM76D) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/28.0.1500.63 Mobile Safari\/537.36 OPR\/15.0.1162.61541",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; HTC One Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/29.0.1547.72 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.0.3; HTC One XL Build\/IML74K) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.2; HTC One Build\/JZO54K) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/29.0.1547.72 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; HTC One X Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/29.0.1547.72 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.1; HTC One X+ Build\/JRO03C) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; en-us; HTC One X Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30\/4.05d.1002.m7",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; en-in; HTC One V Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.1; HTC One X Build\/JRO03C) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/29.0.1547.72 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.0.3; HTC One V Build\/IML74K) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/29.0.1547.72 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; ru-ru; HTC One X Build\/JRO03C) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30 MicroMessenger\/5.0.1.352",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; en-us; HTC One X Build\/JRO03C) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; en-gb; HTC One Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.1; HTC One S Build\/JRO03C) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/29.0.1547.72 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.2; HTC One SV Build\/JZO54K) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/30.0.1599.82 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.1; HTC One S Build\/JRO03C) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/30.0.1599.82 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.0.3; HTC One V Build\/IML74K) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/30.0.1599.82 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; HTC One Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/30.0.1599.82 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.1; HTC One X Build\/JRO03C) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/30.0.1599.82 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.1; HTC One S Build\/JRO03C) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/30.0.1599.92 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; HTC One mini Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/30.0.1599.82 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; en-us; HTC One Build\/IMM76D) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.3; HTC One Build\/JSS15J) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/30.0.1599.82 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.3; HTC One 801e Build\/JSS15J) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/29.0.1547.72 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.1; HTC One X Build\/JRO03C) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/30.0.1599.92 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; HTC One Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/30.0.1599.92 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; HTC One X Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/30.0.1599.92 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; de-ch; HTC One Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; nl-nl; HTC One X Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.3; HTC One Build\/JSS15J) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/30.0.1599.92 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; HTC One X Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/31.0.1650.59 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.3; HTC One Build\/JSS15J) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/31.0.1650.59 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.1; HTC One S Build\/JRO03C) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/31.0.1650.59 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; zh-cn; HTC One S Build\/IML74K) AppleWebKit\/530.17 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/530.17 T5\/2.0 baidubrowser\/3.1.6.4 (Baidu; P1 4.0.3)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.1; HTC One X Build\/JRO03C) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/31.0.1650.59 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.1; HTC One X+ Build\/JRO03C) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/31.0.1650.59 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.3; en-us; HTC One 801e Build\/JSS15J) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 UCBrowser\/9.4.1.362 U3\/0.8.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4; HTC One Build\/KRT16S.H5) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/31.0.1650.59 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; HTC One Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/31.0.1650.59 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.1; HTC One S Build\/JRO03C) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/32.0.1700.94 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.2; HTC One SV Build\/JZO54K) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/31.0.1650.59 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.1; ru-ru; HTC One Build\/JOP40D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.3; HTC One Build\/JSS15J) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/32.0.1700.99 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; HTC One X Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/32.0.1700.99 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; ru-ru; HTC One 801e Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; HTC One 801e Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/32.0.1700.99 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; HTC One mini Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/30.0.1599.12975 YaBrowser\/13.12.1599.12975 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4; HTC One Build\/KRT16S) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/32.0.1700.99 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.3; en-us; HTC One Build\/JSS15J) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; HTC One Build\/KOT49H) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/32.0.1700.99 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; HTC One Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/32.0.1700.99 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.1; HTC One X Build\/JRO03C) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/32.0.1700.99 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.2; HTC One X Build\/JZO54K) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/32.0.1700.99 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.3; HTC One Build\/JWR66Y.H1) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/33.0.1750.93 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.3; de-at; HTC One Build\/JSS15J) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.3; HTC One Build\/JSS15J) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/33.0.1750.136 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; HTC One Build\/KOT49H) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/33.0.1750.135 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; HTC One X+ Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/33.0.1750.136 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; HTC One dual sim Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/33.0.1750.136 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.0.4; HTC One S Build\/IMM76D) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/33.0.1750.136 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; HTC One max Build\/KOT49H) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/33.0.1750.132 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.1; HTC One S Build\/JRO03C) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/33.0.1750.136 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.3; HTC One mini Build\/JSS15Q) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/33.0.1750.136 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.3; HTC One 801e Build\/JSS15J) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/33.0.1750.136 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; zh-cn; HTC One Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30 MicroMessenger\/5.2.380",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; HTC One Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/33.0.1750.136 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; HTC One Build\/KOT49H) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/33.0.1750.166 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.0.3; HTC One X Build\/IML74K) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.133 Mobile Safari\/535.19",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.3; HTC One Build\/JSS15J) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/33.0.1750.166 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; HTC One X Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/33.0.1750.166 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; HTC One X+ Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/33.0.1750.166 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; HTC One Build\/KOT49H) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/33.0.1750.132 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; HTC One Build\/KOT49H) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/34.0.1847.114 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.3; HTC One Build\/JSS15J) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/34.0.1847.114 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.0.4; HTC One X Build\/IMM76D) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/32.0.1700.99 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; it-it; HTC One S Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; en-kw; HTC One X+ Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; HTC One Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/34.0.1847.114 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; HTC One max Build\/KOT49H) AppleWebKit\/537.36 (KHTML, like Gecko) Version\/4.0 Chrome\/30.0.0.0 Mobile Safari\/537.36 MicroMessenger\/5.3.0.49_r693790.420",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.1; HTC One S Build\/JRO03C) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/34.0.1847.114 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; HTC One Build\/KOT49H) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.122 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.3; HTC One Build\/JSS15J) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.122 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; HTC One X Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.122 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; ru; HTC One V Build\/IML74K) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 UCBrowser\/9.7.5.418 U3\/0.8.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; HTC One Build\/KOT49H) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.138 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; HTC One Build\/KOT49H) AppleWebKit\/537.36 (KHTML, like Gecko) Version\/4.0 Chrome\/30.0.0.0 Mobile Safari\/537.36 MicroMessenger\/5.2.1.381",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.1; HTC One S Build\/JRO03C) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.122 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; HTC One mini Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.138 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.4.2; ru-ru; HTC One mini Build\/KOT49H) AppleWebKit\/537.16 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/537.16",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; HTC One Build\/KOT49H) AppleWebKit\/537.36 (KHTML, like Gecko) Version\/4.0 Chrome\/30.0.0.0 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; HTC One Build\/KOT49H) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.141 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; ru; HTC One V Build\/IML74K) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 UCBrowser\/9.8.0.435 U3\/0.8.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; HTC One 801e Build\/KOT49H) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.141 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; HTC One X Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/34.0.1847.114 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; en-us; HTC One X - 4.2.2 - API 17 - 720x1280 Build\/JDQ39E) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.1; HTC One S Build\/JRO03C) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.141 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; HTC One_M8 Build\/KOT49H) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.141 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.0.3; HTC One V Build\/IML74K) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.138 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; HTC One Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.141 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; HTC One X Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.141 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; HTC One Build\/KOT49H) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.94 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; HTC One X+ Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.141 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; HTC One Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.128 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; HTC One_M8 Build\/KOT49H) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.128 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; HTC One X Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.128 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; HTC One_M8 Build\/KOT49H) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.131 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; HTC One Build\/KOT49H) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.131 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; HTC One X Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.131 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.3; HTC One_M8 Build\/KTU84L) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.131 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.2; HTC One VX Build\/JZO54K) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.131 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; HTC One Build\/KOT49H) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/37.0.2062.76 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; HTC One_M8 Build\/KOT49H) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.135 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; HTC One Build\/KOT49H) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.135 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.0.3; HTC One V Build\/IML74K) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/34.0.1847.114 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; HTC One dual sim Build\/KOT49H) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.141 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.1; HTC One S Build\/JRO03C) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.135 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; HTC One dual sim Build\/KOT49H) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.138 Mobile Safari\/537.36 OPR\/22.0.1485.78487",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; HTC One X+ Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.135 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.3; HTC One Build\/JSS15J) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.131 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.3; HTC One_M8 Build\/KTU84L) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.135 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; HTC One X Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.135 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.3; HTC One Build\/JSS15J) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/37.0.2062.117 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.3; HTC One Build\/KTU84L) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.135 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.3; HTC One 801e Build\/KTU84L) AppleWebKit\/537.36 (KHTML, like Gecko) Version\/4.0 Chrome\/33.0.0.0 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.3; HTC One 801e Build\/KTU84L) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/37.0.2062.117 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.0.3; HTC One X Build\/IML74K) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.138 Mobile Safari\/537.36 OPR\/22.0.1485.81203",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; HTC One X Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/37.0.2062.117 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; HTC One 801e Build\/KOT49H) AppleWebKit\/537.36 (KHTML, like Gecko) Version\/4.0 Chrome\/30.0.0.0 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.3; HTC One Build\/KTU84L) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/37.0.2062.117 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; HTC One mini Build\/KOT49H) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.135 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.1; HTC One S Build\/JRO03C) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/37.0.2062.117 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; zh-tw; HTC One S Build\/JRO03C) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.3; HTC One_M8 Build\/KTU84L) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/37.0.2062.117 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; en-us; HTC One V Build\/IML74K) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 UCBrowser\/9.9.2.467 U3\/0.8.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; HTC One Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/37.0.2062.117 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.3; HTC One mini Build\/JSS15Q) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/37.0.2062.117 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.4.2; en-us; HTC One_M8 Build\/KOT49H) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; HTC One Build\/KOT49H) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/37.0.2062.117 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.3; HTC One dual sim Build\/KTU84L) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/37.0.2062.117 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; HTC One X Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/32.0.1700.72 Mobile Safari\/537.36 OPR\/19.0.1340.69721",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.3; HTC One Build\/JSS15J) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/38.0.2125.102 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.3; HTC One Build\/KTU84L) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/38.0.2125.102 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.3; HTC One_M8 Build\/KTU84L) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/38.0.2125.102 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; HTC One_M8 Build\/KOT49H) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/38.0.2125.102 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; HTC One SV Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/38.0.2125.102 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.3; HTC One Build\/KTU84L) AppleWebKit\/537.36 (KHTML, like Gecko) Version\/4.0 Chrome\/33.0.0.0 Mobile Safari\/537.36 ACHEETAHI\/2100050056",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.4; HTC One_M8 Build\/KTU84P) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/38.0.2125.102 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; HTC One X Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/38.0.2125.102 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.3; HTC One Build\/KTU84L) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/38.0.2125.114 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.3; HTC One_M8 Build\/KTU84L) AppleWebKit\/537.36 (KHTML, like Gecko) Version\/4.0 Chrome\/33.0.0.0 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; HTC One X Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/38.0.2125.114 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.3; HTC One Build\/JWR66Y.H1) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/38.0.2125.114 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; zh-tw; HTC One SV Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; HTC One mini Build\/KOT49H) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/38.0.2125.114 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; HTC One Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/38.0.2125.114 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.4; HTC One_M8 Build\/KTU84P) AppleWebKit\/537.36 (KHTML, like Gecko) Version\/4.0 Chrome\/33.0.0.0 Mobile Safari\/537.36 [FBAN\/FB4A;FBAV\/21.0.0.23.12;]",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; zh-tw; HTC One X Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.4; HTC One_M8 Build\/KTU84P) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/39.0.2171.59 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.3; HTC One Build\/KTU84L) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/39.0.2171.59 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; ru-si; HTC One X Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30 MicroMessenger\/6.0.0.67_r853700.483 NetType\/WIFI",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; HTC One_M8 Build\/KOT49H) AppleWebKit\/537.36 (KHTML, like Gecko) Version\/4.0 Chrome\/30.0.0.0 Mobile Safari\/537.36 [FBAN\/FB4A;FBAV\/22.0.0.15.13;]",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; en-US; HTC One X Build\/JRO03C) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 UCBrowser\/10.0.1.512 U3\/0.8.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.4; HTC One Build\/KTU84P.H1) AppleWebKit\/537.36 (KHTML, like Gecko) Version\/4.0 Chrome\/33.0.0.0 Mobile Safari\/537.36 [FBAN\/FB4A;FBAV\/22.0.0.15.13;]",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; HTC One mini Build\/KOT49H) AppleWebKit\/537.36 (KHTML, like Gecko) Version\/4.0 Chrome\/30.0.0.0 Mobile Safari\/537.36 [FBAN\/FB4A;FBAV\/22.0.0.15.13;]",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; HTC One SV Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/39.0.2171.59 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.4; HTC One_M8 Build\/KTU84P) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/39.0.2171.93 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.3; HTC One Build\/KTU84L) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/39.0.2171.93 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.3; HTC One Build\/KTU84L) AppleWebKit\/537.36 (KHTML, like Gecko) Version\/4.0 Chrome\/33.0.0.0 Mobile Safari\/537.36 [FBAN\/FB4A;FBAV\/22.0.0.15.13;]",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; HTC One_M8 Build\/KOT49H) AppleWebKit\/537.36 (KHTML, like Gecko) Version\/4.0 Chrome\/30.0.0.0 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; zh-tw; HTC One X+ Build\/JRO03C) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.4; HTC One_M8 Build\/KTU84P) AppleWebKit\/537.36 (KHTML, like Gecko) Version\/4.0 Chrome\/33.0.0.0 Mobile Safari\/537.36 BingWeb\/5.2.0.20140710",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.3; HTC One Build\/JSS15J) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/39.0.2171.93 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; es-mx; HTC One S Build\/JRO03C) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30 [FBAN\/FB4A;FBAV\/23.0.0.22.14;]",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; HTC One mini Build\/KOT49H) AppleWebKit\/537.36 (KHTML, like Gecko) Version\/4.0 Chrome\/30.0.0.0 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.4.3; es-es; HTC One 801e Build\/KTU84L) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; HTC One mini Build\/KOT49H) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/39.0.2171.93 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; HTC One X+ Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/39.0.2171.93 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; HTC One_M8 Build\/KOT49H) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/40.0.2214.69 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; ru-ru; HTC One S Build\/JRO03C) AppleWebKit\/537.16 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/537.16",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.3; HTC One Build\/KTU84L) AppleWebKit\/537.36 (KHTML, like Gecko) Version\/4.0 Chrome\/33.0.0.0 Mobile Safari\/537.36 [FB_IAB\/FB4A;FBAV\/24.0.0.30.15;]",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.4.2; en-th; HTC One Build\/KOT49H) AppleWebKit\/537.16 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/537.16",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; es-ar; HTC One X Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30 [FB_IAB\/FB4A;FBAV\/24.0.0.30.15;]",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; HTC One_M8 Build\/KOT49H) AppleWebKit\/537.36 (KHTML, like Gecko) Version\/4.0 Chrome\/30.0.0.0 Mobile Safari\/537.36 [FB_IAB\/FB4A;FBAV\/24.0.0.30.15;]",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; HTC One Build\/KOT49H) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/39.0.2171.93 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; es-us; HTC One X+ Build\/JRO03C) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30 [FB_IAB\/FB4A;FBAV\/24.0.0.30.15;]",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; es-mx; HTC One S Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30 [FB_IAB\/FB4A;FBAV\/24.0.0.30.15;]",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; HTC One Build\/KOT49H) AppleWebKit\/537.36 (KHTML, like Gecko) Version\/4.0 Chrome\/30.0.0.0 Mobile Safari\/537.36 [FB_IAB\/FB4A;FBAV\/24.0.0.30.15;]",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; HTC One Build\/KOT49H) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/33.0.1750.136 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.3; HTC One Build\/KTU84L) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/40.0.2214.89 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; HTC One dual sim Build\/KOT49H) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/40.0.2214.89 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; HTC One Build\/KOT49H) AppleWebKit\/537.36 (KHTML, like Gecko) Version\/4.0 Chrome\/30.0.0.0 Mobile Safari\/537.36 [FB_IAB\/FB4A;FBAV\/25.0.0.19.30;]",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 5.0.1; HTC One_M8 Build\/LRX22C) AppleWebKit\/537.36 (KHTML, like Gecko) Version\/4.0 Chrome\/37.0.0.0 Mobile Safari\/537.36 [FB_IAB\/FB4A;FBAV\/25.0.0.19.30;]",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; HTC One Build\/KOT49H) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/40.0.2214.89 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.4; HTC One_M8 Build\/KTU84P) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/40.0.2214.109 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; HTC One X Build\/JDQ39) AppleWebKit\/537.31 (KHTML, like Gecko) Chrome\/26.0.1410.58 Mobile Safari\/537.31",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; HTC One mini Build\/KOT49H) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/40.0.2214.109 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "HTC",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 5.0.1; HTC One_M8 Build\/LRX22C.H5) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/40.0.2214.109 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Huwaei",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.1-update1; bg-bg; Ideos S7 Build\/ERE27) AppleWebKit\/525.10+ (KHTML, like Gecko) Version\/3.0.4 Mobile Safari\/523.12.2",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Huwaei",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.1; en-us; Ideos S7 Build\/ERE27) AppleWebKit\/525.10+ (KHTML, like Gecko) Version\/3.0.4 Mobile Safari\/523.12.2",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Huwaei",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.6; lt-lt; U8660 Build\/HuaweiU8660) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Huwaei",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.7; ru-ru; HUAWEI-U8850 Build\/HuaweiU8850) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Huwaei",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 3.2; pl-pl; MediaPad Build\/HuaweiMediaPad) AppleWebKit\/534.13 (KHTML, like Gecko) Version\/4.0 Safari\/534.13",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Huwaei",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 3.2; nl-nl; HUAWEI MediaPad Build\/HuaweiMediaPad) AppleWebKit\/534.13 (KHTML, like Gecko) Version\/4.0 Safari\/534.13",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Huwaei",
+            "user_agent": "HUAWEI_T8951_TD\/1.0 Android\/4.0.4 (Linux; U; Android 4.0.4; zh-cn) Release\/05.31.2012 Browser\/WAP2.0 (AppleWebKit\/534.30) Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Huwaei",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.2; ar-eg; MediaPad 7 Youth Build\/HuaweiMediaPad) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Huwaei",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.2; zh-cn; HW-HUAWEI_C8815\/C8815V100R001C541B135; 540*960; CTC\/2.0) AppleWebKit\/534.30 (KHTML, like Gecko) Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Huwaei",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; zh-cn; HW-HUAWEI_C8813D\/C8813DV100R001C92B172; 480*854; CTC\/2.0) AppleWebKit\/534.30 (KHTML, like Gecko) Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Huwaei",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; zh-cn; HW-HUAWEI_Y300C\/Y300CV100R001C92B168; 480*800; CTC\/2.0) AppleWebKit\/534.30 (KHTML, like Gecko) Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Lava",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.6; en-us; Iris 349 Build\/MocorDroid2.3.5) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Lava",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; en-us; iris402+ Build\/iris402+) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Lava",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; en-us; IRIS402 Build\/LAVAIRIS402) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Lava",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.2; iris405 Build\/LAVAIRIS405) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Lava",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.1; IRIS_501 Build\/LAVAIRIS501) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Lava",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; en-us; iris402e Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Lava",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; en-us; iris503e Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Lava",
+            "user_agent": "UCWEB\/2.0 (Linux; U; Opera Mini\/7.1.32052\/30.3697; en-US; IRIS402) U2\/1.0.0 UCBrowser\/9.1.1.420 Mobile",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Lava",
+            "user_agent": "UCWEB\/2.0 (MIDP-2.0; U; Adr 4.2.2; en-US; IRIS402) U2\/1.0.0 UCBrowser\/9.1.1.420 U2\/1.0.0 Mobile",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Lava",
+            "user_agent": "UCWEB\/2.0 (Linux; U; Opera Mini\/7.1.32052\/30.3697; en-US; IRIS355) U2\/1.0.0 UCBrowser\/9.1.1.420 Mobile",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Lava",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; en-us; iris356 Build\/irisIRIS356) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 UCBrowser\/9.5.0.360 U3\/0.8.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Lava",
+            "user_agent": "UCWEB\/2.0 (Linux; U; Opera Mini\/7.1.32052\/30.3697; en-US; iris356) U2\/1.0.0 UCBrowser\/9.0.2.389 Mobile",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Lava",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; iris500 Build\/iris500) AppleWebKit\/537.36 (KHTML, like Gecko) Version\/4.0 Chrome\/30.0.0.0 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Lava",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; iris700 Build\/iris700) AppleWebKit\/537.36 (KHTML, like Gecko) Version\/4.0 Chrome\/30.0.0.0 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Lava",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; QPAD E704 Build\/JDQ39) AppleWebKit\/537.36 (KHTML like Gecko) Chrome\/36.0.1985.131 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Lava",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2; xx-xx; IvoryS Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Lava",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.2; en-US; E-TAB IVORY Build\/E702) AppleWebKit\/534.31 (KHTML, like Gecko) UCBrowser\/9.3.0.321 U3\/0.8.0 Mobile Safari\/534.31",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Lava",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.4; tr-tr; E-TAB Build\/GRJ22) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": 0,
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; en-au; TBLT10Q-32GB Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Lenovo",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; es-es; IdeaTab_A1107 Build\/MR1) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Lenovo",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.0.3; IdeaTab A2107A-H Build\/IML74K) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/27.0.1453.90 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Lenovo",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; en-au; ThinkPad Tablet Build\/ThinkPadTablet_A400_03) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Lenovo",
+            "user_agent": "UCWEB\/2.0 (Linux; U; Opera Mini\/7.1.32052\/30.3697; en-US; IdeaTabA1000-G) U2\/1.0.0 UCBrowser\/9.2.0.419 Mobile",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Lenovo",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.2; IdeaTabA1000-F Build\/JZO54K) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/34.0.1847.114 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Lenovo",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.1; Lenovo A3000-H Build\/JOP40D) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.117 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Lenovo",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; IdeaTab A3000-F Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/32.0.1700.99 Safari\/537.360",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Lenovo",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1; zh-cn; Lenovo-A3000-H\/S100) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.1 Mobile Safari\/534.300",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Lenovo",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; es-us; IdeaTab A3000-F Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Lenovo",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.0.3; IdeaTab A2107A-H Build\/IML74K) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166  Safari\/535.19",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Lenovo",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; de-de; IdeaTab A2107A-H Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Lenovo",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; es-es; IdeaTabA2109A Build\/JRO03R) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Lenovo",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; nl-nl; IdeaTabA2109A Build\/JRO03R) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Lenovo",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; es-es; IdeaTab_A1107 Build\/MR1) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.300",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Lenovo",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; IdeaTab S6000-H Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.138 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Lenovo",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; en-gb; IdeaTab S6000-F Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Lenovo",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; Lenovo B8000-F Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/34.0.1847.114 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Lenovo",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2;it-it; Lenovo B8000-F\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.2.2 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Lenovo",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; it-it; Lenovo B6000-F\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.2.2 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Lenovo",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; Lenovo B6000-F Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/34.0.1847.114 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Lenovo",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; IdeaPadA10 Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/33.0.1750.166 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Lenovo",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.2; Ideapad K1 Build\/JZO54K) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/34.0.1847.114 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Lenovo",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.7; de-de; IdeaPad A1 Build\/GRK393; CyanogenMod-7) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Lenovo",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.3; Lenovo B8080-H Build\/JLS36C) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.141 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Lenovo",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; hu-hu; Lenovo A3500-FL Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Lenovo",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; de-de; Lenovo A7600-F Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Lenovo",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; Lenovo A5500-F Build\/KOT49H) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.131 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Lenovo",
+            "user_agent": "Lenovo A390 Linux\/3.0.13 Android\/4.4.2 Release\/04.03.2013 Browser\/AppleWebKit534.30 Profile\/MIDP-2.0 Configuration\/CLDC-1.1 Mobile Safari\/534.30 Android 4.0.1;",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "LG",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.6; en-us; LG-VS410PP Build\/GRK39F) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "LG",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.2; en-us; LG-P509 Build\/FRF91) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1 MMS\/LG-Android-MMS-V1.0\/1.2",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "LG",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.2.2; pt-br; LG-P350f Build\/FRG83G) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1 MMS\/LG-Android-MMS-V1.0\/1.2",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "LG",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.3; en-us; LG-P500 Build\/GRI40) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1 MMS\/LG-Android-MMS-V1.0\/1.2",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "LG",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.3; en-us; LS670 Build\/GRI40) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "LG",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.4; ru-ru; LG-E510 Build\/GRJ22) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1 MMS\/LG-Android-MMS-V1.0\/1.2",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "LG",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.4; en-us; VS910 4G Build\/GRJ22) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "LG",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; nl-nl; LG-P700 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "LG",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; ko-kr; LG-L160L Build\/IML74K) AppleWebkit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "LG",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; en-us; LG-F160S Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "LG",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; nl-nl; LG-E610v\/V10f Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "LG",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; en-us; LG-E612 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "LG",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.2; LG-F180K Build\/JZO54K) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "LG",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; LG-V500 Build\/JDQ39B) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/31.0.1650.59 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "LG",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; en-us; LG-LW770 Build\/IMM76I) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "LG",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; LG-V510 Build\/KOT49H.L004) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.141 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "LG",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; LG; LG E-900)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "LG",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; LG; LG-C900)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "LG",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; LG; LG-C900k)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "LG",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; LG; LG-E900)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "LG",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; LG; LG-E900; Orange)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "LG",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; LG; LG-E900h)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "LG",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; LG; LG-Optimus 7)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "LG",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 3.0.1; ja-jp; L-06C Build\/HRI66) AppleWebKit\/534.13 (KHTML, like Gecko) Version\/4.0 Safari\/534.13",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "LG",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 3.0; en-us; LG-V900 Build\/HRI39) AppleWebKit\/534.13 (KHTML, like Gecko) Version\/4.0 Safari\/534.13",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "LG",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.4.2; en-gb; LG-V700 Build\/KOT49I.A1403851714) AppleWebKit\/537.36 (KHTML, like Gecko) Version\/4.0 Chrome\/30.0.1599.103 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "LG",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; LG-V500 Build\/KOT49I.V50020d) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/38.0.2125.102 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "LG",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.4.2; en-us; LG-V410\/V41010d Build\/KOT49I.V41010d) AppleWebKit\/537.36 (KHTML, like Gecko) Version\/4.0 Chrome\/30.0.1599.103 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Mi",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2; xx-xx; HM NOTE 1W Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 MobilSafari\/534.30 XiaoMi\/MiuiBrowser\/1.0",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Mi",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.1; zh-cn; MI-ONE Plus Build\/ITL41D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30 XiaoMi\/MiuiBrowser\/1.0",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Mi",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; zh-cn; MI 2SC Build\/JRO03L) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30 XiaoMi\/MiuiBrowser\/1.0",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Mi",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; zh-cn; MI 2S Build\/JRO03L) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30 XiaoMi\/MiuiBrowser\/1.0",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Mi",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.2; zh-tw; MI 1S Build\/JZO54K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30 XiaoMi\/MiuiBrowser\/1.0",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Mi",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.8; zh-cn; xiaomi2 Build\/GRK39F) AppleWebKit\/533.1 (KHTML, like Gecko)Version\/4.0 MQQBrowser\/4.4 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Mi",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; es-es; MI 2A Build\/miui.es JRO03L) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30 XiaoMi\/MiuiBrowser\/1.0",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Mi",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.1; zh-cn; MI 3 Build\/JOP40D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30 XiaoMi\/MiuiBrowser\/1.0",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Mi",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.2; en-us; MI 1S Build\/JZO54K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30 XiaoMi\/MiuiBrowser\/1.0",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Mi",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.3; zh-cn; MI 3W Build\/JLS36C) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30 XiaoMi\/MiuiBrowser\/1.0",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Mi",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.3; zh-cn; HM 1SC Build\/JLS36C) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30 XiaoMi\/MiuiBrowser\/1.0",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Mi",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.3; en-us; HM 1SW Build\/JLS36C) AppleWebKit\/537.36 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/537.36 XiaoMi\/MiuiBrowser\/2.0.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Mi",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; en-us; HM NOTE 1W Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/537.36 XiaoMi\/MiuiBrowser\/2.0.1",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Mi",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.2; en-us; MI-ONE C1 Build\/JZO54K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30 XiaoMi\/MiuiBrowser\/1.0",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Mi",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.4.4; en-us; MI 4W Build\/KTU84P) AppleWebKit\/537.36 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/537.36 XiaoMi\/MiuiBrowser\/2.0.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Mi",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4; MI PAD Build\/KTU84P) AppleWebKit\/537.36 (KHTML, like Gecko) Version\/4.0 Chrome\/33.0.0.0 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Microsoft",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 10.0; Windows NT 6.2; ARM; Trident\/6.0; Touch; .NET4.0E; .NET4.0C; Tablet PC 2.0)",
+            "mobile": true,
+            "tablet": true,
+            "version": {
+                "IE": "10.0",
+                "Windows NT": "6.2",
+                "Trident": "6.0"
+            }
+        },
+        {
+            "vendor": "Microsoft",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 10.0; Windows NT 6.2; ARM; Trident\/6.0)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Microsoft",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 10.0; Windows NT 6.2; ARM; Trident\/6.0; Touch)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Microsoft",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 10.0; Windows NT 6.2; ARM; Trident\/6.0; Touch; ARMBJS)",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Microsoft",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Win64; x64; Trident\/6.0; Touch; MASMJS)",
+            "mobile": false,
+            "tablet": false
+        },
+        {
+            "vendor": "Microsoft",
+            "user_agent": "Mozilla\/5.0 (Windows NT 6.2; WOW64; rv:25.0) Gecko\/20130626 Firefox\/25.0",
+            "mobile": false,
+            "tablet": false
+        },
+        {
+            "vendor": "Microsoft",
+            "user_agent": "Mozilla\/5.0 (Windows NT 6.2; WOW64; rv:22.0) Gecko\/20100101 Firefox\/22.0",
+            "mobile": false,
+            "tablet": false
+        },
+        {
+            "vendor": "Microsoft",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Win64; x64; Trident\/6.0; MDDCJS)",
+            "mobile": false,
+            "tablet": false
+        },
+        {
+            "vendor": "Microsoft",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident\/6.0; MDDCJS)",
+            "mobile": false,
+            "tablet": false
+        },
+        {
+            "vendor": "Microsoft",
+            "user_agent": "Mozilla\/5.0 (Windows NT 6.2; WOW64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/28.0.1500.52 Safari\/537.36 OPR\/15.0.1147.130",
+            "mobile": false,
+            "tablet": false
+        },
+        {
+            "vendor": "Microsoft",
+            "user_agent": "Mozilla\/5.0 (Windows NT 6.2; WOW64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/27.0.1453.116 Safari\/537.36",
+            "mobile": false,
+            "tablet": false
+        },
+        {
+            "vendor": "Microsoft",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Win64; x64; Trident\/6.0; Touch; MDDCJS; WebView\/1.0)",
+            "mobile": false,
+            "tablet": false
+        },
+        {
+            "vendor": "Motorola",
+            "user_agent": "MOT-W510\/08.11.05R MIB\/BER2.2 Profile\/MIDP-2.0 Configuration\/CLDC-1.1 EGE\/1.0 UP.Link\/6.3.0.0.0",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Motorola",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.2.2; zh-cn; ME722 Build\/MLS2GC_2.6.0) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Motorola",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.4; en-us; DROIDX Build\/4.5.1_57_DX8-51) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Motorola",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.5; en-us; MB855 Build\/4.5.1A-1_SUN-254_13) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Motorola",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.5; es-us; MB526 Build\/4.5.2-51_DFL-50) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Motorola",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.6; en-ca; MB860 Build\/4.5.2A-51_OLL-17.8) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Motorola",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.7; en-us; MOT-XT535 Build\/V1.540) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Motorola",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.7; ko-kr; A853 Build\/SHOLS_U2_05.26.3; CyanogenMod-7.1.2) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Motorola",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 3.0; en-us; Xoom Build\/HRI39) AppleWebKit\/534.13 (KHTML, like Gecko) Version\/4.0 Safari\/534.13",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Motorola",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 3.1; en-us; Xoom Build\/HMJ25) AppleWebKit\/534.13 (KHTML, like Gecko) Version\/4.0 Safari\/534.13",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Motorola",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; en-us; DROID RAZR 4G Build\/6.7.2-180_DHD-16_M4-31) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Motorola",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; en-us; Xoom Build\/IMM76L) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Motorola",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; pt-br; XT687 Build\/V2.27D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false,
+            "version": {
+                "Android": "4.0.4",
+                "Webkit": "534.30",
+                "Safari": "4.0"
+            },
+            "model": "XT687"
+        },
+        {
+            "vendor": "Motorola",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; es-es; MOT-XT910 Build\/6.7.2-180_SPU-19-TA-11.6) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Motorola",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.2; XT910 Build\/9.8.2O-124_SPUL-17) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Motorola",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.2; XT915 Build\/2_32A_2031) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/28.0.1500.94 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Motorola",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.2; XT919 Build\/2_290_2017) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/28.0.1500.64 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Motorola",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.2; XT925 Build\/9.8.2Q-50-XT925_VQLM-20) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/27.0.1453.90 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Motorola",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.2; XT907 Build\/9.8.1Q-66) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/27.0.1453.90 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Motorola",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.2; XT901 Build\/9.8.2Q-50_SLS-13) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Motorola",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.2; DROID BIONIC Build\/9.8.2O-72_VZW-22) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/32.0.1700.99 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Motorola",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; XT1022 Build\/KXC20.82-14) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/34.0.1847.114 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Motorola",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.4.4; en-in; XT1022 Build\/KXC21.5-40) AppleWebKit\/537.16 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/537.16",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Motorola",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; XT1025 Build\/KXC20.82-13) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/34.0.1847.114 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Motorola",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; XT1052 Build\/KLA20.16-2.16.2) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/32.0.1700.99 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Motorola",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; en-gb; XT1052 Build\/13.9.0Q2.X_83) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Motorola",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; XT1053 Build\/13.9.0Q2.X_61) AppleWebKit\/537.31 (KHTML, like Gecko) Chrome\/26.0.1410.58 Mobile Safari\/537.31",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Motorola",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; en-us; XT1053 Build\/13.9.0Q2.X_55) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Motorola",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; XT1056 Build\/13.9.0Q2.X-116-MX-17-6-2) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/28.0.1500.64 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Motorola",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; XT1031 Build\/KXB20.9-1.10-1.18-1.1) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.141 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Motorola",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.4; XT1032 Build\/KXB21.14-L1.40) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.141 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Motorola",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.4.2; de-de; XT1032 Build\/KLB20.9-1.10-1.24-1.1) AppleWebKit\/537.16 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/537.16",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Motorola",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; XT1034 Build\/KOT49H) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/32.0.1700.99 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Motorola",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.3; en-us; XT1034 Build\/14.10.0Q3.X-84-16) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Motorola",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.3; XT1035 Build\/14.10.0Q3.X-23) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/29.0.1547.59 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Motorola",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.3; XT1039 Build\/KXB21.14-L1.31) AppleWebKit\/537.36 (KHTML like Gecko) Chrome\/35.0.1916.141 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Motorola",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.2; en-us; XT919 Build\/2_290_2002) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Motorola",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.2; XT919 Build\/2_290_2004) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/27.0.1453.90 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Motorola",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.2; en-us; XT920 Build\/2_290_2014) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Motorola",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.2; XT920 Build\/2_310_2014) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Motorola",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.0.4; XT905 Build\/7.7.1Q_GCIRD-16) AppleWebKit\/537.22 (KHTML, like Gecko) Chrome\/25.0.1364.169 Mobile Safari\/537.22",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Motorola",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; XT908 Build\/KOT49H) AppleWebKit\/537.36 (KHTML, like Gecko) Version\/4.0 Chrome\/30.0.0.0 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Motorola",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; en-us; XT897 Build\/7.7.1Q-6_SPR-ASANTI_LE-18) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Motorola",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 5.0.2; XT1032 Build\/LXB22.46-28.1) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/43.0.2357.92 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Motorola",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 5.1.1; Moto E Build\/LMY47V) AppleWebKit\/537.36 (KHTML, like Gecko) Version\/4.0 Chrome\/39.0.0.0 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Motorola",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.4; XT1021 Build\/KTU84Q) AppleWebKit\/537.36 (KHTML, like Gecko) Version\/4.0 Chrome\/33.0.0.0 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Nokia200\/2.0 (12.04) Profile\/MIDP-2.1 Configuration\/CLDC-1.1 UCWEB\/2.0 (Java; U; MIDP-2.0; en-US; nokia200) U2\/1.0.0 UCBrowser\/8.9.0.251 U2\/1.0.0 Mobile UNTRUSTED\/1.0",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Nokia6303iclassic\/5.0 (06.61) Profile\/MIDP-2.1 Configuration\/CLDC-1.1 Mozilla\/5.0 AppleWebKit\/420+ (KHTML, like Gecko) Safari\/420+",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "nokian73-1\/UC Browser7.8.0.95\/69\/400 UNTRUSTED\/1.0",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Nokia2760\/2.0 (06.82) Profile\/MIDP-2.1 Configuration\/CLDC-1.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Nokia3650\/1.0 SymbianOS\/6.1 Series60\/1.2 Profile\/MIDP-1.0 Configuration\/CLDC-1.0",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "NokiaN70-1\/5.0737.3.0.1 Series60\/2.8 Profile\/MIDP-2.0 Configuration\/CLDC-1.1\/UC Browser7.8.0.95\/27\/352",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (S60V3; U; ru; NokiaN73) AppleWebKit\/530.13 (KHTML, like Gecko) UCBrowser\/8.6.0.199\/28\/444\/UCWEB Mobile",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (S60V3; U; ru; NokiaC5-00.2)\/UC Browser8.5.0.183\/28\/444\/UCWEB Mobile",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (S60V3; U; ru; NokiaC5-00.2) AppleWebKit\/530.13 (KHTML, like Gecko) UCBrowser\/8.7.0.218\/28\/352\/UCWEB Mobile",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (Series40; NokiaC3-00\/08.63; Profile\/MIDP-2.1 Configuration\/CLDC-1.1) Gecko\/20100401 S40OviBrowser\/2.2.0.0.33",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Opera\/9.80 (Series 60; Opera Mini\/7.0.31380\/28.2725; U; es) Presto\/2.8.119 Version\/11.10",
+            "mobile": true,
+            "tablet": false,
+            "version": {
+                "Opera Mini": "7.0.31380",
+                "Presto": "2.8.119"
+            }
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (Symbian\/3; Series60\/5.2 NokiaC7-00\/025.007; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/533.4 (KHTML, like Gecko) NokiaBrowser\/7.3.1.37 Mobile Safari\/533.4 3gpp-gba",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (Symbian\/3; Series60\/5.2 NokiaX7-00\/022.014; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/533.4 (KHTML, like Gecko) NokiaBrowser\/7.3.1.37 Mobile Safari\/533.4 3gpp-gba",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (Symbian\/3; Series60\/5.3 NokiaE6-00\/111.140.0058; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/535.1 (KHTML, like Gecko) NokiaBrowser\/8.3.1.4 Mobile Safari\/535.1 3gpp-gba",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (Symbian\/3; Series60\/5.3 NokiaC6-01\/111.040.1511; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/535.1 (KHTML, like Gecko) NokiaBrowser\/8.3.1.4 Mobile Safari\/535.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (Symbian\/3; Series60\/5.3 NokiaC6-01; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/533.4 (KHTML, like Gecko) NokiaBrowser\/7.4.2.6 Mobile Safari\/533.4 3gpp-gba",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (Symbian\/3; Series60\/5.3 Nokia700\/111.030.0609; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/533.4 (KHTML, like Gecko) NokiaBrowser\/7.4.2.6 Mobile Safari\/533.4 3gpp-gba",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (Symbian\/3; Series60\/5.3 Nokia700\/111.020.0308; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/533.4 (KHTML, like Gecko) NokiaBrowser\/7.4.1.14 Mobile Safari\/533.4 3gpp-gba",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (Symbian\/3; Series60\/5.3 NokiaN8-00\/111.040.1511; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/535.1 (KHTML, like Gecko) NokiaBrowser\/8.3.1.4 Mobile Safari\/535.1 3gpp-gba",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (Symbian\/3; Series60\/5.3 Nokia701\/111.030.0609; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/533.4 (KHTML, like Gecko) NokiaBrowser\/7.4.2.6 Mobile Safari\/533.4 3gpp-gba",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (SymbianOS\/9.2; U; Series60\/3.1 Nokia6120c\/3.83; Profile\/MIDP-2.0 Configuration\/CLDC-1.1 ) AppleWebKit\/413 (KHTML, like Gecko) Safari\/413",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (SymbianOS\/9.2; U; Series60\/3.1 Nokia6120ci\/7.02; Profile\/MIDP-2.0 Configuration\/CLDC-1.1 ) AppleWebKit\/413 (KHTML, like Gecko) Safari\/413",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (SymbianOS\/9.2; U; Series60\/3.1 Nokia6120c\/7.10; Profile\/MIDP-2.0 Configuration\/CLDC-1.1 ) AppleWebKit\/413 (KHTML, like Gecko) Safari\/413",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (SymbianOS\/9.2; U; Series60\/3.1 NokiaE66-1\/510.21.009; Profile\/MIDP-2.0 Configuration\/CLDC-1.1 ) AppleWebKit\/413 (KHTML, like Gecko) Safari\/413",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (SymbianOS\/9.2; U; Series60\/3.1 NokiaE71-1\/110.07.127; Profile\/MIDP-2.0 Configuration\/CLDC-1.1 ) AppleWebKit\/413 (KHTML, like Gecko) Safari\/413",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (SymbianOS\/9.2; U; Series60\/3.1 NokiaN95-3\/20.2.011 Profile\/MIDP-2.0 Configuration\/CLDC-1.1 ) AppleWebKit\/413 (KHTML, like Gecko) Safari\/413",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (SymbianOS\/9.2; U; Series60\/3.1 NokiaE51-1\/200.34.36; Profile\/MIDP-2.0 Configuration\/CLDC-1.1 ) AppleWebKit\/413 (KHTML, like Gecko) Safari\/413",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (SymbianOS\/9.2; U; Series60\/3.1 NokiaE63-1\/500.21.009; Profile\/MIDP-2.0 Configuration\/CLDC-1.1 ) AppleWebKit\/413 (KHTML, like Gecko) Safari\/413",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (SymbianOS\/9.2; U; Series60\/3.1 NokiaN82\/10.0.046; Profile\/MIDP-2.0 Configuration\/CLDC-1.1 ) AppleWebKit\/413 (KHTML, like Gecko) Safari\/413",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (SymbianOS\/9.3; Series60\/3.2 NokiaE52-1\/052.003; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/525 (KHTML, like Gecko) Version\/3.0 BrowserNG\/7.2.6.2",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (SymbianOS\/9.3; Series60\/3.2 NokiaE52-1\/@version@; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/533.4 (KHTML, like Gecko) NokiaBrowser\/7.3.1.26 Mobile Safari\/533.4 3gpp-gba",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (SymbianOS\/9.3; Series60\/3.2 NokiaC5-00\/031.022; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/525 (KHTML, like Gecko) Version\/3.0 BrowserNG\/7.2.3.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (SymbianOS\/9.3; Series60\/3.2 NokiaC5-00.2\/081.003; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/533.4 (KHTML, like Gecko) NokiaBrowser\/7.3.1.32 Mobile Safari\/533.4 3gpp-gba",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (SymbianOS\/9.3; U; Series60\/3.2 NokiaN79-1\/32.001; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/413 (KHTML, like Gecko) Safari\/413",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (SymbianOS\/9.3; U; Series60\/3.2 Nokia6220c-1\/06.101; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/413 (KHTML, like Gecko) Safari\/413",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (SymbianOS\/9.3; Series60\/3.2 NokiaC5-00.2\/071.003; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/533.4 (KHTML, like Gecko) NokiaBrowser\/7.3.1.26 Mobile Safari\/533.4 3gpp-gba",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (SymbianOS\/9.3; Series60\/3.2 NokiaE72-1\/081.003; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/533.4 (KHTML, like Gecko) NokiaBrowser\/7.3.1.32 Mobile Safari\/533.4 3gpp-gba",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (SymbianOS\/9.3; Series60\/3.2 NokiaC5-00\/061.005; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/525 (KHTML, like Gecko) Version\/3.0 BrowserNG\/7.2.6.2 3gpp-gba",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (SymbianOS\/9.4; Series60\/5.0 NokiaX6-00\/40.0.002; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/533.4 (KHTML, like Gecko) NokiaBrowser\/7.3.1.33 Mobile Safari\/533.4 3gpp-gb",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (SymbianOS\/9.4; Series60\/5.0 Nokia5800d-1\/60.0.003; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 AppleWebKit\/533.4 (KHTML, like Gecko) NokiaBrowser\/7.3.1.33 Mobile Safari\/533.4 3gpp-gba",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (SymbianOS\/9.4; Series60\/5.0 NokiaC5-03\/12.0.023; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/525 (KHTML, like Gecko) Version\/3.0 BrowserNG\/7.2.6.9 3gpp-gba",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (SymbianOS\/9.4; Series60\/5.0 Nokia5228\/40.1.003; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/525 (KHTML, like Gecko) Version\/3.0 BrowserNG\/7.2.7.4 3gpp-gba",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (SymbianOS\/9.4; Series60\/5.0 Nokia5230\/51.0.002; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/533.4 (KHTML, like Gecko) NokiaBrowser\/7.3.1.33 Mobile Safari\/533.4 3gpp-gba",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (SymbianOS\/9.4; Series60\/5.0 Nokia5530c-2\/32.0.007; Profile\/MIDP-2.1 Configuration\/CLDC-1.1 ) AppleWebKit\/525 (KHTML, like Gecko) Version\/3.0 BrowserNG\/7.2.6.9 3gpp-gba",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (SymbianOS\/9.4; Series60\/5.0 NokiaN97-1\/21.0.045; Profile\/MIDP-2.1 Configuration\/CLDC-1.1) AppleWebKit\/525 (KHTML, like Gecko) BrowserNG\/7.1.4",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (SymbianOS\/9.4; Series60\/5.0 NokiaN97-4\/30.0.004; Profile\/MIDP-2.1 Configuration\/CLDC-1.1) AppleWebKit\/533.4 (KHTML, like Gecko) NokiaBrowser\/7.3.1.28 3gpp-gba",
+            "mobile": true,
+            "tablet": false,
+            "version": {
+                "Symbian": "9.4",
+                "Webkit": "533.4",
+                "NokiaBrowser": "7.3.1.28"
+            },
+            "model": "NokiaN97-4"
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; Nokia; 7 Mozart T8698)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; NOKIA; 710)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; Nokia; 800)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; Nokia; 800C)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; Nokia; 800C; Orange)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; Nokia; 900)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; Nokia; HD7 T9292)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; NOKIA; LG E-900)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; NOKIA; Lumia 610)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; NOKIA; Lumia 710)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; NOKIA; Lumia 710; Orange)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; NOKIA; Lumia 710; T-Mobile)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; NOKIA; Lumia 710; Vodafone)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; NOKIA; Lumia 800)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; NOKIA; Lumia 800) UP.Link\/5.1.2.6",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; NOKIA; Lumia 800; Orange)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; NOKIA; Lumia 800; SFR)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; NOKIA; Lumia 800; T-Mobile)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; NOKIA; Lumia 800; vodafone)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; Nokia; Lumia 800c)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; NOKIA; Lumia 900)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; Nokia; Lumia 920)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident\/6.0; IEMobile\/10.0; ARM; Touch; NOKIA; Lumia 920)",
+            "mobile": true,
+            "tablet": false,
+            "version": {
+                "IE": "10.0",
+                "Windows Phone OS": "8.0",
+                "Trident": "6.0"
+            },
+            "model": "Lumia 920"
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; Nokia; lumia800)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; NOKIA; Nokia 610)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; NOKIA; Nokia 710)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; NOKIA; Nokia 800)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; NOKIA; Nokia 800C)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; NOKIA; Nokia 900)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; Nokia; Nokia)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; Nokia; SGH-i917)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; Nokia; TITAN X310e)",
+            "mobile": true,
+            "tablet": false,
+            "version": {
+                "Windows Phone OS": "7.5",
+                "Trident": "5.0"
+            },
+            "model": "TITAN X310e"
+        },
+        {
+            "vendor": "Nokia",
+            "user_agent": "Mozilla\/5.0 (Mobile; Windows Phone 8.1; Android 4.0; ARM; Trident\/7.0; Touch; rv:11.0; IEMobile\/11.0; NOKIA; Lumia 520) like iPhone OS 7_0_3 Mac OS X AppleWebKit\/537 (KHTML, like Gecko) Mobile Safari\/537",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Onda",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; V975i Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/42.0.2311.108 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Onda",
+            "user_agent": "Mozilla\/5.0 (Android; Tablet; rv:37.0) Gecko\/37.0 Firefox\/37.0",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Onda",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; V975m Core4 Build\/KOT49H) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.141 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Onda",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.3; fr-fr; V975m Core4 Build\/JSS15J) AppleWebKit\/537.16 (KHTML, like Gecko) Version\/4.0 Safari\/537.16",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Onda",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.3; V975m Core4 Build\/JSS15J) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/41.0.2272.96 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Onda",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; V812 Core4 Build\/KOT49H) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/39.0.2171.93 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "AdvanDigital",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; en-us; E1C Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "AdvanDigital",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; id-id; T3C Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Ainol",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.4; en-us; Ainol Novo8 Advanced Build\/GRJ22) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Ainol",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.1; Novo10 Hero Build\/20121115) AppleWebKit\/535.19 (KHTML like Gecko) Chrome\/18.0.1025.166 Safari\/535.19",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Ainol",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; es-es; novo9-Spark Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "AllFine",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; en-gb; FINE7 GENIUS Build\/JRO03C) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Amoi",
+            "user_agent": "Amoi 8512\/R18.0 NF-Browser\/3.3",
+            "mobile": true,
+            "tablet": false,
+            "model": "8512"
+        },
+        {
+            "vendor": "Arnova",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; fr-fr; AN9G2I Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "AudioSonic",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; en-au; T-17B Build\/JRO03H) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Blaupunkt",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; de-de; Endeavour 800NG Build\/JRO03C) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Broncho",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.2; es-es; Broncho N701 Build\/FRF91) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "bq",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; es-es; bq Livingstone 2 Build\/1.1.7 20121018-10:33) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "bq",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; es-es; bq Edison Build\/1.1.10-1015 20121230-18:00) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "bq",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.0.3; Maxwell Lite Build\/v1.0.0.ICS.maxwell.20120920) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Safari\/535.19",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "bq",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; zh-tw; bq Maxwell Plus Build\/1.0.0 20120913-10:39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "bq",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; Aquaris E10 Build\/KOT49H) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/39.0.2171.93 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Captiva",
+            "user_agent": "Opera\/9.80 (X11; Linux zvav; U; de) Presto\/2.8.119 Version\/11.10 Mozilla\/5.0 (Linux; U; Android 4.1.1; de-de; CAPTIVA PAD 10.1 Build\/JRO03H) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Casio",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.3; en-us; C771 Build\/C771M120) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "ChangJia",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; pt-br; TPC97113 Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "ChangJia",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; en-us; TPC7102 Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Celkon",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.2; en-us; Celkon CT 910+ Build\/JZO54K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Celkon",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; en-in; CT-1 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Celkon",
+            "user_agent": "CELKON.C64\/R2AE SEMC-Browser\/4.0.3 Profile\/MIDP-2.0 Configuration\/CLDC-1.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Celkon",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; en-us; Celkon A125 Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Celkon",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.6; en-US; Celkon*A86 Build\/Celkon_A86) AppleWebKit\/528.5+ (KHTML, like Gecko) Version\/3.1.2 Mobile Safari\/525.20.1 UCBrowser\/8.7.0.315 Mobile",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Celkon",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; en-us; Celkon A.R 40 Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Coby",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.2; en-us; MID7010 Build\/FRF85B) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Coby",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; en-us; MID7048 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Coby",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; en-us; MID8042 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Concorde",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; hu-hu; ConCorde Tab T10 Build\/JRO03H) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Concorde",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; hu-hu; ConCorde tab PLAY Build\/JRO03H) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Cresta",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; nl-nl; CRESTA.CTP888 Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Cube",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; ru-ru; CUBE U9GT 2 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Danew",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; es-es; Dslide 700 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true,
+            "version": {
+                "Android": "4.0.3",
+                "Build": "IML74K",
+                "Webkit": "534.30",
+                "Safari": "4.0"
+            },
+            "model": "Dslide 700"
+        },
+        {
+            "vendor": "DanyTech",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; Genius Tab Q4 Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/31.0.1650.59 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Digma",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; ru-ru; iDx10 3G Build\/ICS.b02ref.20120331) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "DPS",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; en-us; DPS Dream 9 Build\/JRO03C) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "ECS",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; it-it; TM105A Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true,
+            "version": {
+                "Android": "4.0.4",
+                "Build": "IMM76D",
+                "Webkit": "534.30"
+            }
+        },
+        {
+            "vendor": "Eboda",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; ro-ro; E-Boda Supreme Dual Core X190 Build\/JRO03C) AppleWebKit\/534.30 (KHTML like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true,
+            "version": {
+                "Android": "4.1.1",
+                "Webkit": "534.30",
+                "Safari": "4.0"
+            }
+        },
+        {
+            "vendor": "Eboda",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; ro-ro; E-Boda Essential A160 Build\/JRO03C) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Eboda",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.0.3; E-Boda Supreme X80 Dual Core Build\/ICS.g12refM806A1YBD.20120925) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166  Safari\/535.19",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Eboda",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; ro-ro; E-boda essential smile Build\/JRO03C) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Eboda",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; ro-ro; E-Boda Supreme X80 Dual Core Build\/JRO03C) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Eboda",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; ro-ro; E-Boda Supreme XL200IPS Build\/JRO03C) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Evolio",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; en-us; Evolio X7 Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Evolio",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; ro-ro; ARIA_Mini_wifi Build\/JRO03H) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Fly",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; ru-ru; Fly IQ440; Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Fly",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.6; ru-ru; FLY IQ256 Build\/GRK39F) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Fujitsu",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; ja-jp; F-10D Build\/V21R48A) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": true,
+            "version": {
+                "Android": "4.0.3",
+                "Build": "V21R48A",
+                "Webkit": "534.30",
+                "Safari": "4.0"
+            }
+        },
+        {
+            "vendor": "Fujitsu",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; ru-ru; M532 Build\/IML74K) AppleWebKit\/534.30 (KHTML like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true,
+            "version": {
+                "Android": "4.0.3",
+                "Build": "IML74K",
+                "Webkit": "534.30",
+                "Safari": "4.0"
+            }
+        },
+        {
+            "vendor": "FX2",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; de-de; FX2 PAD7 RK Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Galapad",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; zh-tw; G1 Build\/JRO03C) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true,
+            "version": {
+                "Android": "4.1.1",
+                "Webkit": "534.30",
+                "Safari": "4.0",
+                "Build": "JRO03C"
+            }
+        },
+        {
+            "vendor": "GoClever",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; el-gr; GOCLEVER TAB A103 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "GoClever",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.4; zh-tw; A7GOCLEVER Build\/GRJ22) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "GoClever",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.0.4; GOCLEVER TAB A104 Build\/IMM76D) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Safari\/535.19",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "GoClever",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; cs-cz; GOCLEVER TAB A93.2 Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "GoClever",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; sk-sk; GOCLEVER TAB A971 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "GoClever",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; lv-lv; GOCLEVER TAB A972BK Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "GoClever",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; fr-fr; GOCLEVER TAB A104.2 Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "GoClever",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; pt-pt; GOCLEVER TAB T76 Build\/MID) AppleWebKit\/534.30 (KHTML like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "GU",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; vi-vn; TX-A1301 Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true,
+            "version": {
+                "Android": "4.0.4",
+                "Build": "IMM76D",
+                "Webkit": "534.30",
+                "Safari": "4.0"
+            }
+        },
+        {
+            "vendor": "GU",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; da-dk; Q702 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true,
+            "version": {
+                "Android": "4.0.3",
+                "Build": "IML74K",
+                "Webkit": "534.30",
+                "Safari": "4.0"
+            }
+        },
+        {
+            "vendor": "HCL",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; en-us; U1 Build\/HCL ME Tablet U1) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "HCL",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; en-us; U1 Build\/HCL ME Tablet U1) AppleWebKit\/534.30 (KHTML like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "HCL",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.2; Connect-3G-2.0 Build\/HCL) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/29.0.1547.72 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "HCL",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.3; pt-br; X1 Build\/HCL ME Tablet X1) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Hudl",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; Hudl HT7S3 Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/30.0.1599.82 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Iconbit",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.1; NT-3702M Build\/JRO03C) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/29.0.1547.72 Safari\/537.36 OPR\/16.0.1212.65583",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Iconbit",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; ru-ru; NetTAB SPACE II Build\/JRO03H) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "iJoy",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; fr-fr; Tablet Planet II-v3 Build\/JRO03H) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Intenso",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1.;de-de; INM8002KP Build\/JR003H) AppleWebKit\/534.30 (KHTML, like Gecko)Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true,
+            "version": {
+                "Android": "4.1.1.",
+                "Webkit": "534.30",
+                "Safari": "4.0"
+            }
+        },
+        {
+            "vendor": "Intenso",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; de-de; TAB1004 Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "INQ",
+            "user_agent": "INQ1\/R3.9.12 NF-Browser\/3.5",
+            "mobile": true,
+            "tablet": false,
+            "model": "INQ1"
+        },
+        {
+            "vendor": "Intex",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3; en-US; Cloud_X2 Build\/MocorDroid4.0.1) AppleWebKit\/528.5+ (KHTML, like Gecko) Version\/3.1.2 Mobile Safari\/525.20.1 UCBrowser\/9.2.0.419 Mobile",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Intex",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; en-us; Cloud Y2 Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Intex",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; en-in; Cloud X5 Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "IRU",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; ru-ru; M702pro Build\/JRO03C) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "JXD",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; en-us; F3000 Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Karbonn",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.1; ST10 Build\/JRO03C) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166  Safari\/535.19",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Kobo",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.0; en-us;) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1 (Kobo Touch)",
+            "mobile": true,
+            "tablet": true,
+            "version": {
+                "Android": "2.0",
+                "Webkit": "533.1",
+                "Safari": "4.0"
+            }
+        },
+        {
+            "vendor": "Megafon",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.5; ru-ru; MegaFon V9 Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Megafon",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.1; MT7A Build\/JRO03C) AppleWebKit\/537.31 (KHTML, like Gecko) Chrome\/26.0.1410.58 Safari\/537.31",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "MediaTek",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; fr-fr; MT8377 Build\/JRO03C) AppleWebKit\/534.30 (KHTML like Gecko) Version\/4.0 Safari\/534.30\/4.05d.1002.m7",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Micromax",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.1; Micromax A110 Build\/JRO03C) AppleWebKit\/537.22 (KHTML, like Gecko) Chrome\/25.0.1364.169 Mobile Safari\/537.22",
+            "mobile": true,
+            "tablet": false,
+            "version": {
+                "Android": "4.1.1",
+                "Build": "JRO03C",
+                "Webkit": "537.22",
+                "Chrome": "25.0.1364.169"
+            }
+        },
+        {
+            "vendor": "Micromax",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0; xx-xx; Micromax P250(Funbook) Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true,
+            "version": {
+                "Webkit": "534.30",
+                "Android": "4.0",
+                "Build": "IMM76D",
+                "Safari": "4.0"
+            }
+        },
+        {
+            "vendor": "Modecom",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; pl-pl; FreeTAB 1014 IPS X4+ Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "MSI",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.5; el-gr; MSI Enjoy 10 Plus Build\/1.2) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Nabi",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.2.1; en-us; NABI-A Build\/MASTER) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "NEC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; ja-jp; N-08D Build\/A5001911) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "NEC",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android AAA; BBB; N-06D Build\/CCC) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Nexo",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; pl-pl; NEXO 3G Build\/JRO03H) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30 ACHEETAHI\/2100050074",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Nibiru",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; zh-tw; Nibiru H1 Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30 XiaoMi\/MiuiBrowser\/1.0",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Nook",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.2.1; en-us; NOOK BNRV200 Build\/ERD79 1.4.3) Apple WebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": true,
+            "version": {
+                "Android": "2.2.1",
+                "Webkit": "533.1",
+                "Safari": "4.0"
+            }
+        },
+        {
+            "vendor": "Nook",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; en-us; NOOK BNTV400 Build\/ICS) AppleWebKit\/534.30 (KHTML like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true,
+            "version": {
+                "Android": "4.0.4",
+                "Build": "ICS",
+                "Webkit": "534.30",
+                "Safari": "4.0"
+            }
+        },
+        {
+            "vendor": "Nook",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.0.4; BNTV600 Build\/IMM76L) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/28.0.1500.94 Safari\/537.36 Hughes-PFB\/CID5391275.AID1376709964",
+            "mobile": true,
+            "tablet": true,
+            "version": {
+                "Android": "4.0.4",
+                "Build": "IMM76L",
+                "Webkit": "537.36",
+                "Chrome": "28.0.1500.94"
+            }
+        },
+        {
+            "vendor": "Oneplus",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.3; A0001 Build\/JLS36C) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.141 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Oneplus",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.3; xx-xx; A0001 Build\/JLS36C) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Odys",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; de-de; LOOX Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Odys",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; de-de; LOOX Plus Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Odys",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.X; de-de; XENO10 Build\/ODYS XENO 10) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Odys",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.2.2; de-de; ODYS Space Build\/I700T_P7_T04_TSCL_FT_R_0_03_1010_110623) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Odys",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; de-de; ODYS-EVO Build\/ODYS-EVO) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Odys",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.X; de-de; Xelio 10 Pro Build\/ODYS_Xelio) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Odys",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; de-de; NEO_QUAD10 Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Odys",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.X; de-de; Xelio10Pro Build\/ODYS_Xelio) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Odys",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.1; en-us; ODYS-Xpress Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Odys",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; de-de; XELIO7PHONETAB Build\/IMM76I) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Odys",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; de-de; XELIO10EXTREME Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Odys",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; de-de; XELIO Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30 Mobile UCBrowser\/3.2.1.441",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Odys",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; de-de; XELIOPT2 Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Odys",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; nl-nl; ODYS-NOON Build\/JRO03H) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "OverMax",
+            "user_agent": "OV-SteelCore(B) Mozilla\/5.0 (iPad; CPU OS 5_0_1 like Mac OS X) AppleWebKit\/534.46 (KHTML, like Gecko) Version\/5.1 Mobile\/9A405 Safari\/7534.48.3",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "OverMax",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; pl-pl; OV-SteelCore Build\/ICS.g08refem611.20121010) AppleWebKit\/534.30 (KHTML like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "YONESTablet",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; pl-pl; BC1077 Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Pantech",
+            "user_agent": "PANTECH-C790\/JAUS08312009 Browser\/Obigo\/Q05A Profile\/MIDP-2.0 Configuration\/CLDC-1.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Pantech",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.2.1; ko-kr; SKY IM-A600S Build\/FRG83) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Pantech",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.3; en-us; ADR8995 4G Build\/GRI40) AppleWebKit\/533.1 (KHTML like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Pantech",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 3.2.1; en-us; PantechP4100 Build\/HTK75) AppleWebKit\/534.13 (KHTML, like Gecko) Version\/4.0 Safari\/534.13",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Philips",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.0.4; Philips W336 Build\/IMM76D) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/28.0.1500.45 Mobile Safari\/537.36 OPR\/15.0.1162.59192",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Philips",
+            "user_agent": "Philips_T3500\/V1 Linux\/3.4.5 Android\/4.2.2 Release\/03.26.2013 Browser\/AppleWebKit534.30 Mobile Safari\/534.30 MBBMS\/2.2 System\/Android 4.2.2;",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Philips",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; Philips W3568 Build\/Philips_W3568) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Philips",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; ru-ru; Philips W832 Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Philips",
+            "user_agent": "Mozilla\/5.0 (Linux;U;Android 4.2.2;es-us;Philips S388 Build\/JDQ39) AppleWebkit\/534.30 (HTML,like Gecko) Version\/4.0 Mobile Safari\/534.30;",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Philips",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.0.4; Philips W536 Build\/IMM76D) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Philips",
+            "user_agent": "Mozilla\/5.0 (Linux;U;Android 4.2.2;es-us;Philips S308 Build\/JDQ39) AppleWebkit\/534.30 (HTML,like Gecko) Version\/4.0 Mobile Safari\/534.30;",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Philips",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.2; ru-ru; Philips-W8500 Build\/JZO54K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Philips",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; ru; Philips W8510 Build\/JDQ39) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 UCBrowser\/9.8.9.457 U3\/0.8.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Philips",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; ru-RU; Philips W3568 Build\/Philips W3568) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.1 Mobile Safari\/534.30;",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Philips",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; Philips S388 Build\/JDQ39) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Philips",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.1; Build\/PI3100.00.00.24) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.141 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Philips",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; en-us; W732 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Philips",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.1; PI7100_93 Build\/PI7100.C.00.00.11) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/30.0.1599.92 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "PocketBook",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.7; en-ru; PocketBook A10 3G Build\/GRJ90) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "PointOfView",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; en-us; POV_TAB-PROTAB30-IPS10 Build\/JRO03H) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Praktica",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.0.4; TP750 3GGSM Build\/IMM76I) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/39.0.2171.93 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "PROSCAN",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; en-us; PLT8088 Build\/JRO03H) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true,
+            "version": {
+                "Android": "4.1.1",
+                "Build": "JRO03H",
+                "Webkit": "534.30",
+                "Safari": "4.0"
+            }
+        },
+        {
+            "vendor": "PyleAudio",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.0.4; PTBL92BC Build\/IMM76D) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/31.0.1650.59 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": true,
+            "version": {
+                "Android": "4.0.4",
+                "Build": "IMM76D",
+                "Webkit": "537.36",
+                "Chrome": "31.0.1650.59"
+            }
+        },
+        {
+            "vendor": "RockChip",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.2.1; hu-hu; RK2818, Build\/MASTER) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "RockChip",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android Android 2.1-RK2818-1.0.0; zh-cn; MD701 Build\/ECLAIR) AppleWebKit\/530.17 (KHTML like Gecko) Version\/4.0 Mobile Safari\/530.17",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "RossMoor",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.1; ru-ru; RM-790 Build\/JOP40D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "QMobile",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.6; en-us; A2 Build\/GRK39F) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "simvalley",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.4; de-de; SP-80 Build\/GRJ22) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Skk",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1; en-us; CYCLOPS Build\/F10) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Storex",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.1; eZee_Tab903 Build\/JRO03H) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/32.0.1700.99 Safari\/537.36",
+            "mobile": true,
+            "tablet": true,
+            "version": {
+                "Android": "4.1.1",
+                "Build": "JRO03H",
+                "Webkit": "537.36"
+            }
+        },
+        {
+            "vendor": "Storex",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.1; eZee'Tab785 Build\/JRO03C) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/31.0.1650.59 Safari\/537.36",
+            "mobile": true,
+            "tablet": true,
+            "version": {
+                "Android": "4.1.1",
+                "Build": "JRO03C",
+                "Webkit": "537.36"
+            }
+        },
+        {
+            "vendor": "Storex",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.0.3; eZee'Tab971 Build\/IML74K) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166  Safari\/535.19",
+            "mobile": true,
+            "tablet": true,
+            "version": {
+                "Android": "4.0.3",
+                "Build": "IML74K",
+                "Webkit": "535.19"
+            }
+        },
+        {
+            "vendor": "Teclast",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; P98 3G\\xE5\\x85\\xAB\\xE6\\xA0\\xB8(A3HY) Build\/KOT49H) AppleWebKit\/537.36 (KHTML, like Gecko) Version\/4.0 Chrome\/30.0.0.0 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Teclast",
+            "user_agent": "QQ\\xe9\\x9f\\xb3\\xe4\\xb9\\x90HD 4.0.1 (iPad; iPhone OS 8.0; zh_CN)",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Teclast",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0; xx-xx; A15(E6C2) Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Teclast",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3; xx-xx; A10 Build\/GRJ22) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Teclast",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; en-us; Teclast A10T Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Teclast",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; zh-cn; Teclast P85(A9D3) Build\/IMM76D) AppleWebKit\/534.30 (KHTML like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Teclast",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; en-us; A70H Build\/JDQ39) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 UCBrowser\/9.8.0.435 U3\/0.8.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Tecno",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; en-us; TECNO P9 Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Telstra",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.7; en-au; T-Hub2 Build\/TVA301TELBG3) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "texet",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.4; ru-ru; TM-7021 Build\/GB.m1ref.20120116) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": true,
+            "version": {
+                "Android": "2.3.4",
+                "Webkit": "533.1",
+                "Safari": "4.0"
+            },
+            "model": "TM-7021"
+        },
+        {
+            "vendor": "Tolino",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; de-de; tolino tab 7 Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true,
+            "version": {
+                "Android": "4.2.2",
+                "Build": "JDQ39",
+                "Webkit": "534.30",
+                "Safari": "4.0"
+            }
+        },
+        {
+            "vendor": "Tolino",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; de-de; tolino tab 8.9 Build\/JDQ39) AppleWebKit\/534.30 (KHTML like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true,
+            "version": {
+                "Android": "4.2.2",
+                "Build": "JDQ39",
+                "Webkit": "534.30",
+                "Safari": "4.0"
+            }
+        },
+        {
+            "vendor": "Tolino",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; tolino tab 7 Build\/JDQ39) AppleWebkit\/537.36 (KHTML, like Gecko) Chrome\/31.0.1650.57 Safari\/537.36 OPR\/18.0.1290.67495",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Tolino",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; de-de; tolino tab 7 Build\/JDQ39) AppleWebkit\/537.36 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Toshiba",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; TOSHIBA; TSUNAGI)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Toshiba",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.2; it-it; TOSHIBA_FOLIO_AND_A Build\/TOSHIBA_FOLIO_AND_A) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": true,
+            "version": {
+                "Android": "2.2",
+                "Webkit": "533.1",
+                "Safari": "4.0"
+            }
+        },
+        {
+            "vendor": "Trekstor",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; ST70408-1 Build\/JDQ39) AppleWebKit\/537.31 (KHTML, like Gecko) Chrome\/26.0.1410.58 Safari\/537.31",
+            "mobile": true,
+            "tablet": true,
+            "version": {
+                "Android": "4.2.2",
+                "Build": "JDQ39",
+                "Webkit": "537.31",
+                "Chrome": "26.0.1410.58"
+            }
+        },
+        {
+            "vendor": "Trekstor",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; engb; Build\/IMM76D) AppleWebKit\/534.46 (KHTML, like Gecko) Version\/5.1 Mobile\/9A405 Safari\/7534.48.3 SurfTab_7.0",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Trekstor",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; VT10416-2 Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.141 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Trekstor",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; de-de; ST10216-2A Build\/JRO03H) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30;SurfTab_10.1",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Ubislate",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; en-us; UBISLATE7C+ Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Visture",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; en-gb; V97 HD Build\/LR-97JC) Apple WebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Visture",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; en-us; Visture V4 Build\/JRO03H) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Visture",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; ru-ru; Visture V4 HD Build\/Visture V4 HD) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Visture",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; es-es; Visture V5 HD Build\/Visture V5 HD) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Visture",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; ru-ru; Visture V10 Build\/JRO03H) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Versus",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.0.4; VS-TOUCHPAD 9 Build\/IMM76D) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Versus",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; en-gb; Versus Touchpad 9.7 Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Versus",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; en-gb; CnM-TOUCHPAD7 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30 BMID\/E67A45B1AB",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Versus",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; en-gb; CnM TouchPad 7DC Build\/JRO03H) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30 TwonkyBeamBrowser\/3.3.5-95 (Android 4.1.1; rockchip CnM TouchPad 7DC Build\/meizhi_V2.80.wifi8723.20121225.b11c800)",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Versus",
+            "user_agent": "OneBrowser\/3.5\/Mozilla\/5.0 (Linux; U; Android 4.0.4; en-gb; TOUCHPAD 7 Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Versus",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; en-gb; TOUCHTAB Build\/JRO03H) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true,
+            "version": {
+                "Android": "4.1.1",
+                "Build": "JRO03H",
+                "Webkit": "534.30",
+                "Safari": "4.0"
+            }
+        },
+        {
+            "vendor": "Viewsonic",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; de-de; ViewPad 10e Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Viewsonic",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.2; it-it; ViewPad7 Build\/FRF91) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Viewsonic",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.2.1; en-ca; ViewSonic VB733 Build\/FRG83) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Viewsonic",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 3.2; en-gb; ViewPad7X Build\/HTJ85B) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Safari\/533.1",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Viewsonic",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.2; pt-br; ViewPad 10S Build\/FRF91) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Viewsonic",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; en-us; VB100a Pro Build\/JRO03C) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Vonino",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; en-us; Sirius_Evo_QS Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Vonino",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; en-gb; Q8 Build\/JRO03H) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Wolder",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4; miTab LIVE Build\/KVT49L) AppleWebKit\/537.36 (KHTML, like Gecko) Version\/4.0 Chrome\/30.0.0.0 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Wolder",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; pt-pt; miTab FUNK Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Wolfgang",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.1; nl-nl; AT-AS45q2 Build\/JOP40D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Xoro",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; de-de; PAD 9720QR Build\/PAD 9719QR) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Xoro",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; PAD720 Build\/JDQ39) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "ZTE",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.0.4; V8200plus Build\/IMM76I) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/33.0.1750.166 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Zync",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.3; en-us ; Z909 Build\/GRI40) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1\/UCBrowser\/8.4.1.204\/145\/444",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Prestigio",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; en-gb; PMP5297C_QUAD Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Prestigio",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; sk-sk; PMP7100D3G Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true,
+            "version": {
+                "Android": "4.0.4",
+                "Build": "IMM76D",
+                "Webkit": "534.30",
+                "Safari": "4.0"
+            },
+            "model": "PMP7100D3G"
+        },
+        {
+            "vendor": "Prestigio",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.2; sk-sk; PMP7280C3G Build\/JZO54K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 MobilSafari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Prestigio",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; PMT3017_WI Build\/KVT49L) AppleWebKit\/537.36 (KHTML, like Gecko) Version\/4.0 Chrome\/30.0.0.0 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Prestigio",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; PMT3037_3G Build\/KOT49H) AppleWebKit\/537.36 (KHTML, like Gecko) Version\/4.0 Chrome\/30.0.0.0 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Prestigio",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; PMT5002_Wi Build\/KOT49H) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/39.0.2171.93 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Prestigio",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; el-gr; PMT5887_3G Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "MQQBrowser\/4.0\/Mozilla\/5.0 (Linux; U; Android 3.2; zh-cn; GT-P6800 Build\/HTJ85B) AppleWebKit\/533.1 (KHTML, like Gecko) Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": true,
+            "version": {
+                "MQQBrowser": "4.0"
+            }
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "SAMSUNG-SGH-P250-ORANGE\/P250BVHH8 Profile\/MIDP-2.0 Configuration\/CLDC-1.1 UP.Browser\/6.2.3.3.c.1.101 (GUI) MMP\/2.0",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "SAMSUNG-GT-B2710\/B271MCXKF1 SHP\/VPP\/R5 Dolfin\/2.0 QTV\/5.3 SMM-MMS\/1.2.0 profile\/MIDP-2.1 configuration\/CLDC-1.1 OPN-B",
+            "mobile": true,
+            "tablet": false,
+            "version": {
+                "Dolfin": "2.0"
+            }
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "SAMSUNG-SGH-D900i\/1.0 Profile\/MIDP-2.0 Configuration\/CLDC-1.1 UP.Browser\/6.2.3.3.c.1.101 (GUI) MMP\/2.0",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "SAMSUNG-GT-S5233T\/S5233TXEJE3 SHP\/VPP\/R5 Jasmine\/0.8 Qtv5.3 SMM-MMS\/1.2.0 profile\/MIDP-2.1 configuration\/CLDC-1.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (SAMSUNG; SAMSUNG-GT-S5380D\/S5380FXXKL3; U; Bada\/2.0; ru-ru) AppleWebKit\/534.20 (KHTML, like Gecko) Dolfin\/3.0 Mobile HVGA SMM-MMS\/1.2.0 OPN-B",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "SAMSUNG-GT-C3312\/1.0 NetFront\/4.2 Profile\/MIDP-2.0 Configuration\/CLDC-1.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 1.5; de-de; Galaxy Build\/CUPCAKE) AppleWebKit\/528.5 (KHTML, like Gecko) Version\/3.1.2 Mobile Safari\/525.20.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "SAMSUNG-GT-S3650\/S3650XEII3 SHP\/VPP\/R5 Jasmine\/1.0 Nextreaming SMM-MMS\/1.2.0 profile\/MIDP-2.1 configuration\/CLDC-1.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "JUC (Linux; U; 2.3.6; zh-cn; GT-S5360; 240*320) UCWEB7.9.0.94\/140\/352",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (SAMSUNG; SAMSUNG-GT-S5250\/S5250XEKJ3; U; Bada\/1.0; ru-ru) AppleWebKit\/533.1 (KHTML, like Gecko) Dolfin\/2.0 Mobile WQVGA SMM-MMS\/1.2.0 NexPlayer\/3.0 profile\/MIDP-2.1 configuration\/CLDC-1.1 OPN-B",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/4.0 (compatible; MSIE 7.0; Windows Phone OS 7.0; Trident\/3.1; IEMobile\/7.0; SAMSUNG; SGH-i917)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (SAMSUNG; SAMSUNG-GT-S8530\/S8530XXJKA; U; Bada\/1.2; cs-cz) AppleWebKit\/533.1 (KHTML, like Gecko) Dolfin\/2.2 Mobile WVGA SMM-MMS\/1.2.0 OPN-B",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 1.6; ru-ru; Galaxy Build\/Donut) AppleWebKit\/528.5+ (KHTML, like Gecko) Version\/3.1.2 Mobile Safari\/525.20.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.1-update1; ru-ru; GT-I5500 Build\/ERE27) AppleWebKit\/530.17 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/530.17",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.2; en-us; GALAXY_Tab Build\/MASTER) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.2; ja-jp; SC-01C Build\/FROYO) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.2; fr-fr; GT-I9000 Build\/FROYO) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.2.1; zh-cn; SCH-i909 Build\/FROYO) UC AppleWebKit\/534.31 (KHTML, like Gecko) Mobile Safari\/534.31",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.3; ja-jp; SC-01C Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.3; en-gb; GT-P1000 Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.3; el-gr; GT-I9001 Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.3; en-ca; SGH-I896 Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.4; es-us; GT-S5660L Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1 MicroMessenger\/4.5.1.261",
+            "mobile": true,
+            "tablet": false,
+            "version": {
+                "MicroMessenger": "4.5.1.261"
+            }
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.6; en-us; GT-S5660 Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.6; ru-ru; GT-S6102 Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.6; pt-br; GT-S5367 Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.6; fr-fr; GT-S5839i Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.6; en-gb; GT-S7500 Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.6; en-gb; GT-S5830 Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.6; es-us; GT-B5510L Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.6; pl-pl; GT-I9001-ORANGE\/I9001BVKPC Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.6; en-us; GT-I8150 Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.6; nl-nl; GT-I9070 Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.6; en-gb; GT-S5360 Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.6; es-us; GT-S6102B Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.6; en-us; GT-S5830i Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.6; ru-ru; GT-I8160 Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.6; ru-ru; GT-S6802 Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.7; ru-ru; GT-S5830 Build\/GRWK74; LeWa_ROM_Cooper_12.09.21) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.6; ru-ru; GT-N7000 Build\/GINGERBREAD) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 3.0.1; en-us; GT-P7100 Build\/HRI83) AppleWebkit\/534.13 (KHTML, like Gecko) Version\/4.0 Safari\/534.13",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 3.2; he-il; GT-P7300 Build\/HTJ85B) AppleWebKit\/534.13 (KHTML, like Gecko) Version\/4.0 Safari\/534.13",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 3.2; en-gb; GT-P6200 Build\/HTJ85B) AppleWebKit\/534.13 (KHTML, like Gecko) Version\/4.0 Safari\/534.13",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; en-gb; GT-I9100 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; en-us; GT-I9100G Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; nl-nl; GT-P5100 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android-4.0.3; en-us; Galaxy Nexus Build\/IML74K) AppleWebKit\/535.7 (KHTML, like Gecko) CrMo\/16.0.912.75 Mobile Safari\/535.7",
+            "mobile": true,
+            "tablet": false,
+            "version": {
+                "Chrome": "16.0.912.75"
+            }
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.0.3; SGH-T989 Build\/IML74K) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19",
+            "mobile": true,
+            "tablet": false,
+            "version": {
+                "Chrome": "18.0.1025.166"
+            }
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; ru-ru; GT-P5100 Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.0.4; GT-I9300 Build\/IMM76D) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.0.4; SPH-D710 Build\/IMM76I) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; zh-cn; GT-I9300 Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; en-gb; GT-I9300-ORANGE\/I9300BVBLG2 Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; th-th; GT-I9300T Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; ru-ru; GT-I9100 Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; en-us ; GT-I9100 Build\/IMM76D) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1\/UCBrowser\/8.4.1.204\/145\/355",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; en-gb; GT-N7000 Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; th-th; GT-P6800 Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.0.4; SAMSUNG-SGH-I747 Build\/IMM76D) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; es-es; GT-P5110 Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.0.4; GT-P5110 Build\/IMM76D) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Safari\/535.19",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; zh-cn; SAMSUNG-GT-S7568_TD\/1.0 Android\/4.0.4 Release\/07.15.2012 Browser\/AppleWebKit534.30 Build\/IMM76D) ApplelWebkit\/534.30 (KHTML,like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false,
+            "version": {
+                "Android": "4.0.4"
+            }
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; ru-ru; GT-P3100 Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; tr-tr; GT-P3105 Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; en-ca; GT-N8010 Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; ru-ru; GT-S7562 Build\/IMM76I) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; en-us; GT-N7100 Build\/JRO03C) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.2; GT-N7100 Build\/JZO54K) AppleWebKit\/537.22 (KHTML, like Gecko) Chrome\/25.0.1364.123 Mobile Safari\/537.22 OPR\/14.0.1025.52315",
+            "mobile": true,
+            "tablet": false,
+            "version": {
+                "Build": "JZO54K",
+                "Webkit": "537.22",
+                "Opera": "14.0.1025.52315"
+            }
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; zh-hk; GT-N7105 Build\/JRO03C) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; ru-ru; GT-N8000 Build\/JRO03C) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.1; SGH-i747M Build\/JRO03L) AppleWebKit\/535.19(KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; en-gb; Galaxy Nexus - 4.1.1 - with Google Apps - API 16 - 720x1280 Build\/JRO03S) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.2; GT-I8262 Build\/JZO54K) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/32.0.1700.99 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.2; it-it; Galaxy Nexus Build\/JZO54K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.2; en-us; SGH-I777 Build\/JZO54K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.2; en-us; GT-S7710 Build\/JZO54K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.2; en-us; GT-I9082 Build\/JZO54K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.2; en-us; SGH-T999L Build\/JZO54K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; GT-P5210 Build\/JDQ39) AppleWebKit\/537.36 (KHTML, Like Gecko) Chrome\/27.0.1453.90 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; en-us; SAMSUNG GT-I9200 Build\/JDQ39) AppleWebKit\/535.19 (KHTML, like Gecko) Version\/1.0 Chrome\/18.0.1025.308 Mobile Safari\/535.19",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; zh-cn; SCH-I959 Build\/JDQ39) AppleWebKit\/535.19 (KHTML, like Gecko) Version\/1.0 Chrome\/18.0.1025.308 Mobile Safari\/535.19",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; nl-nl; SM-T310 Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.3; en-us; SAMSUNG SM-P600 Build\/JSS15J) AppleWebKit\/537.36 (KHTML, like Gecko) Version\/1.5 Chrome\/28.0.1500.94 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; en-gb; GT-N5100 Build\/JDQ39) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; en-us; SAMSUNG SM-T530NU Build\/KOT49H) AppleWebKit\/537.36 (KHTML, like Gecko) Version\/1.5 Chrome\/28.0.1500.94 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; SM-T800 Build\/KOT49H) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.135 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; fr-fr; SAMSUNG SM-T800 Build\/KOT49H) AppleWebKit\/537.36 (KHTML, like Gecko) Version\/1.5 Chrome\/28.0.1500.94 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; SM-T700 Build\/KOT49H) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/33.0.1750.517 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SAMSUNG; CETUS)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SAMSUNG; Focus I917 By TC)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SAMSUNG; Focus i917)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SAMSUNG; FOCUS S)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SAMSUNG; GT-I8350)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SAMSUNG; GT-i8700)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SAMSUNG; GT-S7530)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SAMSUNG; Hljchm's Wp)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SAMSUNG; I917)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SAMSUNG; OMNIA 7)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SAMSUNG; OMNIA7 By MWP_HS)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SAMSUNG; OMNIA7)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SAMSUNG; OMNIA7; Orange)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SAMSUNG; SGH-i677)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SAMSUNG; SGH-i917)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SAMSUNG; SGH-i917.)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SAMSUNG; SGH-i917R)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SAMSUNG; SGH-i937)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SAMSUNG; SMG-917R)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SAMSUNG_blocked_blocked_blocked; OMNIA7; Orange)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SAMSUNG_blocked_blocked_blocked_blocked; OMNIA7; Orange)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; SUMSUNG; OMNIA 7)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Windows NT 6.2; ARM; Trident\/7.0; Touch; rv:11.0; WPDesktop; SAMSUNG; GT-I8750) like Gecko",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Windows NT 6.2; ARM; Trident\/7.0; Touch; rv:11.0; WPDesktop; GT-I8750) like Gecko",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; en-gb; SAMSUNG GT-I9205 Build\/JDQ39) AppleWebKit\/535.19 (KHTML, like Gecko) Version\/1.0 Chrome\/18.0.1025.308 Mobile Safari\/535.19",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; en-us; GT-P7510 Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; en-us; SHV-E160K\/VI10.1802 Build\/IMM76D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 5.0.2; SM-T805 Build\/LRX22G) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/43.0.2357.92 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.4; SM-T116NQ Build\/KTU84P) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/43.0.2357.92 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 5.0.2; SM-G9250 Build\/LRX22G; wv) AppleWebKit\/537.36 (KHTML, like Gecko) Version\/4.0 Chrome\/43.0.2357.121 Mobile Safari\/537.36 [FB_IAB\/FB4A;FBAV\/35.0.0.48.273;]",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; SM-T705Y Build\/KOT49H) AppleWebKit\/537.36(KHTML, like Gecko) Chrome\/42.0.2311.111 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; GT-I9505 Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Version\/1.5 Chrome\/28.0.1500.94 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Samsung",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; SM-T705 Build\/KOT49H) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/41.0.2272.45 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "SonyEricssonK800i\/R1AA Browser\/NetFront\/3.3 Profile\/MIDP-2.0 Configuration\/CLDC-1.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.1-update1; es-ar; SonyEricssonE15a Build\/2.0.1.A.0.47) AppleWebKit\/530.17 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/530.17",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.1-update1; pt-br; SonyEricssonU20a Build\/2.1.1.A.0.6) AppleWebKit\/530.17 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/530.17",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.3; en-au; SonyEricssonX10i Build\/3.0.1.G.0.75) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.4; ru-ru; SonyEricssonST18i Build\/4.0.2.A.0.62) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.4; hr-hr; SonyEricssonST15i Build\/4.0.2.A.0.62) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.4; sk-sk; SonyEricssonLT15i Build\/4.0.2.A.0.62) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.7; th-th; SonyEricssonST27i Build\/6.0.B.3.184) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 2.3.7; de-de; SonyEricssonST25i Build\/6.0.B.3.184) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; pt-br; Xperia Tablet S Build\/TID0092) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true,
+            "version": {
+                "Android": "4.0.3",
+                "Build": "TID0092",
+                "Webkit": "534.30",
+                "Safari": "4.0"
+            }
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.0.3; LT18i Build\/4.1.A.0.562) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.0.3; Sony Tablet S Build\/TISU0R0110) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166  Safari\/535.19",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; es-es; Sony Tablet S Build\/TISU0143) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; en-gb; SonyEricssonLT18i Build\/4.1.B.0.587) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; fr-ch; SonyEricssonSK17i Build\/4.1.B.0.587) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; en-us; SonyEricssonLT26i Build\/6.1.A.2.45) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.0.4; LT22i Build\/6.1.B.0.544) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; vi-vn; SonyEricssonLT22i Build\/6.1.B.0.544) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.0.4; ST23i Build\/11.0.A.5.5) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.0.4; ST23i Build\/11.0.A.2.10) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Mobile Safari\/535.19",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.0.4; LT28h Build\/6.1.E.3.7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/28.0.1500.94 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; en-us; SGPT13 Build\/TJDS0170) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.2; ja-jp; SonySO-03E Build\/10.1.E.0.265) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true,
+            "version": {
+                "Android": "4.1.2",
+                "Build": "10.1.E.0.265",
+                "Webkit": "534.30",
+                "Safari": "4.0"
+            }
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.2; LT26w Build\/6.2.B.1.96) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/29.0.1547.72 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; SGP321 Build\/10.3.1.A.0.33) AppleWebKit\/537.31 (KHTML, like Gecko) Chrome\/26.0.1410.58 Safari\/537.31",
+            "mobile": true,
+            "tablet": true,
+            "version": {
+                "Android": "4.2.2",
+                "Build": "10.3.1.A.0.33",
+                "Webkit": "537.31",
+                "Chrome": "26.0.1410.58"
+            }
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.3; C5303 Build\/12.1.A.1.205) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.135 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.3; zh-cn; XL39h Build\/14.2.A.1.136) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.2; sv-se; C5503 Build\/10.1.1.A.1.273) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.2; en-us; C5502 Build\/10.1.1.A.1.310) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; zh-cn; SonyL39t Build\/14.1.M.0.202) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; zh-cn; L39u Build\/14.1.n.0.63) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.2; zh-tw; M35c Build\/12.0.B.5.37) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.2; M35c Build\/12.0.B.2.42) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/27.0.1453.90 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.2; zh-CN; M35t Build\/12.0.C.2.42) AppleWebKit\/534.31 (KHTML, like Gecko) UCBrowser\/9.3.2.349 U3\/0.8.0 Mobile Safari\/534.31",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; D6502 Build\/17.1.A.2.69) AppleWebKit\/537.36 (KHTML, like Gecko) Version\/4.0 Chrome\/30.0.0.0 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; D6503 Build\/17.1.A.0.504) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/32.0.1700.99 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; D6543 Build\/17.1.A.2.55) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/34.0.1847.114 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.3; D2004 Build\/20.0.A.0.29) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/28.0.1500.94 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.3; en-gb; D2005 Build\/20.0.A.1.12) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.3; D2104 Build\/20.0.B.0.84) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/34.0.1847.114 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.3; D2105 Build\/20.0.B.0.74) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/33.0.1750.170 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.3; pt-br; D2114 Build\/20.0.B.0.85) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.3; D2302 Build\/18.0.B.1.23) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.138 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.3; zh-cn; S50h Build\/18.0.b.1.23) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 UCBrowser\/9.6.3.413 U3\/0.8.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.3; D2303 Build\/18.0.C.1.13) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.138 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.3; D2305 Build\/18.0.A.1.30) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.138 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.3; D2306 Build\/18.0.C.1.7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/33.0.1750.136 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.3; D5303 Build\/19.0.1.A.0.207) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/34.0.1847.114 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; D5306 Build\/19.1.A.0.264) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/33.0.1750.136 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.3; zh-CN; XM50h Build\/19.0.D.0.269) AppleWebKit\/533.1 (KHTML, like Gecko) Version\/4.0 UCBrowser\/9.7.6.428 U3\/0.8.0 Mobile Safari\/533.1",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.3; zh-cn; XM50t Build\/19.0.C.2.59) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.3; D5322 Build\/19.0.D.0.253) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/34.0.1847.131",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.3; zh-cn; M51w Build\/14.2.A.1.146) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.3; M51w Build\/14.2.A.1.146) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/33.0.1750.136 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.1; D5102 Build\/18.2.A.0.9) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/32.0.1700.99 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.1; D5103 Build\/18.1.A.0.11) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/30.0.1599.92 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.1; D5106 Build\/18.1.A.0.11) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/32.0.1700.99 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.3; en-gb; C6902 Build\/14.2.A.1.136) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30 GSA\/3.2.17.1009776.arm",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; es-es; C6943 Build\/14.1.G.2.257) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; C6943 Build\/14.3.A.0.681) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/32.0.1700.99 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; SGP412 Build\/14.1.B.3.320) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/34.0.1847.114 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1; en-us; SonySGP321 Build\/10.2.C.0.143) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.1.2; SGP351 Build\/10.1.1.A.1.307) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166 Safari\/535.19",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.3; SGP341 Build\/10.4.B.0.569) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/32.0.1700.99 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; SGP511 Build\/17.1.A.2.36) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.122 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; SGP512 Build\/17.1.A.2.36) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.122 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.2; fr-ch; SGP311 Build\/10.1.C.0.344) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.2; en-us; SGP312 Build\/10.1.C.0.344) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.4.2; de-de; SGP521 Build\/17.1.A.2.69) AppleWebKit\/537.16 (KHTML, like Gecko) Version\/4.0 Safari\/537.16",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.4.2; zh-cn; SGP541 Build\/17.1.A.2.36) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; SGP551 Build\/17.1.A.2.72) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/34.0.1847.114 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "SonyEricssonU5i\/R2CA; Mozilla\/5.0 (SymbianOS\/9.4; U; Series60\/5.0 Profile\/MIDP-2.1 Configuration\/CLDC-1.1) AppleWebKit\/525 (KHTML, like Gecko) Version\/3.0 Safari\/525",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "SonyEricssonU5i\/R2AA; Mozilla\/5.0 (SymbianOS\/9.4; U; Series60\/5.0 Profile\/MIDP-2.1 Configuration\/CLDC-1.1) AppleWebKit\/525 (KHTML, like Gecko) Version\/3.0 Safari\/525",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/4.0 (PDA; PalmOS\/sony\/model prmr\/Revision:1.1.54 (en)) NetFront\/3.0",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Opera\/9.80 (Linux mips; U; InettvBrowser\/2.2 (00014A;SonyDTV115;0002;0100) KDL40EX720; CC\/BEL; en) Presto\/2.7.61 Version\/11.00",
+            "mobile": false,
+            "tablet": false
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Opera\/9.80 (Linux armv7l; HbbTV\/1.1.1 (; Sony; KDL32W650A; PKG3.211EUA; 2013;); ) Presto\/2.12.362 Version\/12.11",
+            "mobile": false,
+            "tablet": false
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; es-ve; SonyST21a2 Build\/11.0.A.6.5) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.2; D2533 Build\/19.2.A.0.391) AppleWebKit\/537.36 (KHTML, like Gecko) Version\/4.0 Chrome\/30.0.0.0 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.4.4; Xperia SP Build\/KTU84Q) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/41.0.2272.96 Mobile Safari\/537.36",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Sony",
+            "user_agent": "Mozilla \/ 5.0 (Linux; Android 5.0.2; SOT31 Build \/ 28.0.D.6.71) AppleWebKit \/ 537.36 (KHTML, like Gecko) Chrome \/ 39.0.2171.93 Safari \/ 537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Avant",
+            "user_agent": "Mozilla\/5.0 (Windows NT 6.1; WOW64; Trident\/7.0; Avant Browser; rv:11.0) like Gecko",
+            "mobile": false,
+            "tablet": false
+        },
+        {
+            "vendor": "Avant",
+            "user_agent": "Mozilla\/5.0 (Windows NT 6.1; WOW64; Avant TriCore) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/30.0.1599.101 Safari\/537.36",
+            "mobile": false,
+            "tablet": false
+        },
+        {
+            "vendor": "Avant",
+            "user_agent": "Mozilla\/5.0 (Windows NT 5.1; rv:27.0; Avant TriCore) Gecko\/20100101 Firefox\/27.0",
+            "mobile": false,
+            "tablet": false
+        },
+        {
+            "vendor": "Console",
+            "user_agent": "Mozilla\/5.0 (Nintendo WiiU) AppleWebKit\/536.28 (KHTML, like Gecko) NX\/3.0.3.12.14 NintendoBrowser\/3.1.1.9577.EU",
+            "mobile": false,
+            "tablet": false
+        },
+        {
+            "vendor": "Console",
+            "user_agent": "Mozilla\/5.0 (Nintendo WiiU) AppleWebKit\/534.52 (KHTML, like Gecko) NX\/{Version No} NintendoBrowser\/{Version No}.US",
+            "mobile": false,
+            "tablet": false
+        },
+        {
+            "vendor": "Console",
+            "user_agent": "Mozilla\/5.0 (Nintendo 3DS; U; ; en) Version\/1.7567.US",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Console",
+            "user_agent": "Mozilla\/5.0 (Nintendo 3DS; U; ; en) Version\/1.7498.US",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Console",
+            "user_agent": "Mozilla\/5.0 (PLAYSTATION 3 4.21) AppleWebKit\/531.22.8 (KHTML, like Gecko)",
+            "mobile": false,
+            "tablet": false
+        },
+        {
+            "vendor": "Console",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident\/5.0; Xbox)",
+            "mobile": false,
+            "tablet": false
+        },
+        {
+            "vendor": "Other",
+            "user_agent": "Mozilla\/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident\/4.0; SV1; [eburo v4.0]; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; InfoPath.3; .NET4.0C; .NET4.0E)",
+            "mobile": false,
+            "tablet": false
+        },
+        {
+            "vendor": "Other",
+            "user_agent": "Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_10) AppleWebKit\/600.1.25 (KHTML, like Gecko) Version\/8.0 Safari\/600.1.25",
+            "mobile": false,
+            "tablet": false
+        },
+        {
+            "vendor": "Other",
+            "user_agent": "Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_10_0) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/38.0.2125.111 Safari\/537.36",
+            "mobile": false,
+            "tablet": false
+        },
+        {
+            "vendor": "Other",
+            "user_agent": "Mozilla\/5.0 (Windows NT 6.1) AppleWebKit\/537.36 (KHTML, like Gecko) Iron\/37.0.2000.0 Chrome\/37.0.2000.0 Safari\/537.36",
+            "mobile": false,
+            "tablet": false,
+            "version": {
+                "Iron": "37.0.2000.0"
+            }
+        },
+        {
+            "vendor": "Other",
+            "user_agent": "Mozilla\/5.0 (X11; Linux i686) AppleWebKit\/537.36 (KHTML, like Gecko) Ubuntu Chromium\/32.0.1700.102 Chrome\/32.0.1700.102 Safari\/537.36",
+            "mobile": false,
+            "tablet": false
+        },
+        {
+            "vendor": "Other",
+            "user_agent": "Mozilla\/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko\/20100101 Firefox\/24.0",
+            "mobile": false,
+            "tablet": false
+        },
+        {
+            "vendor": "Other",
+            "user_agent": "Mozilla\/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko\/20100101 Firefox\/18.0 AlexaToolbar\/psPCtGhf-2.2",
+            "mobile": false,
+            "tablet": false
+        },
+        {
+            "vendor": "Other",
+            "user_agent": "Mozilla\/5.0 (X11; Ubuntu; Linux x86_64; rv:22.0) Gecko\/20100101 Firefox\/22.0",
+            "mobile": false,
+            "tablet": false
+        },
+        {
+            "vendor": "Other",
+            "user_agent": "Mozilla\/5.0 (X11; Linux ppc; rv:17.0) Gecko\/20130626 Firefox\/17.0 Iceweasel\/17.0.7",
+            "mobile": false,
+            "tablet": false
+        },
+        {
+            "vendor": "Other",
+            "user_agent": "Mozilla\/5.0 (X11; Linux) AppleWebKit\/535.22+ Midori\/0.4",
+            "mobile": false,
+            "tablet": false
+        },
+        {
+            "vendor": "Other",
+            "user_agent": "Mozilla\/5.0 (Macintosh; U; Intel Mac OS X; en-us) AppleWebKit\/535+ (KHTML, like Gecko) Version\/5.0 Safari\/535.20+ Midori\/0.4",
+            "mobile": false,
+            "tablet": false
+        },
+        {
+            "vendor": "Other",
+            "user_agent": "Mozilla\/5.0 (Windows NT 6.2; WOW64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/28.0.1500.20 Safari\/537.36  OPR\/15.0.1147.18 (Edition Next)",
+            "mobile": false,
+            "tablet": false
+        },
+        {
+            "vendor": "Other",
+            "user_agent": "Mozilla\/5.0 (Windows NT 6.2) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/27.0.1453.94 Safari\/537.36",
+            "mobile": false,
+            "tablet": false
+        },
+        {
+            "vendor": "Other",
+            "user_agent": "Mozilla\/5.0 (Windows NT 5.2; WOW64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/27.0.1453.94 Safari\/537.36",
+            "mobile": false,
+            "tablet": false
+        },
+        {
+            "vendor": "Other",
+            "user_agent": "Mozilla\/5.0 (Windows NT 5.2; WOW64; rv:21.0) Gecko\/20100101 Firefox\/21.0",
+            "mobile": false,
+            "tablet": false
+        },
+        {
+            "vendor": "Other",
+            "user_agent": "Opera\/9.80 (Windows NT 5.2; WOW64) Presto\/2.12.388 Version\/12.14",
+            "mobile": false,
+            "tablet": false
+        },
+        {
+            "vendor": "Other",
+            "user_agent": "Mozilla\/5.0 (Windows NT 6.1; WOW64; rv:19.0) Gecko\/20100101 Firefox\/19.0",
+            "mobile": false,
+            "tablet": false
+        },
+        {
+            "vendor": "Other",
+            "user_agent": "Mozilla\/5.0 (X11; FreeBSD amd64; rv:14.0) Gecko\/20100101 Firefox\/14.0.1",
+            "mobile": false,
+            "tablet": false
+        },
+        {
+            "vendor": "Other",
+            "user_agent": "Mozilla\/4.0 (compatible; MSIE 7.0; Windows NT 6.2; Win64; x64; Trident\/6.0; Touch; .NET4.0E; .NET4.0C; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 2.0.50727; Tablet PC 2.0; MASMJS)",
+            "mobile": false,
+            "tablet": false
+        },
+        {
+            "vendor": "Other",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident\/6.0; MANMJS)",
+            "mobile": false,
+            "tablet": false
+        },
+        {
+            "vendor": "Other",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Win64; x64; Trident\/6.0; MASMJS)",
+            "mobile": false,
+            "tablet": false
+        },
+        {
+            "vendor": "Other",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident\/6.0; Touch; MASMJS)",
+            "mobile": false,
+            "tablet": false
+        },
+        {
+            "vendor": "Other",
+            "user_agent": "Opera\/9.80 (Windows NT 6.2; WOW64; MRA 8.0 (build 5784)) Presto\/2.12.388 Version\/12.11",
+            "mobile": false,
+            "tablet": false
+        },
+        {
+            "vendor": "Other",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident\/6.0)",
+            "mobile": false,
+            "tablet": false
+        },
+        {
+            "vendor": "Other",
+            "user_agent": "Mozilla\/5.0 (Windows NT 6.3; Trident\/7.0; rv 11.0) like Gecko",
+            "mobile": false,
+            "tablet": false
+        },
+        {
+            "vendor": "Other",
+            "user_agent": "Mozilla\/5.0 (Windows NT 6.3; WOW64; Trident\/7.0; Touch; rv:11.0) like Gecko",
+            "mobile": false,
+            "tablet": false
+        },
+        {
+            "vendor": "Other",
+            "user_agent": "Mozilla\/5.0 (Unknown; Linux armv7l) AppleWebKit\/537.1+ (KHTML, like Gecko) Safari\/537.1+ HbbTV\/1.1.1 ( ;LGE ;NetCast 4.0 ;03.20.30 ;1.0M ;)",
+            "mobile": false,
+            "tablet": false
+        },
+        {
+            "vendor": "Other",
+            "user_agent": "HbbTV\/1.1.1 (;Panasonic;VIERA 2012;1.261;0071-3103 2000-0000;)",
+            "mobile": false,
+            "tablet": false
+        },
+        {
+            "vendor": "Other",
+            "user_agent": "Opera\/9.80 (Linux armv7l; HbbTV\/1.1.1 (; Sony; KDL32W650A; PKG3.211EUA; 2013;); ) Presto\/2.12.362 Version\/12.11",
+            "mobile": false,
+            "tablet": false
+        },
+        {
+            "vendor": "Generic",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Jolla; Sailfish; Mobile; rv:20.0) Gecko\/20.0 Firefox\/20.0 Sailfish Browser\/1.0 like Safari\/535.19",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Generic",
+            "user_agent": "Mozilla\/5.0 (Mobile; rv:26.0) Gecko\/26.0 Firefox\/26.0",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Generic",
+            "user_agent": "Mozilla\/5.0 (Tablet; rv:26.0) Gecko\/26.0 Firefox\/26.0",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Generic",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; CT1020W Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/28.0.1500.94 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Generic",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.2.2; M6pro Build\/JDQ39) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.141 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Generic",
+            "user_agent": "MobileSafari\/9537.53 CFNetwork\/672.1.13 Darwin\/13.1.0",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Generic",
+            "user_agent": "Appcelerator Titanium\/3.2.2.GA (iPod touch\/6.1.6; iPhone OS; en_US;)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Generic",
+            "user_agent": "Opera Coast\/3.0.3.78307 CFNetwork\/672.1.15 Darwin\/14.0.0",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Generic",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.0.3; ALUMIUM10 Build\/IML74K) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/32.0.1700.99 Safari\/537.36",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Generic",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.1; en-us; JY-G3 Build\/JOP40D) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Generic",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; hu-hu; M758A Build\/JRO03C) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Generic",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; en-us; EVOTAB Build\/IMM76I) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Generic",
+            "user_agent": "Java\/1.6.0_22",
+            "mobile": false,
+            "tablet": false,
+            "version": {
+                "Java": "1.6.0_22"
+            }
+        },
+        {
+            "vendor": "Generic",
+            "user_agent": "Opera\/9.80 (Series 60; Opera Mini\/6.5.29260\/29.3417; U; ru) Presto\/2.8.119 Version\/11.10",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Generic",
+            "user_agent": "Opera\/9.80 (Android; Opera Mini\/6.5.27452\/29.3417; U; ru) Presto\/2.8.119 Version\/11.10",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Generic",
+            "user_agent": "Opera\/9.80 (iPhone; Opera Mini\/7.1.32694\/27.1407; U; en) Presto\/2.8.119 Version\/11.10",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Generic",
+            "user_agent": "Mozilla\/5.0 (Windows NT 6.1; WOW64) AppleWebKit\/537.17 (KHTML, like Gecko) Chrome\/24.0.1312.60 Safari\/537.17 OPR\/14.0.1025.52315",
+            "mobile": false,
+            "tablet": false
+        },
+        {
+            "vendor": "Generic",
+            "user_agent": "Mozilla\/5.0 (iPhone; U; CPU iPhone OS 4_3_2 like Mac OS X; en-us) AppleWebKit\/533.17.9 (KHTML, like Gecko) Version\/5.0.2 Mobile\/8H7 Safari\/6533.18.5",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Generic",
+            "user_agent": "Opera\/9.80 (Android 2.3.7; Linux; Opera Mobi\/46154) Presto\/2.11.355 Version\/12.10",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Generic",
+            "user_agent": "Mozilla\/5.0 (iPad; CPU OS 6_1 like Mac OS X) AppleWebKit\/536.26 (KHTML, like Gecko) Version\/6.0 Mobile\/10B141 Safari\/8536.25",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Generic",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.2; en-us; sdk Build\/MASTER) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Generic",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2; en-us; sdk Build\/JB_MR1) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Generic",
+            "user_agent": "Mozilla\/5.0 (Android; Mobile; rv:18.0) Gecko\/18.0 Firefox\/18.0",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Generic",
+            "user_agent": "Mozilla\/5.0 (Windows NT 6.1) AppleWebKit\/535.12 (KHTML, like Gecko) Maxthon\/3.0 Chrome\/18.0.966.0 Safari\/535.12",
+            "mobile": false,
+            "tablet": false
+        },
+        {
+            "vendor": "Generic",
+            "user_agent": "Opera\/9.80 (Windows NT 5.1; U; Edition Yx; ru) Presto\/2.10.289 Version\/12.02",
+            "mobile": false,
+            "tablet": false
+        },
+        {
+            "vendor": "Generic",
+            "user_agent": "Mozilla\/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Windows Phone 6.5.3.5)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Generic",
+            "user_agent": "PalmCentro\/v0001 Mozilla\/4.0 (compatible; MSIE 6.0; Windows 98; PalmSource\/Palm-D061; Blazer\/4.5) 16;320x320",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Generic",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Generic",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; Microsoft; XDeviceEmulator)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Generic",
+            "user_agent": "Mozilla\/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident\/5.0; IEMobile\/9.0; MAL; N880E; China Telecom)",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Generic",
+            "user_agent": "Opera\/9.80 (Series 60; Opera Mini\/7.0.29482\/28.2859; U; ru) Presto\/2.8.119 Version\/11.10",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Generic",
+            "user_agent": "Opera\/9.80 (S60; SymbOS; Opera Mobi\/SYB-1202242143; U; en-GB) Presto\/2.10.254 Version\/12.00",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Generic",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.3; en-au; 97D Build\/IML74K) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Generic",
+            "user_agent": "Opera\/9.80 (Android; Opera Mini\/7.0.29952\/28.2647; U; ru) Presto\/2.8.119 Version\/11.10",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Generic",
+            "user_agent": "Opera\/9.80 (Android; Opera Mini\/6.1.25375\/28.2555; U; en) Presto\/2.8.119 Version\/11.10",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Generic",
+            "user_agent": "Opera\/9.80 (Mac OS X; Opera Tablet\/35779; U; en) Presto\/2.10.254 Version\/12.00",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Generic",
+            "user_agent": "Mozilla\/5.0 (Android; Tablet; rv:10.0.4) Gecko\/10.0.4 Firefox\/10.0.4 Fennec\/10.0.4",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Generic",
+            "user_agent": "Mozilla\/5.0 (Android; Tablet; rv:18.0) Gecko\/18.0 Firefox\/18.0",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Generic",
+            "user_agent": "Opera\/9.80 (Linux armv7l; Maemo; Opera Mobi\/14; U; en) Presto\/2.9.201 Version\/11.50",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Generic",
+            "user_agent": "Opera\/9.80 (Android 2.2.1; Linux; Opera Mobi\/ADR-1207201819; U; en) Presto\/2.10.254 Version\/12.00",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Generic",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; en-us; sdk Build\/JRO03E) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Mobile Safari\/534.30",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Generic",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; de-de; Endeavour 1010 Build\/ONDA_MID) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Generic",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; de-de; Tablet-PC-4 Build\/ICS.g08refem618.20121102) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Generic",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.2.2; de-de; Tagi Tab S10 Build\/8089) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Bot",
+            "user_agent": "Mozilla\/5.0 (compatible; Googlebot\/2.1; +http:\/\/www.google.com\/bot.html)",
+            "mobile": false,
+            "tablet": false
+        },
+        {
+            "vendor": "Bot",
+            "user_agent": "grub-client-1.5.3; (grub-client-1.5.3; Crawl your own stuff with http:\/\/grub.org)",
+            "mobile": false,
+            "tablet": false
+        },
+        {
+            "vendor": "Bot",
+            "user_agent": "Googlebot-Image\/1.0",
+            "mobile": false,
+            "tablet": false
+        },
+        {
+            "vendor": "Bot",
+            "user_agent": "Python-urllib\/2.5",
+            "mobile": false,
+            "tablet": false
+        },
+        {
+            "vendor": "Bot",
+            "user_agent": "facebookexternalhit\/1.0 (+http:\/\/www.facebook.com\/externalhit_uatext.php)",
+            "mobile": false,
+            "tablet": false
+        },
+        {
+            "vendor": "Bot",
+            "user_agent": "AdsBot-Google (+http:\/\/www.google.com\/adsbot.html)",
+            "mobile": false,
+            "tablet": false
+        },
+        {
+            "vendor": "Bot",
+            "user_agent": "AdsBot-Google-Mobile (+http:\/\/www.google.com\/mobile\/adsbot.html) Mozilla (iPhone; U; CPU iPhone OS 3 0 like Mac OS X) AppleWebKit (KHTML, like Gecko) Mobile Safari",
+            "mobile": true,
+            "tablet": false
+        },
+        {
+            "vendor": "Bot",
+            "user_agent": "Mozilla\/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit\/534.16 (KHTML, like Gecko, Google Keyword Suggestion) Chrome\/10.0.648.127 Safari\/534.16",
+            "mobile": false,
+            "tablet": false
+        },
+        {
+            "vendor": "Bot",
+            "user_agent": "Facebot",
+            "mobile": false,
+            "tablet": false
+        },
+        {
+            "vendor": "Vodafone",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 3.2; hu-hu; SmartTab10-MSM8260-V02d-Dec022011-Vodafone-HU) AppleWebKit\/534.13 (KHTML, like Gecko) Version\/4.0",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Vodafone",
+            "user_agent": "Mozilla\/5.0 (Linux; Android 4.0.3; SmartTabII10 Build\/IML74K) AppleWebKit\/535.19 (KHTML, like Gecko) Chrome\/18.0.1025.166  Safari\/535.19",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Vodafone",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.1.1; fr-fr; SmartTAB 1002 Build\/JRO03H) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        },
+        {
+            "vendor": "Vodafone",
+            "user_agent": "Mozilla\/5.0 (Linux; U; Android 4.0.4; de-de, SmartTabII7 Build\/A2107A_A404_107_055_130124_VODA) AppleWebKit\/534.30 (KHTML, like Gecko) Version\/4.0 Safari\/534.30",
+            "mobile": true,
+            "tablet": true
+        }
+    ]
+}
\ No newline at end of file
-- 
GitLab


From 2cf36d157fb6fee1fa4829f5afbbd70beea996dd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rapha=C3=ABl=20Doursenaud?= <rdoursenaud@gpcsolutions.fr>
Date: Mon, 7 Dec 2015 14:15:00 +0100
Subject: [PATCH 127/197] FIX #3953 Don't round supplier price

The price is already rounded when inserted on the product page.
It's also rounded at display.
There's no need to round it here.
Rounding it leads to serious calculation errors.
---
 htdocs/core/tpl/objectline_create.tpl.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/htdocs/core/tpl/objectline_create.tpl.php b/htdocs/core/tpl/objectline_create.tpl.php
index d7949fa1d52..25668b2876d 100644
--- a/htdocs/core/tpl/objectline_create.tpl.php
+++ b/htdocs/core/tpl/objectline_create.tpl.php
@@ -594,7 +594,7 @@ jQuery(document).ready(function() {
 
 	      		/* Define default price at loading */
 	      		var defaultprice = $("#fournprice_predef").find('option:selected').attr("price");
-	      		$("#buying_price").val(Math.round(defaultprice,<?php print ($conf->global->MAIN_MAX_DECIMALS_UNIT ? $conf->global->MAIN_MAX_DECIMALS_UNIT : 5); ?>));
+			    $("#buying_price").val(defaultprice);
 
 	      		$("#fournprice_predef").change(function() {
 		      		console.log("change on fournprice_predef");
-- 
GitLab


From 3f9efc537b09f142baeb249ea4e1f8a6c88c9f54 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rapha=C3=ABl=20Doursenaud?= <rdoursenaud@gpcsolutions.fr>
Date: Mon, 7 Dec 2015 14:15:00 +0100
Subject: [PATCH 128/197] FIX #3953 Don't round supplier price

The price is already rounded when inserted on the product page.
It's also rounded at display.
There's no need to round it here.
Rounding it leads to serious calculation errors.
---
 htdocs/core/tpl/objectline_create.tpl.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/htdocs/core/tpl/objectline_create.tpl.php b/htdocs/core/tpl/objectline_create.tpl.php
index fd5a81240ef..7244711bb43 100644
--- a/htdocs/core/tpl/objectline_create.tpl.php
+++ b/htdocs/core/tpl/objectline_create.tpl.php
@@ -554,7 +554,7 @@ jQuery(document).ready(function() {
 
 	      		/* Define default price at loading */
 	      		var defaultprice = $("#fournprice_predef").find('option:selected').attr("price");
-	      		$("#buying_price").val(parseFloat(defaultprice).toFixed(<?php print ($conf->global->MAIN_MAX_DECIMALS_UNIT ? $conf->global->MAIN_MAX_DECIMALS_UNIT : 5); ?>));
+			    $("#buying_price").val(defaultprice);
 
 	      		$("#fournprice_predef").change(function() {
 		      		console.log("change on fournprice_predef");
-- 
GitLab


From 01c6728aa9bea51db6ed7e3dca6ff16e05f3364d Mon Sep 17 00:00:00 2001
From: philippe grand <philippe.grand@atoo-net.com>
Date: Tue, 8 Dec 2015 11:35:08 +0100
Subject: [PATCH 129/197] [Qual] Uniformize code

---
 htdocs/exports/export.php                  | 16 ++--
 htdocs/externalsite/admin/externalsite.php |  4 +-
 htdocs/fichinter/card.php                  | 12 +--
 htdocs/fichinter/contact.php               | 12 +--
 htdocs/fourn/commande/card.php             | 86 +++++++++++-----------
 htdocs/fourn/commande/contact.php          | 14 ++--
 htdocs/fourn/commande/dispatch.php         |  6 +-
 7 files changed, 75 insertions(+), 75 deletions(-)

diff --git a/htdocs/exports/export.php b/htdocs/exports/export.php
index e0870411003..d7dbc008a27 100644
--- a/htdocs/exports/export.php
+++ b/htdocs/exports/export.php
@@ -177,7 +177,7 @@ if ($action=='selectfield')
 	    //print_r($array_selected);
 	    $_SESSION["export_selected_fields"]=$array_selected;
 
-	    setEventMessage($warnings, 'warnings');
+	    setEventMessages($warnings, null, 'warnings');
     }
 
 }
@@ -243,12 +243,12 @@ if ($action == 'builddoc')
 	$result=$objexport->build_file($user, GETPOST('model','alpha'), $datatoexport, $array_selected, $array_filtervalue);
 	if ($result < 0)
 	{
-		setEventMessage($objexport->error, 'errors');
+		setEventMessages($objexport->error, $objexport->errors, 'errors');
 		$sqlusedforexport=$objexport->sqlusedforexport;
 	}
 	else
 	{
-		setEventMessage($langs->trans("FileSuccessfullyBuilt"));
+		setEventMessages($langs->trans("FileSuccessfullyBuilt"), null, 'mesgs');
 	    $sqlusedforexport=$objexport->sqlusedforexport;
     }
 }
@@ -259,8 +259,8 @@ if ($step == 5 && $action == 'confirm_deletefile' && $confirm == 'yes')
 	$file = $upload_dir . "/" . GETPOST('file');	// Do not use urldecode here ($_GET and $_REQUEST are already decoded by PHP).
 
 	$ret=dol_delete_file($file);
-	if ($ret) setEventMessage($langs->trans("FileWasRemoved", GETPOST('file')));
-	else setEventMessage($langs->trans("ErrorFailToDeleteFile", GETPOST('file')), 'errors');
+	if ($ret) setEventMessage($langs->trans("FileWasRemoved", GETPOST('file')), null, 'mesgs');
+	else setEventMessages($langs->trans("ErrorFailToDeleteFile", GETPOST('file')), null, 'errors');
 	header('Location: '.$_SERVER["PHP_SELF"].'?step='.$step.'&datatoexport='.$datatoexport);
 	exit;
 }
@@ -307,15 +307,15 @@ if ($action == 'add_export_model')
 	    $result = $objexport->create($user);
 		if ($result >= 0)
 		{
-			setEventMessage($langs->trans("ExportModelSaved",$objexport->model_name));
+			setEventMessages($langs->trans("ExportModelSaved",$objexport->model_name), null, 'mesgs');
 		}
 		else
 		{
 			$langs->load("errors");
 			if ($objexport->errno == 'DB_ERROR_RECORD_ALREADY_EXISTS')
-				setEventMessage($langs->trans("ErrorExportDuplicateProfil"), 'errors');
+				setEventMessages($langs->trans("ErrorExportDuplicateProfil"), null, 'errors');
 			else
-				setEventMessage($objexport->error, 'errors');
+				setEventMessages($objexport->error, $objexport->errors, 'errors');
 		}
 	}
 	else
diff --git a/htdocs/externalsite/admin/externalsite.php b/htdocs/externalsite/admin/externalsite.php
index 90fb5aff9f0..bd0449dc028 100644
--- a/htdocs/externalsite/admin/externalsite.php
+++ b/htdocs/externalsite/admin/externalsite.php
@@ -59,12 +59,12 @@ if ($action == 'update')
     if ($i >= 2)
     {
         $db->commit();
-	    setEventMessage($langs->trans("SetupSaved"));
+	    setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
     }
     else
     {
         $db->rollback();
-	    setEventMessage($db->lasterror(), 'errors');
+	    setEventMessages($db->lasterror(), null, 'errors');
     }
 }
 
diff --git a/htdocs/fichinter/card.php b/htdocs/fichinter/card.php
index 403f1411dc8..3fd45013ab5 100644
--- a/htdocs/fichinter/card.php
+++ b/htdocs/fichinter/card.php
@@ -386,7 +386,7 @@ if (empty($reshook))
 
 		$result=$object->update($user);
 		if ($result<0) {
-			setEventMessage($object->error,'errors');
+			setEventMessages($object->error, $object->errors, 'errors');
 		}
 	}
 
@@ -429,8 +429,8 @@ if (empty($reshook))
 		$upload_dir = $conf->ficheinter->dir_output;
 		$file = $upload_dir . '/' . GETPOST('file');
 		$ret=dol_delete_file($file,0,0,0,$object);
-		if ($ret) setEventMessage($langs->trans("FileWasRemoved", GETPOST('urlfile')));
-		else setEventMessage($langs->trans("ErrorFailToDeleteFile", GETPOST('urlfile')), 'errors');
+		if ($ret) setEventMessages($langs->trans("FileWasRemoved", GETPOST('urlfile')), null, 'mesgs');
+		else setEventMessages($langs->trans("ErrorFailToDeleteFile", GETPOST('urlfile')), null, 'errors');
 	}
 
 	// Set into a project
@@ -451,7 +451,7 @@ if (empty($reshook))
 	{
 		$result=$object->delete($user);
 		if ($result<0) {
-			setEventMessage($object->error,'errors');
+			setEventMessages($object->error, $object->errors, 'errors');
 		}
 
 		header('Location: '.DOL_URL_ROOT.'/fichinter/list.php?leftmenu=ficheinter');
@@ -802,7 +802,7 @@ if (empty($reshook))
 				if ($result)
 				{
 					$mesg=$langs->trans('MailSuccessfulySent',$mailfile->getValidAddress($from,2),$mailfile->getValidAddress($sendto,2));
-					setEventMessage($mesg);
+					setEventMessages($mesg, null, 'mesgs');
 					$error=0;
 
 					// Initialisation donnees
@@ -1216,7 +1216,7 @@ else if ($id > 0 || ! empty($ref))
 			if (empty($numref))
 			{
 				$error++;
-				setEventMessage($object->error, 'errors');
+				setEventMessages($object->error, $object->errors, 'errors');
 			}
 		}
 		else
diff --git a/htdocs/fichinter/contact.php b/htdocs/fichinter/contact.php
index 854428a5ccf..b92c1442d14 100644
--- a/htdocs/fichinter/contact.php
+++ b/htdocs/fichinter/contact.php
@@ -46,7 +46,7 @@ $result = $object->fetch($id,$ref);
 
 
 /*
- * Ajout d'un nouveau contact
+ * Adding a new contact
  */
 
 if ($action == 'addcontact' && $user->rights->ficheinter->creer)
@@ -71,17 +71,17 @@ if ($action == 'addcontact' && $user->rights->ficheinter->creer)
 			$mesg = $object->error;
 		}
 
-		setEventMessage($mesg, 'errors');
+		setEventMessages($mesg, null, 'errors');
 	}
 }
 
-// bascule du statut d'un contact
+// Toggle the status of a contact
 else if ($action == 'swapstatut' && $user->rights->ficheinter->creer)
 {
     $result=$object->swapContactStatus(GETPOST('ligne','int'));
 }
 
-// Efface un contact
+// Deletes a contact
 else if ($action == 'deletecontact' && $user->rights->ficheinter->creer)
 {
 	$result = $object->delete_contact(GETPOST('lineid','int'));
@@ -121,8 +121,8 @@ if ($id > 0 || ! empty($ref))
 
 
 	/*
-	*   Fiche intervention synthese pour rappel
-	*/
+	 *   Fiche intervention synthese pour rappel
+	 */
 	print '<table class="border" width="100%">';
 
 	$linkback = '<a href="'.DOL_URL_ROOT.'/fichinter/list.php'.(! empty($socid)?'?socid='.$socid:'').'">'.$langs->trans("BackToList").'</a>';
diff --git a/htdocs/fourn/commande/card.php b/htdocs/fourn/commande/card.php
index baa11ed9c07..52ecc6d3682 100644
--- a/htdocs/fourn/commande/card.php
+++ b/htdocs/fourn/commande/card.php
@@ -4,7 +4,7 @@
  * Copyright (C) 2005      Eric	Seigne          <eric.seigne@ryxeo.com>
  * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
  * Copyright (C) 2010-2015 Juanjo Menent        <jmenent@2byte.es>
- * Copyright (C) 2011      Philippe Grand       <philippe.grand@atoo-net.com>
+ * Copyright (C) 2011-2015 Philippe Grand       <philippe.grand@atoo-net.com>
  * Copyright (C) 2012      Marcos García        <marcosgdf@gmail.com>
  * Copyright (C) 2013      Florian Henry        <florian.henry@open-concept.pro>
  * Copyright (C) 2014      Ion Agorria          <ion@agorria.com>
@@ -153,14 +153,14 @@ if (empty($reshook))
 		if ($result < 0) setEventMessages($object->error, $object->errors, 'errors');
 	}
 
-	// conditions de reglement
+	// payment conditions
 	if ($action == 'setconditions' && $user->rights->fournisseur->commande->creer)
 	{
 	    $result=$object->setPaymentTerms(GETPOST('cond_reglement_id','int'));
 		if ($result < 0) setEventMessages($object->error, $object->errors, 'errors');
 	}
 
-	// mode de reglement
+	// payment mode
 	if ($action == 'setmode' && $user->rights->fournisseur->commande->creer)
 	{
 	    $result = $object->setPaymentMethods(GETPOST('mode_reglement_id','int'));
@@ -174,7 +174,7 @@ if (empty($reshook))
 		if ($result < 0) setEventMessages($object->error, $object->errors, 'errors');
 	}
 
-	// date de livraison
+	// date of delivery
 	if ($action == 'setdate_livraison' && $user->rights->fournisseur->commande->creer)
 	{
 		$result=$object->set_date_livraison($user,$datelivraison);
@@ -248,7 +248,7 @@ if (empty($reshook))
 	{
 		$ret=$object->classifyBilled();
 		if ($ret < 0) {
-			setEventMessage($object->error, 'errors');
+			setEventMessages($object->error, $object->errors, 'errors');
 		}
 	}
 
@@ -295,27 +295,27 @@ if (empty($reshook))
 
 	    if (GETPOST('prod_entry_mode')=='free' && GETPOST('price_ht') < 0 && $qty < 0)
 	    {
-	        setEventMessage($langs->trans('ErrorBothFieldCantBeNegative', $langs->transnoentitiesnoconv('UnitPrice'), $langs->transnoentitiesnoconv('Qty')), 'errors');
+	        setEventMessages($langs->trans('ErrorBothFieldCantBeNegative', $langs->transnoentitiesnoconv('UnitPrice'), $langs->transnoentitiesnoconv('Qty')), null, 'errors');
 	        $error++;
 	    }
 	    if (GETPOST('prod_entry_mode')=='free'  && ! GETPOST('idprodfournprice') && GETPOST('type') < 0)
 	    {
-	        setEventMessage($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv('Type')), 'errors');
+	        setEventMessages($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv('Type')), null, 'errors');
 	        $error++;
 	    }
 	    if (GETPOST('prod_entry_mode')=='free' && GETPOST('price_ht')==='' && GETPOST('price_ttc')==='') // Unit price can be 0 but not ''
 	    {
-	        setEventMessage($langs->trans($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv('UnitPrice'))), 'errors');
+	        setEventMessages($langs->trans($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv('UnitPrice'))), null, 'errors');
 	        $error++;
 	    }
 	    if (GETPOST('prod_entry_mode')=='free' && ! GETPOST('dp_desc'))
 	    {
-	        setEventMessage($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv('Description')), 'errors');
+	        setEventMessages($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv('Description')), null, 'errors');
 	        $error++;
 	    }
 	    if (! GETPOST('qty'))
 	    {
-	        setEventMessage($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv('Qty')), 'errors');
+	        setEventMessages($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv('Qty')), null, 'errors');
 	        $error++;
 	    }
 
@@ -384,7 +384,7 @@ if (empty($reshook))
 	    		// Quantity too low
 	    		$error++;
 	    		$langs->load("errors");
-	    		setEventMessage($langs->trans("ErrorQtyTooLowForThisSupplier"), 'errors');
+	    		setEventMessages($langs->trans("ErrorQtyTooLowForThisSupplier"), null, 'errors');
 	    	}
 	    }
 	    else if((GETPOST('price_ht')!=='' || GETPOST('price_ttc')!=='') && empty($error))
@@ -481,7 +481,7 @@ if (empty($reshook))
 	}
 
 	/*
-	 *	Mise a jour	d'une ligne	dans la	commande
+	 *	Updating a line in the order
 	 */
 	if ($action == 'updateline' && $user->rights->fournisseur->commande->creer &&	! GETPOST('cancel'))
 	{
@@ -675,7 +675,7 @@ if (empty($reshook))
 	        if (! $idwarehouse || $idwarehouse == -1)
 	        {
 	            $error++;
-	            setEventMessage($langs->trans('ErrorFieldRequired',$langs->transnoentitiesnoconv("Warehouse")), 'errors');
+	            setEventMessages($langs->trans('ErrorFieldRequired',$langs->transnoentitiesnoconv("Warehouse")), null, 'errors');
 	            $action='';
 	        }
 	    }
@@ -764,7 +764,7 @@ if (empty($reshook))
 	{
 		if (1==0 && ! GETPOST('clone_content') && ! GETPOST('clone_receivers'))
 		{
-			setEventMessage($langs->trans("NoCloneOptionsSpecified"), 'errors');
+			setEventMessages($langs->trans("NoCloneOptionsSpecified"), null, 'errors');
 		}
 		else
 		{
@@ -857,8 +857,8 @@ if (empty($reshook))
 	    $upload_dir =	$conf->fournisseur->commande->dir_output;
 	    $file =	$upload_dir	. '/' .	GETPOST('file');
 	    $ret=dol_delete_file($file,0,0,0,$object);
-	    if ($ret) setEventMessage($langs->trans("FileWasRemoved", GETPOST('urlfile')));
-	    else setEventMessage($langs->trans("ErrorFailToDeleteFile", GETPOST('urlfile')), 'errors');
+	    if ($ret) setEventMessages($langs->trans("FileWasRemoved", GETPOST('urlfile')), null, 'mesgs');
+	    else setEventMessages($langs->trans("ErrorFailToDeleteFile", GETPOST('urlfile')), null, 'errors');
 	}
 
 	if ($action == 'update_extras')
@@ -910,7 +910,7 @@ if (empty($reshook))
 
 	    if ($socid <1)
 	    {
-		    setEventMessage($langs->trans('ErrorFieldRequired',$langs->transnoentities('Supplier')), 'errors');
+		    setEventMessages($langs->trans('ErrorFieldRequired',$langs->transnoentities('Supplier')), null, 'errors');
 	    	$action='create';
 	    	$error++;
 	    }
@@ -1190,7 +1190,7 @@ if (empty($reshook))
 	                $mailfile = new CMailFile($subject,$sendto,$from,$message,$filepath,$mimetype,$filename,$sendtocc,'',$deliveryreceipt,-1);
 	                if ($mailfile->error)
 	                {
-	                	setEventMessage($mailfile->error, 'errors');
+	                	setEventMessages($mailfile->error, $mailfile->errors, 'errors');
 	                }
 	                else
 	                {
@@ -1198,7 +1198,7 @@ if (empty($reshook))
 	                    if ($result)
 	                    {
 	                    	$mesg=$langs->trans('MailSuccessfulySent',$mailfile->getValidAddress($from,2),$mailfile->getValidAddress($sendto,2));		// Must not contain "
-	                    	setEventMessage($mesg);
+	                    	setEventMessages($mesg, null, 'mesgs');
 
 	                        $error=0;
 
@@ -1219,7 +1219,7 @@ if (empty($reshook))
 
 	                        if ($error)
 	                        {
-	                            setEventMessage($object->error, 'errors');
+	                            setEventMessages($object->error, $object->errors, 'errors');
 	                        }
 	                        else
 	                        {
@@ -1242,7 +1242,7 @@ if (empty($reshook))
 	                            $mesg = 'No mail sent. Feature is disabled by option MAIN_DISABLE_ALL_MAILS';
 	                        }
 
-	                        setEventMessage($mesg, 'errors');
+	                        setEventMessages($mesg, null, 'errors');
 	                    }
 	                }
 	/*            }
@@ -1257,14 +1257,14 @@ if (empty($reshook))
 	        else
 	        {
 	            $langs->load("errors");
-	            setEventMessage($langs->trans('ErrorCantReadFile',$file), 'errors');
+	            setEventMessages($langs->trans('ErrorCantReadFile',$file), null, 'errors');
 	            dol_syslog('Failed to read file: '.$file);
 	        }
 	    }
 	    else
 	    {
 	        $langs->load("other");
-	        setEventMessage($langs->trans('ErrorFailedToReadEntity',$langs->trans("Invoice")), 'errors');
+	        setEventMessages($langs->trans('ErrorFailedToReadEntity',$langs->trans("Invoice")), null, 'errors');
 	        dol_syslog('Impossible de lire les donnees de la facture. Le fichier facture n\'a peut-etre pas ete genere.');
 	    }
 	}
@@ -1290,11 +1290,11 @@ if (empty($reshook))
 
 	    //Is sync supplier web services module activated? and everything filled?
 	    if (empty($conf->syncsupplierwebservices->enabled)) {
-	        setEventMessage($langs->trans("WarningModuleNotActive",$langs->transnoentities("Module2650Name")));
+	        setEventMessages($langs->trans("WarningModuleNotActive",$langs->transnoentities("Module2650Name")), null, 'mesgs');
 	    } else if (empty($ws_url) || empty($ws_key)) {
-	        setEventMessage($langs->trans("ErrorWebServicesFieldsRequired"), 'errors');
+	        setEventMessages($langs->trans("ErrorWebServicesFieldsRequired"), null, 'errors');
 	    } else if (empty($ws_user) || empty($ws_password) || empty($ws_thirdparty)) {
-	        setEventMessage($langs->trans("ErrorFieldsRequired"), 'errors');
+	        setEventMessages($langs->trans("ErrorFieldsRequired"),null, 'errors');
 	    }
 	    else
 	    {
@@ -1349,15 +1349,15 @@ if (empty($reshook))
 
 	        if (empty($result_order["result"]["result_code"])) //No result, check error str
 	        {
-	            setEventMessage($langs->trans("SOAPError")." '".$soapclient_order->error_str."'", 'errors');
+	            setEventMessages($langs->trans("SOAPError")." '".$soapclient_order->error_str."'", null, 'errors');
 	        }
 	        else if ($result_order["result"]["result_code"] != "OK") //Something went wrong
 	        {
-	            setEventMessage($langs->trans("SOAPError")." '".$result_order["result"]["result_code"]."' - '".$result_order["result"]["result_label"]."'", 'errors');
+	            setEventMessages($langs->trans("SOAPError")." '".$result_order["result"]["result_code"]."' - '".$result_order["result"]["result_label"]."'", null, 'errors');
 	        }
 	        else
 	        {
-	            setEventMessage($langs->trans("RemoteOrderRef")." ".$result_order["ref"], 'mesgs');
+	            setEventMessages($langs->trans("RemoteOrderRef")." ".$result_order["ref"], null, 'mesgs');
 	        }
 	    }
 	}
@@ -1382,11 +1382,11 @@ if (empty($reshook))
 				if ($object->error == 'DB_ERROR_RECORD_ALREADY_EXISTS')
 				{
 					$langs->load("errors");
-					setEventMessage($langs->trans("ErrorThisContactIsAlreadyDefinedAsThisType"), 'errors');
+					setEventMessages($langs->trans("ErrorThisContactIsAlreadyDefinedAsThisType"), null, 'errors');
 				}
 				else
 				{
-					setEventMessage($object->error, 'errors');
+					setEventMessages($object->error, $object->errors, 'errors');
 				}
 			}
 		}
@@ -2443,11 +2443,11 @@ elseif (! empty($object->id))
 
         //Is everything filled?
         if (empty($ws_url) || empty($ws_key)) {
-            setEventMessage($langs->trans("ErrorWebServicesFieldsRequired"), 'errors');
+            setEventMessages($langs->trans("ErrorWebServicesFieldsRequired"), null, 'errors');
             $mode = "init";
             $error_occurred = true; //Don't allow to set the user/pass if thirdparty fields are not filled
         } else if ($mode != "init" && (empty($ws_user) || empty($ws_password))) {
-            setEventMessage($langs->trans("ErrorFieldsRequired"), 'errors');
+            setEventMessages($langs->trans("ErrorFieldsRequired"), null, 'errors');
             $mode = "init";
         }
 
@@ -2511,7 +2511,7 @@ elseif (! empty($object->id))
                 $ws_thirdparty = $result_user["user"]["fk_thirdparty"];
                 if (empty($ws_thirdparty))
                 {
-                    setEventMessage($langs->trans("RemoteUserMissingAssociatedSoc"), 'errors');
+                    setEventMessages($langs->trans("RemoteUserMissingAssociatedSoc"), null, 'errors');
                     $error_occurred = true;
                 }
                 else
@@ -2534,7 +2534,7 @@ elseif (! empty($object->id))
                         $result_product = $soapclient_product->call("getProductOrService", $ws_parameters, $ws_ns, '');
                         if (!$result_product)
                         {
-                            setEventMessage($line_id.$langs->trans("SOAPError")." ".$soapclient_product->error_str." - ".$soapclient_product->response, 'errors');
+                            setEventMessages($line_id.$langs->trans("SOAPError")." ".$soapclient_product->error_str." - ".$soapclient_product->response, null, 'errors');
                             $error_occurred = true;
                             break;
                         }
@@ -2543,17 +2543,17 @@ elseif (! empty($object->id))
                         $status_code = $result_product["result"]["result_code"];
                         if (empty($status_code)) //No result, check error str
                         {
-                            setEventMessage($langs->trans("SOAPError")." '".$soapclient_order->error_str."'", 'errors');
+                            setEventMessages($langs->trans("SOAPError")." '".$soapclient_order->error_str."'", null, 'errors');
                         }
                         else if ($status_code != "OK") //Something went wrong
                         {
                             if ($status_code == "NOT_FOUND")
                             {
-                                setEventMessage($line_id.$langs->trans("SupplierMissingRef")." '".$ref_supplier."'", 'warnings');
+                                setEventMessages($line_id.$langs->trans("SupplierMissingRef")." '".$ref_supplier."'", null, 'warnings');
                             }
                             else
                             {
-                                setEventMessage($line_id.$langs->trans("ResponseNonOK")." '".$status_code."' - '".$result_product["result"]["result_label"]."'", 'errors');
+                                setEventMessages($line_id.$langs->trans("ResponseNonOK")." '".$status_code."' - '".$result_product["result"]["result_label"]."'", null, 'errors');
                                 $error_occurred = true;
                                 break;
                             }
@@ -2578,12 +2578,12 @@ elseif (! empty($object->id))
                         }
 
                         if ($local_price != NULL && $local_price != $supplier_price) {
-                            setEventMessage($line_id.$langs->trans("RemotePriceMismatch")." ".$supplier_price." - ".$local_price, 'warnings');
+                            setEventMessages($line_id.$langs->trans("RemotePriceMismatch")." ".$supplier_price." - ".$local_price, null, 'warnings');
                         }
 
                         // Check if is in sale
                         if (empty($result_product["product"]["status_tosell"])) {
-                            setEventMessage($line_id.$langs->trans("ProductStatusNotOnSellShort")." '".$ref_supplier."'", 'warnings');
+                            setEventMessages($line_id.$langs->trans("ProductStatusNotOnSellShort")." '".$ref_supplier."'", null, 'warnings');
                         }
                     }
                 }
@@ -2591,17 +2591,17 @@ elseif (! empty($object->id))
             }
             elseif ($user_status_code == "PERMISSION_DENIED")
             {
-                setEventMessage($langs->trans("RemoteUserNotPermission"), 'errors');
+                setEventMessages($langs->trans("RemoteUserNotPermission"), null, 'errors');
                 $error_occurred = true;
             }
             elseif ($user_status_code == "BAD_CREDENTIALS")
             {
-                setEventMessage($langs->trans("RemoteUserBadCredentials"), 'errors');
+                setEventMessages($langs->trans("RemoteUserBadCredentials"), null, 'errors');
                 $error_occurred = true;
             }
             else
             {
-                setEventMessage($langs->trans("ResponseNonOK")." '".$user_status_code."'", 'errors');
+                setEventMessages($langs->trans("ResponseNonOK")." '".$user_status_code."'", null, 'errors');
                 $error_occurred = true;
             }
 
diff --git a/htdocs/fourn/commande/contact.php b/htdocs/fourn/commande/contact.php
index b8eabb9be6c..8ced1e9844c 100644
--- a/htdocs/fourn/commande/contact.php
+++ b/htdocs/fourn/commande/contact.php
@@ -46,7 +46,7 @@ $object = new CommandeFournisseur($db);
 
 
 /*
- * Ajout d'un nouveau contact
+ * Add a new contact
  */
 
 if ($action == 'addcontact' && $user->rights->fournisseur->commande->creer)
@@ -69,16 +69,16 @@ if ($action == 'addcontact' && $user->rights->fournisseur->commande->creer)
 		if ($object->error == 'DB_ERROR_RECORD_ALREADY_EXISTS')
 		{
 			$langs->load("errors");
-			setEventMessage($langs->trans("ErrorThisContactIsAlreadyDefinedAsThisType"), 'errors');
+			setEventMessages($langs->trans("ErrorThisContactIsAlreadyDefinedAsThisType"), null, 'errors');
 		}
 		else
 		{
-			setEventMessage($object->error, 'errors');
+			setEventMessages($object->error, $object->errors, 'errors');
 		}
 	}
 }
 
-// bascule du statut d'un contact
+// Toggle the status of a contact
 else if ($action == 'swapstatut' && $user->rights->fournisseur->commande->creer)
 {
 	if ($object->fetch($id))
@@ -91,7 +91,7 @@ else if ($action == 'swapstatut' && $user->rights->fournisseur->commande->creer)
 	}
 }
 
-// Efface un contact
+// Deleting a contact
 else if ($action == 'deletecontact' && $user->rights->fournisseur->commande->creer)
 {
 	$object->fetch($id);
@@ -155,7 +155,7 @@ if ($id > 0 || ! empty($ref))
 		print '</td>';
 		print '</tr>';
 
-		// Fournisseur
+		// Supplier
 		print '<tr><td>'.$langs->trans("Supplier")."</td>";
 		print '<td colspan="2">'.$soc->getNomUrl(1,'supplier').'</td>';
 		print '</tr>';
@@ -172,7 +172,7 @@ if ($id > 0 || ! empty($ref))
 	}
 	else
 	{
-		// Contrat non trouv
+		// Contact not found
 		print "ErrorRecordNotFound";
 	}
 }
diff --git a/htdocs/fourn/commande/dispatch.php b/htdocs/fourn/commande/dispatch.php
index 57ee36eb8a3..fd44b987f94 100644
--- a/htdocs/fourn/commande/dispatch.php
+++ b/htdocs/fourn/commande/dispatch.php
@@ -148,7 +148,7 @@ if ($action == 'dispatch' && $user->rights->fournisseur->commande->receptionner)
 				{
 					dol_syslog('No dispatch for line '.$key.' as no warehouse choosed');
 					$text = $langs->transnoentities('Warehouse').', '.$langs->transnoentities('Line').' ' .($numline);
-					setEventMessage($langs->trans('ErrorFieldRequired',$text), 'errors');
+					setEventMessages($langs->trans('ErrorFieldRequired',$text), null, 'errors');
 					$error++;
 				}
 
@@ -187,7 +187,7 @@ if ($action == 'dispatch' && $user->rights->fournisseur->commande->receptionner)
 				{
 					dol_syslog('No dispatch for line '.$key.' as no warehouse choosed');
 					$text = $langs->transnoentities('Warehouse').', '.$langs->transnoentities('Line').' ' .($numline).'-'.($reg[1]+1);
-					setEventMessage($langs->trans('ErrorFieldRequired',$text), 'errors');
+					setEventMessages($langs->trans('ErrorFieldRequired',$text), null, 'errors');
 					$error++;
 				}
 
@@ -195,7 +195,7 @@ if ($action == 'dispatch' && $user->rights->fournisseur->commande->receptionner)
 				{
 					dol_syslog('No dispatch for line '.$key.' as serial/eat-by/sellby date are not set');
 					$text = $langs->transnoentities('atleast1batchfield').', '.$langs->transnoentities('Line').' ' .($numline).'-'.($reg[1]+1);
-					setEventMessage($langs->trans('ErrorFieldRequired',$text), 'errors');
+					setEventMessages($langs->trans('ErrorFieldRequired',$text), null, 'errors');
 					$error++;
 				}
 
-- 
GitLab


From 238f9770025da83d3139cc73660d8f00840464c4 Mon Sep 17 00:00:00 2001
From: Ion Agorria <ion@agorria.com>
Date: Tue, 8 Dec 2015 15:45:24 +0100
Subject: [PATCH 130/197] JS error preventing hiding of dates at object line

The "if (CKEDITOR)" gives "ReferenceError: CKEDITOR is not defined" at JS console causing the next code to don't execute, is this code obsolete?
---
 htdocs/core/tpl/objectline_create.tpl.php | 6 ------
 1 file changed, 6 deletions(-)

diff --git a/htdocs/core/tpl/objectline_create.tpl.php b/htdocs/core/tpl/objectline_create.tpl.php
index d7949fa1d52..a2f4ebd4d69 100644
--- a/htdocs/core/tpl/objectline_create.tpl.php
+++ b/htdocs/core/tpl/objectline_create.tpl.php
@@ -517,12 +517,6 @@ jQuery(document).ready(function() {
 		{
 			/* focus work on a standard textarea but not if field was replaced with CKEDITOR */
 			jQuery('#dp_desc').focus();
-			/* focus if CKEDITOR */
-			if (CKEDITOR)
-			{
-				var editor = CKEDITOR.instances['dp_desc'];
-   				if (editor) { editor.focus(); }
-			}
 		}
 		if (jQuery('#select_type').val() == '0') jQuery('#trlinefordates').hide();
 		else jQuery('#trlinefordates').show();
-- 
GitLab


From 898f637457dbdb7f023e002b6f1b03c83a12e3db Mon Sep 17 00:00:00 2001
From: BENKE Charlie <charles.fr@benke.fr>
Date: Tue, 8 Dec 2015 18:02:25 +0100
Subject: [PATCH 131/197] Update fichinter.php

---
 htdocs/admin/fichinter.php | 1 -
 1 file changed, 1 deletion(-)

diff --git a/htdocs/admin/fichinter.php b/htdocs/admin/fichinter.php
index 50d2bf3cead..fd34d01f620 100644
--- a/htdocs/admin/fichinter.php
+++ b/htdocs/admin/fichinter.php
@@ -578,4 +578,3 @@ print '<br>';
 
 llxFooter();
 $db->close();
-
-- 
GitLab


From 4885c64ab3ff518f2878085c669ff786614ee0a7 Mon Sep 17 00:00:00 2001
From: Andreas Pachler <apachler@paan-systems.com>
Date: Wed, 9 Dec 2015 09:32:21 +0100
Subject: [PATCH 132/197] added social charges for Austria

---
 htdocs/install/mysql/data/llx_c_chargesociales.sql | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/htdocs/install/mysql/data/llx_c_chargesociales.sql b/htdocs/install/mysql/data/llx_c_chargesociales.sql
index 892e51d0fba..d598f6fef60 100644
--- a/htdocs/install/mysql/data/llx_c_chargesociales.sql
+++ b/htdocs/install/mysql/data/llx_c_chargesociales.sql
@@ -55,3 +55,15 @@ insert into llx_c_chargesociales (id, libelle, deductible, active, code, fk_pays
 insert into llx_c_chargesociales (id, libelle, deductible, active, code, fk_pays) values (220, 'Prime existence',    		1,1,'TAXBEPRIEXI' ,'2');
 insert into llx_c_chargesociales (id, libelle, deductible, active, code, fk_pays) values (230, 'Precompte immobilier',      1,1,'TAXBEPREIMMO','2');
 
+--
+-- Austria
+--
+insert into llx_c_chargesociales (id, libelle, deductible, active, code, fk_pays) values (4101, 'Krankenversicherung',				1,1,'TAXATKV'   ,'41');
+insert into llx_c_chargesociales (id, libelle, deductible, active, code, fk_pays) values (4102, 'Unfallversicherung',				1,1,'TAXATUV'   ,'41');
+insert into llx_c_chargesociales (id, libelle, deductible, active, code, fk_pays) values (4103, 'Pensionsversicherung',				1,1,'TAXATPV'   ,'41');
+insert into llx_c_chargesociales (id, libelle, deductible, active, code, fk_pays) values (4104, 'Arbeitslosenversicherung',			1,1,'TAXATAV'   ,'41');
+insert into llx_c_chargesociales (id, libelle, deductible, active, code, fk_pays) values (4105, 'Insolvenzentgeltsicherungsfond',   1,1,'TAXATIESG' ,'41');
+insert into llx_c_chargesociales (id, libelle, deductible, active, code, fk_pays) values (4106, 'Wohnbauförderung',					1,1,'TAXATWF'   ,'41');
+insert into llx_c_chargesociales (id, libelle, deductible, active, code, fk_pays) values (4107, 'Arbeiterkammerumlage',				1,1,'TAXATAK'   ,'41');
+insert into llx_c_chargesociales (id, libelle, deductible, active, code, fk_pays) values (4108, 'Mitarbeitervorsorgekasse',			1,1,'TAXATMVK'  ,'41');
+insert into llx_c_chargesociales (id, libelle, deductible, active, code, fk_pays) values (4109, 'Familienlastenausgleichsfond',		1,1,'TAXATFLAF' ,'41');
-- 
GitLab


From ea1a81f5f4dc8b02d47a8d0bf67ce594f6a44724 Mon Sep 17 00:00:00 2001
From: Florian HENRY <florian.henry@open-concept.pro>
Date: Wed, 9 Dec 2015 11:53:38 +0100
Subject: [PATCH 133/197] FIX : Comptability when multiple account charts

---
 htdocs/accountancy/customer/list.php | 16 +++++++++++-----
 htdocs/accountancy/supplier/list.php |  4 ++--
 2 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/htdocs/accountancy/customer/list.php b/htdocs/accountancy/customer/list.php
index 820596de166..4800737528d 100644
--- a/htdocs/accountancy/customer/list.php
+++ b/htdocs/accountancy/customer/list.php
@@ -87,10 +87,10 @@ if (! $user->rights->accounting->ventilation->dispatch)
 	accessforbidden();
 
 $formventilation = new FormVentilation($db);
-
 $accounting = new AccountingAccount($db);
-$aarowid_s = $accounting->fetch('', ACCOUNTING_SERVICE_SOLD_ACCOUNT);
-$aarowid_p = $accounting->fetch('', ACCOUNTING_PRODUCT_SOLD_ACCOUNT);
+$aarowid_s = $accounting->fetch('', $conf->global->ACCOUNTING_SERVICE_SOLD_ACCOUNT,1);
+$aarowid_p = $accounting->fetch('',$conf->global->ACCOUNTING_PRODUCT_SOLD_ACCOUNT,1);
+
 
 // Purge search criteria
 if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) {
@@ -278,6 +278,8 @@ if ($result) {
 		
 		$code_sell_p_notset = '';
 		$objp->aarowid_suggest = $objp->aarowid;
+		
+		
 		if (! empty($objp->code_sell)) {
 			$objp->code_sell_p = $objp->code_sell;
 		} else {
@@ -290,12 +292,14 @@ if ($result) {
 		}
 		if ($objp->type_l == 1) {
 			$objp->code_sell_l = (! empty($conf->global->ACCOUNTING_SERVICE_SOLD_ACCOUNT) ? $conf->global->ACCOUNTING_SERVICE_SOLD_ACCOUNT : $langs->trans("CodeNotDef"));
-			if ($objp->aarowid == '')
+			if ($objp->aarowid == '') {
 				$objp->aarowid_suggest = $aarowid_s;
+			}
 		} elseif ($objp->type_l == 0) {
 			$objp->code_sell_l = (! empty($conf->global->ACCOUNTING_PRODUCT_SOLD_ACCOUNT) ? $conf->global->ACCOUNTING_PRODUCT_SOLD_ACCOUNT : $langs->trans("CodeNotDef"));
-			if ($objp->aarowid == '')
+			if ($objp->aarowid == '') {
 				$objp->aarowid_suggest = $aarowid_p;
+			}
 		}
 		if ($objp->code_sell_l != $objp->code_sell_p)
 			$code_sell_p_l_differ = 'color:red';
@@ -311,10 +315,12 @@ if ($result) {
 		$product_static->id = $objp->product_id;
 		$product_static->type = $objp->type;
 		print '<td>';
+		
 		if ($product_static->id)
 			print $product_static->getNomUrl(1);
 		else
 			print '&nbsp;';
+		
 		print '</td>';
 		
 		print '<td style="' . $code_sell_p_l_differ . '">' . dol_trunc($objp->product_label, 24) . '</td>';
diff --git a/htdocs/accountancy/supplier/list.php b/htdocs/accountancy/supplier/list.php
index 891d8b1439e..c94c8612535 100644
--- a/htdocs/accountancy/supplier/list.php
+++ b/htdocs/accountancy/supplier/list.php
@@ -94,8 +94,8 @@ $formventilation = new FormVentilation($db);
 $accounting = new AccountingAccount($db);
 
 // TODO: we should need to check if result is a really exist accountaccount rowid.....
-$aarowid_s = $accounting->fetch('', ACCOUNTING_SERVICE_BUY_ACCOUNT);
-$aarowid_p = $accounting->fetch('', ACCOUNTING_PRODUCT_BUY_ACCOUNT);
+$aarowid_s = $accounting->fetch('', $conf->global->ACCOUNTING_SERVICE_BUY_ACCOUNT,1);
+$aarowid_p = $accounting->fetch('', $conf->global->ACCOUNTING_PRODUCT_BUY_ACCOUNT,1);
 
 // Purge search criteria
 if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) // Both test are required to be compatible with all browsers
-- 
GitLab


From 96a95d6ae18f3afec8970429c01a5154e3b85001 Mon Sep 17 00:00:00 2001
From: Florian HENRY <florian.henry@open-concept.pro>
Date: Wed, 9 Dec 2015 12:55:08 +0100
Subject: [PATCH 134/197] Debug accountancy on 3.9

---
 htdocs/accountancy/bookkeeping/list.php       |  29 ++++-
 .../accountancy/class/bookkeeping.class.php   |  30 +++++
 .../class/html.formventilation.class.php      |   2 +-
 htdocs/accountancy/journal/bankjournal.php    | 114 ++++++------------
 .../accountancy/journal/purchasesjournal.php  |   4 +-
 htdocs/core/lib/report.lib.php                |  12 +-
 .../install/mysql/migration/3.8.0-3.9.0.sql   |   3 +
 .../tables/llx_accounting_bookkeeping.sql     |   2 +-
 8 files changed, 112 insertions(+), 84 deletions(-)

diff --git a/htdocs/accountancy/bookkeeping/list.php b/htdocs/accountancy/bookkeeping/list.php
index b9164329031..ec108738647 100644
--- a/htdocs/accountancy/bookkeeping/list.php
+++ b/htdocs/accountancy/bookkeeping/list.php
@@ -30,6 +30,7 @@ require '../../main.inc.php';
 require_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php';
 require_once DOL_DOCUMENT_ROOT.'/accountancy/class/html.formventilation.class.php';
 require_once DOL_DOCUMENT_ROOT.'/accountancy/class/bookkeeping.class.php';
+require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
 
 // Langs
 $langs->load("accountancy");
@@ -52,6 +53,7 @@ if ($sortfield == "")
 $offset = $conf->liste_limit * $page;
 
 $formventilation = new FormVentilation($db);
+$formother = new FormOther($db);
 
 if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) // Both test are required to be compatible with all browsers
 {
@@ -77,7 +79,20 @@ if ($action == 'delbookkeeping') {
 			setEventMessages($object->error, $object->errors, 'errors');
 		}
 	}
-} // Export
+}
+elseif ($action == 'delbookkeepingyear') {
+	
+	$delyear = GETPOST('delyear', 'int');
+	
+	if (! empty($delyear)) {
+		$object = new BookKeeping($db);
+		$result = $object->delete_by_year($delyear);
+		Header("Location: list.php");
+		if ($result < 0) {
+			setEventMessages($object->error, $object->errors, 'errors');
+		}
+	}
+}// Export
 else if ($action == 'export_csv') {
 	
 	header('Content-Type: text/csv');
@@ -147,7 +162,7 @@ else {
 		
 		print_barre_liste($langs->trans("Bookkeeping"), $page, $_SERVER["PHP_SELF"], "", $sortfield, $sortorder, '', $num);
 		
-		print '<form name="add" action="' . $_SERVER["PHP_SELF"] . '" method="POST">';
+		/*print '<form name="add" action="' . $_SERVER["PHP_SELF"] . '" method="POST">';
 		print '<input type="hidden" name="token" value="' . $_SESSION['newtoken'] . '">';
 		print '<input type="hidden" name="action" value="delbookkeeping">';
 		
@@ -155,6 +170,16 @@ else {
 		
 		print '<div class="inline-block divButAction"><input type="submit" class="butAction" value="' . $langs->trans("DelBookKeeping") . '" /></div>';
 		
+		print '</form>';*/
+		
+		print '<form name="add" action="' . $_SERVER["PHP_SELF"] . '" method="POST">';
+		print '<input type="hidden" name="token" value="' . $_SESSION['newtoken'] . '">';
+		print '<input type="hidden" name="action" value="delbookkeepingyear">';
+		
+		print $formother->select_year(GETPOST('delyear'),'delyear');
+		
+		print '<div class="inline-block divButAction"><input type="submit" class="butAction" value="' . $langs->trans("DelBookKeeping") . '" /></div>';
+		
 		print '</form>';
 		
 		print '<form name="add" action="' . $_SERVER["PHP_SELF"] . '" method="POST">';
diff --git a/htdocs/accountancy/class/bookkeeping.class.php b/htdocs/accountancy/class/bookkeeping.class.php
index 141b122690c..2eb952a42a3 100644
--- a/htdocs/accountancy/class/bookkeeping.class.php
+++ b/htdocs/accountancy/class/bookkeeping.class.php
@@ -372,6 +372,36 @@ class BookKeeping extends CommonObject
 		$this->db->commit();
 		return 1;
 	}
+	
+	/**
+	 * Delete bookkepping by importkey
+	 *
+	 * @param	string 	$importkey		Import key
+	 * @return	int						Result
+	 */
+	function delete_by_year($delyear) {
+		$this->db->begin();
+	
+		// first check if line not yet in bookkeeping
+		$sql = "DELETE";
+		$sql .= " FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping ";
+		$sql .= " WHERE YEAR(doc_date) = ".$delyear;
+	
+		$resql = $this->db->query($sql);
+	
+		if (! $resql) {
+			$this->errors[] = "Error " . $this->db->lasterror();
+			foreach ( $this->errors as $errmsg ) {
+				dol_syslog(get_class($this) . "::delete " . $errmsg, LOG_ERR);
+				$this->error .= ($this->error ? ', ' . $errmsg : $errmsg);
+			}
+			$this->db->rollback();
+			return - 1;
+		}
+	
+		$this->db->commit();
+		return 1;
+	}
 
 	/**
 	 *	Create object into database
diff --git a/htdocs/accountancy/class/html.formventilation.class.php b/htdocs/accountancy/class/html.formventilation.class.php
index de94d645c92..f92f5b3ab88 100644
--- a/htdocs/accountancy/class/html.formventilation.class.php
+++ b/htdocs/accountancy/class/html.formventilation.class.php
@@ -70,7 +70,7 @@ class FormVentilation extends Form
 					$selected = ' selected ';
 				}
 
-				$out .= '<OPTION value="' . $obj->import_key . '"' . $selected . '>' . $obj->import_key . '</OPTION>';
+				$out .= '<OPTION value="' . $obj->import_key . '"' . $selected . '>' . dol_print_date($obj->import_key,'dayhourtext') . '</OPTION>';
 
 				$i ++;
 			}
diff --git a/htdocs/accountancy/journal/bankjournal.php b/htdocs/accountancy/journal/bankjournal.php
index be136a38b98..34ebcaf43a9 100644
--- a/htdocs/accountancy/journal/bankjournal.php
+++ b/htdocs/accountancy/journal/bankjournal.php
@@ -16,7 +16,7 @@
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License fr more details.
+ * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
@@ -57,7 +57,7 @@ $langs->load("bank");
 $langs->load('bills');
 $langs->load("accountancy");
 
-$id_accountancy_journal = GETPOST('id_account','int');
+$id_bank_account = GETPOST('id_account','int');
 
 $date_startmonth = GETPOST('date_startmonth');
 $date_startday = GETPOST('date_startday');
@@ -70,17 +70,12 @@ $action = GETPOST('action');
 $now = dol_now();
 
 // Security check
-if ($user->societe_id > 0)
+if ($user->societe_id > 0 && empty($id_bank_account))
 	accessforbidden();
 
 /*
  * View
  */
-if (empty($id_accountancy_journal))
-{
-	accessforbidden();
-}
-
 $year_current = strftime("%Y", dol_now());
 $pastmonth = strftime("%m", dol_now()) - 1;
 $pastmonthyear = $year_current;
@@ -107,7 +102,7 @@ $sql .= " FROM " . MAIN_DB_PREFIX . "bank as b";
 $sql .= " JOIN " . MAIN_DB_PREFIX . "bank_account as ba on b.fk_account=ba.rowid";
 $sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "bank_url as bu1 ON bu1.fk_bank = b.rowid AND bu1.type='company'";
 $sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "societe as soc on bu1.url_id=soc.rowid";
-$sql .= " WHERE ba.rowid=".$id_accountancy_journal;
+$sql .= " WHERE ba.rowid=".$id_bank_account;
 if (! empty($conf->multicompany->enabled)) {
 	$sql .= " AND ba.entity = " . $conf->entity;
 }
@@ -125,7 +120,12 @@ $paymentdonstatic = new PaymentDonation($db);
 $paymentvatstatic = new TVA($db);
 $paymentsalstatic = new PaymentSalary($db);
 
-dol_syslog("accountancy/journal/bankjournal.php:: sql=" . $sql, LOG_DEBUG);
+// Get code of finance journal
+$bank_code_journal = new Account($db);
+$result=$bank_code_journal->fetch($id_bank_account);
+$journal=$bank_code_journal->accountancy_journal;
+
+dol_syslog("accountancy/journal/bankjournal.php", LOG_DEBUG);
 $result = $db->query($sql);
 if ($result) {
 
@@ -288,8 +288,10 @@ if ($result) {
  */
 
 // Write bookkeeping
-if ($action == 'writeBookKeeping')
+if ($action == 'writebookkeeping')
 {
+	$now=dol_now();
+	
 	$error = 0;
 	foreach ( $tabpay as $key => $val )
 	{
@@ -309,8 +311,9 @@ if ($action == 'writeBookKeeping')
 			$bookkeeping->sens = ($mt >= 0) ? 'D' : 'C';
 			$bookkeeping->debit = ($mt >= 0 ? $mt : 0);
 			$bookkeeping->credit = ($mt < 0 ? - $mt : 0);
-			$bookkeeping->code_journal = $conf->global->ACCOUNTING_BANK_JOURNAL;
+			$bookkeeping->code_journal = $journal;
 			$bookkeeping->fk_user_author = $user->id;
+			$bookkeeping->date_create=$now;
 
 			if ($tabtype[$key] == 'payment') {
 
@@ -327,7 +330,7 @@ if ($action == 'writeBookKeeping')
 				}
 			} else if ($tabtype[$key] == 'payment_supplier') {
 
-				$sqlmid = 'SELECT facf.facnumber';
+				$sqlmid = 'SELECT facf.ref_supplier,facf.ref';
 				$sqlmid .= " FROM " . MAIN_DB_PREFIX . "facture_fourn facf ";
 				$sqlmid .= " INNER JOIN " . MAIN_DB_PREFIX . "paiementfourn_facturefourn as payfacf ON  payfacf.fk_facturefourn=facf.rowid";
 				$sqlmid .= " INNER JOIN " . MAIN_DB_PREFIX . "paiementfourn as payf ON  payfacf.fk_paiementfourn=payf.rowid";
@@ -336,7 +339,7 @@ if ($action == 'writeBookKeeping')
 				$resultmid = $db->query($sqlmid);
 				if ($resultmid) {
 					$objmid = $db->fetch_object($resultmid);
-					$bookkeeping->doc_ref = $objmid->facnumber;
+					$bookkeeping->doc_ref = $objmid->ref_supplier.' ('.$objmid->ref.')';;
 				}
 			}
 
@@ -360,8 +363,9 @@ if ($action == 'writeBookKeeping')
 			$bookkeeping->sens = ($mt < 0) ? 'D' : 'C';
 			$bookkeeping->debit = ($mt < 0 ? - $mt : 0);
 			$bookkeeping->credit = ($mt >= 0) ? $mt : 0;
-			$bookkeeping->code_journal = $conf->global->ACCOUNTING_BANK_JOURNAL;
+			$bookkeeping->code_journal = $journal;
 			$bookkeeping->fk_user_author = $user->id;
+			$bookkeeping->date_create=$now;
 
 			if ($tabtype[$key] == 'sc') {
 				$bookkeeping->code_tiers = '';
@@ -383,7 +387,7 @@ if ($action == 'writeBookKeeping')
 				$bookkeeping->numero_compte = $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER;
 			} else if ($tabtype[$key] == 'payment_supplier') {
 
-				$sqlmid = 'SELECT facf.facnumber';
+				$sqlmid = 'SELECT facf.ref_supplier,facf.ref';
 				$sqlmid .= " FROM " . MAIN_DB_PREFIX . "facture_fourn facf ";
 				$sqlmid .= " INNER JOIN " . MAIN_DB_PREFIX . "paiementfourn_facturefourn as payfacf ON  payfacf.fk_facturefourn=facf.rowid";
 				$sqlmid .= " INNER JOIN " . MAIN_DB_PREFIX . "paiementfourn as payf ON  payfacf.fk_paiementfourn=payf.rowid";
@@ -392,7 +396,7 @@ if ($action == 'writeBookKeeping')
 				$resultmid = $db->query($sqlmid);
 				if ($resultmid) {
 					$objmid = $db->fetch_object($resultmid);
-					$bookkeeping->doc_ref = $objmid->facnumber;
+					$bookkeeping->doc_ref = $objmid->ref_supplier.' ('.$objmid->ref.')';
 				}
 				$bookkeeping->code_tiers = $k;
 				$bookkeeping->numero_compte = $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER;
@@ -433,7 +437,6 @@ if ($action == 'writeBookKeeping')
 if ($action == 'export_csv')
 {
 	$sep = $conf->global->ACCOUNTING_EXPORT_SEPARATORCSV;
-	$journal = $conf->global->ACCOUNTING_BANK_JOURNAL;
 
 	include DOL_DOCUMENT_ROOT.'/accountancy/tpl/export_journal.tpl.php';
 
@@ -443,16 +446,20 @@ if ($action == 'export_csv')
 	{
 		$sep = ";";
 
-		foreach ( $tabpay as $key => $val ) {
+		foreach ($tabpay as $key => $val) 
+		{
 			$date = dol_print_date($db->jdate($val["date"]), '%d%m%Y');
 
 			$companystatic->id = $tabcompany[$key]['id'];
 			$companystatic->name = $tabcompany[$key]['name'];
+			$companystatic->client = $tabcompany[$key]['code_client'];
+			
+			$date = dol_print_date($db->jdate($val["date"]), '%d%m%Y');
 
 			// Bank
 			foreach ( $tabbq[$key] as $k => $mt ) {
 				print $date . $sep;
-				print $bank_journal . $sep;
+				print $journal . $sep;
 				print length_accountg(html_entity_decode($k)) . $sep;
 				print $sep;
 				print ($mt < 0 ? 'C' : 'D') . $sep;
@@ -557,67 +564,26 @@ if ($action == 'export_csv')
 			}
 		}
 	}
-}
-else
+} 
+else 
 {
-
 	$form = new Form($db);
 
-	llxHeader('', $langs->trans("BankJournal"));
+	llxHeader('', $langs->trans("FinanceJournal"));
 
-	$namereport = $langs->trans("BankJournal");
-	$description = $langs->trans("DescBankJournal");
+	$nom = $langs->trans("FinanceJournal" . ' - ' . $journal);
+	$builddate = time();
+	$description = $langs->trans("DescFinanceJournal") . '<br>';
 	$period = $form->select_date($date_start, 'date_start', 0, 0, 0, '', 1, 0, 1) . ' - ' . $form->select_date($date_end, 'date_end', 0, 0, 0, '', 1, 0, 1);
 
-	// Report
-	$h=0;
-	$head[$h][0] = $_SERVER["PHP_SELF"].'?id_account='.$id_accountancy_journal;
-	$head[$h][1] = $langs->trans("Report");
-	$head[$h][2] = 'card';
-
-	dol_fiche_head($head, 'card', $langs->trans("BankJournal"), 0, 'payment');
-
-	print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'?id_account='.$id_accountancy_journal.'">';
-	print '<table width="100%" class="border">';
-
-	// Title
-	print '<tr>';
-	print '<td width="110">'.$langs->trans("ReportName").'</td>';
-	print '<td colspan="3">'.$namereport.'</td>';
-	print '</td>';
-	print '</tr>';
-
-	// Period report
-	print '<tr>';
-	print '<td>'.$langs->trans("ReportPeriod").'</td>';
-	if (! $periodlink) print '<td colspan="3">';
-	else print '<td>';
-	if ($period) print $period;
-	if ($periodlink) print '</td><td colspan="2">'.$periodlink;
-	print '</td>';
-	print '</tr>';
-
-	// Description
-	print '<tr>';
-	print '<td>'.$langs->trans("ReportDescription").'</td>';
-	print '<td colspan="3">'.$description.'</td>';
-	print '</tr>';
-
-	print '<tr>';
-	print '<td colspan="4" align="center"><input type="submit" class="button" name="submit" value="'.$langs->trans("Refresh").'"></td>';
-	print '</tr>';
-
-	print '</table>';
-
-	print '</form>';
-
-	print '</div>';
-	// End report
+	$varlink = 'id_account='.$id_bank_account;
+	report_header($nom, $nomlink, $period, $periodlink, $description, $builddate, $exportlink, array('action' => ''), '', $varlink);
 
+	
 	print '<input type="button" class="button" style="float: right;" value="' . $langs->trans("Export") . '" onclick="launch_export();" />';
 
-	print '<input type="button" class="button" value="' . $langs->trans("WriteBookKeeping") . '" onclick="writeBookKeeping();" />';
-
+	print '<input type="button" class="button" value="' . $langs->trans("WriteBookKeeping") . '" onclick="writebookkeeping();" />';
+	
 	print '
 	<script type="text/javascript">
 		function launch_export() {
@@ -625,8 +591,8 @@ else
 			$("div.fiche div.tabBar form input[type=\"submit\"]").click();
 		    $("div.fiche div.tabBar form input[name=\"action\"]").val("");
 		}
-		function writeBookKeeping() {
-		    $("div.fiche div.tabBar form input[name=\"action\"]").val("writeBookKeeping");
+		function writebookkeeping() {
+		    $("div.fiche div.tabBar form input[name=\"action\"]").val("writebookkeeping");
 			$("div.fiche div.tabBar form input[type=\"submit\"]").click();
 		    $("div.fiche div.tabBar form input[name=\"action\"]").val("");
 		}
diff --git a/htdocs/accountancy/journal/purchasesjournal.php b/htdocs/accountancy/journal/purchasesjournal.php
index 538edaa471d..9d41a7cf07c 100644
--- a/htdocs/accountancy/journal/purchasesjournal.php
+++ b/htdocs/accountancy/journal/purchasesjournal.php
@@ -86,7 +86,7 @@ if (empty($date_start) || empty($date_end)) // We define date_start and date_end
 $p = explode(":", $conf->global->MAIN_INFO_SOCIETE_COUNTRY);
 $idpays = $p[0];
 
-$sql = "SELECT f.rowid, f.ref, f.type, f.datef as df, f.libelle,";
+$sql = "SELECT f.rowid, f.ref, f.type, f.datef as df, f.libelle,f.ref_supplier,";
 $sql .= " fd.rowid as fdid, fd.description, fd.total_ttc, fd.tva_tx, fd.total_ht, fd.tva as total_tva, fd.product_type,";
 $sql .= " s.rowid as socid, s.nom as name, s.code_compta_fournisseur, s.fournisseur,";
 $sql .= " s.code_compta_fournisseur, p.accountancy_code_buy , ct.accountancy_code_buy as account_tva, aa.rowid as fk_compte, aa.account_number as compte, aa.label as label_compte";
@@ -137,7 +137,7 @@ if ($result) {
 		$compta_tva = (! empty($obj->account_tva) ? $obj->account_tva : $cpttva);
 
 		$tabfac[$obj->rowid]["date"] = $obj->df;
-		$tabfac[$obj->rowid]["ref"] = $obj->ref;
+		$tabfac[$obj->rowid]["ref"] = $obj->ref_supplier.' ('.$obj->ref.')';
 		$tabfac[$obj->rowid]["type"] = $obj->type;
 		$tabfac[$obj->rowid]["description"] = $obj->description;
 		$tabfac[$obj->rowid]["fk_facturefourndet"] = $obj->fdid;
diff --git a/htdocs/core/lib/report.lib.php b/htdocs/core/lib/report.lib.php
index 8946449d5ac..9441482d163 100644
--- a/htdocs/core/lib/report.lib.php
+++ b/htdocs/core/lib/report.lib.php
@@ -35,9 +35,10 @@
 *	@param 	string				$exportlink     Link for export or ''
 *	@param		array				$moreparam		Array with list of params to add into form
 *	@param		string				$calcmode		Calculation mode
+*    @param     string              $varlink        Add a variable into the address of the page
 *	@return	void
 */
-function report_header($nom,$variante,$period,$periodlink,$description,$builddate,$exportlink='',$moreparam=array(),$calcmode='')
+function report_header($nom,$variante,$period,$periodlink,$description,$builddate,$exportlink='',$moreparam=array(),$calcmode='', $varlink='')
 {
 	global $langs;
 
@@ -45,14 +46,16 @@ function report_header($nom,$variante,$period,$periodlink,$description,$builddat
 	
 	print "\n\n<!-- debut cartouche rapport -->\n";
 
+	if(! empty($varlink)) $varlink = '?'.$varlink;
+
 	$h=0;
-	$head[$h][0] = $_SERVER["PHP_SELF"];
+	$head[$h][0] = $_SERVER["PHP_SELF"].$varlink;
 	$head[$h][1] = $langs->trans("Report");
 	$head[$h][2] = 'report';
 
 	dol_fiche_head($head, 'report');
 
-	print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'">';
+	print '<form method="POST" action="'.$_SERVER["PHP_SELF"].$varlink.'">';
 	foreach($moreparam as $key => $value)
 	{
 		 print '<input type="hidden" name="'.$key.'" value="'.$value.'">';
@@ -115,7 +118,8 @@ function report_header($nom,$variante,$period,$periodlink,$description,$builddat
 
 	print '</form>';
 
-	print '</div>';
+	dol_fiche_end();
+	
 	print "\n<!-- fin cartouche rapport -->\n\n";
 }
 
diff --git a/htdocs/install/mysql/migration/3.8.0-3.9.0.sql b/htdocs/install/mysql/migration/3.8.0-3.9.0.sql
index 767a7dd0e7a..0dd2575ba55 100755
--- a/htdocs/install/mysql/migration/3.8.0-3.9.0.sql
+++ b/htdocs/install/mysql/migration/3.8.0-3.9.0.sql
@@ -475,3 +475,6 @@ INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, nc
 INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('110', 5209, '', 0, '', 'Manuripi', 1);
 INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('111', 5209, '', 0, '', 'Nicolás Suárez', 1);
 INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('112', 5209, '', 0, '', 'General Federico Román', 1);
+
+
+ALTER TABLE llx_accounting_bookkeeping CHANGE COLUMN doc_ref doc_ref varchar(255) NOT NULL;
\ No newline at end of file
diff --git a/htdocs/install/mysql/tables/llx_accounting_bookkeeping.sql b/htdocs/install/mysql/tables/llx_accounting_bookkeeping.sql
index 5e2be869a9f..660dd4745b3 100644
--- a/htdocs/install/mysql/tables/llx_accounting_bookkeeping.sql
+++ b/htdocs/install/mysql/tables/llx_accounting_bookkeeping.sql
@@ -22,7 +22,7 @@ CREATE TABLE llx_accounting_bookkeeping
   rowid				integer NOT NULL AUTO_INCREMENT PRIMARY KEY,
   doc_date			date NOT NULL,
   doc_type			varchar(30) NOT NULL,	-- facture_client/reglement_client/facture_fournisseur/reglement_fournisseur
-  doc_ref			varchar(30) NOT NULL,	-- facture_client/reglement_client/... reference number
+  doc_ref			varchar(255) NOT NULL,	-- facture_client/reglement_client/... reference number
   fk_doc			integer NOT NULL,		-- facture_client/reglement_client/... rowid
   fk_docdet			integer NOT NULL,		-- facture_client/reglement_client/... line rowid
   code_tiers		varchar(24),			-- code tiers
-- 
GitLab


From ab274ba1e3de71c38d62fa3aa7154a5fd4e88c96 Mon Sep 17 00:00:00 2001
From: braito4 <braito4@hotmail.com>
Date: Wed, 9 Dec 2015 13:10:12 +0100
Subject: [PATCH 135/197] Update list.php

Doble page title
---
 htdocs/resource/list.php | 2 --
 1 file changed, 2 deletions(-)

diff --git a/htdocs/resource/list.php b/htdocs/resource/list.php
index 24e871de03a..27eeb86d8d8 100644
--- a/htdocs/resource/list.php
+++ b/htdocs/resource/list.php
@@ -83,8 +83,6 @@ $form=new Form($db);
 $pagetitle=$langs->trans('ResourcePageIndex');
 llxHeader('',$pagetitle,'');
 
-print load_fiche_titre($pagetitle,'','title_generic');
-
 // Confirmation suppression resource line
 if ($action == 'delete_resource')
 {
-- 
GitLab


From c0862762a567fec7de8099cf5c8d4dd1e37ef16b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rapha=C3=ABl=20Doursenaud?= <rdoursenaud@gpcsolutions.fr>
Date: Wed, 9 Dec 2015 13:23:45 +0100
Subject: [PATCH 136/197] Fix #3930 Removed executable bit

These files doesn't contain executable code and may pose a security
threat.
---
 .gitignore                                          |   0
 build/.gitignore                                    |   0
 build/aps/APP-META-1.1.xml                          |   0
 build/aps/APP-META-1.2.xml                          |   0
 build/aps/README                                    |   0
 build/aps/install.forced.php.install                |   0
 build/debian/conf.php.install                       |   0
 build/debian/control                                |   0
 build/debian/dolibarr.install                       |   0
 build/debian/dolibarr.lintian-overrides             |   0
 build/debian/dolibarr.templates.futur               |   0
 build/debian/install.forced.php.install             |   0
 build/debian/po/POTFILES.in                         |   0
 build/debian/po/fr.po                               |   0
 build/doxygen/doxygen_footer.html                   |   0
 build/doxygen/doxygen_header.html                   |   0
 build/rpm/conf.php                                  |   0
 build/rpm/dolibarr-forrpm.patch                     |   0
 build/rpm/dolibarr.desktop                          |   0
 build/rpm/dolibarr_fedora.spec                      |   0
 build/rpm/dolibarr_generic.spec                     |   0
 build/rpm/dolibarr_mandriva.spec                    |   0
 build/rpm/dolibarr_opensuse.spec                    |   0
 build/rpm/file_contexts.dolibarr                    |   0
 build/rpm/install.forced.php.fedora                 |   0
 build/rpm/install.forced.php.generic                |   0
 build/rpm/install.forced.php.mandriva               |   0
 build/rpm/install.forced.php.opensuse               |   0
 dev/codesniffer/README                              |   0
 dev/codesniffer/php.ini                             |   0
 dev/codesniffer/ruleset.dtd                         |   0
 dev/codesniffer/ruleset.xml                         |   0
 dev/codetemplates/README                            |   0
 dev/codetemplates/codetemplates.dtd                 |   0
 dev/codetemplates/codetemplates.xml                 |   0
 .../emulate_oscommerce/llx_osc_categories.sql       |   0
 .../emulate_oscommerce/llx_osc_customer.key.sql     |   0
 dev/dbmodel/emulate_oscommerce/llx_osc_customer.sql |   0
 dev/dbmodel/emulate_oscommerce/llx_osc_order.sql    |   0
 dev/dbmodel/emulate_oscommerce/llx_osc_product.sql  |   0
 dev/examples/README                                 |   0
 dev/iso-normes/GURULABS-RPM-GUIDE-v1.0.PDF          | Bin
 dev/iso-normes/address_format.txt                   |   0
 dev/iso-normes/banknumber_format.txt                |   0
 dev/iso-normes/xmlexport.txt                        |   0
 dev/phpunit/README                                  |   0
 dev/phpunit/eclipse_setup_for_pti_phpunit.png       | Bin
 dev/skeletons/build_webservice_from_class.php       |   0
 dev/test/testtcpdf.php                              |   0
 doc/images/appicon_128.png                          | Bin
 doc/images/appicon_16.ico                           | Bin
 doc/images/appicon_16.png                           | Bin
 doc/images/appicon_32.png                           | Bin
 doc/images/appicon_48.ico                           | Bin
 doc/images/appicon_64.png                           | Bin
 doc/images/dolibarr_73x73.png                       | Bin
 doc/images/dolibarr_logo.png                        | Bin
 .../core/filemanagerdol/browser/default/browser.css |   0
 .../browser/default/images/Folder.gif               | Bin
 .../browser/default/images/FolderUp.gif             | Bin
 .../browser/default/images/icons/32/ai.gif          | Bin
 .../browser/default/images/icons/32/avi.gif         | Bin
 .../browser/default/images/icons/32/bmp.gif         | Bin
 .../browser/default/images/icons/32/cs.gif          | Bin
 .../default/images/icons/32/default.icon.gif        | Bin
 .../browser/default/images/icons/32/dll.gif         | Bin
 .../browser/default/images/icons/32/doc.gif         | Bin
 .../browser/default/images/icons/32/exe.gif         | Bin
 .../browser/default/images/icons/32/fla.gif         | Bin
 .../browser/default/images/icons/32/gif.gif         | Bin
 .../browser/default/images/icons/32/htm.gif         | Bin
 .../browser/default/images/icons/32/html.gif        | Bin
 .../browser/default/images/icons/32/jpg.gif         | Bin
 .../browser/default/images/icons/32/js.gif          | Bin
 .../browser/default/images/icons/32/mdb.gif         | Bin
 .../browser/default/images/icons/32/mp3.gif         | Bin
 .../browser/default/images/icons/32/pdf.gif         | Bin
 .../browser/default/images/icons/32/png.gif         | Bin
 .../browser/default/images/icons/32/ppt.gif         | Bin
 .../browser/default/images/icons/32/rdp.gif         | Bin
 .../browser/default/images/icons/32/swf.gif         | Bin
 .../browser/default/images/icons/32/swt.gif         | Bin
 .../browser/default/images/icons/32/txt.gif         | Bin
 .../browser/default/images/icons/32/vsd.gif         | Bin
 .../browser/default/images/icons/32/xls.gif         | Bin
 .../browser/default/images/icons/32/xml.gif         | Bin
 .../browser/default/images/icons/32/zip.gif         | Bin
 .../browser/default/images/icons/ai.gif             | Bin
 .../browser/default/images/icons/avi.gif            | Bin
 .../browser/default/images/icons/bmp.gif            | Bin
 .../browser/default/images/icons/cs.gif             | Bin
 .../browser/default/images/icons/default.icon.gif   | Bin
 .../browser/default/images/icons/dll.gif            | Bin
 .../browser/default/images/icons/doc.gif            | Bin
 .../browser/default/images/icons/exe.gif            | Bin
 .../browser/default/images/icons/fla.gif            | Bin
 .../browser/default/images/icons/gif.gif            | Bin
 .../browser/default/images/icons/htm.gif            | Bin
 .../browser/default/images/icons/html.gif           | Bin
 .../browser/default/images/icons/jpg.gif            | Bin
 .../browser/default/images/icons/js.gif             | Bin
 .../browser/default/images/icons/mdb.gif            | Bin
 .../browser/default/images/icons/mp3.gif            | Bin
 .../browser/default/images/icons/pdf.gif            | Bin
 .../browser/default/images/icons/png.gif            | Bin
 .../browser/default/images/icons/ppt.gif            | Bin
 .../browser/default/images/icons/rdp.gif            | Bin
 .../browser/default/images/icons/swf.gif            | Bin
 .../browser/default/images/icons/swt.gif            | Bin
 .../browser/default/images/icons/txt.gif            | Bin
 .../browser/default/images/icons/vsd.gif            | Bin
 .../browser/default/images/icons/xls.gif            | Bin
 .../browser/default/images/icons/xml.gif            | Bin
 .../browser/default/images/icons/zip.gif            | Bin
 .../filemanagerdol/browser/default/js/common.js     |   0
 .../filemanagerdol/browser/default/js/fckxml.js     |   0
 .../core/filemanagerdol/browser/default/spacer.gif  | Bin
 htdocs/core/modules/security/generate/README        |   0
 htdocs/includes/fpdfi/README.txt                    |   0
 .../plugins/colorpicker/jquery.colorpicker.css      |   0
 .../plugins/colorpicker/jquery.colorpicker.js       |   0
 htdocs/includes/jquery/plugins/jcrop/css/Jcrop.gif  | Bin
 .../jquery/plugins/jcrop/css/jquery.Jcrop.css       |   0
 htdocs/includes/jquery/plugins/jcrop/index.html     |   0
 .../jquery/plugins/jcrop/js/jquery.Jcrop.js         |   0
 .../jquery/plugins/jcrop/js/jquery.Jcrop.min.js     |   0
 .../plugins/jnotify/jquery.jnotify-alt.min.css      |   0
 .../jquery/plugins/jnotify/jquery.jnotify.css       |   0
 .../includes/jquery/plugins/jpicker/ChangeLog.txt   |   0
 htdocs/includes/jquery/plugins/jpicker/Example.html |   0
 htdocs/includes/jquery/plugins/jpicker/ReadMe.txt   |   0
 .../jquery/plugins/jpicker/css/jPicker-1.1.6.css    |   0
 .../plugins/jpicker/css/jPicker-1.1.6.min.css       |   0
 .../jquery/plugins/jpicker/images/AlphaBar.png      | Bin
 .../includes/jquery/plugins/jpicker/images/Bars.png | Bin
 .../includes/jquery/plugins/jpicker/images/Maps.png | Bin
 .../jquery/plugins/jpicker/images/NoColor.png       | Bin
 .../jquery/plugins/jpicker/images/bar-opacity.png   | Bin
 .../jquery/plugins/jpicker/images/map-opacity.png   | Bin
 .../jquery/plugins/jpicker/images/mappoint.gif      | Bin
 .../jquery/plugins/jpicker/images/picker.gif        | Bin
 .../plugins/jpicker/images/preview-opacity.png      | Bin
 .../jquery/plugins/jpicker/images/rangearrows.gif   | Bin
 htdocs/includes/jquery/plugins/jpicker/jPicker.css  |   0
 .../jquery/plugins/jpicker/jpicker-1.1.6.js         |   0
 .../jquery/plugins/jpicker/jpicker-1.1.6.min.js     |   0
 .../plugins/jqueryFileTree/images/application.png   | Bin
 .../jquery/plugins/jqueryFileTree/images/code.png   | Bin
 .../jquery/plugins/jqueryFileTree/images/css.png    | Bin
 .../jquery/plugins/jqueryFileTree/images/db.png     | Bin
 .../plugins/jqueryFileTree/images/directory.png     | Bin
 .../jquery/plugins/jqueryFileTree/images/doc.png    | Bin
 .../jquery/plugins/jqueryFileTree/images/file.png   | Bin
 .../jquery/plugins/jqueryFileTree/images/film.png   | Bin
 .../jquery/plugins/jqueryFileTree/images/flash.png  | Bin
 .../plugins/jqueryFileTree/images/folder_open.png   | Bin
 .../jquery/plugins/jqueryFileTree/images/html.png   | Bin
 .../jquery/plugins/jqueryFileTree/images/java.png   | Bin
 .../jquery/plugins/jqueryFileTree/images/linux.png  | Bin
 .../jquery/plugins/jqueryFileTree/images/music.png  | Bin
 .../jquery/plugins/jqueryFileTree/images/pdf.png    | Bin
 .../jquery/plugins/jqueryFileTree/images/php.png    | Bin
 .../plugins/jqueryFileTree/images/picture.png       | Bin
 .../jquery/plugins/jqueryFileTree/images/ppt.png    | Bin
 .../jquery/plugins/jqueryFileTree/images/psd.png    | Bin
 .../jquery/plugins/jqueryFileTree/images/ruby.png   | Bin
 .../jquery/plugins/jqueryFileTree/images/script.png | Bin
 .../plugins/jqueryFileTree/images/spinner.gif       | Bin
 .../jquery/plugins/jqueryFileTree/images/txt.png    | Bin
 .../jquery/plugins/jqueryFileTree/images/xls.png    | Bin
 .../jquery/plugins/jqueryFileTree/images/zip.png    | Bin
 .../plugins/jqueryFileTree/jqueryFileTree.css       |   0
 .../jquery/plugins/jqueryFileTree/jqueryFileTree.js |   0
 .../includes/jquery/plugins/tiptip/jquery.tipTip.js |   0
 .../jquery/plugins/tiptip/jquery.tipTip.min.js      |   0
 htdocs/includes/jquery/plugins/tiptip/tipTip.css    |   0
 htdocs/includes/nusoap/lib/Mail/xmail.dtd           |   0
 htdocs/includes/nusoap/lib/Mail/xmail.xsl           |   0
 .../includes/tcpdf/fonts/dejavusanscondensed.ctg.z  | Bin
 htdocs/includes/tcpdf/fonts/dejavusanscondensed.z   | Bin
 .../includes/tcpdf/fonts/dejavusanscondensedb.ctg.z | Bin
 htdocs/includes/tcpdf/fonts/dejavusanscondensedb.z  | Bin
 .../tcpdf/fonts/dejavusanscondensedbi.ctg.z         | Bin
 htdocs/includes/tcpdf/fonts/dejavusanscondensedbi.z | Bin
 .../includes/tcpdf/fonts/dejavusanscondensedi.ctg.z | Bin
 htdocs/includes/tcpdf/fonts/dejavusanscondensedi.z  | Bin
 .../includes/tcpdf/fonts/dejavusansextralight.ctg.z | Bin
 htdocs/includes/tcpdf/fonts/dejavusansextralight.z  | Bin
 htdocs/includes/tcpdf/fonts/dejavusansmono.ctg.z    | Bin
 htdocs/includes/tcpdf/fonts/dejavusansmono.z        | Bin
 htdocs/includes/tcpdf/fonts/dejavusansmonob.ctg.z   | Bin
 htdocs/includes/tcpdf/fonts/dejavusansmonob.z       | Bin
 htdocs/includes/tcpdf/fonts/dejavusansmonobi.ctg.z  | Bin
 htdocs/includes/tcpdf/fonts/dejavusansmonobi.z      | Bin
 htdocs/includes/tcpdf/fonts/dejavusansmonoi.ctg.z   | Bin
 htdocs/includes/tcpdf/fonts/dejavusansmonoi.z       | Bin
 .../doctemplates/projects/template_project.odt      | Bin
 htdocs/install/mysql/data/llx_c_input_method.sql    |   0
 htdocs/install/mysql/data/llx_c_input_reason.sql    |   0
 htdocs/install/mysql/migration/2.7.0-2.8.0.sql      |   0
 htdocs/install/mysql/migration/2.8.0-2.9.0.sql      |   0
 htdocs/install/mysql/migration/3.0.0-3.1.0.sql      |   0
 htdocs/install/mysql/migration/3.1.0-3.2.0.sql      |   0
 htdocs/install/mysql/migration/3.2.0-3.3.0.sql      |   0
 htdocs/install/mysql/migration/3.3.0-3.4.0.sql      |   0
 htdocs/install/mysql/migration/3.4.0-3.5.0.sql      |   0
 htdocs/install/mysql/tables/llx_resource.key.sql    |   0
 htdocs/install/mysql/tables/llx_resource.sql        |   0
 htdocs/langs/en_US/resource.lang                    |   0
 htdocs/langs/fr_FR/resource.lang                    |   0
 htdocs/opensurvey/img/accept-24.png                 | Bin
 htdocs/opensurvey/img/accept.png                    | Bin
 htdocs/opensurvey/img/add-16.png                    | Bin
 htdocs/opensurvey/img/add-24.png                    | Bin
 htdocs/opensurvey/img/calendar-32.png               | Bin
 htdocs/opensurvey/img/cancel.png                    | Bin
 htdocs/opensurvey/img/chart-32.png                  | Bin
 htdocs/opensurvey/img/fforward.png                  | Bin
 htdocs/opensurvey/img/medaille.png                  | Bin
 htdocs/opensurvey/img/next.png                      | Bin
 htdocs/opensurvey/img/object_opensurvey.png         | Bin
 htdocs/opensurvey/img/previous.png                  | Bin
 htdocs/opensurvey/img/rewind.png                    | Bin
 htdocs/resource/add.php                             |   0
 htdocs/resource/card.php                            |   0
 htdocs/theme/amarok/AUTHOR                          |   0
 htdocs/theme/amarok/ckeditor/config.js              |   0
 htdocs/theme/amarok/img/1downarrow.png              | Bin
 htdocs/theme/amarok/img/1downarrow_selected.png     | Bin
 htdocs/theme/amarok/img/1leftarrow.png              | Bin
 htdocs/theme/amarok/img/1leftarrow_selected.png     | Bin
 htdocs/theme/amarok/img/1rightarrow.png             | Bin
 htdocs/theme/amarok/img/1rightarrow_selected.png    | Bin
 htdocs/theme/amarok/img/1uparrow.png                | Bin
 htdocs/theme/amarok/img/1uparrow_selected.png       | Bin
 htdocs/theme/amarok/img/1updownarrow.png            | Bin
 htdocs/theme/amarok/img/addfile.png                 | Bin
 htdocs/theme/amarok/img/button_edit.png             | Bin
 htdocs/theme/amarok/img/calc.png                    | Bin
 htdocs/theme/amarok/img/calendar.png                | Bin
 htdocs/theme/amarok/img/call.png                    | Bin
 htdocs/theme/amarok/img/call_out.png                | Bin
 htdocs/theme/amarok/img/close.png                   | Bin
 htdocs/theme/amarok/img/delete.png                  | Bin
 htdocs/theme/amarok/img/detail.png                  | Bin
 htdocs/theme/amarok/img/disable.png                 | Bin
 htdocs/theme/amarok/img/edit.png                    | Bin
 htdocs/theme/amarok/img/edit_add.png                | Bin
 htdocs/theme/amarok/img/edit_remove.png             | Bin
 htdocs/theme/amarok/img/editdelete.png              | Bin
 htdocs/theme/amarok/img/error.png                   | Bin
 htdocs/theme/amarok/img/file.png                    | Bin
 htdocs/theme/amarok/img/filenew.png                 | Bin
 htdocs/theme/amarok/img/filter.png                  | Bin
 htdocs/theme/amarok/img/folder-open.png             | Bin
 htdocs/theme/amarok/img/folder.png                  | Bin
 htdocs/theme/amarok/img/grip.png                    | Bin
 htdocs/theme/amarok/img/help.png                    | Bin
 htdocs/theme/amarok/img/helpdoc.png                 | Bin
 htdocs/theme/amarok/img/high.png                    | Bin
 htdocs/theme/amarok/img/history.png                 | Bin
 htdocs/theme/amarok/img/indent1.png                 | Bin
 htdocs/theme/amarok/img/info.png                    | Bin
 htdocs/theme/amarok/img/lock.png                    | Bin
 htdocs/theme/amarok/img/logout.png                  | Bin
 htdocs/theme/amarok/img/mainlevel.gif               | Bin
 htdocs/theme/amarok/img/money.png                   | Bin
 htdocs/theme/amarok/img/next.png                    | Bin
 htdocs/theme/amarok/img/object_account.png          | Bin
 htdocs/theme/amarok/img/object_action.png           | Bin
 htdocs/theme/amarok/img/object_barcode.png          | Bin
 htdocs/theme/amarok/img/object_bill.png             | Bin
 htdocs/theme/amarok/img/object_billa.png            | Bin
 htdocs/theme/amarok/img/object_billd.png            | Bin
 htdocs/theme/amarok/img/object_billr.png            | Bin
 htdocs/theme/amarok/img/object_book.png             | Bin
 htdocs/theme/amarok/img/object_bookmark.png         | Bin
 htdocs/theme/amarok/img/object_calendar.png         | Bin
 htdocs/theme/amarok/img/object_calendarday.png      | Bin
 htdocs/theme/amarok/img/object_calendarweek.png     | Bin
 .../theme/amarok/img/object_category-expanded.png   | Bin
 htdocs/theme/amarok/img/object_category.png         | Bin
 htdocs/theme/amarok/img/object_commercial.png       | Bin
 htdocs/theme/amarok/img/object_company.png          | Bin
 htdocs/theme/amarok/img/object_contact.png          | Bin
 htdocs/theme/amarok/img/object_contact_all.png      | Bin
 htdocs/theme/amarok/img/object_contract.png         | Bin
 htdocs/theme/amarok/img/object_dir.png              | Bin
 htdocs/theme/amarok/img/object_email.png            | Bin
 htdocs/theme/amarok/img/object_energie.png          | Bin
 htdocs/theme/amarok/img/object_generic.png          | Bin
 htdocs/theme/amarok/img/object_globe.png            | Bin
 htdocs/theme/amarok/img/object_group.png            | Bin
 htdocs/theme/amarok/img/object_intervention.png     | Bin
 htdocs/theme/amarok/img/object_invoice.png          | Bin
 htdocs/theme/amarok/img/object_label.png            | Bin
 htdocs/theme/amarok/img/object_list.png             | Bin
 htdocs/theme/amarok/img/object_opensurvey.png       | Bin
 htdocs/theme/amarok/img/object_order.png            | Bin
 htdocs/theme/amarok/img/object_payment.png          | Bin
 htdocs/theme/amarok/img/object_phoning.png          | Bin
 htdocs/theme/amarok/img/object_product.png          | Bin
 htdocs/theme/amarok/img/object_project.png          | Bin
 htdocs/theme/amarok/img/object_projectpub.png       | Bin
 htdocs/theme/amarok/img/object_projecttask.png      | Bin
 htdocs/theme/amarok/img/object_propal.png           | Bin
 htdocs/theme/amarok/img/object_reduc.png            | Bin
 htdocs/theme/amarok/img/object_rss.png              | Bin
 htdocs/theme/amarok/img/object_sending.png          | Bin
 htdocs/theme/amarok/img/object_service.png          | Bin
 htdocs/theme/amarok/img/object_stock.png            | Bin
 htdocs/theme/amarok/img/object_task.png             | Bin
 htdocs/theme/amarok/img/object_technic.png          | Bin
 htdocs/theme/amarok/img/object_trip.png             | Bin
 htdocs/theme/amarok/img/object_user.png             | Bin
 htdocs/theme/amarok/img/off.png                     | Bin
 htdocs/theme/amarok/img/ok.png                      | Bin
 htdocs/theme/amarok/img/on.png                      | Bin
 htdocs/theme/amarok/img/pdf2.png                    | Bin
 htdocs/theme/amarok/img/pdf3.png                    | Bin
 htdocs/theme/amarok/img/previous.png                | Bin
 htdocs/theme/amarok/img/printer.png                 | Bin
 htdocs/theme/amarok/img/puce.png                    | Bin
 htdocs/theme/amarok/img/recent.png                  | Bin
 htdocs/theme/amarok/img/redstar.png                 | Bin
 htdocs/theme/amarok/img/refresh.png                 | Bin
 htdocs/theme/amarok/img/reload.png                  | Bin
 htdocs/theme/amarok/img/rightarrow.png              | Bin
 htdocs/theme/amarok/img/search.png                  | Bin
 htdocs/theme/amarok/img/searchclear.png             | Bin
 htdocs/theme/amarok/img/setup.png                   | Bin
 htdocs/theme/amarok/img/split.png                   | Bin
 htdocs/theme/amarok/img/star.png                    | Bin
 htdocs/theme/amarok/img/stats.png                   | Bin
 htdocs/theme/amarok/img/statut0.png                 | Bin
 htdocs/theme/amarok/img/statut1.png                 | Bin
 htdocs/theme/amarok/img/statut2.png                 | Bin
 htdocs/theme/amarok/img/statut3.png                 | Bin
 htdocs/theme/amarok/img/statut4.png                 | Bin
 htdocs/theme/amarok/img/statut5.png                 | Bin
 htdocs/theme/amarok/img/statut6.png                 | Bin
 htdocs/theme/amarok/img/statut7.png                 | Bin
 htdocs/theme/amarok/img/statut8.png                 | Bin
 htdocs/theme/amarok/img/statut9.png                 | Bin
 htdocs/theme/amarok/img/stcomm-1.png                | Bin
 htdocs/theme/amarok/img/stcomm-1_grayed.png         | Bin
 htdocs/theme/amarok/img/stcomm0.png                 | Bin
 htdocs/theme/amarok/img/stcomm0_grayed.png          | Bin
 htdocs/theme/amarok/img/stcomm1.png                 | Bin
 htdocs/theme/amarok/img/stcomm1_grayed.png          | Bin
 htdocs/theme/amarok/img/stcomm2.png                 | Bin
 htdocs/theme/amarok/img/stcomm2_grayed.png          | Bin
 htdocs/theme/amarok/img/stcomm3.png                 | Bin
 htdocs/theme/amarok/img/stcomm3_grayed.png          | Bin
 htdocs/theme/amarok/img/stcomm4.png                 | Bin
 htdocs/theme/amarok/img/stcomm4_grayed.png          | Bin
 htdocs/theme/amarok/img/tick.png                    | Bin
 htdocs/theme/amarok/img/title.png                   | Bin
 htdocs/theme/amarok/img/unlock.png                  | Bin
 htdocs/theme/amarok/img/uparrow.png                 | Bin
 htdocs/theme/amarok/img/vcard.png                   | Bin
 htdocs/theme/amarok/img/view.png                    | Bin
 htdocs/theme/amarok/img/vmenu.png                   | Bin
 htdocs/theme/amarok/img/warning.png                 | Bin
 htdocs/theme/amarok/img/working.gif                 | Bin
 htdocs/theme/amarok/thumb.png                       | Bin
 htdocs/theme/amarok/tpl/README                      |   0
 htdocs/theme/auguria/img/edit_add.png               | Bin
 htdocs/theme/auguria/img/edit_remove.png            | Bin
 htdocs/theme/auguria/img/menus/topmenu_bg.png       | Bin
 htdocs/theme/auguria/img/menus/topmenu_right.png    | Bin
 htdocs/theme/auguria/img/object_bill.png            | Bin
 htdocs/theme/auguria/img/object_book.png            | Bin
 htdocs/theme/auguria/img/object_calendarday.png     | Bin
 htdocs/theme/auguria/img/object_calendarweek.png    | Bin
 htdocs/theme/auguria/img/object_company.png         | Bin
 htdocs/theme/auguria/img/object_contact.png         | Bin
 htdocs/theme/auguria/img/object_contract.png        | Bin
 htdocs/theme/auguria/img/object_invoice.png         | Bin
 htdocs/theme/auguria/img/object_opensurvey.png      | Bin
 htdocs/theme/auguria/img/object_order.png           | Bin
 htdocs/theme/auguria/img/object_product.png         | Bin
 htdocs/theme/auguria/img/object_propal.png          | Bin
 htdocs/theme/auguria/img/stats.png                  | Bin
 htdocs/theme/auguria/img/statut8.png                | Bin
 htdocs/theme/auguria/img/statut9.png                | Bin
 htdocs/theme/bureau2crea/img/object_calendarday.png | Bin
 .../theme/bureau2crea/img/object_calendarweek.png   | Bin
 htdocs/theme/bureau2crea/img/object_opensurvey.png  | Bin
 htdocs/theme/bureau2crea/img/stats.png              | Bin
 htdocs/theme/bureau2crea/img/statut8.png            | Bin
 htdocs/theme/cameleo/img/object_opensurvey.png      | Bin
 htdocs/theme/cameleo/img/stats.png                  | Bin
 htdocs/theme/common/devices/audio-card.png          | Bin
 htdocs/theme/common/devices/audio-headset.png       | Bin
 htdocs/theme/common/devices/audio-input-line.png    | Bin
 .../theme/common/devices/audio-input-microphone.png | Bin
 htdocs/theme/common/devices/battery.png             | Bin
 htdocs/theme/common/devices/camera-photo.png        | Bin
 htdocs/theme/common/devices/camera-web.png          | Bin
 htdocs/theme/common/devices/computer-laptop.png     | Bin
 htdocs/theme/common/devices/computer.png            | Bin
 htdocs/theme/common/devices/cpu.png                 | Bin
 htdocs/theme/common/devices/drive-harddisk.png      | Bin
 htdocs/theme/common/devices/drive-optical.png       | Bin
 .../devices/drive-removable-media-usb-pendrive.png  | Bin
 .../common/devices/drive-removable-media-usb.png    | Bin
 .../theme/common/devices/drive-removable-media.png  | Bin
 htdocs/theme/common/devices/input-gaming.png        | Bin
 htdocs/theme/common/devices/input-keyboard.png      | Bin
 htdocs/theme/common/devices/input-mouse.png         | Bin
 htdocs/theme/common/devices/input-tablet.png        | Bin
 .../common/devices/media-flash-memory-stick.png     | Bin
 htdocs/theme/common/devices/media-flash-sd-mmc.png  | Bin
 .../common/devices/media-flash-smart-media.png      | Bin
 htdocs/theme/common/devices/media-flash.png         | Bin
 htdocs/theme/common/devices/media-floppy.png        | Bin
 htdocs/theme/common/devices/media-optical-audio.png | Bin
 .../theme/common/devices/media-optical-blu-ray.png  | Bin
 htdocs/theme/common/devices/media-optical-data.png  | Bin
 .../common/devices/media-optical-dvd-video.png      | Bin
 htdocs/theme/common/devices/media-optical-dvd.png   | Bin
 .../theme/common/devices/media-optical-mixed-cd.png | Bin
 .../common/devices/media-optical-recordable.png     | Bin
 htdocs/theme/common/devices/media-optical-video.png | Bin
 htdocs/theme/common/devices/media-optical.png       | Bin
 htdocs/theme/common/devices/media-tape.png          | Bin
 htdocs/theme/common/devices/modem.png               | Bin
 .../common/devices/multimedia-player-apple-ipod.png | Bin
 htdocs/theme/common/devices/multimedia-player.png   | Bin
 htdocs/theme/common/devices/network-wired.png       | Bin
 .../devices/network-wireless-connected-00.png       | Bin
 .../devices/network-wireless-connected-100.png      | Bin
 .../devices/network-wireless-connected-25.png       | Bin
 .../devices/network-wireless-connected-50.png       | Bin
 .../devices/network-wireless-connected-75.png       | Bin
 .../devices/network-wireless-disconnected.png       | Bin
 htdocs/theme/common/devices/network-wireless.png    | Bin
 htdocs/theme/common/devices/pda.png                 | Bin
 .../common/devices/phone-openmoko-freerunner.png    | Bin
 htdocs/theme/common/devices/phone.png               | Bin
 htdocs/theme/common/devices/printer-laser.png       | Bin
 htdocs/theme/common/devices/printer.png             | Bin
 htdocs/theme/common/devices/scanner.png             | Bin
 htdocs/theme/common/devices/video-display.png       | Bin
 htdocs/theme/common/devices/video-projector.png     | Bin
 htdocs/theme/common/devices/video-television.png    | Bin
 htdocs/theme/common/emotes/face-angel.png           | Bin
 htdocs/theme/common/emotes/face-embarrassed.png     | Bin
 htdocs/theme/common/emotes/face-kiss.png            | Bin
 htdocs/theme/common/emotes/face-laugh.png           | Bin
 htdocs/theme/common/emotes/face-plain.png           | Bin
 htdocs/theme/common/emotes/face-raspberry.png       | Bin
 htdocs/theme/common/emotes/face-sad.png             | Bin
 htdocs/theme/common/emotes/face-smile-big.png       | Bin
 htdocs/theme/common/emotes/face-smile.png           | Bin
 htdocs/theme/common/emotes/face-surprise.png        | Bin
 htdocs/theme/common/emotes/face-uncertain.png       | Bin
 htdocs/theme/common/emotes/face-wink.png            | Bin
 htdocs/theme/common/gmap.png                        | Bin
 htdocs/theme/common/ical.gif                        | Bin
 htdocs/theme/common/mime/css.png                    | Bin
 htdocs/theme/common/mime/dotnet.png                 | Bin
 htdocs/theme/common/mime/encrypt.png                | Bin
 htdocs/theme/common/mime/glasses.png                | Bin
 htdocs/theme/common/mime/jnlp.png                   | Bin
 htdocs/theme/common/mime/library.png                | Bin
 htdocs/theme/common/mime/lit.png                    | Bin
 htdocs/theme/common/mime/mdb.png                    | Bin
 htdocs/theme/common/mime/ooffice.png                | Bin
 htdocs/theme/common/mime/page.png                   | Bin
 htdocs/theme/common/mime/readme.txt                 |   0
 htdocs/theme/common/mime/rss.png                    | Bin
 htdocs/theme/common/rss.gif                         | Bin
 htdocs/theme/common/treemenu/folder2-expanded.png   | Bin
 htdocs/theme/common/treemenu/folder2.png            | Bin
 htdocs/theme/common/vcal.gif                        | Bin
 htdocs/theme/common/weather/weather-clear-night.png | Bin
 htdocs/theme/common/weather/weather-clear.png       | Bin
 .../theme/common/weather/weather-clouds-night.png   | Bin
 htdocs/theme/common/weather/weather-clouds.png      | Bin
 .../common/weather/weather-few-clouds-night.png     | Bin
 htdocs/theme/common/weather/weather-few-clouds.png  | Bin
 .../theme/common/weather/weather-freezing-rain.png  | Bin
 htdocs/theme/common/weather/weather-hail.png        | Bin
 htdocs/theme/common/weather/weather-many-clouds.png | Bin
 htdocs/theme/common/weather/weather-mist.png        | Bin
 htdocs/theme/common/weather/weather-showers-day.png | Bin
 .../theme/common/weather/weather-showers-night.png  | Bin
 .../weather/weather-showers-scattered-day.png       | Bin
 .../weather/weather-showers-scattered-night.png     | Bin
 .../common/weather/weather-showers-scattered.png    | Bin
 htdocs/theme/common/weather/weather-showers.png     | Bin
 htdocs/theme/common/weather/weather-snow-rain.png   | Bin
 .../common/weather/weather-snow-scattered-day.png   | Bin
 .../common/weather/weather-snow-scattered-night.png | Bin
 .../theme/common/weather/weather-snow-scattered.png | Bin
 htdocs/theme/common/weather/weather-snow.png        | Bin
 htdocs/theme/common/weather/weather-storm-day.png   | Bin
 htdocs/theme/common/weather/weather-storm-night.png | Bin
 htdocs/theme/common/weather/weather-storm.png       | Bin
 htdocs/theme/dolibarr.png                           | Bin
 htdocs/theme/dolibarr_logo.png                      | Bin
 htdocs/theme/doliforge_logo.png                     | Bin
 htdocs/theme/dolistore_logo.png                     | Bin
 htdocs/theme/eldy/img/liste_titre2.png              | Bin
 htdocs/theme/eldy/img/object_opensurvey.png         | Bin
 .../webservices/demo_wsclient_actioncomm.php-NORUN  |   0
 htdocs/webservices/demo_wsclient_category.php-NORUN |   0
 htdocs/webservices/demo_wsclient_invoice.php-NORUN  |   0
 htdocs/webservices/demo_wsclient_order.php-NORUN    |   0
 htdocs/webservices/demo_wsclient_other.php-NORUN    |   0
 .../demo_wsclient_productorservice.php-NORUN        |   0
 .../webservices/demo_wsclient_thirdparty.php-NORUN  |   0
 test/phpunit/CMailFileTest.php                      |   0
 test/phpunit/CategorieTest.php                      |   0
 test/phpunit/ChargeSocialesTest.php                 |   0
 test/phpunit/ContactTest.php                        |   0
 test/phpunit/CoreTest.php                           |   0
 test/phpunit/DiscountTest.php                       |   0
 test/phpunit/EntrepotTest.php                       |   0
 test/phpunit/Example_import_company_1.csv           |   0
 test/phpunit/ExportTest.php                         |   0
 test/phpunit/Functions2LibTest.php                  |   0
 test/phpunit/FunctionsLibTest.php                   |   0
 test/phpunit/ImportTest.php                         |   0
 test/phpunit/JsonLibTest.php                        |   0
 test/phpunit/LangTest.php                           |   0
 test/phpunit/ModulesTest.php                        |   0
 test/phpunit/PdfDocTest.php                         |   0
 test/phpunit/PgsqlTest.php                          |   0
 test/phpunit/PricesTest.php                         |   0
 test/phpunit/ProductTest.php                        |   0
 test/phpunit/ScriptsTest.php                        |   0
 test/phpunit/SecurityTest.php                       |   0
 test/phpunit/SocieteTest.php                        |   0
 test/phpunit/SqlTest.php                            |   0
 test/phpunit/WebservicesInvoicesTest.php            |   0
 test/phpunit/WebservicesOrdersTest.php              |   0
 test/phpunit/WebservicesOtherTest.php               |   0
 test/phpunit/WebservicesProductsTest.php            |   0
 test/phpunit/WebservicesThirdpartyTest.php          |   0
 test/phpunit/WebservicesUserTest.php                |   0
 test/soapui/Dolibarr-soapui-project.xml             |   0
 544 files changed, 0 insertions(+), 0 deletions(-)
 mode change 100755 => 100644 .gitignore
 mode change 100755 => 100644 build/.gitignore
 mode change 100755 => 100644 build/aps/APP-META-1.1.xml
 mode change 100755 => 100644 build/aps/APP-META-1.2.xml
 mode change 100755 => 100644 build/aps/README
 mode change 100755 => 100644 build/aps/install.forced.php.install
 mode change 100755 => 100644 build/debian/conf.php.install
 mode change 100755 => 100644 build/debian/control
 mode change 100755 => 100644 build/debian/dolibarr.install
 mode change 100755 => 100644 build/debian/dolibarr.lintian-overrides
 mode change 100755 => 100644 build/debian/dolibarr.templates.futur
 mode change 100755 => 100644 build/debian/install.forced.php.install
 mode change 100755 => 100644 build/debian/po/POTFILES.in
 mode change 100755 => 100644 build/debian/po/fr.po
 mode change 100755 => 100644 build/doxygen/doxygen_footer.html
 mode change 100755 => 100644 build/doxygen/doxygen_header.html
 mode change 100755 => 100644 build/rpm/conf.php
 mode change 100755 => 100644 build/rpm/dolibarr-forrpm.patch
 mode change 100755 => 100644 build/rpm/dolibarr.desktop
 mode change 100755 => 100644 build/rpm/dolibarr_fedora.spec
 mode change 100755 => 100644 build/rpm/dolibarr_generic.spec
 mode change 100755 => 100644 build/rpm/dolibarr_mandriva.spec
 mode change 100755 => 100644 build/rpm/dolibarr_opensuse.spec
 mode change 100755 => 100644 build/rpm/file_contexts.dolibarr
 mode change 100755 => 100644 build/rpm/install.forced.php.fedora
 mode change 100755 => 100644 build/rpm/install.forced.php.generic
 mode change 100755 => 100644 build/rpm/install.forced.php.mandriva
 mode change 100755 => 100644 build/rpm/install.forced.php.opensuse
 mode change 100755 => 100644 dev/codesniffer/README
 mode change 100755 => 100644 dev/codesniffer/php.ini
 mode change 100755 => 100644 dev/codesniffer/ruleset.dtd
 mode change 100755 => 100644 dev/codesniffer/ruleset.xml
 mode change 100755 => 100644 dev/codetemplates/README
 mode change 100755 => 100644 dev/codetemplates/codetemplates.dtd
 mode change 100755 => 100644 dev/codetemplates/codetemplates.xml
 mode change 100755 => 100644 dev/dbmodel/emulate_oscommerce/llx_osc_categories.sql
 mode change 100755 => 100644 dev/dbmodel/emulate_oscommerce/llx_osc_customer.key.sql
 mode change 100755 => 100644 dev/dbmodel/emulate_oscommerce/llx_osc_customer.sql
 mode change 100755 => 100644 dev/dbmodel/emulate_oscommerce/llx_osc_order.sql
 mode change 100755 => 100644 dev/dbmodel/emulate_oscommerce/llx_osc_product.sql
 mode change 100755 => 100644 dev/examples/README
 mode change 100755 => 100644 dev/iso-normes/GURULABS-RPM-GUIDE-v1.0.PDF
 mode change 100755 => 100644 dev/iso-normes/address_format.txt
 mode change 100755 => 100644 dev/iso-normes/banknumber_format.txt
 mode change 100755 => 100644 dev/iso-normes/xmlexport.txt
 mode change 100755 => 100644 dev/phpunit/README
 mode change 100755 => 100644 dev/phpunit/eclipse_setup_for_pti_phpunit.png
 mode change 100644 => 100755 dev/skeletons/build_webservice_from_class.php
 mode change 100755 => 100644 dev/test/testtcpdf.php
 mode change 100755 => 100644 doc/images/appicon_128.png
 mode change 100755 => 100644 doc/images/appicon_16.ico
 mode change 100755 => 100644 doc/images/appicon_16.png
 mode change 100755 => 100644 doc/images/appicon_32.png
 mode change 100755 => 100644 doc/images/appicon_48.ico
 mode change 100755 => 100644 doc/images/appicon_64.png
 mode change 100755 => 100644 doc/images/dolibarr_73x73.png
 mode change 100755 => 100644 doc/images/dolibarr_logo.png
 mode change 100755 => 100644 htdocs/core/filemanagerdol/browser/default/browser.css
 mode change 100755 => 100644 htdocs/core/filemanagerdol/browser/default/images/Folder.gif
 mode change 100755 => 100644 htdocs/core/filemanagerdol/browser/default/images/FolderUp.gif
 mode change 100755 => 100644 htdocs/core/filemanagerdol/browser/default/images/icons/32/ai.gif
 mode change 100755 => 100644 htdocs/core/filemanagerdol/browser/default/images/icons/32/avi.gif
 mode change 100755 => 100644 htdocs/core/filemanagerdol/browser/default/images/icons/32/bmp.gif
 mode change 100755 => 100644 htdocs/core/filemanagerdol/browser/default/images/icons/32/cs.gif
 mode change 100755 => 100644 htdocs/core/filemanagerdol/browser/default/images/icons/32/default.icon.gif
 mode change 100755 => 100644 htdocs/core/filemanagerdol/browser/default/images/icons/32/dll.gif
 mode change 100755 => 100644 htdocs/core/filemanagerdol/browser/default/images/icons/32/doc.gif
 mode change 100755 => 100644 htdocs/core/filemanagerdol/browser/default/images/icons/32/exe.gif
 mode change 100755 => 100644 htdocs/core/filemanagerdol/browser/default/images/icons/32/fla.gif
 mode change 100755 => 100644 htdocs/core/filemanagerdol/browser/default/images/icons/32/gif.gif
 mode change 100755 => 100644 htdocs/core/filemanagerdol/browser/default/images/icons/32/htm.gif
 mode change 100755 => 100644 htdocs/core/filemanagerdol/browser/default/images/icons/32/html.gif
 mode change 100755 => 100644 htdocs/core/filemanagerdol/browser/default/images/icons/32/jpg.gif
 mode change 100755 => 100644 htdocs/core/filemanagerdol/browser/default/images/icons/32/js.gif
 mode change 100755 => 100644 htdocs/core/filemanagerdol/browser/default/images/icons/32/mdb.gif
 mode change 100755 => 100644 htdocs/core/filemanagerdol/browser/default/images/icons/32/mp3.gif
 mode change 100755 => 100644 htdocs/core/filemanagerdol/browser/default/images/icons/32/pdf.gif
 mode change 100755 => 100644 htdocs/core/filemanagerdol/browser/default/images/icons/32/png.gif
 mode change 100755 => 100644 htdocs/core/filemanagerdol/browser/default/images/icons/32/ppt.gif
 mode change 100755 => 100644 htdocs/core/filemanagerdol/browser/default/images/icons/32/rdp.gif
 mode change 100755 => 100644 htdocs/core/filemanagerdol/browser/default/images/icons/32/swf.gif
 mode change 100755 => 100644 htdocs/core/filemanagerdol/browser/default/images/icons/32/swt.gif
 mode change 100755 => 100644 htdocs/core/filemanagerdol/browser/default/images/icons/32/txt.gif
 mode change 100755 => 100644 htdocs/core/filemanagerdol/browser/default/images/icons/32/vsd.gif
 mode change 100755 => 100644 htdocs/core/filemanagerdol/browser/default/images/icons/32/xls.gif
 mode change 100755 => 100644 htdocs/core/filemanagerdol/browser/default/images/icons/32/xml.gif
 mode change 100755 => 100644 htdocs/core/filemanagerdol/browser/default/images/icons/32/zip.gif
 mode change 100755 => 100644 htdocs/core/filemanagerdol/browser/default/images/icons/ai.gif
 mode change 100755 => 100644 htdocs/core/filemanagerdol/browser/default/images/icons/avi.gif
 mode change 100755 => 100644 htdocs/core/filemanagerdol/browser/default/images/icons/bmp.gif
 mode change 100755 => 100644 htdocs/core/filemanagerdol/browser/default/images/icons/cs.gif
 mode change 100755 => 100644 htdocs/core/filemanagerdol/browser/default/images/icons/default.icon.gif
 mode change 100755 => 100644 htdocs/core/filemanagerdol/browser/default/images/icons/dll.gif
 mode change 100755 => 100644 htdocs/core/filemanagerdol/browser/default/images/icons/doc.gif
 mode change 100755 => 100644 htdocs/core/filemanagerdol/browser/default/images/icons/exe.gif
 mode change 100755 => 100644 htdocs/core/filemanagerdol/browser/default/images/icons/fla.gif
 mode change 100755 => 100644 htdocs/core/filemanagerdol/browser/default/images/icons/gif.gif
 mode change 100755 => 100644 htdocs/core/filemanagerdol/browser/default/images/icons/htm.gif
 mode change 100755 => 100644 htdocs/core/filemanagerdol/browser/default/images/icons/html.gif
 mode change 100755 => 100644 htdocs/core/filemanagerdol/browser/default/images/icons/jpg.gif
 mode change 100755 => 100644 htdocs/core/filemanagerdol/browser/default/images/icons/js.gif
 mode change 100755 => 100644 htdocs/core/filemanagerdol/browser/default/images/icons/mdb.gif
 mode change 100755 => 100644 htdocs/core/filemanagerdol/browser/default/images/icons/mp3.gif
 mode change 100755 => 100644 htdocs/core/filemanagerdol/browser/default/images/icons/pdf.gif
 mode change 100755 => 100644 htdocs/core/filemanagerdol/browser/default/images/icons/png.gif
 mode change 100755 => 100644 htdocs/core/filemanagerdol/browser/default/images/icons/ppt.gif
 mode change 100755 => 100644 htdocs/core/filemanagerdol/browser/default/images/icons/rdp.gif
 mode change 100755 => 100644 htdocs/core/filemanagerdol/browser/default/images/icons/swf.gif
 mode change 100755 => 100644 htdocs/core/filemanagerdol/browser/default/images/icons/swt.gif
 mode change 100755 => 100644 htdocs/core/filemanagerdol/browser/default/images/icons/txt.gif
 mode change 100755 => 100644 htdocs/core/filemanagerdol/browser/default/images/icons/vsd.gif
 mode change 100755 => 100644 htdocs/core/filemanagerdol/browser/default/images/icons/xls.gif
 mode change 100755 => 100644 htdocs/core/filemanagerdol/browser/default/images/icons/xml.gif
 mode change 100755 => 100644 htdocs/core/filemanagerdol/browser/default/images/icons/zip.gif
 mode change 100755 => 100644 htdocs/core/filemanagerdol/browser/default/js/common.js
 mode change 100755 => 100644 htdocs/core/filemanagerdol/browser/default/js/fckxml.js
 mode change 100755 => 100644 htdocs/core/filemanagerdol/browser/default/spacer.gif
 mode change 100755 => 100644 htdocs/core/modules/security/generate/README
 mode change 100755 => 100644 htdocs/includes/fpdfi/README.txt
 mode change 100755 => 100644 htdocs/includes/jquery/plugins/colorpicker/jquery.colorpicker.css
 mode change 100755 => 100644 htdocs/includes/jquery/plugins/colorpicker/jquery.colorpicker.js
 mode change 100755 => 100644 htdocs/includes/jquery/plugins/jcrop/css/Jcrop.gif
 mode change 100755 => 100644 htdocs/includes/jquery/plugins/jcrop/css/jquery.Jcrop.css
 mode change 100755 => 100644 htdocs/includes/jquery/plugins/jcrop/index.html
 mode change 100755 => 100644 htdocs/includes/jquery/plugins/jcrop/js/jquery.Jcrop.js
 mode change 100755 => 100644 htdocs/includes/jquery/plugins/jcrop/js/jquery.Jcrop.min.js
 mode change 100755 => 100644 htdocs/includes/jquery/plugins/jnotify/jquery.jnotify-alt.min.css
 mode change 100755 => 100644 htdocs/includes/jquery/plugins/jnotify/jquery.jnotify.css
 mode change 100755 => 100644 htdocs/includes/jquery/plugins/jpicker/ChangeLog.txt
 mode change 100755 => 100644 htdocs/includes/jquery/plugins/jpicker/Example.html
 mode change 100755 => 100644 htdocs/includes/jquery/plugins/jpicker/ReadMe.txt
 mode change 100755 => 100644 htdocs/includes/jquery/plugins/jpicker/css/jPicker-1.1.6.css
 mode change 100755 => 100644 htdocs/includes/jquery/plugins/jpicker/css/jPicker-1.1.6.min.css
 mode change 100755 => 100644 htdocs/includes/jquery/plugins/jpicker/images/AlphaBar.png
 mode change 100755 => 100644 htdocs/includes/jquery/plugins/jpicker/images/Bars.png
 mode change 100755 => 100644 htdocs/includes/jquery/plugins/jpicker/images/Maps.png
 mode change 100755 => 100644 htdocs/includes/jquery/plugins/jpicker/images/NoColor.png
 mode change 100755 => 100644 htdocs/includes/jquery/plugins/jpicker/images/bar-opacity.png
 mode change 100755 => 100644 htdocs/includes/jquery/plugins/jpicker/images/map-opacity.png
 mode change 100755 => 100644 htdocs/includes/jquery/plugins/jpicker/images/mappoint.gif
 mode change 100755 => 100644 htdocs/includes/jquery/plugins/jpicker/images/picker.gif
 mode change 100755 => 100644 htdocs/includes/jquery/plugins/jpicker/images/preview-opacity.png
 mode change 100755 => 100644 htdocs/includes/jquery/plugins/jpicker/images/rangearrows.gif
 mode change 100755 => 100644 htdocs/includes/jquery/plugins/jpicker/jPicker.css
 mode change 100755 => 100644 htdocs/includes/jquery/plugins/jpicker/jpicker-1.1.6.js
 mode change 100755 => 100644 htdocs/includes/jquery/plugins/jpicker/jpicker-1.1.6.min.js
 mode change 100755 => 100644 htdocs/includes/jquery/plugins/jqueryFileTree/images/application.png
 mode change 100755 => 100644 htdocs/includes/jquery/plugins/jqueryFileTree/images/code.png
 mode change 100755 => 100644 htdocs/includes/jquery/plugins/jqueryFileTree/images/css.png
 mode change 100755 => 100644 htdocs/includes/jquery/plugins/jqueryFileTree/images/db.png
 mode change 100755 => 100644 htdocs/includes/jquery/plugins/jqueryFileTree/images/directory.png
 mode change 100755 => 100644 htdocs/includes/jquery/plugins/jqueryFileTree/images/doc.png
 mode change 100755 => 100644 htdocs/includes/jquery/plugins/jqueryFileTree/images/file.png
 mode change 100755 => 100644 htdocs/includes/jquery/plugins/jqueryFileTree/images/film.png
 mode change 100755 => 100644 htdocs/includes/jquery/plugins/jqueryFileTree/images/flash.png
 mode change 100755 => 100644 htdocs/includes/jquery/plugins/jqueryFileTree/images/folder_open.png
 mode change 100755 => 100644 htdocs/includes/jquery/plugins/jqueryFileTree/images/html.png
 mode change 100755 => 100644 htdocs/includes/jquery/plugins/jqueryFileTree/images/java.png
 mode change 100755 => 100644 htdocs/includes/jquery/plugins/jqueryFileTree/images/linux.png
 mode change 100755 => 100644 htdocs/includes/jquery/plugins/jqueryFileTree/images/music.png
 mode change 100755 => 100644 htdocs/includes/jquery/plugins/jqueryFileTree/images/pdf.png
 mode change 100755 => 100644 htdocs/includes/jquery/plugins/jqueryFileTree/images/php.png
 mode change 100755 => 100644 htdocs/includes/jquery/plugins/jqueryFileTree/images/picture.png
 mode change 100755 => 100644 htdocs/includes/jquery/plugins/jqueryFileTree/images/ppt.png
 mode change 100755 => 100644 htdocs/includes/jquery/plugins/jqueryFileTree/images/psd.png
 mode change 100755 => 100644 htdocs/includes/jquery/plugins/jqueryFileTree/images/ruby.png
 mode change 100755 => 100644 htdocs/includes/jquery/plugins/jqueryFileTree/images/script.png
 mode change 100755 => 100644 htdocs/includes/jquery/plugins/jqueryFileTree/images/spinner.gif
 mode change 100755 => 100644 htdocs/includes/jquery/plugins/jqueryFileTree/images/txt.png
 mode change 100755 => 100644 htdocs/includes/jquery/plugins/jqueryFileTree/images/xls.png
 mode change 100755 => 100644 htdocs/includes/jquery/plugins/jqueryFileTree/images/zip.png
 mode change 100755 => 100644 htdocs/includes/jquery/plugins/jqueryFileTree/jqueryFileTree.css
 mode change 100755 => 100644 htdocs/includes/jquery/plugins/jqueryFileTree/jqueryFileTree.js
 mode change 100755 => 100644 htdocs/includes/jquery/plugins/tiptip/jquery.tipTip.js
 mode change 100755 => 100644 htdocs/includes/jquery/plugins/tiptip/jquery.tipTip.min.js
 mode change 100755 => 100644 htdocs/includes/jquery/plugins/tiptip/tipTip.css
 mode change 100755 => 100644 htdocs/includes/nusoap/lib/Mail/xmail.dtd
 mode change 100755 => 100644 htdocs/includes/nusoap/lib/Mail/xmail.xsl
 mode change 100755 => 100644 htdocs/includes/tcpdf/fonts/dejavusanscondensed.ctg.z
 mode change 100755 => 100644 htdocs/includes/tcpdf/fonts/dejavusanscondensed.z
 mode change 100755 => 100644 htdocs/includes/tcpdf/fonts/dejavusanscondensedb.ctg.z
 mode change 100755 => 100644 htdocs/includes/tcpdf/fonts/dejavusanscondensedb.z
 mode change 100755 => 100644 htdocs/includes/tcpdf/fonts/dejavusanscondensedbi.ctg.z
 mode change 100755 => 100644 htdocs/includes/tcpdf/fonts/dejavusanscondensedbi.z
 mode change 100755 => 100644 htdocs/includes/tcpdf/fonts/dejavusanscondensedi.ctg.z
 mode change 100755 => 100644 htdocs/includes/tcpdf/fonts/dejavusanscondensedi.z
 mode change 100755 => 100644 htdocs/includes/tcpdf/fonts/dejavusansextralight.ctg.z
 mode change 100755 => 100644 htdocs/includes/tcpdf/fonts/dejavusansextralight.z
 mode change 100755 => 100644 htdocs/includes/tcpdf/fonts/dejavusansmono.ctg.z
 mode change 100755 => 100644 htdocs/includes/tcpdf/fonts/dejavusansmono.z
 mode change 100755 => 100644 htdocs/includes/tcpdf/fonts/dejavusansmonob.ctg.z
 mode change 100755 => 100644 htdocs/includes/tcpdf/fonts/dejavusansmonob.z
 mode change 100755 => 100644 htdocs/includes/tcpdf/fonts/dejavusansmonobi.ctg.z
 mode change 100755 => 100644 htdocs/includes/tcpdf/fonts/dejavusansmonobi.z
 mode change 100755 => 100644 htdocs/includes/tcpdf/fonts/dejavusansmonoi.ctg.z
 mode change 100755 => 100644 htdocs/includes/tcpdf/fonts/dejavusansmonoi.z
 mode change 100755 => 100644 htdocs/install/doctemplates/projects/template_project.odt
 mode change 100755 => 100644 htdocs/install/mysql/data/llx_c_input_method.sql
 mode change 100755 => 100644 htdocs/install/mysql/data/llx_c_input_reason.sql
 mode change 100755 => 100644 htdocs/install/mysql/migration/2.7.0-2.8.0.sql
 mode change 100755 => 100644 htdocs/install/mysql/migration/2.8.0-2.9.0.sql
 mode change 100755 => 100644 htdocs/install/mysql/migration/3.0.0-3.1.0.sql
 mode change 100755 => 100644 htdocs/install/mysql/migration/3.1.0-3.2.0.sql
 mode change 100755 => 100644 htdocs/install/mysql/migration/3.2.0-3.3.0.sql
 mode change 100755 => 100644 htdocs/install/mysql/migration/3.3.0-3.4.0.sql
 mode change 100755 => 100644 htdocs/install/mysql/migration/3.4.0-3.5.0.sql
 mode change 100755 => 100644 htdocs/install/mysql/tables/llx_resource.key.sql
 mode change 100755 => 100644 htdocs/install/mysql/tables/llx_resource.sql
 mode change 100755 => 100644 htdocs/langs/en_US/resource.lang
 mode change 100755 => 100644 htdocs/langs/fr_FR/resource.lang
 mode change 100755 => 100644 htdocs/opensurvey/img/accept-24.png
 mode change 100755 => 100644 htdocs/opensurvey/img/accept.png
 mode change 100755 => 100644 htdocs/opensurvey/img/add-16.png
 mode change 100755 => 100644 htdocs/opensurvey/img/add-24.png
 mode change 100755 => 100644 htdocs/opensurvey/img/calendar-32.png
 mode change 100755 => 100644 htdocs/opensurvey/img/cancel.png
 mode change 100755 => 100644 htdocs/opensurvey/img/chart-32.png
 mode change 100755 => 100644 htdocs/opensurvey/img/fforward.png
 mode change 100755 => 100644 htdocs/opensurvey/img/medaille.png
 mode change 100755 => 100644 htdocs/opensurvey/img/next.png
 mode change 100755 => 100644 htdocs/opensurvey/img/object_opensurvey.png
 mode change 100755 => 100644 htdocs/opensurvey/img/previous.png
 mode change 100755 => 100644 htdocs/opensurvey/img/rewind.png
 mode change 100755 => 100644 htdocs/resource/add.php
 mode change 100755 => 100644 htdocs/resource/card.php
 mode change 100755 => 100644 htdocs/theme/amarok/AUTHOR
 mode change 100755 => 100644 htdocs/theme/amarok/ckeditor/config.js
 mode change 100755 => 100644 htdocs/theme/amarok/img/1downarrow.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/1downarrow_selected.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/1leftarrow.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/1leftarrow_selected.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/1rightarrow.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/1rightarrow_selected.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/1uparrow.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/1uparrow_selected.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/1updownarrow.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/addfile.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/button_edit.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/calc.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/calendar.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/call.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/call_out.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/close.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/delete.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/detail.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/disable.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/edit.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/edit_add.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/edit_remove.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/editdelete.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/error.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/file.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/filenew.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/filter.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/folder-open.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/folder.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/grip.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/help.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/helpdoc.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/high.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/history.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/indent1.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/info.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/lock.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/logout.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/mainlevel.gif
 mode change 100755 => 100644 htdocs/theme/amarok/img/money.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/next.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/object_account.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/object_action.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/object_barcode.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/object_bill.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/object_billa.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/object_billd.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/object_billr.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/object_book.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/object_bookmark.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/object_calendar.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/object_calendarday.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/object_calendarweek.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/object_category-expanded.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/object_category.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/object_commercial.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/object_company.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/object_contact.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/object_contact_all.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/object_contract.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/object_dir.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/object_email.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/object_energie.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/object_generic.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/object_globe.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/object_group.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/object_intervention.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/object_invoice.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/object_label.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/object_list.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/object_opensurvey.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/object_order.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/object_payment.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/object_phoning.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/object_product.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/object_project.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/object_projectpub.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/object_projecttask.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/object_propal.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/object_reduc.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/object_rss.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/object_sending.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/object_service.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/object_stock.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/object_task.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/object_technic.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/object_trip.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/object_user.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/off.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/ok.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/on.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/pdf2.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/pdf3.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/previous.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/printer.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/puce.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/recent.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/redstar.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/refresh.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/reload.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/rightarrow.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/search.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/searchclear.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/setup.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/split.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/star.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/stats.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/statut0.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/statut1.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/statut2.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/statut3.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/statut4.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/statut5.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/statut6.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/statut7.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/statut8.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/statut9.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/stcomm-1.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/stcomm-1_grayed.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/stcomm0.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/stcomm0_grayed.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/stcomm1.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/stcomm1_grayed.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/stcomm2.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/stcomm2_grayed.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/stcomm3.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/stcomm3_grayed.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/stcomm4.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/stcomm4_grayed.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/tick.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/title.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/unlock.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/uparrow.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/vcard.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/view.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/vmenu.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/warning.png
 mode change 100755 => 100644 htdocs/theme/amarok/img/working.gif
 mode change 100755 => 100644 htdocs/theme/amarok/thumb.png
 mode change 100755 => 100644 htdocs/theme/amarok/tpl/README
 mode change 100755 => 100644 htdocs/theme/auguria/img/edit_add.png
 mode change 100755 => 100644 htdocs/theme/auguria/img/edit_remove.png
 mode change 100755 => 100644 htdocs/theme/auguria/img/menus/topmenu_bg.png
 mode change 100755 => 100644 htdocs/theme/auguria/img/menus/topmenu_right.png
 mode change 100755 => 100644 htdocs/theme/auguria/img/object_bill.png
 mode change 100755 => 100644 htdocs/theme/auguria/img/object_book.png
 mode change 100755 => 100644 htdocs/theme/auguria/img/object_calendarday.png
 mode change 100755 => 100644 htdocs/theme/auguria/img/object_calendarweek.png
 mode change 100755 => 100644 htdocs/theme/auguria/img/object_company.png
 mode change 100755 => 100644 htdocs/theme/auguria/img/object_contact.png
 mode change 100755 => 100644 htdocs/theme/auguria/img/object_contract.png
 mode change 100755 => 100644 htdocs/theme/auguria/img/object_invoice.png
 mode change 100755 => 100644 htdocs/theme/auguria/img/object_opensurvey.png
 mode change 100755 => 100644 htdocs/theme/auguria/img/object_order.png
 mode change 100755 => 100644 htdocs/theme/auguria/img/object_product.png
 mode change 100755 => 100644 htdocs/theme/auguria/img/object_propal.png
 mode change 100755 => 100644 htdocs/theme/auguria/img/stats.png
 mode change 100755 => 100644 htdocs/theme/auguria/img/statut8.png
 mode change 100755 => 100644 htdocs/theme/auguria/img/statut9.png
 mode change 100755 => 100644 htdocs/theme/bureau2crea/img/object_calendarday.png
 mode change 100755 => 100644 htdocs/theme/bureau2crea/img/object_calendarweek.png
 mode change 100755 => 100644 htdocs/theme/bureau2crea/img/object_opensurvey.png
 mode change 100755 => 100644 htdocs/theme/bureau2crea/img/stats.png
 mode change 100755 => 100644 htdocs/theme/bureau2crea/img/statut8.png
 mode change 100755 => 100644 htdocs/theme/cameleo/img/object_opensurvey.png
 mode change 100755 => 100644 htdocs/theme/cameleo/img/stats.png
 mode change 100755 => 100644 htdocs/theme/common/devices/audio-card.png
 mode change 100755 => 100644 htdocs/theme/common/devices/audio-headset.png
 mode change 100755 => 100644 htdocs/theme/common/devices/audio-input-line.png
 mode change 100755 => 100644 htdocs/theme/common/devices/audio-input-microphone.png
 mode change 100755 => 100644 htdocs/theme/common/devices/battery.png
 mode change 100755 => 100644 htdocs/theme/common/devices/camera-photo.png
 mode change 100755 => 100644 htdocs/theme/common/devices/camera-web.png
 mode change 100755 => 100644 htdocs/theme/common/devices/computer-laptop.png
 mode change 100755 => 100644 htdocs/theme/common/devices/computer.png
 mode change 100755 => 100644 htdocs/theme/common/devices/cpu.png
 mode change 100755 => 100644 htdocs/theme/common/devices/drive-harddisk.png
 mode change 100755 => 100644 htdocs/theme/common/devices/drive-optical.png
 mode change 100755 => 100644 htdocs/theme/common/devices/drive-removable-media-usb-pendrive.png
 mode change 100755 => 100644 htdocs/theme/common/devices/drive-removable-media-usb.png
 mode change 100755 => 100644 htdocs/theme/common/devices/drive-removable-media.png
 mode change 100755 => 100644 htdocs/theme/common/devices/input-gaming.png
 mode change 100755 => 100644 htdocs/theme/common/devices/input-keyboard.png
 mode change 100755 => 100644 htdocs/theme/common/devices/input-mouse.png
 mode change 100755 => 100644 htdocs/theme/common/devices/input-tablet.png
 mode change 100755 => 100644 htdocs/theme/common/devices/media-flash-memory-stick.png
 mode change 100755 => 100644 htdocs/theme/common/devices/media-flash-sd-mmc.png
 mode change 100755 => 100644 htdocs/theme/common/devices/media-flash-smart-media.png
 mode change 100755 => 100644 htdocs/theme/common/devices/media-flash.png
 mode change 100755 => 100644 htdocs/theme/common/devices/media-floppy.png
 mode change 100755 => 100644 htdocs/theme/common/devices/media-optical-audio.png
 mode change 100755 => 100644 htdocs/theme/common/devices/media-optical-blu-ray.png
 mode change 100755 => 100644 htdocs/theme/common/devices/media-optical-data.png
 mode change 100755 => 100644 htdocs/theme/common/devices/media-optical-dvd-video.png
 mode change 100755 => 100644 htdocs/theme/common/devices/media-optical-dvd.png
 mode change 100755 => 100644 htdocs/theme/common/devices/media-optical-mixed-cd.png
 mode change 100755 => 100644 htdocs/theme/common/devices/media-optical-recordable.png
 mode change 100755 => 100644 htdocs/theme/common/devices/media-optical-video.png
 mode change 100755 => 100644 htdocs/theme/common/devices/media-optical.png
 mode change 100755 => 100644 htdocs/theme/common/devices/media-tape.png
 mode change 100755 => 100644 htdocs/theme/common/devices/modem.png
 mode change 100755 => 100644 htdocs/theme/common/devices/multimedia-player-apple-ipod.png
 mode change 100755 => 100644 htdocs/theme/common/devices/multimedia-player.png
 mode change 100755 => 100644 htdocs/theme/common/devices/network-wired.png
 mode change 100755 => 100644 htdocs/theme/common/devices/network-wireless-connected-00.png
 mode change 100755 => 100644 htdocs/theme/common/devices/network-wireless-connected-100.png
 mode change 100755 => 100644 htdocs/theme/common/devices/network-wireless-connected-25.png
 mode change 100755 => 100644 htdocs/theme/common/devices/network-wireless-connected-50.png
 mode change 100755 => 100644 htdocs/theme/common/devices/network-wireless-connected-75.png
 mode change 100755 => 100644 htdocs/theme/common/devices/network-wireless-disconnected.png
 mode change 100755 => 100644 htdocs/theme/common/devices/network-wireless.png
 mode change 100755 => 100644 htdocs/theme/common/devices/pda.png
 mode change 100755 => 100644 htdocs/theme/common/devices/phone-openmoko-freerunner.png
 mode change 100755 => 100644 htdocs/theme/common/devices/phone.png
 mode change 100755 => 100644 htdocs/theme/common/devices/printer-laser.png
 mode change 100755 => 100644 htdocs/theme/common/devices/printer.png
 mode change 100755 => 100644 htdocs/theme/common/devices/scanner.png
 mode change 100755 => 100644 htdocs/theme/common/devices/video-display.png
 mode change 100755 => 100644 htdocs/theme/common/devices/video-projector.png
 mode change 100755 => 100644 htdocs/theme/common/devices/video-television.png
 mode change 100755 => 100644 htdocs/theme/common/emotes/face-angel.png
 mode change 100755 => 100644 htdocs/theme/common/emotes/face-embarrassed.png
 mode change 100755 => 100644 htdocs/theme/common/emotes/face-kiss.png
 mode change 100755 => 100644 htdocs/theme/common/emotes/face-laugh.png
 mode change 100755 => 100644 htdocs/theme/common/emotes/face-plain.png
 mode change 100755 => 100644 htdocs/theme/common/emotes/face-raspberry.png
 mode change 100755 => 100644 htdocs/theme/common/emotes/face-sad.png
 mode change 100755 => 100644 htdocs/theme/common/emotes/face-smile-big.png
 mode change 100755 => 100644 htdocs/theme/common/emotes/face-smile.png
 mode change 100755 => 100644 htdocs/theme/common/emotes/face-surprise.png
 mode change 100755 => 100644 htdocs/theme/common/emotes/face-uncertain.png
 mode change 100755 => 100644 htdocs/theme/common/emotes/face-wink.png
 mode change 100755 => 100644 htdocs/theme/common/gmap.png
 mode change 100755 => 100644 htdocs/theme/common/ical.gif
 mode change 100755 => 100644 htdocs/theme/common/mime/css.png
 mode change 100755 => 100644 htdocs/theme/common/mime/dotnet.png
 mode change 100755 => 100644 htdocs/theme/common/mime/encrypt.png
 mode change 100755 => 100644 htdocs/theme/common/mime/glasses.png
 mode change 100755 => 100644 htdocs/theme/common/mime/jnlp.png
 mode change 100755 => 100644 htdocs/theme/common/mime/library.png
 mode change 100755 => 100644 htdocs/theme/common/mime/lit.png
 mode change 100755 => 100644 htdocs/theme/common/mime/mdb.png
 mode change 100755 => 100644 htdocs/theme/common/mime/ooffice.png
 mode change 100755 => 100644 htdocs/theme/common/mime/page.png
 mode change 100755 => 100644 htdocs/theme/common/mime/readme.txt
 mode change 100755 => 100644 htdocs/theme/common/mime/rss.png
 mode change 100755 => 100644 htdocs/theme/common/rss.gif
 mode change 100755 => 100644 htdocs/theme/common/treemenu/folder2-expanded.png
 mode change 100755 => 100644 htdocs/theme/common/treemenu/folder2.png
 mode change 100755 => 100644 htdocs/theme/common/vcal.gif
 mode change 100755 => 100644 htdocs/theme/common/weather/weather-clear-night.png
 mode change 100755 => 100644 htdocs/theme/common/weather/weather-clear.png
 mode change 100755 => 100644 htdocs/theme/common/weather/weather-clouds-night.png
 mode change 100755 => 100644 htdocs/theme/common/weather/weather-clouds.png
 mode change 100755 => 100644 htdocs/theme/common/weather/weather-few-clouds-night.png
 mode change 100755 => 100644 htdocs/theme/common/weather/weather-few-clouds.png
 mode change 100755 => 100644 htdocs/theme/common/weather/weather-freezing-rain.png
 mode change 100755 => 100644 htdocs/theme/common/weather/weather-hail.png
 mode change 100755 => 100644 htdocs/theme/common/weather/weather-many-clouds.png
 mode change 100755 => 100644 htdocs/theme/common/weather/weather-mist.png
 mode change 100755 => 100644 htdocs/theme/common/weather/weather-showers-day.png
 mode change 100755 => 100644 htdocs/theme/common/weather/weather-showers-night.png
 mode change 100755 => 100644 htdocs/theme/common/weather/weather-showers-scattered-day.png
 mode change 100755 => 100644 htdocs/theme/common/weather/weather-showers-scattered-night.png
 mode change 100755 => 100644 htdocs/theme/common/weather/weather-showers-scattered.png
 mode change 100755 => 100644 htdocs/theme/common/weather/weather-showers.png
 mode change 100755 => 100644 htdocs/theme/common/weather/weather-snow-rain.png
 mode change 100755 => 100644 htdocs/theme/common/weather/weather-snow-scattered-day.png
 mode change 100755 => 100644 htdocs/theme/common/weather/weather-snow-scattered-night.png
 mode change 100755 => 100644 htdocs/theme/common/weather/weather-snow-scattered.png
 mode change 100755 => 100644 htdocs/theme/common/weather/weather-snow.png
 mode change 100755 => 100644 htdocs/theme/common/weather/weather-storm-day.png
 mode change 100755 => 100644 htdocs/theme/common/weather/weather-storm-night.png
 mode change 100755 => 100644 htdocs/theme/common/weather/weather-storm.png
 mode change 100755 => 100644 htdocs/theme/dolibarr.png
 mode change 100755 => 100644 htdocs/theme/dolibarr_logo.png
 mode change 100755 => 100644 htdocs/theme/doliforge_logo.png
 mode change 100755 => 100644 htdocs/theme/dolistore_logo.png
 mode change 100755 => 100644 htdocs/theme/eldy/img/liste_titre2.png
 mode change 100755 => 100644 htdocs/theme/eldy/img/object_opensurvey.png
 mode change 100755 => 100644 htdocs/webservices/demo_wsclient_actioncomm.php-NORUN
 mode change 100755 => 100644 htdocs/webservices/demo_wsclient_category.php-NORUN
 mode change 100755 => 100644 htdocs/webservices/demo_wsclient_invoice.php-NORUN
 mode change 100755 => 100644 htdocs/webservices/demo_wsclient_order.php-NORUN
 mode change 100755 => 100644 htdocs/webservices/demo_wsclient_other.php-NORUN
 mode change 100755 => 100644 htdocs/webservices/demo_wsclient_productorservice.php-NORUN
 mode change 100755 => 100644 htdocs/webservices/demo_wsclient_thirdparty.php-NORUN
 mode change 100755 => 100644 test/phpunit/CMailFileTest.php
 mode change 100755 => 100644 test/phpunit/CategorieTest.php
 mode change 100755 => 100644 test/phpunit/ChargeSocialesTest.php
 mode change 100755 => 100644 test/phpunit/ContactTest.php
 mode change 100755 => 100644 test/phpunit/CoreTest.php
 mode change 100755 => 100644 test/phpunit/DiscountTest.php
 mode change 100755 => 100644 test/phpunit/EntrepotTest.php
 mode change 100755 => 100644 test/phpunit/Example_import_company_1.csv
 mode change 100755 => 100644 test/phpunit/ExportTest.php
 mode change 100755 => 100644 test/phpunit/Functions2LibTest.php
 mode change 100755 => 100644 test/phpunit/FunctionsLibTest.php
 mode change 100755 => 100644 test/phpunit/ImportTest.php
 mode change 100755 => 100644 test/phpunit/JsonLibTest.php
 mode change 100755 => 100644 test/phpunit/LangTest.php
 mode change 100755 => 100644 test/phpunit/ModulesTest.php
 mode change 100755 => 100644 test/phpunit/PdfDocTest.php
 mode change 100755 => 100644 test/phpunit/PgsqlTest.php
 mode change 100755 => 100644 test/phpunit/PricesTest.php
 mode change 100755 => 100644 test/phpunit/ProductTest.php
 mode change 100755 => 100644 test/phpunit/ScriptsTest.php
 mode change 100755 => 100644 test/phpunit/SecurityTest.php
 mode change 100755 => 100644 test/phpunit/SocieteTest.php
 mode change 100755 => 100644 test/phpunit/SqlTest.php
 mode change 100755 => 100644 test/phpunit/WebservicesInvoicesTest.php
 mode change 100755 => 100644 test/phpunit/WebservicesOrdersTest.php
 mode change 100755 => 100644 test/phpunit/WebservicesOtherTest.php
 mode change 100755 => 100644 test/phpunit/WebservicesProductsTest.php
 mode change 100755 => 100644 test/phpunit/WebservicesThirdpartyTest.php
 mode change 100755 => 100644 test/phpunit/WebservicesUserTest.php
 mode change 100755 => 100644 test/soapui/Dolibarr-soapui-project.xml

diff --git a/.gitignore b/.gitignore
old mode 100755
new mode 100644
diff --git a/build/.gitignore b/build/.gitignore
old mode 100755
new mode 100644
diff --git a/build/aps/APP-META-1.1.xml b/build/aps/APP-META-1.1.xml
old mode 100755
new mode 100644
diff --git a/build/aps/APP-META-1.2.xml b/build/aps/APP-META-1.2.xml
old mode 100755
new mode 100644
diff --git a/build/aps/README b/build/aps/README
old mode 100755
new mode 100644
diff --git a/build/aps/install.forced.php.install b/build/aps/install.forced.php.install
old mode 100755
new mode 100644
diff --git a/build/debian/conf.php.install b/build/debian/conf.php.install
old mode 100755
new mode 100644
diff --git a/build/debian/control b/build/debian/control
old mode 100755
new mode 100644
diff --git a/build/debian/dolibarr.install b/build/debian/dolibarr.install
old mode 100755
new mode 100644
diff --git a/build/debian/dolibarr.lintian-overrides b/build/debian/dolibarr.lintian-overrides
old mode 100755
new mode 100644
diff --git a/build/debian/dolibarr.templates.futur b/build/debian/dolibarr.templates.futur
old mode 100755
new mode 100644
diff --git a/build/debian/install.forced.php.install b/build/debian/install.forced.php.install
old mode 100755
new mode 100644
diff --git a/build/debian/po/POTFILES.in b/build/debian/po/POTFILES.in
old mode 100755
new mode 100644
diff --git a/build/debian/po/fr.po b/build/debian/po/fr.po
old mode 100755
new mode 100644
diff --git a/build/doxygen/doxygen_footer.html b/build/doxygen/doxygen_footer.html
old mode 100755
new mode 100644
diff --git a/build/doxygen/doxygen_header.html b/build/doxygen/doxygen_header.html
old mode 100755
new mode 100644
diff --git a/build/rpm/conf.php b/build/rpm/conf.php
old mode 100755
new mode 100644
diff --git a/build/rpm/dolibarr-forrpm.patch b/build/rpm/dolibarr-forrpm.patch
old mode 100755
new mode 100644
diff --git a/build/rpm/dolibarr.desktop b/build/rpm/dolibarr.desktop
old mode 100755
new mode 100644
diff --git a/build/rpm/dolibarr_fedora.spec b/build/rpm/dolibarr_fedora.spec
old mode 100755
new mode 100644
diff --git a/build/rpm/dolibarr_generic.spec b/build/rpm/dolibarr_generic.spec
old mode 100755
new mode 100644
diff --git a/build/rpm/dolibarr_mandriva.spec b/build/rpm/dolibarr_mandriva.spec
old mode 100755
new mode 100644
diff --git a/build/rpm/dolibarr_opensuse.spec b/build/rpm/dolibarr_opensuse.spec
old mode 100755
new mode 100644
diff --git a/build/rpm/file_contexts.dolibarr b/build/rpm/file_contexts.dolibarr
old mode 100755
new mode 100644
diff --git a/build/rpm/install.forced.php.fedora b/build/rpm/install.forced.php.fedora
old mode 100755
new mode 100644
diff --git a/build/rpm/install.forced.php.generic b/build/rpm/install.forced.php.generic
old mode 100755
new mode 100644
diff --git a/build/rpm/install.forced.php.mandriva b/build/rpm/install.forced.php.mandriva
old mode 100755
new mode 100644
diff --git a/build/rpm/install.forced.php.opensuse b/build/rpm/install.forced.php.opensuse
old mode 100755
new mode 100644
diff --git a/dev/codesniffer/README b/dev/codesniffer/README
old mode 100755
new mode 100644
diff --git a/dev/codesniffer/php.ini b/dev/codesniffer/php.ini
old mode 100755
new mode 100644
diff --git a/dev/codesniffer/ruleset.dtd b/dev/codesniffer/ruleset.dtd
old mode 100755
new mode 100644
diff --git a/dev/codesniffer/ruleset.xml b/dev/codesniffer/ruleset.xml
old mode 100755
new mode 100644
diff --git a/dev/codetemplates/README b/dev/codetemplates/README
old mode 100755
new mode 100644
diff --git a/dev/codetemplates/codetemplates.dtd b/dev/codetemplates/codetemplates.dtd
old mode 100755
new mode 100644
diff --git a/dev/codetemplates/codetemplates.xml b/dev/codetemplates/codetemplates.xml
old mode 100755
new mode 100644
diff --git a/dev/dbmodel/emulate_oscommerce/llx_osc_categories.sql b/dev/dbmodel/emulate_oscommerce/llx_osc_categories.sql
old mode 100755
new mode 100644
diff --git a/dev/dbmodel/emulate_oscommerce/llx_osc_customer.key.sql b/dev/dbmodel/emulate_oscommerce/llx_osc_customer.key.sql
old mode 100755
new mode 100644
diff --git a/dev/dbmodel/emulate_oscommerce/llx_osc_customer.sql b/dev/dbmodel/emulate_oscommerce/llx_osc_customer.sql
old mode 100755
new mode 100644
diff --git a/dev/dbmodel/emulate_oscommerce/llx_osc_order.sql b/dev/dbmodel/emulate_oscommerce/llx_osc_order.sql
old mode 100755
new mode 100644
diff --git a/dev/dbmodel/emulate_oscommerce/llx_osc_product.sql b/dev/dbmodel/emulate_oscommerce/llx_osc_product.sql
old mode 100755
new mode 100644
diff --git a/dev/examples/README b/dev/examples/README
old mode 100755
new mode 100644
diff --git a/dev/iso-normes/GURULABS-RPM-GUIDE-v1.0.PDF b/dev/iso-normes/GURULABS-RPM-GUIDE-v1.0.PDF
old mode 100755
new mode 100644
diff --git a/dev/iso-normes/address_format.txt b/dev/iso-normes/address_format.txt
old mode 100755
new mode 100644
diff --git a/dev/iso-normes/banknumber_format.txt b/dev/iso-normes/banknumber_format.txt
old mode 100755
new mode 100644
diff --git a/dev/iso-normes/xmlexport.txt b/dev/iso-normes/xmlexport.txt
old mode 100755
new mode 100644
diff --git a/dev/phpunit/README b/dev/phpunit/README
old mode 100755
new mode 100644
diff --git a/dev/phpunit/eclipse_setup_for_pti_phpunit.png b/dev/phpunit/eclipse_setup_for_pti_phpunit.png
old mode 100755
new mode 100644
diff --git a/dev/skeletons/build_webservice_from_class.php b/dev/skeletons/build_webservice_from_class.php
old mode 100644
new mode 100755
diff --git a/dev/test/testtcpdf.php b/dev/test/testtcpdf.php
old mode 100755
new mode 100644
diff --git a/doc/images/appicon_128.png b/doc/images/appicon_128.png
old mode 100755
new mode 100644
diff --git a/doc/images/appicon_16.ico b/doc/images/appicon_16.ico
old mode 100755
new mode 100644
diff --git a/doc/images/appicon_16.png b/doc/images/appicon_16.png
old mode 100755
new mode 100644
diff --git a/doc/images/appicon_32.png b/doc/images/appicon_32.png
old mode 100755
new mode 100644
diff --git a/doc/images/appicon_48.ico b/doc/images/appicon_48.ico
old mode 100755
new mode 100644
diff --git a/doc/images/appicon_64.png b/doc/images/appicon_64.png
old mode 100755
new mode 100644
diff --git a/doc/images/dolibarr_73x73.png b/doc/images/dolibarr_73x73.png
old mode 100755
new mode 100644
diff --git a/doc/images/dolibarr_logo.png b/doc/images/dolibarr_logo.png
old mode 100755
new mode 100644
diff --git a/htdocs/core/filemanagerdol/browser/default/browser.css b/htdocs/core/filemanagerdol/browser/default/browser.css
old mode 100755
new mode 100644
diff --git a/htdocs/core/filemanagerdol/browser/default/images/Folder.gif b/htdocs/core/filemanagerdol/browser/default/images/Folder.gif
old mode 100755
new mode 100644
diff --git a/htdocs/core/filemanagerdol/browser/default/images/FolderUp.gif b/htdocs/core/filemanagerdol/browser/default/images/FolderUp.gif
old mode 100755
new mode 100644
diff --git a/htdocs/core/filemanagerdol/browser/default/images/icons/32/ai.gif b/htdocs/core/filemanagerdol/browser/default/images/icons/32/ai.gif
old mode 100755
new mode 100644
diff --git a/htdocs/core/filemanagerdol/browser/default/images/icons/32/avi.gif b/htdocs/core/filemanagerdol/browser/default/images/icons/32/avi.gif
old mode 100755
new mode 100644
diff --git a/htdocs/core/filemanagerdol/browser/default/images/icons/32/bmp.gif b/htdocs/core/filemanagerdol/browser/default/images/icons/32/bmp.gif
old mode 100755
new mode 100644
diff --git a/htdocs/core/filemanagerdol/browser/default/images/icons/32/cs.gif b/htdocs/core/filemanagerdol/browser/default/images/icons/32/cs.gif
old mode 100755
new mode 100644
diff --git a/htdocs/core/filemanagerdol/browser/default/images/icons/32/default.icon.gif b/htdocs/core/filemanagerdol/browser/default/images/icons/32/default.icon.gif
old mode 100755
new mode 100644
diff --git a/htdocs/core/filemanagerdol/browser/default/images/icons/32/dll.gif b/htdocs/core/filemanagerdol/browser/default/images/icons/32/dll.gif
old mode 100755
new mode 100644
diff --git a/htdocs/core/filemanagerdol/browser/default/images/icons/32/doc.gif b/htdocs/core/filemanagerdol/browser/default/images/icons/32/doc.gif
old mode 100755
new mode 100644
diff --git a/htdocs/core/filemanagerdol/browser/default/images/icons/32/exe.gif b/htdocs/core/filemanagerdol/browser/default/images/icons/32/exe.gif
old mode 100755
new mode 100644
diff --git a/htdocs/core/filemanagerdol/browser/default/images/icons/32/fla.gif b/htdocs/core/filemanagerdol/browser/default/images/icons/32/fla.gif
old mode 100755
new mode 100644
diff --git a/htdocs/core/filemanagerdol/browser/default/images/icons/32/gif.gif b/htdocs/core/filemanagerdol/browser/default/images/icons/32/gif.gif
old mode 100755
new mode 100644
diff --git a/htdocs/core/filemanagerdol/browser/default/images/icons/32/htm.gif b/htdocs/core/filemanagerdol/browser/default/images/icons/32/htm.gif
old mode 100755
new mode 100644
diff --git a/htdocs/core/filemanagerdol/browser/default/images/icons/32/html.gif b/htdocs/core/filemanagerdol/browser/default/images/icons/32/html.gif
old mode 100755
new mode 100644
diff --git a/htdocs/core/filemanagerdol/browser/default/images/icons/32/jpg.gif b/htdocs/core/filemanagerdol/browser/default/images/icons/32/jpg.gif
old mode 100755
new mode 100644
diff --git a/htdocs/core/filemanagerdol/browser/default/images/icons/32/js.gif b/htdocs/core/filemanagerdol/browser/default/images/icons/32/js.gif
old mode 100755
new mode 100644
diff --git a/htdocs/core/filemanagerdol/browser/default/images/icons/32/mdb.gif b/htdocs/core/filemanagerdol/browser/default/images/icons/32/mdb.gif
old mode 100755
new mode 100644
diff --git a/htdocs/core/filemanagerdol/browser/default/images/icons/32/mp3.gif b/htdocs/core/filemanagerdol/browser/default/images/icons/32/mp3.gif
old mode 100755
new mode 100644
diff --git a/htdocs/core/filemanagerdol/browser/default/images/icons/32/pdf.gif b/htdocs/core/filemanagerdol/browser/default/images/icons/32/pdf.gif
old mode 100755
new mode 100644
diff --git a/htdocs/core/filemanagerdol/browser/default/images/icons/32/png.gif b/htdocs/core/filemanagerdol/browser/default/images/icons/32/png.gif
old mode 100755
new mode 100644
diff --git a/htdocs/core/filemanagerdol/browser/default/images/icons/32/ppt.gif b/htdocs/core/filemanagerdol/browser/default/images/icons/32/ppt.gif
old mode 100755
new mode 100644
diff --git a/htdocs/core/filemanagerdol/browser/default/images/icons/32/rdp.gif b/htdocs/core/filemanagerdol/browser/default/images/icons/32/rdp.gif
old mode 100755
new mode 100644
diff --git a/htdocs/core/filemanagerdol/browser/default/images/icons/32/swf.gif b/htdocs/core/filemanagerdol/browser/default/images/icons/32/swf.gif
old mode 100755
new mode 100644
diff --git a/htdocs/core/filemanagerdol/browser/default/images/icons/32/swt.gif b/htdocs/core/filemanagerdol/browser/default/images/icons/32/swt.gif
old mode 100755
new mode 100644
diff --git a/htdocs/core/filemanagerdol/browser/default/images/icons/32/txt.gif b/htdocs/core/filemanagerdol/browser/default/images/icons/32/txt.gif
old mode 100755
new mode 100644
diff --git a/htdocs/core/filemanagerdol/browser/default/images/icons/32/vsd.gif b/htdocs/core/filemanagerdol/browser/default/images/icons/32/vsd.gif
old mode 100755
new mode 100644
diff --git a/htdocs/core/filemanagerdol/browser/default/images/icons/32/xls.gif b/htdocs/core/filemanagerdol/browser/default/images/icons/32/xls.gif
old mode 100755
new mode 100644
diff --git a/htdocs/core/filemanagerdol/browser/default/images/icons/32/xml.gif b/htdocs/core/filemanagerdol/browser/default/images/icons/32/xml.gif
old mode 100755
new mode 100644
diff --git a/htdocs/core/filemanagerdol/browser/default/images/icons/32/zip.gif b/htdocs/core/filemanagerdol/browser/default/images/icons/32/zip.gif
old mode 100755
new mode 100644
diff --git a/htdocs/core/filemanagerdol/browser/default/images/icons/ai.gif b/htdocs/core/filemanagerdol/browser/default/images/icons/ai.gif
old mode 100755
new mode 100644
diff --git a/htdocs/core/filemanagerdol/browser/default/images/icons/avi.gif b/htdocs/core/filemanagerdol/browser/default/images/icons/avi.gif
old mode 100755
new mode 100644
diff --git a/htdocs/core/filemanagerdol/browser/default/images/icons/bmp.gif b/htdocs/core/filemanagerdol/browser/default/images/icons/bmp.gif
old mode 100755
new mode 100644
diff --git a/htdocs/core/filemanagerdol/browser/default/images/icons/cs.gif b/htdocs/core/filemanagerdol/browser/default/images/icons/cs.gif
old mode 100755
new mode 100644
diff --git a/htdocs/core/filemanagerdol/browser/default/images/icons/default.icon.gif b/htdocs/core/filemanagerdol/browser/default/images/icons/default.icon.gif
old mode 100755
new mode 100644
diff --git a/htdocs/core/filemanagerdol/browser/default/images/icons/dll.gif b/htdocs/core/filemanagerdol/browser/default/images/icons/dll.gif
old mode 100755
new mode 100644
diff --git a/htdocs/core/filemanagerdol/browser/default/images/icons/doc.gif b/htdocs/core/filemanagerdol/browser/default/images/icons/doc.gif
old mode 100755
new mode 100644
diff --git a/htdocs/core/filemanagerdol/browser/default/images/icons/exe.gif b/htdocs/core/filemanagerdol/browser/default/images/icons/exe.gif
old mode 100755
new mode 100644
diff --git a/htdocs/core/filemanagerdol/browser/default/images/icons/fla.gif b/htdocs/core/filemanagerdol/browser/default/images/icons/fla.gif
old mode 100755
new mode 100644
diff --git a/htdocs/core/filemanagerdol/browser/default/images/icons/gif.gif b/htdocs/core/filemanagerdol/browser/default/images/icons/gif.gif
old mode 100755
new mode 100644
diff --git a/htdocs/core/filemanagerdol/browser/default/images/icons/htm.gif b/htdocs/core/filemanagerdol/browser/default/images/icons/htm.gif
old mode 100755
new mode 100644
diff --git a/htdocs/core/filemanagerdol/browser/default/images/icons/html.gif b/htdocs/core/filemanagerdol/browser/default/images/icons/html.gif
old mode 100755
new mode 100644
diff --git a/htdocs/core/filemanagerdol/browser/default/images/icons/jpg.gif b/htdocs/core/filemanagerdol/browser/default/images/icons/jpg.gif
old mode 100755
new mode 100644
diff --git a/htdocs/core/filemanagerdol/browser/default/images/icons/js.gif b/htdocs/core/filemanagerdol/browser/default/images/icons/js.gif
old mode 100755
new mode 100644
diff --git a/htdocs/core/filemanagerdol/browser/default/images/icons/mdb.gif b/htdocs/core/filemanagerdol/browser/default/images/icons/mdb.gif
old mode 100755
new mode 100644
diff --git a/htdocs/core/filemanagerdol/browser/default/images/icons/mp3.gif b/htdocs/core/filemanagerdol/browser/default/images/icons/mp3.gif
old mode 100755
new mode 100644
diff --git a/htdocs/core/filemanagerdol/browser/default/images/icons/pdf.gif b/htdocs/core/filemanagerdol/browser/default/images/icons/pdf.gif
old mode 100755
new mode 100644
diff --git a/htdocs/core/filemanagerdol/browser/default/images/icons/png.gif b/htdocs/core/filemanagerdol/browser/default/images/icons/png.gif
old mode 100755
new mode 100644
diff --git a/htdocs/core/filemanagerdol/browser/default/images/icons/ppt.gif b/htdocs/core/filemanagerdol/browser/default/images/icons/ppt.gif
old mode 100755
new mode 100644
diff --git a/htdocs/core/filemanagerdol/browser/default/images/icons/rdp.gif b/htdocs/core/filemanagerdol/browser/default/images/icons/rdp.gif
old mode 100755
new mode 100644
diff --git a/htdocs/core/filemanagerdol/browser/default/images/icons/swf.gif b/htdocs/core/filemanagerdol/browser/default/images/icons/swf.gif
old mode 100755
new mode 100644
diff --git a/htdocs/core/filemanagerdol/browser/default/images/icons/swt.gif b/htdocs/core/filemanagerdol/browser/default/images/icons/swt.gif
old mode 100755
new mode 100644
diff --git a/htdocs/core/filemanagerdol/browser/default/images/icons/txt.gif b/htdocs/core/filemanagerdol/browser/default/images/icons/txt.gif
old mode 100755
new mode 100644
diff --git a/htdocs/core/filemanagerdol/browser/default/images/icons/vsd.gif b/htdocs/core/filemanagerdol/browser/default/images/icons/vsd.gif
old mode 100755
new mode 100644
diff --git a/htdocs/core/filemanagerdol/browser/default/images/icons/xls.gif b/htdocs/core/filemanagerdol/browser/default/images/icons/xls.gif
old mode 100755
new mode 100644
diff --git a/htdocs/core/filemanagerdol/browser/default/images/icons/xml.gif b/htdocs/core/filemanagerdol/browser/default/images/icons/xml.gif
old mode 100755
new mode 100644
diff --git a/htdocs/core/filemanagerdol/browser/default/images/icons/zip.gif b/htdocs/core/filemanagerdol/browser/default/images/icons/zip.gif
old mode 100755
new mode 100644
diff --git a/htdocs/core/filemanagerdol/browser/default/js/common.js b/htdocs/core/filemanagerdol/browser/default/js/common.js
old mode 100755
new mode 100644
diff --git a/htdocs/core/filemanagerdol/browser/default/js/fckxml.js b/htdocs/core/filemanagerdol/browser/default/js/fckxml.js
old mode 100755
new mode 100644
diff --git a/htdocs/core/filemanagerdol/browser/default/spacer.gif b/htdocs/core/filemanagerdol/browser/default/spacer.gif
old mode 100755
new mode 100644
diff --git a/htdocs/core/modules/security/generate/README b/htdocs/core/modules/security/generate/README
old mode 100755
new mode 100644
diff --git a/htdocs/includes/fpdfi/README.txt b/htdocs/includes/fpdfi/README.txt
old mode 100755
new mode 100644
diff --git a/htdocs/includes/jquery/plugins/colorpicker/jquery.colorpicker.css b/htdocs/includes/jquery/plugins/colorpicker/jquery.colorpicker.css
old mode 100755
new mode 100644
diff --git a/htdocs/includes/jquery/plugins/colorpicker/jquery.colorpicker.js b/htdocs/includes/jquery/plugins/colorpicker/jquery.colorpicker.js
old mode 100755
new mode 100644
diff --git a/htdocs/includes/jquery/plugins/jcrop/css/Jcrop.gif b/htdocs/includes/jquery/plugins/jcrop/css/Jcrop.gif
old mode 100755
new mode 100644
diff --git a/htdocs/includes/jquery/plugins/jcrop/css/jquery.Jcrop.css b/htdocs/includes/jquery/plugins/jcrop/css/jquery.Jcrop.css
old mode 100755
new mode 100644
diff --git a/htdocs/includes/jquery/plugins/jcrop/index.html b/htdocs/includes/jquery/plugins/jcrop/index.html
old mode 100755
new mode 100644
diff --git a/htdocs/includes/jquery/plugins/jcrop/js/jquery.Jcrop.js b/htdocs/includes/jquery/plugins/jcrop/js/jquery.Jcrop.js
old mode 100755
new mode 100644
diff --git a/htdocs/includes/jquery/plugins/jcrop/js/jquery.Jcrop.min.js b/htdocs/includes/jquery/plugins/jcrop/js/jquery.Jcrop.min.js
old mode 100755
new mode 100644
diff --git a/htdocs/includes/jquery/plugins/jnotify/jquery.jnotify-alt.min.css b/htdocs/includes/jquery/plugins/jnotify/jquery.jnotify-alt.min.css
old mode 100755
new mode 100644
diff --git a/htdocs/includes/jquery/plugins/jnotify/jquery.jnotify.css b/htdocs/includes/jquery/plugins/jnotify/jquery.jnotify.css
old mode 100755
new mode 100644
diff --git a/htdocs/includes/jquery/plugins/jpicker/ChangeLog.txt b/htdocs/includes/jquery/plugins/jpicker/ChangeLog.txt
old mode 100755
new mode 100644
diff --git a/htdocs/includes/jquery/plugins/jpicker/Example.html b/htdocs/includes/jquery/plugins/jpicker/Example.html
old mode 100755
new mode 100644
diff --git a/htdocs/includes/jquery/plugins/jpicker/ReadMe.txt b/htdocs/includes/jquery/plugins/jpicker/ReadMe.txt
old mode 100755
new mode 100644
diff --git a/htdocs/includes/jquery/plugins/jpicker/css/jPicker-1.1.6.css b/htdocs/includes/jquery/plugins/jpicker/css/jPicker-1.1.6.css
old mode 100755
new mode 100644
diff --git a/htdocs/includes/jquery/plugins/jpicker/css/jPicker-1.1.6.min.css b/htdocs/includes/jquery/plugins/jpicker/css/jPicker-1.1.6.min.css
old mode 100755
new mode 100644
diff --git a/htdocs/includes/jquery/plugins/jpicker/images/AlphaBar.png b/htdocs/includes/jquery/plugins/jpicker/images/AlphaBar.png
old mode 100755
new mode 100644
diff --git a/htdocs/includes/jquery/plugins/jpicker/images/Bars.png b/htdocs/includes/jquery/plugins/jpicker/images/Bars.png
old mode 100755
new mode 100644
diff --git a/htdocs/includes/jquery/plugins/jpicker/images/Maps.png b/htdocs/includes/jquery/plugins/jpicker/images/Maps.png
old mode 100755
new mode 100644
diff --git a/htdocs/includes/jquery/plugins/jpicker/images/NoColor.png b/htdocs/includes/jquery/plugins/jpicker/images/NoColor.png
old mode 100755
new mode 100644
diff --git a/htdocs/includes/jquery/plugins/jpicker/images/bar-opacity.png b/htdocs/includes/jquery/plugins/jpicker/images/bar-opacity.png
old mode 100755
new mode 100644
diff --git a/htdocs/includes/jquery/plugins/jpicker/images/map-opacity.png b/htdocs/includes/jquery/plugins/jpicker/images/map-opacity.png
old mode 100755
new mode 100644
diff --git a/htdocs/includes/jquery/plugins/jpicker/images/mappoint.gif b/htdocs/includes/jquery/plugins/jpicker/images/mappoint.gif
old mode 100755
new mode 100644
diff --git a/htdocs/includes/jquery/plugins/jpicker/images/picker.gif b/htdocs/includes/jquery/plugins/jpicker/images/picker.gif
old mode 100755
new mode 100644
diff --git a/htdocs/includes/jquery/plugins/jpicker/images/preview-opacity.png b/htdocs/includes/jquery/plugins/jpicker/images/preview-opacity.png
old mode 100755
new mode 100644
diff --git a/htdocs/includes/jquery/plugins/jpicker/images/rangearrows.gif b/htdocs/includes/jquery/plugins/jpicker/images/rangearrows.gif
old mode 100755
new mode 100644
diff --git a/htdocs/includes/jquery/plugins/jpicker/jPicker.css b/htdocs/includes/jquery/plugins/jpicker/jPicker.css
old mode 100755
new mode 100644
diff --git a/htdocs/includes/jquery/plugins/jpicker/jpicker-1.1.6.js b/htdocs/includes/jquery/plugins/jpicker/jpicker-1.1.6.js
old mode 100755
new mode 100644
diff --git a/htdocs/includes/jquery/plugins/jpicker/jpicker-1.1.6.min.js b/htdocs/includes/jquery/plugins/jpicker/jpicker-1.1.6.min.js
old mode 100755
new mode 100644
diff --git a/htdocs/includes/jquery/plugins/jqueryFileTree/images/application.png b/htdocs/includes/jquery/plugins/jqueryFileTree/images/application.png
old mode 100755
new mode 100644
diff --git a/htdocs/includes/jquery/plugins/jqueryFileTree/images/code.png b/htdocs/includes/jquery/plugins/jqueryFileTree/images/code.png
old mode 100755
new mode 100644
diff --git a/htdocs/includes/jquery/plugins/jqueryFileTree/images/css.png b/htdocs/includes/jquery/plugins/jqueryFileTree/images/css.png
old mode 100755
new mode 100644
diff --git a/htdocs/includes/jquery/plugins/jqueryFileTree/images/db.png b/htdocs/includes/jquery/plugins/jqueryFileTree/images/db.png
old mode 100755
new mode 100644
diff --git a/htdocs/includes/jquery/plugins/jqueryFileTree/images/directory.png b/htdocs/includes/jquery/plugins/jqueryFileTree/images/directory.png
old mode 100755
new mode 100644
diff --git a/htdocs/includes/jquery/plugins/jqueryFileTree/images/doc.png b/htdocs/includes/jquery/plugins/jqueryFileTree/images/doc.png
old mode 100755
new mode 100644
diff --git a/htdocs/includes/jquery/plugins/jqueryFileTree/images/file.png b/htdocs/includes/jquery/plugins/jqueryFileTree/images/file.png
old mode 100755
new mode 100644
diff --git a/htdocs/includes/jquery/plugins/jqueryFileTree/images/film.png b/htdocs/includes/jquery/plugins/jqueryFileTree/images/film.png
old mode 100755
new mode 100644
diff --git a/htdocs/includes/jquery/plugins/jqueryFileTree/images/flash.png b/htdocs/includes/jquery/plugins/jqueryFileTree/images/flash.png
old mode 100755
new mode 100644
diff --git a/htdocs/includes/jquery/plugins/jqueryFileTree/images/folder_open.png b/htdocs/includes/jquery/plugins/jqueryFileTree/images/folder_open.png
old mode 100755
new mode 100644
diff --git a/htdocs/includes/jquery/plugins/jqueryFileTree/images/html.png b/htdocs/includes/jquery/plugins/jqueryFileTree/images/html.png
old mode 100755
new mode 100644
diff --git a/htdocs/includes/jquery/plugins/jqueryFileTree/images/java.png b/htdocs/includes/jquery/plugins/jqueryFileTree/images/java.png
old mode 100755
new mode 100644
diff --git a/htdocs/includes/jquery/plugins/jqueryFileTree/images/linux.png b/htdocs/includes/jquery/plugins/jqueryFileTree/images/linux.png
old mode 100755
new mode 100644
diff --git a/htdocs/includes/jquery/plugins/jqueryFileTree/images/music.png b/htdocs/includes/jquery/plugins/jqueryFileTree/images/music.png
old mode 100755
new mode 100644
diff --git a/htdocs/includes/jquery/plugins/jqueryFileTree/images/pdf.png b/htdocs/includes/jquery/plugins/jqueryFileTree/images/pdf.png
old mode 100755
new mode 100644
diff --git a/htdocs/includes/jquery/plugins/jqueryFileTree/images/php.png b/htdocs/includes/jquery/plugins/jqueryFileTree/images/php.png
old mode 100755
new mode 100644
diff --git a/htdocs/includes/jquery/plugins/jqueryFileTree/images/picture.png b/htdocs/includes/jquery/plugins/jqueryFileTree/images/picture.png
old mode 100755
new mode 100644
diff --git a/htdocs/includes/jquery/plugins/jqueryFileTree/images/ppt.png b/htdocs/includes/jquery/plugins/jqueryFileTree/images/ppt.png
old mode 100755
new mode 100644
diff --git a/htdocs/includes/jquery/plugins/jqueryFileTree/images/psd.png b/htdocs/includes/jquery/plugins/jqueryFileTree/images/psd.png
old mode 100755
new mode 100644
diff --git a/htdocs/includes/jquery/plugins/jqueryFileTree/images/ruby.png b/htdocs/includes/jquery/plugins/jqueryFileTree/images/ruby.png
old mode 100755
new mode 100644
diff --git a/htdocs/includes/jquery/plugins/jqueryFileTree/images/script.png b/htdocs/includes/jquery/plugins/jqueryFileTree/images/script.png
old mode 100755
new mode 100644
diff --git a/htdocs/includes/jquery/plugins/jqueryFileTree/images/spinner.gif b/htdocs/includes/jquery/plugins/jqueryFileTree/images/spinner.gif
old mode 100755
new mode 100644
diff --git a/htdocs/includes/jquery/plugins/jqueryFileTree/images/txt.png b/htdocs/includes/jquery/plugins/jqueryFileTree/images/txt.png
old mode 100755
new mode 100644
diff --git a/htdocs/includes/jquery/plugins/jqueryFileTree/images/xls.png b/htdocs/includes/jquery/plugins/jqueryFileTree/images/xls.png
old mode 100755
new mode 100644
diff --git a/htdocs/includes/jquery/plugins/jqueryFileTree/images/zip.png b/htdocs/includes/jquery/plugins/jqueryFileTree/images/zip.png
old mode 100755
new mode 100644
diff --git a/htdocs/includes/jquery/plugins/jqueryFileTree/jqueryFileTree.css b/htdocs/includes/jquery/plugins/jqueryFileTree/jqueryFileTree.css
old mode 100755
new mode 100644
diff --git a/htdocs/includes/jquery/plugins/jqueryFileTree/jqueryFileTree.js b/htdocs/includes/jquery/plugins/jqueryFileTree/jqueryFileTree.js
old mode 100755
new mode 100644
diff --git a/htdocs/includes/jquery/plugins/tiptip/jquery.tipTip.js b/htdocs/includes/jquery/plugins/tiptip/jquery.tipTip.js
old mode 100755
new mode 100644
diff --git a/htdocs/includes/jquery/plugins/tiptip/jquery.tipTip.min.js b/htdocs/includes/jquery/plugins/tiptip/jquery.tipTip.min.js
old mode 100755
new mode 100644
diff --git a/htdocs/includes/jquery/plugins/tiptip/tipTip.css b/htdocs/includes/jquery/plugins/tiptip/tipTip.css
old mode 100755
new mode 100644
diff --git a/htdocs/includes/nusoap/lib/Mail/xmail.dtd b/htdocs/includes/nusoap/lib/Mail/xmail.dtd
old mode 100755
new mode 100644
diff --git a/htdocs/includes/nusoap/lib/Mail/xmail.xsl b/htdocs/includes/nusoap/lib/Mail/xmail.xsl
old mode 100755
new mode 100644
diff --git a/htdocs/includes/tcpdf/fonts/dejavusanscondensed.ctg.z b/htdocs/includes/tcpdf/fonts/dejavusanscondensed.ctg.z
old mode 100755
new mode 100644
diff --git a/htdocs/includes/tcpdf/fonts/dejavusanscondensed.z b/htdocs/includes/tcpdf/fonts/dejavusanscondensed.z
old mode 100755
new mode 100644
diff --git a/htdocs/includes/tcpdf/fonts/dejavusanscondensedb.ctg.z b/htdocs/includes/tcpdf/fonts/dejavusanscondensedb.ctg.z
old mode 100755
new mode 100644
diff --git a/htdocs/includes/tcpdf/fonts/dejavusanscondensedb.z b/htdocs/includes/tcpdf/fonts/dejavusanscondensedb.z
old mode 100755
new mode 100644
diff --git a/htdocs/includes/tcpdf/fonts/dejavusanscondensedbi.ctg.z b/htdocs/includes/tcpdf/fonts/dejavusanscondensedbi.ctg.z
old mode 100755
new mode 100644
diff --git a/htdocs/includes/tcpdf/fonts/dejavusanscondensedbi.z b/htdocs/includes/tcpdf/fonts/dejavusanscondensedbi.z
old mode 100755
new mode 100644
diff --git a/htdocs/includes/tcpdf/fonts/dejavusanscondensedi.ctg.z b/htdocs/includes/tcpdf/fonts/dejavusanscondensedi.ctg.z
old mode 100755
new mode 100644
diff --git a/htdocs/includes/tcpdf/fonts/dejavusanscondensedi.z b/htdocs/includes/tcpdf/fonts/dejavusanscondensedi.z
old mode 100755
new mode 100644
diff --git a/htdocs/includes/tcpdf/fonts/dejavusansextralight.ctg.z b/htdocs/includes/tcpdf/fonts/dejavusansextralight.ctg.z
old mode 100755
new mode 100644
diff --git a/htdocs/includes/tcpdf/fonts/dejavusansextralight.z b/htdocs/includes/tcpdf/fonts/dejavusansextralight.z
old mode 100755
new mode 100644
diff --git a/htdocs/includes/tcpdf/fonts/dejavusansmono.ctg.z b/htdocs/includes/tcpdf/fonts/dejavusansmono.ctg.z
old mode 100755
new mode 100644
diff --git a/htdocs/includes/tcpdf/fonts/dejavusansmono.z b/htdocs/includes/tcpdf/fonts/dejavusansmono.z
old mode 100755
new mode 100644
diff --git a/htdocs/includes/tcpdf/fonts/dejavusansmonob.ctg.z b/htdocs/includes/tcpdf/fonts/dejavusansmonob.ctg.z
old mode 100755
new mode 100644
diff --git a/htdocs/includes/tcpdf/fonts/dejavusansmonob.z b/htdocs/includes/tcpdf/fonts/dejavusansmonob.z
old mode 100755
new mode 100644
diff --git a/htdocs/includes/tcpdf/fonts/dejavusansmonobi.ctg.z b/htdocs/includes/tcpdf/fonts/dejavusansmonobi.ctg.z
old mode 100755
new mode 100644
diff --git a/htdocs/includes/tcpdf/fonts/dejavusansmonobi.z b/htdocs/includes/tcpdf/fonts/dejavusansmonobi.z
old mode 100755
new mode 100644
diff --git a/htdocs/includes/tcpdf/fonts/dejavusansmonoi.ctg.z b/htdocs/includes/tcpdf/fonts/dejavusansmonoi.ctg.z
old mode 100755
new mode 100644
diff --git a/htdocs/includes/tcpdf/fonts/dejavusansmonoi.z b/htdocs/includes/tcpdf/fonts/dejavusansmonoi.z
old mode 100755
new mode 100644
diff --git a/htdocs/install/doctemplates/projects/template_project.odt b/htdocs/install/doctemplates/projects/template_project.odt
old mode 100755
new mode 100644
diff --git a/htdocs/install/mysql/data/llx_c_input_method.sql b/htdocs/install/mysql/data/llx_c_input_method.sql
old mode 100755
new mode 100644
diff --git a/htdocs/install/mysql/data/llx_c_input_reason.sql b/htdocs/install/mysql/data/llx_c_input_reason.sql
old mode 100755
new mode 100644
diff --git a/htdocs/install/mysql/migration/2.7.0-2.8.0.sql b/htdocs/install/mysql/migration/2.7.0-2.8.0.sql
old mode 100755
new mode 100644
diff --git a/htdocs/install/mysql/migration/2.8.0-2.9.0.sql b/htdocs/install/mysql/migration/2.8.0-2.9.0.sql
old mode 100755
new mode 100644
diff --git a/htdocs/install/mysql/migration/3.0.0-3.1.0.sql b/htdocs/install/mysql/migration/3.0.0-3.1.0.sql
old mode 100755
new mode 100644
diff --git a/htdocs/install/mysql/migration/3.1.0-3.2.0.sql b/htdocs/install/mysql/migration/3.1.0-3.2.0.sql
old mode 100755
new mode 100644
diff --git a/htdocs/install/mysql/migration/3.2.0-3.3.0.sql b/htdocs/install/mysql/migration/3.2.0-3.3.0.sql
old mode 100755
new mode 100644
diff --git a/htdocs/install/mysql/migration/3.3.0-3.4.0.sql b/htdocs/install/mysql/migration/3.3.0-3.4.0.sql
old mode 100755
new mode 100644
diff --git a/htdocs/install/mysql/migration/3.4.0-3.5.0.sql b/htdocs/install/mysql/migration/3.4.0-3.5.0.sql
old mode 100755
new mode 100644
diff --git a/htdocs/install/mysql/tables/llx_resource.key.sql b/htdocs/install/mysql/tables/llx_resource.key.sql
old mode 100755
new mode 100644
diff --git a/htdocs/install/mysql/tables/llx_resource.sql b/htdocs/install/mysql/tables/llx_resource.sql
old mode 100755
new mode 100644
diff --git a/htdocs/langs/en_US/resource.lang b/htdocs/langs/en_US/resource.lang
old mode 100755
new mode 100644
diff --git a/htdocs/langs/fr_FR/resource.lang b/htdocs/langs/fr_FR/resource.lang
old mode 100755
new mode 100644
diff --git a/htdocs/opensurvey/img/accept-24.png b/htdocs/opensurvey/img/accept-24.png
old mode 100755
new mode 100644
diff --git a/htdocs/opensurvey/img/accept.png b/htdocs/opensurvey/img/accept.png
old mode 100755
new mode 100644
diff --git a/htdocs/opensurvey/img/add-16.png b/htdocs/opensurvey/img/add-16.png
old mode 100755
new mode 100644
diff --git a/htdocs/opensurvey/img/add-24.png b/htdocs/opensurvey/img/add-24.png
old mode 100755
new mode 100644
diff --git a/htdocs/opensurvey/img/calendar-32.png b/htdocs/opensurvey/img/calendar-32.png
old mode 100755
new mode 100644
diff --git a/htdocs/opensurvey/img/cancel.png b/htdocs/opensurvey/img/cancel.png
old mode 100755
new mode 100644
diff --git a/htdocs/opensurvey/img/chart-32.png b/htdocs/opensurvey/img/chart-32.png
old mode 100755
new mode 100644
diff --git a/htdocs/opensurvey/img/fforward.png b/htdocs/opensurvey/img/fforward.png
old mode 100755
new mode 100644
diff --git a/htdocs/opensurvey/img/medaille.png b/htdocs/opensurvey/img/medaille.png
old mode 100755
new mode 100644
diff --git a/htdocs/opensurvey/img/next.png b/htdocs/opensurvey/img/next.png
old mode 100755
new mode 100644
diff --git a/htdocs/opensurvey/img/object_opensurvey.png b/htdocs/opensurvey/img/object_opensurvey.png
old mode 100755
new mode 100644
diff --git a/htdocs/opensurvey/img/previous.png b/htdocs/opensurvey/img/previous.png
old mode 100755
new mode 100644
diff --git a/htdocs/opensurvey/img/rewind.png b/htdocs/opensurvey/img/rewind.png
old mode 100755
new mode 100644
diff --git a/htdocs/resource/add.php b/htdocs/resource/add.php
old mode 100755
new mode 100644
diff --git a/htdocs/resource/card.php b/htdocs/resource/card.php
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/AUTHOR b/htdocs/theme/amarok/AUTHOR
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/ckeditor/config.js b/htdocs/theme/amarok/ckeditor/config.js
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/1downarrow.png b/htdocs/theme/amarok/img/1downarrow.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/1downarrow_selected.png b/htdocs/theme/amarok/img/1downarrow_selected.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/1leftarrow.png b/htdocs/theme/amarok/img/1leftarrow.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/1leftarrow_selected.png b/htdocs/theme/amarok/img/1leftarrow_selected.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/1rightarrow.png b/htdocs/theme/amarok/img/1rightarrow.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/1rightarrow_selected.png b/htdocs/theme/amarok/img/1rightarrow_selected.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/1uparrow.png b/htdocs/theme/amarok/img/1uparrow.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/1uparrow_selected.png b/htdocs/theme/amarok/img/1uparrow_selected.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/1updownarrow.png b/htdocs/theme/amarok/img/1updownarrow.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/addfile.png b/htdocs/theme/amarok/img/addfile.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/button_edit.png b/htdocs/theme/amarok/img/button_edit.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/calc.png b/htdocs/theme/amarok/img/calc.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/calendar.png b/htdocs/theme/amarok/img/calendar.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/call.png b/htdocs/theme/amarok/img/call.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/call_out.png b/htdocs/theme/amarok/img/call_out.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/close.png b/htdocs/theme/amarok/img/close.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/delete.png b/htdocs/theme/amarok/img/delete.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/detail.png b/htdocs/theme/amarok/img/detail.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/disable.png b/htdocs/theme/amarok/img/disable.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/edit.png b/htdocs/theme/amarok/img/edit.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/edit_add.png b/htdocs/theme/amarok/img/edit_add.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/edit_remove.png b/htdocs/theme/amarok/img/edit_remove.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/editdelete.png b/htdocs/theme/amarok/img/editdelete.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/error.png b/htdocs/theme/amarok/img/error.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/file.png b/htdocs/theme/amarok/img/file.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/filenew.png b/htdocs/theme/amarok/img/filenew.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/filter.png b/htdocs/theme/amarok/img/filter.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/folder-open.png b/htdocs/theme/amarok/img/folder-open.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/folder.png b/htdocs/theme/amarok/img/folder.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/grip.png b/htdocs/theme/amarok/img/grip.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/help.png b/htdocs/theme/amarok/img/help.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/helpdoc.png b/htdocs/theme/amarok/img/helpdoc.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/high.png b/htdocs/theme/amarok/img/high.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/history.png b/htdocs/theme/amarok/img/history.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/indent1.png b/htdocs/theme/amarok/img/indent1.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/info.png b/htdocs/theme/amarok/img/info.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/lock.png b/htdocs/theme/amarok/img/lock.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/logout.png b/htdocs/theme/amarok/img/logout.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/mainlevel.gif b/htdocs/theme/amarok/img/mainlevel.gif
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/money.png b/htdocs/theme/amarok/img/money.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/next.png b/htdocs/theme/amarok/img/next.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/object_account.png b/htdocs/theme/amarok/img/object_account.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/object_action.png b/htdocs/theme/amarok/img/object_action.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/object_barcode.png b/htdocs/theme/amarok/img/object_barcode.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/object_bill.png b/htdocs/theme/amarok/img/object_bill.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/object_billa.png b/htdocs/theme/amarok/img/object_billa.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/object_billd.png b/htdocs/theme/amarok/img/object_billd.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/object_billr.png b/htdocs/theme/amarok/img/object_billr.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/object_book.png b/htdocs/theme/amarok/img/object_book.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/object_bookmark.png b/htdocs/theme/amarok/img/object_bookmark.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/object_calendar.png b/htdocs/theme/amarok/img/object_calendar.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/object_calendarday.png b/htdocs/theme/amarok/img/object_calendarday.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/object_calendarweek.png b/htdocs/theme/amarok/img/object_calendarweek.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/object_category-expanded.png b/htdocs/theme/amarok/img/object_category-expanded.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/object_category.png b/htdocs/theme/amarok/img/object_category.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/object_commercial.png b/htdocs/theme/amarok/img/object_commercial.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/object_company.png b/htdocs/theme/amarok/img/object_company.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/object_contact.png b/htdocs/theme/amarok/img/object_contact.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/object_contact_all.png b/htdocs/theme/amarok/img/object_contact_all.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/object_contract.png b/htdocs/theme/amarok/img/object_contract.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/object_dir.png b/htdocs/theme/amarok/img/object_dir.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/object_email.png b/htdocs/theme/amarok/img/object_email.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/object_energie.png b/htdocs/theme/amarok/img/object_energie.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/object_generic.png b/htdocs/theme/amarok/img/object_generic.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/object_globe.png b/htdocs/theme/amarok/img/object_globe.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/object_group.png b/htdocs/theme/amarok/img/object_group.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/object_intervention.png b/htdocs/theme/amarok/img/object_intervention.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/object_invoice.png b/htdocs/theme/amarok/img/object_invoice.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/object_label.png b/htdocs/theme/amarok/img/object_label.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/object_list.png b/htdocs/theme/amarok/img/object_list.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/object_opensurvey.png b/htdocs/theme/amarok/img/object_opensurvey.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/object_order.png b/htdocs/theme/amarok/img/object_order.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/object_payment.png b/htdocs/theme/amarok/img/object_payment.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/object_phoning.png b/htdocs/theme/amarok/img/object_phoning.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/object_product.png b/htdocs/theme/amarok/img/object_product.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/object_project.png b/htdocs/theme/amarok/img/object_project.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/object_projectpub.png b/htdocs/theme/amarok/img/object_projectpub.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/object_projecttask.png b/htdocs/theme/amarok/img/object_projecttask.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/object_propal.png b/htdocs/theme/amarok/img/object_propal.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/object_reduc.png b/htdocs/theme/amarok/img/object_reduc.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/object_rss.png b/htdocs/theme/amarok/img/object_rss.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/object_sending.png b/htdocs/theme/amarok/img/object_sending.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/object_service.png b/htdocs/theme/amarok/img/object_service.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/object_stock.png b/htdocs/theme/amarok/img/object_stock.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/object_task.png b/htdocs/theme/amarok/img/object_task.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/object_technic.png b/htdocs/theme/amarok/img/object_technic.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/object_trip.png b/htdocs/theme/amarok/img/object_trip.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/object_user.png b/htdocs/theme/amarok/img/object_user.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/off.png b/htdocs/theme/amarok/img/off.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/ok.png b/htdocs/theme/amarok/img/ok.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/on.png b/htdocs/theme/amarok/img/on.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/pdf2.png b/htdocs/theme/amarok/img/pdf2.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/pdf3.png b/htdocs/theme/amarok/img/pdf3.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/previous.png b/htdocs/theme/amarok/img/previous.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/printer.png b/htdocs/theme/amarok/img/printer.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/puce.png b/htdocs/theme/amarok/img/puce.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/recent.png b/htdocs/theme/amarok/img/recent.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/redstar.png b/htdocs/theme/amarok/img/redstar.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/refresh.png b/htdocs/theme/amarok/img/refresh.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/reload.png b/htdocs/theme/amarok/img/reload.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/rightarrow.png b/htdocs/theme/amarok/img/rightarrow.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/search.png b/htdocs/theme/amarok/img/search.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/searchclear.png b/htdocs/theme/amarok/img/searchclear.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/setup.png b/htdocs/theme/amarok/img/setup.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/split.png b/htdocs/theme/amarok/img/split.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/star.png b/htdocs/theme/amarok/img/star.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/stats.png b/htdocs/theme/amarok/img/stats.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/statut0.png b/htdocs/theme/amarok/img/statut0.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/statut1.png b/htdocs/theme/amarok/img/statut1.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/statut2.png b/htdocs/theme/amarok/img/statut2.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/statut3.png b/htdocs/theme/amarok/img/statut3.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/statut4.png b/htdocs/theme/amarok/img/statut4.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/statut5.png b/htdocs/theme/amarok/img/statut5.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/statut6.png b/htdocs/theme/amarok/img/statut6.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/statut7.png b/htdocs/theme/amarok/img/statut7.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/statut8.png b/htdocs/theme/amarok/img/statut8.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/statut9.png b/htdocs/theme/amarok/img/statut9.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/stcomm-1.png b/htdocs/theme/amarok/img/stcomm-1.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/stcomm-1_grayed.png b/htdocs/theme/amarok/img/stcomm-1_grayed.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/stcomm0.png b/htdocs/theme/amarok/img/stcomm0.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/stcomm0_grayed.png b/htdocs/theme/amarok/img/stcomm0_grayed.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/stcomm1.png b/htdocs/theme/amarok/img/stcomm1.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/stcomm1_grayed.png b/htdocs/theme/amarok/img/stcomm1_grayed.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/stcomm2.png b/htdocs/theme/amarok/img/stcomm2.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/stcomm2_grayed.png b/htdocs/theme/amarok/img/stcomm2_grayed.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/stcomm3.png b/htdocs/theme/amarok/img/stcomm3.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/stcomm3_grayed.png b/htdocs/theme/amarok/img/stcomm3_grayed.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/stcomm4.png b/htdocs/theme/amarok/img/stcomm4.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/stcomm4_grayed.png b/htdocs/theme/amarok/img/stcomm4_grayed.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/tick.png b/htdocs/theme/amarok/img/tick.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/title.png b/htdocs/theme/amarok/img/title.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/unlock.png b/htdocs/theme/amarok/img/unlock.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/uparrow.png b/htdocs/theme/amarok/img/uparrow.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/vcard.png b/htdocs/theme/amarok/img/vcard.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/view.png b/htdocs/theme/amarok/img/view.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/vmenu.png b/htdocs/theme/amarok/img/vmenu.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/warning.png b/htdocs/theme/amarok/img/warning.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/img/working.gif b/htdocs/theme/amarok/img/working.gif
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/thumb.png b/htdocs/theme/amarok/thumb.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/amarok/tpl/README b/htdocs/theme/amarok/tpl/README
old mode 100755
new mode 100644
diff --git a/htdocs/theme/auguria/img/edit_add.png b/htdocs/theme/auguria/img/edit_add.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/auguria/img/edit_remove.png b/htdocs/theme/auguria/img/edit_remove.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/auguria/img/menus/topmenu_bg.png b/htdocs/theme/auguria/img/menus/topmenu_bg.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/auguria/img/menus/topmenu_right.png b/htdocs/theme/auguria/img/menus/topmenu_right.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/auguria/img/object_bill.png b/htdocs/theme/auguria/img/object_bill.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/auguria/img/object_book.png b/htdocs/theme/auguria/img/object_book.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/auguria/img/object_calendarday.png b/htdocs/theme/auguria/img/object_calendarday.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/auguria/img/object_calendarweek.png b/htdocs/theme/auguria/img/object_calendarweek.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/auguria/img/object_company.png b/htdocs/theme/auguria/img/object_company.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/auguria/img/object_contact.png b/htdocs/theme/auguria/img/object_contact.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/auguria/img/object_contract.png b/htdocs/theme/auguria/img/object_contract.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/auguria/img/object_invoice.png b/htdocs/theme/auguria/img/object_invoice.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/auguria/img/object_opensurvey.png b/htdocs/theme/auguria/img/object_opensurvey.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/auguria/img/object_order.png b/htdocs/theme/auguria/img/object_order.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/auguria/img/object_product.png b/htdocs/theme/auguria/img/object_product.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/auguria/img/object_propal.png b/htdocs/theme/auguria/img/object_propal.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/auguria/img/stats.png b/htdocs/theme/auguria/img/stats.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/auguria/img/statut8.png b/htdocs/theme/auguria/img/statut8.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/auguria/img/statut9.png b/htdocs/theme/auguria/img/statut9.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/bureau2crea/img/object_calendarday.png b/htdocs/theme/bureau2crea/img/object_calendarday.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/bureau2crea/img/object_calendarweek.png b/htdocs/theme/bureau2crea/img/object_calendarweek.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/bureau2crea/img/object_opensurvey.png b/htdocs/theme/bureau2crea/img/object_opensurvey.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/bureau2crea/img/stats.png b/htdocs/theme/bureau2crea/img/stats.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/bureau2crea/img/statut8.png b/htdocs/theme/bureau2crea/img/statut8.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/cameleo/img/object_opensurvey.png b/htdocs/theme/cameleo/img/object_opensurvey.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/cameleo/img/stats.png b/htdocs/theme/cameleo/img/stats.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/devices/audio-card.png b/htdocs/theme/common/devices/audio-card.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/devices/audio-headset.png b/htdocs/theme/common/devices/audio-headset.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/devices/audio-input-line.png b/htdocs/theme/common/devices/audio-input-line.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/devices/audio-input-microphone.png b/htdocs/theme/common/devices/audio-input-microphone.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/devices/battery.png b/htdocs/theme/common/devices/battery.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/devices/camera-photo.png b/htdocs/theme/common/devices/camera-photo.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/devices/camera-web.png b/htdocs/theme/common/devices/camera-web.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/devices/computer-laptop.png b/htdocs/theme/common/devices/computer-laptop.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/devices/computer.png b/htdocs/theme/common/devices/computer.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/devices/cpu.png b/htdocs/theme/common/devices/cpu.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/devices/drive-harddisk.png b/htdocs/theme/common/devices/drive-harddisk.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/devices/drive-optical.png b/htdocs/theme/common/devices/drive-optical.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/devices/drive-removable-media-usb-pendrive.png b/htdocs/theme/common/devices/drive-removable-media-usb-pendrive.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/devices/drive-removable-media-usb.png b/htdocs/theme/common/devices/drive-removable-media-usb.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/devices/drive-removable-media.png b/htdocs/theme/common/devices/drive-removable-media.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/devices/input-gaming.png b/htdocs/theme/common/devices/input-gaming.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/devices/input-keyboard.png b/htdocs/theme/common/devices/input-keyboard.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/devices/input-mouse.png b/htdocs/theme/common/devices/input-mouse.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/devices/input-tablet.png b/htdocs/theme/common/devices/input-tablet.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/devices/media-flash-memory-stick.png b/htdocs/theme/common/devices/media-flash-memory-stick.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/devices/media-flash-sd-mmc.png b/htdocs/theme/common/devices/media-flash-sd-mmc.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/devices/media-flash-smart-media.png b/htdocs/theme/common/devices/media-flash-smart-media.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/devices/media-flash.png b/htdocs/theme/common/devices/media-flash.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/devices/media-floppy.png b/htdocs/theme/common/devices/media-floppy.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/devices/media-optical-audio.png b/htdocs/theme/common/devices/media-optical-audio.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/devices/media-optical-blu-ray.png b/htdocs/theme/common/devices/media-optical-blu-ray.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/devices/media-optical-data.png b/htdocs/theme/common/devices/media-optical-data.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/devices/media-optical-dvd-video.png b/htdocs/theme/common/devices/media-optical-dvd-video.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/devices/media-optical-dvd.png b/htdocs/theme/common/devices/media-optical-dvd.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/devices/media-optical-mixed-cd.png b/htdocs/theme/common/devices/media-optical-mixed-cd.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/devices/media-optical-recordable.png b/htdocs/theme/common/devices/media-optical-recordable.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/devices/media-optical-video.png b/htdocs/theme/common/devices/media-optical-video.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/devices/media-optical.png b/htdocs/theme/common/devices/media-optical.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/devices/media-tape.png b/htdocs/theme/common/devices/media-tape.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/devices/modem.png b/htdocs/theme/common/devices/modem.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/devices/multimedia-player-apple-ipod.png b/htdocs/theme/common/devices/multimedia-player-apple-ipod.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/devices/multimedia-player.png b/htdocs/theme/common/devices/multimedia-player.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/devices/network-wired.png b/htdocs/theme/common/devices/network-wired.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/devices/network-wireless-connected-00.png b/htdocs/theme/common/devices/network-wireless-connected-00.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/devices/network-wireless-connected-100.png b/htdocs/theme/common/devices/network-wireless-connected-100.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/devices/network-wireless-connected-25.png b/htdocs/theme/common/devices/network-wireless-connected-25.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/devices/network-wireless-connected-50.png b/htdocs/theme/common/devices/network-wireless-connected-50.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/devices/network-wireless-connected-75.png b/htdocs/theme/common/devices/network-wireless-connected-75.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/devices/network-wireless-disconnected.png b/htdocs/theme/common/devices/network-wireless-disconnected.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/devices/network-wireless.png b/htdocs/theme/common/devices/network-wireless.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/devices/pda.png b/htdocs/theme/common/devices/pda.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/devices/phone-openmoko-freerunner.png b/htdocs/theme/common/devices/phone-openmoko-freerunner.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/devices/phone.png b/htdocs/theme/common/devices/phone.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/devices/printer-laser.png b/htdocs/theme/common/devices/printer-laser.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/devices/printer.png b/htdocs/theme/common/devices/printer.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/devices/scanner.png b/htdocs/theme/common/devices/scanner.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/devices/video-display.png b/htdocs/theme/common/devices/video-display.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/devices/video-projector.png b/htdocs/theme/common/devices/video-projector.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/devices/video-television.png b/htdocs/theme/common/devices/video-television.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/emotes/face-angel.png b/htdocs/theme/common/emotes/face-angel.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/emotes/face-embarrassed.png b/htdocs/theme/common/emotes/face-embarrassed.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/emotes/face-kiss.png b/htdocs/theme/common/emotes/face-kiss.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/emotes/face-laugh.png b/htdocs/theme/common/emotes/face-laugh.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/emotes/face-plain.png b/htdocs/theme/common/emotes/face-plain.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/emotes/face-raspberry.png b/htdocs/theme/common/emotes/face-raspberry.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/emotes/face-sad.png b/htdocs/theme/common/emotes/face-sad.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/emotes/face-smile-big.png b/htdocs/theme/common/emotes/face-smile-big.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/emotes/face-smile.png b/htdocs/theme/common/emotes/face-smile.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/emotes/face-surprise.png b/htdocs/theme/common/emotes/face-surprise.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/emotes/face-uncertain.png b/htdocs/theme/common/emotes/face-uncertain.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/emotes/face-wink.png b/htdocs/theme/common/emotes/face-wink.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/gmap.png b/htdocs/theme/common/gmap.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/ical.gif b/htdocs/theme/common/ical.gif
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/mime/css.png b/htdocs/theme/common/mime/css.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/mime/dotnet.png b/htdocs/theme/common/mime/dotnet.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/mime/encrypt.png b/htdocs/theme/common/mime/encrypt.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/mime/glasses.png b/htdocs/theme/common/mime/glasses.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/mime/jnlp.png b/htdocs/theme/common/mime/jnlp.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/mime/library.png b/htdocs/theme/common/mime/library.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/mime/lit.png b/htdocs/theme/common/mime/lit.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/mime/mdb.png b/htdocs/theme/common/mime/mdb.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/mime/ooffice.png b/htdocs/theme/common/mime/ooffice.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/mime/page.png b/htdocs/theme/common/mime/page.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/mime/readme.txt b/htdocs/theme/common/mime/readme.txt
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/mime/rss.png b/htdocs/theme/common/mime/rss.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/rss.gif b/htdocs/theme/common/rss.gif
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/treemenu/folder2-expanded.png b/htdocs/theme/common/treemenu/folder2-expanded.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/treemenu/folder2.png b/htdocs/theme/common/treemenu/folder2.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/vcal.gif b/htdocs/theme/common/vcal.gif
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/weather/weather-clear-night.png b/htdocs/theme/common/weather/weather-clear-night.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/weather/weather-clear.png b/htdocs/theme/common/weather/weather-clear.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/weather/weather-clouds-night.png b/htdocs/theme/common/weather/weather-clouds-night.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/weather/weather-clouds.png b/htdocs/theme/common/weather/weather-clouds.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/weather/weather-few-clouds-night.png b/htdocs/theme/common/weather/weather-few-clouds-night.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/weather/weather-few-clouds.png b/htdocs/theme/common/weather/weather-few-clouds.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/weather/weather-freezing-rain.png b/htdocs/theme/common/weather/weather-freezing-rain.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/weather/weather-hail.png b/htdocs/theme/common/weather/weather-hail.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/weather/weather-many-clouds.png b/htdocs/theme/common/weather/weather-many-clouds.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/weather/weather-mist.png b/htdocs/theme/common/weather/weather-mist.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/weather/weather-showers-day.png b/htdocs/theme/common/weather/weather-showers-day.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/weather/weather-showers-night.png b/htdocs/theme/common/weather/weather-showers-night.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/weather/weather-showers-scattered-day.png b/htdocs/theme/common/weather/weather-showers-scattered-day.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/weather/weather-showers-scattered-night.png b/htdocs/theme/common/weather/weather-showers-scattered-night.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/weather/weather-showers-scattered.png b/htdocs/theme/common/weather/weather-showers-scattered.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/weather/weather-showers.png b/htdocs/theme/common/weather/weather-showers.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/weather/weather-snow-rain.png b/htdocs/theme/common/weather/weather-snow-rain.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/weather/weather-snow-scattered-day.png b/htdocs/theme/common/weather/weather-snow-scattered-day.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/weather/weather-snow-scattered-night.png b/htdocs/theme/common/weather/weather-snow-scattered-night.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/weather/weather-snow-scattered.png b/htdocs/theme/common/weather/weather-snow-scattered.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/weather/weather-snow.png b/htdocs/theme/common/weather/weather-snow.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/weather/weather-storm-day.png b/htdocs/theme/common/weather/weather-storm-day.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/weather/weather-storm-night.png b/htdocs/theme/common/weather/weather-storm-night.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/common/weather/weather-storm.png b/htdocs/theme/common/weather/weather-storm.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/dolibarr.png b/htdocs/theme/dolibarr.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/dolibarr_logo.png b/htdocs/theme/dolibarr_logo.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/doliforge_logo.png b/htdocs/theme/doliforge_logo.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/dolistore_logo.png b/htdocs/theme/dolistore_logo.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/eldy/img/liste_titre2.png b/htdocs/theme/eldy/img/liste_titre2.png
old mode 100755
new mode 100644
diff --git a/htdocs/theme/eldy/img/object_opensurvey.png b/htdocs/theme/eldy/img/object_opensurvey.png
old mode 100755
new mode 100644
diff --git a/htdocs/webservices/demo_wsclient_actioncomm.php-NORUN b/htdocs/webservices/demo_wsclient_actioncomm.php-NORUN
old mode 100755
new mode 100644
diff --git a/htdocs/webservices/demo_wsclient_category.php-NORUN b/htdocs/webservices/demo_wsclient_category.php-NORUN
old mode 100755
new mode 100644
diff --git a/htdocs/webservices/demo_wsclient_invoice.php-NORUN b/htdocs/webservices/demo_wsclient_invoice.php-NORUN
old mode 100755
new mode 100644
diff --git a/htdocs/webservices/demo_wsclient_order.php-NORUN b/htdocs/webservices/demo_wsclient_order.php-NORUN
old mode 100755
new mode 100644
diff --git a/htdocs/webservices/demo_wsclient_other.php-NORUN b/htdocs/webservices/demo_wsclient_other.php-NORUN
old mode 100755
new mode 100644
diff --git a/htdocs/webservices/demo_wsclient_productorservice.php-NORUN b/htdocs/webservices/demo_wsclient_productorservice.php-NORUN
old mode 100755
new mode 100644
diff --git a/htdocs/webservices/demo_wsclient_thirdparty.php-NORUN b/htdocs/webservices/demo_wsclient_thirdparty.php-NORUN
old mode 100755
new mode 100644
diff --git a/test/phpunit/CMailFileTest.php b/test/phpunit/CMailFileTest.php
old mode 100755
new mode 100644
diff --git a/test/phpunit/CategorieTest.php b/test/phpunit/CategorieTest.php
old mode 100755
new mode 100644
diff --git a/test/phpunit/ChargeSocialesTest.php b/test/phpunit/ChargeSocialesTest.php
old mode 100755
new mode 100644
diff --git a/test/phpunit/ContactTest.php b/test/phpunit/ContactTest.php
old mode 100755
new mode 100644
diff --git a/test/phpunit/CoreTest.php b/test/phpunit/CoreTest.php
old mode 100755
new mode 100644
diff --git a/test/phpunit/DiscountTest.php b/test/phpunit/DiscountTest.php
old mode 100755
new mode 100644
diff --git a/test/phpunit/EntrepotTest.php b/test/phpunit/EntrepotTest.php
old mode 100755
new mode 100644
diff --git a/test/phpunit/Example_import_company_1.csv b/test/phpunit/Example_import_company_1.csv
old mode 100755
new mode 100644
diff --git a/test/phpunit/ExportTest.php b/test/phpunit/ExportTest.php
old mode 100755
new mode 100644
diff --git a/test/phpunit/Functions2LibTest.php b/test/phpunit/Functions2LibTest.php
old mode 100755
new mode 100644
diff --git a/test/phpunit/FunctionsLibTest.php b/test/phpunit/FunctionsLibTest.php
old mode 100755
new mode 100644
diff --git a/test/phpunit/ImportTest.php b/test/phpunit/ImportTest.php
old mode 100755
new mode 100644
diff --git a/test/phpunit/JsonLibTest.php b/test/phpunit/JsonLibTest.php
old mode 100755
new mode 100644
diff --git a/test/phpunit/LangTest.php b/test/phpunit/LangTest.php
old mode 100755
new mode 100644
diff --git a/test/phpunit/ModulesTest.php b/test/phpunit/ModulesTest.php
old mode 100755
new mode 100644
diff --git a/test/phpunit/PdfDocTest.php b/test/phpunit/PdfDocTest.php
old mode 100755
new mode 100644
diff --git a/test/phpunit/PgsqlTest.php b/test/phpunit/PgsqlTest.php
old mode 100755
new mode 100644
diff --git a/test/phpunit/PricesTest.php b/test/phpunit/PricesTest.php
old mode 100755
new mode 100644
diff --git a/test/phpunit/ProductTest.php b/test/phpunit/ProductTest.php
old mode 100755
new mode 100644
diff --git a/test/phpunit/ScriptsTest.php b/test/phpunit/ScriptsTest.php
old mode 100755
new mode 100644
diff --git a/test/phpunit/SecurityTest.php b/test/phpunit/SecurityTest.php
old mode 100755
new mode 100644
diff --git a/test/phpunit/SocieteTest.php b/test/phpunit/SocieteTest.php
old mode 100755
new mode 100644
diff --git a/test/phpunit/SqlTest.php b/test/phpunit/SqlTest.php
old mode 100755
new mode 100644
diff --git a/test/phpunit/WebservicesInvoicesTest.php b/test/phpunit/WebservicesInvoicesTest.php
old mode 100755
new mode 100644
diff --git a/test/phpunit/WebservicesOrdersTest.php b/test/phpunit/WebservicesOrdersTest.php
old mode 100755
new mode 100644
diff --git a/test/phpunit/WebservicesOtherTest.php b/test/phpunit/WebservicesOtherTest.php
old mode 100755
new mode 100644
diff --git a/test/phpunit/WebservicesProductsTest.php b/test/phpunit/WebservicesProductsTest.php
old mode 100755
new mode 100644
diff --git a/test/phpunit/WebservicesThirdpartyTest.php b/test/phpunit/WebservicesThirdpartyTest.php
old mode 100755
new mode 100644
diff --git a/test/phpunit/WebservicesUserTest.php b/test/phpunit/WebservicesUserTest.php
old mode 100755
new mode 100644
diff --git a/test/soapui/Dolibarr-soapui-project.xml b/test/soapui/Dolibarr-soapui-project.xml
old mode 100755
new mode 100644
-- 
GitLab


From 4e9b3394395c93ee6af953fc2390b226186711dd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rapha=C3=ABl=20Doursenaud?= <rdoursenaud@gpcsolutions.fr>
Date: Wed, 9 Dec 2015 13:25:54 +0100
Subject: [PATCH 137/197] [Qual] Removed PHP closing tag

---
 build/aps/install.forced.php.install    | 1 -
 build/debian/conf.php.install           | 2 --
 build/debian/install.forced.php.install | 2 --
 build/rpm/conf.php                      | 1 -
 build/rpm/install.forced.php.fedora     | 2 --
 build/rpm/install.forced.php.generic    | 1 -
 build/rpm/install.forced.php.mandriva   | 2 --
 build/rpm/install.forced.php.opensuse   | 2 --
 8 files changed, 13 deletions(-)

diff --git a/build/aps/install.forced.php.install b/build/aps/install.forced.php.install
index 199ed892355..a7a3f03c14c 100644
--- a/build/aps/install.forced.php.install
+++ b/build/aps/install.forced.php.install
@@ -21,4 +21,3 @@ $force_install_databaserootpass='';
 $force_install_dolibarrlogin='admin';
 $force_install_nophpinfo='1';
 $force_install_lockinstall='444';
-?>
\ No newline at end of file
diff --git a/build/debian/conf.php.install b/build/debian/conf.php.install
index e439e80caef..c0ba3bdb120 100644
--- a/build/debian/conf.php.install
+++ b/build/debian/conf.php.install
@@ -226,5 +226,3 @@ $dolibarr_main_prod='0';
 # Default value: 0 (use database value if exist)
 # Examples:
 # $dolibarr_mailing_limit_sendbyweb='0';
-
-?>
diff --git a/build/debian/install.forced.php.install b/build/debian/install.forced.php.install
index a6347863b1d..099aab0675a 100644
--- a/build/debian/install.forced.php.install
+++ b/build/debian/install.forced.php.install
@@ -42,5 +42,3 @@ $force_install_lockinstall='444';
 //$force_dolibarr_js_JQUERY_UI='/javascript/jquery-ui';
 //$force_dolibarr_js_JQUERY_FLOT='/javascript/flot';
 //$force_dolibarr_font_DOL_DEFAULT_TTF_BOLD='/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Bold.ttf';
-
-?>
\ No newline at end of file
diff --git a/build/rpm/conf.php b/build/rpm/conf.php
index 2e8bd46cf0f..406ba3145c1 100644
--- a/build/rpm/conf.php
+++ b/build/rpm/conf.php
@@ -5,4 +5,3 @@
 //
 // This file will be filled by installer
 //
-?>
\ No newline at end of file
diff --git a/build/rpm/install.forced.php.fedora b/build/rpm/install.forced.php.fedora
index 994689bbfa1..108455a9403 100644
--- a/build/rpm/install.forced.php.fedora
+++ b/build/rpm/install.forced.php.fedora
@@ -31,5 +31,3 @@ $force_dolibarr_lib_TCPDF_PATH='';
 //$force_dolibarr_js_JQUERY_UI='/javascript/jquery-ui';
 //$force_dolibarr_js_JQUERY_FLOT='/javascript/flot';
 $force_dolibarr_font_DOL_DEFAULT_TTF_BOLD='/usr/share/fonts/dejavu/DejaVuSans-Bold.ttf';
-
-?>
\ No newline at end of file
diff --git a/build/rpm/install.forced.php.generic b/build/rpm/install.forced.php.generic
index 718eade3696..161f69cdbb3 100644
--- a/build/rpm/install.forced.php.generic
+++ b/build/rpm/install.forced.php.generic
@@ -20,4 +20,3 @@ $force_install_lockinstall='444';
 
 // Value to overwrite path to use shared libraries/fonts instead of embedded one
 // We don't force any external lib with generic package
-?>
\ No newline at end of file
diff --git a/build/rpm/install.forced.php.mandriva b/build/rpm/install.forced.php.mandriva
index 53a8a53b60c..266468c7f33 100644
--- a/build/rpm/install.forced.php.mandriva
+++ b/build/rpm/install.forced.php.mandriva
@@ -31,5 +31,3 @@ $force_dolibarr_lib_TCPDF_PATH='';
 //$force_dolibarr_js_JQUERY_UI='/javascript/jquery-ui';
 //$force_dolibarr_js_JQUERY_FLOT='/javascript/flot';
 $force_dolibarr_font_DOL_DEFAULT_TTF_BOLD='/usr/share/fonts/TTF/dejavu/DejaVuSans-Bold.ttf';
-
-?>
\ No newline at end of file
diff --git a/build/rpm/install.forced.php.opensuse b/build/rpm/install.forced.php.opensuse
index 06a0074b04d..b644cea6e24 100644
--- a/build/rpm/install.forced.php.opensuse
+++ b/build/rpm/install.forced.php.opensuse
@@ -31,5 +31,3 @@ $force_dolibarr_lib_TCPDF_PATH='';
 //$force_dolibarr_js_JQUERY_UI='/javascript/jquery-ui';
 //$force_dolibarr_js_JQUERY_FLOT='/javascript/flot';
 $force_dolibarr_font_DOL_DEFAULT_TTF_BOLD='/usr/share/fonts/truetype/DejaVuSans-Bold.ttf';
-
-?>
\ No newline at end of file
-- 
GitLab


From b80518efb4b34721a35cce399b6afe33f18fb991 Mon Sep 17 00:00:00 2001
From: Florian HENRY <florian.henry@open-concept.pro>
Date: Wed, 9 Dec 2015 14:26:04 +0100
Subject: [PATCH 138/197] fix travis

---
 htdocs/accountancy/class/bookkeeping.class.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/htdocs/accountancy/class/bookkeeping.class.php b/htdocs/accountancy/class/bookkeeping.class.php
index 2eb952a42a3..d3801b4a4d1 100644
--- a/htdocs/accountancy/class/bookkeeping.class.php
+++ b/htdocs/accountancy/class/bookkeeping.class.php
@@ -376,7 +376,7 @@ class BookKeeping extends CommonObject
 	/**
 	 * Delete bookkepping by importkey
 	 *
-	 * @param	string 	$importkey		Import key
+	 * @param	string 	$delyear		year to delete
 	 * @return	int						Result
 	 */
 	function delete_by_year($delyear) {
-- 
GitLab


From bbfd1388960e56a7bcba1a5a2daf47fea6b2d1fb Mon Sep 17 00:00:00 2001
From: Ion Agorria <ion@agorria.com>
Date: Wed, 9 Dec 2015 18:00:05 +0100
Subject: [PATCH 139/197] Missed another CKEDITOR ref

---
 htdocs/core/tpl/objectline_create.tpl.php | 10 ++--------
 1 file changed, 2 insertions(+), 8 deletions(-)

diff --git a/htdocs/core/tpl/objectline_create.tpl.php b/htdocs/core/tpl/objectline_create.tpl.php
index a2f4ebd4d69..6c507d55910 100644
--- a/htdocs/core/tpl/objectline_create.tpl.php
+++ b/htdocs/core/tpl/objectline_create.tpl.php
@@ -515,7 +515,7 @@ jQuery(document).ready(function() {
 		setforfree();
 		if (jQuery('#select_type').val() >= 0) 
 		{
-			/* focus work on a standard textarea but not if field was replaced with CKEDITOR */
+			/* focus work on a standard textarea */
 			jQuery('#dp_desc').focus();
 		}
 		if (jQuery('#select_type').val() == '0') jQuery('#trlinefordates').hide();
@@ -615,14 +615,8 @@ jQuery(document).ready(function() {
   		/* To set focus */
   		if (jQuery('#idprod').val() > 0 || jQuery('#idprodfournprice').val() > 0) 
   	  	{
-			/* focus work on a standard textarea but not if field was replaced with CKEDITOR */
+			/* focus work on a standard textarea */
 			jQuery('#dp_desc').focus();
-			/* focus if CKEDITOR */
-			if (CKEDITOR)
-			{
-				var editor = CKEDITOR.instances['dp_desc'];
-   				if (editor) { editor.focus(); }
-			}
   	  	}
 	});
 
-- 
GitLab


From 4f359616ce482fcef2bcde63bc68e77672d7f384 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rapha=C3=ABl=20Doursenaud?= <rdoursenaud@gpcsolutions.fr>
Date: Wed, 9 Dec 2015 18:16:08 +0100
Subject: [PATCH 140/197] [Security] Hide click to dial password

---
 htdocs/user/clicktodial.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/htdocs/user/clicktodial.php b/htdocs/user/clicktodial.php
index fb3104dc285..6d968e2c8c0 100644
--- a/htdocs/user/clicktodial.php
+++ b/htdocs/user/clicktodial.php
@@ -135,7 +135,7 @@ if ($id > 0)
 
         print '<tr><td>ClickToDial '.$langs->trans("Password").'</td>';
         print '<td class="valeur">';
-        print '<input name="password" value="'.(! empty($object->clicktodial_password)?$object->clicktodial_password:'').'"></td>';
+        print '<input type="password" name="password" value="'.(! empty($object->clicktodial_password)?$object->clicktodial_password:'').'"></td>';
         print "</tr>\n";
 
         print '</table>';
-- 
GitLab


From 019bc7ba8eaf19b7c22a224790753e4a95137b77 Mon Sep 17 00:00:00 2001
From: Andreas Pachler <apachler@paan-systems.com>
Date: Thu, 10 Dec 2015 12:56:05 +0100
Subject: [PATCH 141/197] added austrian Regions, Departements, Forme Juridique
 and social charges to migration file from 3.8 to 3.9

---
 .../install/mysql/migration/3.8.0-3.9.0.sql   | 50 +++++++++++++++++++
 1 file changed, 50 insertions(+)

diff --git a/htdocs/install/mysql/migration/3.8.0-3.9.0.sql b/htdocs/install/mysql/migration/3.8.0-3.9.0.sql
index 767a7dd0e7a..d7907e15a1d 100755
--- a/htdocs/install/mysql/migration/3.8.0-3.9.0.sql
+++ b/htdocs/install/mysql/migration/3.8.0-3.9.0.sql
@@ -475,3 +475,53 @@ INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, nc
 INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('110', 5209, '', 0, '', 'Manuripi', 1);
 INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('111', 5209, '', 0, '', 'Nicolás Suárez', 1);
 INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('112', 5209, '', 0, '', 'General Federico Román', 1);
+
+
+
+-- Regions Austria (id country=41)
+INSERT INTO llx_c_regions (fk_pays, code_region, cheflieu, tncc, nom, active) values (  41, 4101, '', 0, 'Österreich', 1);
+
+-- Provinces Austria (id country=41)
+INSERT INTO llx_c_departements (fk_region, code_departement, ncc, nom, active) VALUES (4101,'B','BURGENLAND','Burgenland',1);
+INSERT INTO llx_c_departements (fk_region, code_departement, ncc, nom, active) VALUES (4101,'K','KAERNTEN','Kärnten',1);
+INSERT INTO llx_c_departements (fk_region, code_departement, ncc, nom, active) VALUES (4101,'N','NIEDEROESTERREICH','Niederösterreich',1);
+INSERT INTO llx_c_departements (fk_region, code_departement, ncc, nom, active) VALUES (4101,'O','OBEROESTERREICH','Oberösterreich',1);
+INSERT INTO llx_c_departements (fk_region, code_departement, ncc, nom, active) VALUES (4101,'S','SALZBURG','Salzburg',1);
+INSERT INTO llx_c_departements (fk_region, code_departement, ncc, nom, active) VALUES (4101,'ST','STEIERMARK','Steiermark',1);
+INSERT INTO llx_c_departements (fk_region, code_departement, ncc, nom, active) VALUES (4101,'T','TIROL','Tirol',1);
+INSERT INTO llx_c_departements (fk_region, code_departement, ncc, nom, active) VALUES (4101,'V','VORARLBERG','Vorarlberg',1);
+INSERT INTO llx_c_departements (fk_region, code_departement, ncc, nom, active) VALUES (4101,'W','WIEN','Wien',1);
+
+
+
+-- Austria
+INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (41, '4100', 'GmbH - Gesellschaft mit beschränkter Haftung', 1);
+INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (41, '4101', 'GesmbH - Gesellschaft mit beschränkter Haftung', 1);
+INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (41, '4102', 'AG - Aktiengesellschaft', 1);
+INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (41, '4103', 'EWIV - Europäische wirtschaftliche Interessenvereinigung', 1);
+INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (41, '4104', 'KEG - Kommanditerwerbsgesellschaft', 1);
+INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (41, '4105', 'OEG - Offene Erwerbsgesellschaft', 1);
+INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (41, '4106', 'OHG - Offene Handelsgesellschaft', 1);
+INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (41, '4107', 'AG & Co KG - Kommanditgesellschaft', 1);
+INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (41, '4108', 'GmbH & Co KG - Kommanditgesellschaft', 1);
+INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (41, '4109', 'KG - Kommanditgesellschaft', 1);
+INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (41, '4110', 'OG - Offene Gesellschaft', 1);
+INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (41, '4111', 'GbR - Gesellschaft nach bürgerlichem Recht', 1);
+INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (41, '4112', 'GesbR - Gesellschaft nach bürgerlichem Recht', 1);
+INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (41, '4113', 'GesnbR - Gesellschaft nach bürgerlichem Recht', 1);
+INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (41, '4114', 'e.U. - eingetragener Einzelunternehmer', 1);
+
+
+
+--
+-- Austria
+--
+insert into llx_c_chargesociales (id, libelle, deductible, active, code, fk_pays) values (4101, 'Krankenversicherung',				1,1,'TAXATKV'   ,'41');
+insert into llx_c_chargesociales (id, libelle, deductible, active, code, fk_pays) values (4102, 'Unfallversicherung',				1,1,'TAXATUV'   ,'41');
+insert into llx_c_chargesociales (id, libelle, deductible, active, code, fk_pays) values (4103, 'Pensionsversicherung',				1,1,'TAXATPV'   ,'41');
+insert into llx_c_chargesociales (id, libelle, deductible, active, code, fk_pays) values (4104, 'Arbeitslosenversicherung',			1,1,'TAXATAV'   ,'41');
+insert into llx_c_chargesociales (id, libelle, deductible, active, code, fk_pays) values (4105, 'Insolvenzentgeltsicherungsfond',   1,1,'TAXATIESG' ,'41');
+insert into llx_c_chargesociales (id, libelle, deductible, active, code, fk_pays) values (4106, 'Wohnbauförderung',					1,1,'TAXATWF'   ,'41');
+insert into llx_c_chargesociales (id, libelle, deductible, active, code, fk_pays) values (4107, 'Arbeiterkammerumlage',				1,1,'TAXATAK'   ,'41');
+insert into llx_c_chargesociales (id, libelle, deductible, active, code, fk_pays) values (4108, 'Mitarbeitervorsorgekasse',			1,1,'TAXATMVK'  ,'41');
+insert into llx_c_chargesociales (id, libelle, deductible, active, code, fk_pays) values (4109, 'Familienlastenausgleichsfond',		1,1,'TAXATFLAF' ,'41');
-- 
GitLab


From ceb2920769fa561ba5dbe08dca48d07b791fab2c Mon Sep 17 00:00:00 2001
From: Ion Agorria <ion@agorria.com>
Date: Thu, 10 Dec 2015 14:17:08 +0100
Subject: [PATCH 142/197] Better undefined CKEDITOR fix

---
 htdocs/core/tpl/objectline_create.tpl.php | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/htdocs/core/tpl/objectline_create.tpl.php b/htdocs/core/tpl/objectline_create.tpl.php
index 6c507d55910..176c70e4a5a 100644
--- a/htdocs/core/tpl/objectline_create.tpl.php
+++ b/htdocs/core/tpl/objectline_create.tpl.php
@@ -515,8 +515,14 @@ jQuery(document).ready(function() {
 		setforfree();
 		if (jQuery('#select_type').val() >= 0) 
 		{
-			/* focus work on a standard textarea */
+			/* focus work on a standard textarea but not if field was replaced with CKEDITOR */
 			jQuery('#dp_desc').focus();
+			/* focus if CKEDITOR */
+			if (typeof(CKEDITOR) !== 'undefined')
+			{
+				var editor = CKEDITOR.instances['dp_desc'];
+   				if (editor) { editor.focus(); }
+			}
 		}
 		if (jQuery('#select_type').val() == '0') jQuery('#trlinefordates').hide();
 		else jQuery('#trlinefordates').show();
@@ -615,8 +621,14 @@ jQuery(document).ready(function() {
   		/* To set focus */
   		if (jQuery('#idprod').val() > 0 || jQuery('#idprodfournprice').val() > 0) 
   	  	{
-			/* focus work on a standard textarea */
+			/* focus work on a standard textarea but not if field was replaced with CKEDITOR */
 			jQuery('#dp_desc').focus();
+			/* focus if CKEDITOR */
+			if (typeof(CKEDITOR) !== 'undefined')
+			{
+				var editor = CKEDITOR.instances['dp_desc'];
+   				if (editor) { editor.focus(); }
+			}
   	  	}
 	});
 
-- 
GitLab


From fc8c12d6f668095e3c46fa5d3ca9d059d4339086 Mon Sep 17 00:00:00 2001
From: philippe grand <philippe.grand@atoo-net.com>
Date: Thu, 10 Dec 2015 16:14:37 +0100
Subject: [PATCH 143/197] [Qual] Uniformize code

---
 htdocs/exports/export.php         |  2 +-
 htdocs/fourn/card.php             |  2 +-
 htdocs/fourn/facture/card.php     | 64 +++++++++++++++----------------
 htdocs/fourn/facture/contact.php  |  4 +-
 htdocs/fourn/facture/paiement.php | 14 +++----
 htdocs/fourn/paiement/card.php    | 14 +++----
 6 files changed, 50 insertions(+), 50 deletions(-)

diff --git a/htdocs/exports/export.php b/htdocs/exports/export.php
index d7dbc008a27..34dc813b989 100644
--- a/htdocs/exports/export.php
+++ b/htdocs/exports/export.php
@@ -259,7 +259,7 @@ if ($step == 5 && $action == 'confirm_deletefile' && $confirm == 'yes')
 	$file = $upload_dir . "/" . GETPOST('file');	// Do not use urldecode here ($_GET and $_REQUEST are already decoded by PHP).
 
 	$ret=dol_delete_file($file);
-	if ($ret) setEventMessage($langs->trans("FileWasRemoved", GETPOST('file')), null, 'mesgs');
+	if ($ret) setEventMessages($langs->trans("FileWasRemoved", GETPOST('file')), null, 'mesgs');
 	else setEventMessages($langs->trans("ErrorFailToDeleteFile", GETPOST('file')), null, 'errors');
 	header('Location: '.$_SERVER["PHP_SELF"].'?step='.$step.'&datatoexport='.$datatoexport);
 	exit;
diff --git a/htdocs/fourn/card.php b/htdocs/fourn/card.php
index 6613cd8f05c..c19773653c7 100644
--- a/htdocs/fourn/card.php
+++ b/htdocs/fourn/card.php
@@ -375,7 +375,7 @@ if ($object->id > 0)
 			$orders2invoice = $db->num_rows($resql2);
 			$db->free($resql2);
 		} else {
-			setEventMessage($db->lasterror(),'errors');
+			setEventMessages($db->lasterror(), null, 'errors');
 		}
 
 		// TODO move to DAO class
diff --git a/htdocs/fourn/facture/card.php b/htdocs/fourn/facture/card.php
index 1c25e863683..41837da45c9 100644
--- a/htdocs/fourn/facture/card.php
+++ b/htdocs/fourn/facture/card.php
@@ -5,7 +5,7 @@
  * Copyright (C) 2005		Marc Barilley			<marc@ocebo.fr>
  * Copyright (C) 2005-2013	Regis Houssin			<regis.houssin@capnetworks.com>
  * Copyright (C) 2010-2014	Juanjo Menent			<jmenent@2byte.es>
- * Copyright (C) 2013		Philippe Grand			<philippe.grand@atoo-net.com>
+ * Copyright (C) 2013-2015	Philippe Grand			<philippe.grand@atoo-net.com>
  * Copyright (C) 2013       Florian Henry		  	<florian.henry@open-concept.pro>
  * Copyright (C) 2014       Marcos García           <marcosgdf@gmail.com>
  *
@@ -128,7 +128,7 @@ if (empty($reshook))
 	        else
 	        {
 	            $langs->load("errors");
-		        setEventMessage($langs->trans($object->error), 'errors');
+		        setEventMessages($langs->trans($object->error), null, 'errors');
 	            $action='';
 	        }
 	//    }
@@ -161,7 +161,7 @@ if (empty($reshook))
 	        if (! $idwarehouse || $idwarehouse == -1)
 	        {
 	            $error++;
-		        setEventMessage($langs->trans('ErrorFieldRequired',$langs->transnoentitiesnoconv("Warehouse")), 'errors');
+		        setEventMessages($langs->trans('ErrorFieldRequired',$langs->transnoentitiesnoconv("Warehouse")), null, 'errors');
 	            $action='';
 	        }
 	    }
@@ -188,7 +188,7 @@ if (empty($reshook))
 	    }
 	    else
 	    {
-		    setEventMessage($object->error, 'errors');
+		    setEventMessages($object->error, $object->errors, 'errors');
 	    }
 	}
 
@@ -219,7 +219,7 @@ if (empty($reshook))
 		}
 		else
 		{
-			setEventMessage($object->error, 'errors');
+			setEventMessages($object->error, $object->errors, 'errors');
 			/* Fix bug 1485 : Reset action to avoid asking again confirmation on failure */
 			$action='';
 		}
@@ -231,7 +231,7 @@ if (empty($reshook))
 	    $result=$object->set_paid($user);
 	    if ($result<0)
 	    {
-	        setEventMessage($object->error,'errors');
+	        setEventMessages($object->error, $object->errors, 'errors');
 	    }
 	}
 
@@ -242,13 +242,13 @@ if (empty($reshook))
 	    if ($result < 0) dol_print_error($db, $object->error);
 	}
 
-	// conditions de reglement
+	// payments conditions
 	if ($action == 'setconditions' && $user->rights->fournisseur->commande->creer)
 	{
 	    $result=$object->setPaymentTerms(GETPOST('cond_reglement_id','int'));
 	}
 
-	// mode de reglement
+	// payment mode
 	else if ($action == 'setmode' && $user->rights->fournisseur->commande->creer)
 	{
 	    $result = $object->setPaymentMethods(GETPOST('mode_reglement_id','int'));
@@ -282,7 +282,7 @@ if (empty($reshook))
 	    if (! empty($object->date_echeance) && $object->date_echeance < $object->date)
 	    {
 	    	$object->date_echeance=$object->date;
-	    	setEventMessage($langs->trans("DatePaymentTermCantBeLowerThanObjectDate"),'warnings');
+	    	setEventMessages($langs->trans("DatePaymentTermCantBeLowerThanObjectDate"), null, 'warnings');
 	    }
 	    $result=$object->update($user);
 	    if ($result < 0) dol_print_error($db,$object->error);
@@ -298,7 +298,7 @@ if (empty($reshook))
 	        $result=$paiementfourn->fetch(GETPOST('paiement_id'));
 	        if ($result > 0) $result=$paiementfourn->delete(); // If fetch ok and found
 	        if ($result < 0) {
-		        setEventMessage($paiementfourn->error, 'errors');
+		        setEventMessages($paiementfourn->error, $paiementfourn->errors, 'errors');
 	        }
 	    }
 	}
@@ -313,21 +313,21 @@ if (empty($reshook))
 
 	    if (GETPOST('socid','int')<1)
 	    {
-		    setEventMessage($langs->trans('ErrorFieldRequired',$langs->transnoentities('Supplier')), 'errors');
+		    setEventMessages($langs->trans('ErrorFieldRequired',$langs->transnoentities('Supplier')), null, 'errors');
 	    	$action='create';
 	    	$error++;
 	    }
 
 	    if ($datefacture == '')
 	    {
-		    setEventMessage($langs->trans('ErrorFieldRequired',$langs->transnoentities('DateInvoice')), 'errors');
+		    setEventMessages($langs->trans('ErrorFieldRequired',$langs->transnoentities('DateInvoice')), null, 'errors');
 	        $action='create';
 	        $_GET['socid']=$_POST['socid'];
 	        $error++;
 	    }
 	    if (! GETPOST('ref_supplier'))
 	    {
-		    setEventMessage($langs->trans('ErrorFieldRequired',$langs->transnoentities('RefSupplier')), 'errors');
+		    setEventMessages($langs->trans('ErrorFieldRequired',$langs->transnoentities('RefSupplier')), null, 'errors');
 	        $action='create';
 	        $_GET['socid']=$_POST['socid'];
 	        $error++;
@@ -602,7 +602,7 @@ if (empty($reshook))
 	        else
 	        {
 	        	$db->rollback();
-	            setEventMessage($object->error,'errors');
+	            setEventMessages($object->error, $object->errors, 'errors');
 	        }
 	}
 
@@ -657,27 +657,27 @@ if (empty($reshook))
 
 	    if (GETPOST('prod_entry_mode')=='free' && GETPOST('price_ht') < 0 && $qty < 0)
 	    {
-	        setEventMessage($langs->trans('ErrorBothFieldCantBeNegative', $langs->transnoentitiesnoconv('UnitPrice'), $langs->transnoentitiesnoconv('Qty')), 'errors');
+	        setEventMessages($langs->trans('ErrorBothFieldCantBeNegative', $langs->transnoentitiesnoconv('UnitPrice'), $langs->transnoentitiesnoconv('Qty')), null, 'errors');
 	        $error++;
 	    }
 	    if (GETPOST('prod_entry_mode')=='free'  && ! GETPOST('idprodfournprice') && GETPOST('type') < 0)
 	    {
-	        setEventMessage($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv('Type')), 'errors');
+	        setEventMessages($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv('Type')), null, 'errors');
 	        $error++;
 	    }
 	    if (GETPOST('prod_entry_mode')=='free' && GETPOST('price_ht')==='' && GETPOST('price_ttc')==='') // Unit price can be 0 but not ''
 	    {
-	        setEventMessage($langs->trans($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv('UnitPrice'))), 'errors');
+	        setEventMessages($langs->trans($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv('UnitPrice'))), null, 'errors');
 	        $error++;
 	    }
 	    if (GETPOST('prod_entry_mode')=='free' && ! GETPOST('dp_desc'))
 	    {
-	        setEventMessage($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv('Description')), 'errors');
+	        setEventMessages($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv('Description')), null, 'errors');
 	        $error++;
 	    }
 	    if (! GETPOST('qty'))
 	    {
-	        setEventMessage($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv('Qty')), 'errors');
+	        setEventMessages($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv('Qty')), null, 'errors');
 	        $error++;
 	    }
 
@@ -727,7 +727,7 @@ if (empty($reshook))
 	            // Quantity too low
 	            $error++;
 	            $langs->load("errors");
-		        setEventMessage($langs->trans("ErrorQtyTooLowForThisSupplier"), 'errors');
+		        setEventMessages($langs->trans("ErrorQtyTooLowForThisSupplier"), null, 'errors');
 	        }
 	    }
 	    else if( GETPOST('price_ht')!=='' || GETPOST('price_ttc')!=='' )
@@ -820,7 +820,7 @@ if (empty($reshook))
 	    else
 		{
 	    	$db->rollback();
-		    setEventMessage($object->error, 'errors');
+		    setEventMessages($object->error, $object->errors, 'errors');
 	    }
 
 	    $action = '';
@@ -886,7 +886,7 @@ if (empty($reshook))
 	        }
 	        else
 	        {
-		        setEventMessage($object->error, 'errors');
+		        setEventMessages($object->error, $object->errors, 'errors');
 	        }
 	    }
 	}
@@ -995,7 +995,7 @@ if (empty($reshook))
                 $mailfile = new CMailFile($subject,$sendto,$from,$message,$filepath,$mimetype,$filename,$sendtocc,'',$deliveryreceipt,-1);
                 if ($mailfile->error)
                 {
-                    setEventMessage($mailfile->error,'errors');
+                    setEventMessages($mailfile->error, $mailfile->errors, 'errors');
                 }
                 else
                 {
@@ -1003,7 +1003,7 @@ if (empty($reshook))
                     if ($result)
                     {
                         $mesg=$langs->trans('MailSuccessfulySent',$mailfile->getValidAddress($from,2),$mailfile->getValidAddress($sendto,2));		// Must not contain "
-                        setEventMessage($mesg);
+                        setEventMessages($mesg, null, 'mesgs');
 
                         $error=0;
 
@@ -1048,7 +1048,7 @@ if (empty($reshook))
                         {
                             $mesg.='No mail sent. Feature is disabled by option MAIN_DISABLE_ALL_MAILS';
                         }
-	                    setEventMessage($mesg, 'errors');
+	                    setEventMessages($mesg, null, 'errors');
                     }
                 }
             }
@@ -1056,14 +1056,14 @@ if (empty($reshook))
             else
             {
                 $langs->load("other");
-	            setEventMessage($langs->trans('ErrorMailRecipientIsEmpty'), 'errors');
+	            setEventMessages($langs->trans('ErrorMailRecipientIsEmpty'), null, 'errors');
                 dol_syslog('Recipient email is empty');
             }
 	    }
 	    else
 	    {
 	        $langs->load("other");
-		    setEventMessage($langs->trans('ErrorFailedToReadEntity',$langs->trans("Invoice")), 'errors');
+		    setEventMessages($langs->trans('ErrorFailedToReadEntity',$langs->trans("Invoice")), null, 'errors');
 	        dol_syslog('Unable to read data from the invoice. The invoice file has perhaps not been generated.');
 	    }
 
@@ -1120,8 +1120,8 @@ if (empty($reshook))
 	        $upload_dir =	$conf->fournisseur->facture->dir_output . "/";
 	        $file =	$upload_dir	. '/' .	GETPOST('file');
 	        $ret=dol_delete_file($file,0,0,0,$object);
-	        if ($ret) setEventMessage($langs->trans("FileWasRemoved", GETPOST('urlfile')));
-	        else setEventMessage($langs->trans("ErrorFailToDeleteFile", GETPOST('urlfile')), 'errors');
+	        if ($ret) setEventMessages($langs->trans("FileWasRemoved", GETPOST('urlfile')), null, 'mesgs');
+	        else setEventMessages($langs->trans("ErrorFailToDeleteFile", GETPOST('urlfile')), null, 'errors');
 	    }
 	}
 
@@ -1185,11 +1185,11 @@ if (empty($reshook))
 				if ($object->error == 'DB_ERROR_RECORD_ALREADY_EXISTS')
 				{
 					$langs->load("errors");
-					setEventMessage($langs->trans("ErrorThisContactIsAlreadyDefinedAsThisType"), 'errors');
+					setEventMessages($langs->trans("ErrorThisContactIsAlreadyDefinedAsThisType"), null, 'errors');
 				}
 				else
 				{
-					setEventMessage($object->error, 'errors');
+					setEventMessages($object->error, $object->errors, 'errors');
 				}
 			}
 		}
@@ -1524,7 +1524,7 @@ if ($action == 'create')
         $cntinvoice=count($objectsrc->linkedObjects['invoice_supplier']);
         if ($cntinvoice>=1)
         {
-        	setEventMessage('WarningBillExist','warnings');
+        	setEventMessages('WarningBillExist', null, 'warnings');
         	echo ' ('.$langs->trans('LatestRelatedBill').end($objectsrc->linkedObjects['invoice_supplier'])->getNomUrl(1).')';
         }
         echo '</td></tr>';
diff --git a/htdocs/fourn/facture/contact.php b/htdocs/fourn/facture/contact.php
index 7348f3b7590..664101848a6 100644
--- a/htdocs/fourn/facture/contact.php
+++ b/htdocs/fourn/facture/contact.php
@@ -69,11 +69,11 @@ if ($action == 'addcontact' && $user->rights->fournisseur->facture->creer)
 		if ($object->error == 'DB_ERROR_RECORD_ALREADY_EXISTS')
 		{
 			$langs->load("errors");
-			setEventMessage($langs->trans("ErrorThisContactIsAlreadyDefinedAsThisType"), 'errors');
+			setEventMessages($langs->trans("ErrorThisContactIsAlreadyDefinedAsThisType"), null, 'errors');
 		}
 		else
 		{
-			setEventMessage($object->error, 'errors');
+			setEventMessages($object->error, $object->errors, 'errors');
 		}
 	}
 }
diff --git a/htdocs/fourn/facture/paiement.php b/htdocs/fourn/facture/paiement.php
index 82bccf3df19..d500f8eceb1 100644
--- a/htdocs/fourn/facture/paiement.php
+++ b/htdocs/fourn/facture/paiement.php
@@ -117,7 +117,7 @@ if (empty($reshook))
 		            {
 		            	$langs->load("errors");
 		                //$error++;
-		                setEventMessage($langs->transnoentities("WarningPaymentDateLowerThanInvoiceDate", dol_print_date($datepaye,'day'), dol_print_date($tmpinvoice->date, 'day'), $tmpinvoice->ref), 'warnings');
+		                setEventMessages($langs->transnoentities("WarningPaymentDateLowerThanInvoiceDate", dol_print_date($datepaye,'day'), dol_print_date($tmpinvoice->date, 'day'), $tmpinvoice->ref), null, 'warnings');
 		            }
 	            }
 
@@ -128,7 +128,7 @@ if (empty($reshook))
 	    // Check parameters
 	    if ($_POST['paiementid'] <= 0)
 	    {
-	    	setEventMessage($langs->transnoentities('ErrorFieldRequired',$langs->transnoentities('PaymentMode')), 'errors');
+	    	setEventMessages($langs->transnoentities('ErrorFieldRequired',$langs->transnoentities('PaymentMode')), null, 'errors');
 	        $error++;
 	    }
 
@@ -137,20 +137,20 @@ if (empty($reshook))
 	        // If bank module is on, account is required to enter a payment
 	        if (GETPOST('accountid') <= 0)
 	        {
-	        	setEventMessage($langs->transnoentities('ErrorFieldRequired',$langs->transnoentities('AccountToCredit')), 'errors');
+	        	setEventMessages($langs->transnoentities('ErrorFieldRequired',$langs->transnoentities('AccountToCredit')), null, 'errors');
 	            $error++;
 	        }
 	    }
 
 	    if (empty($totalpayment) && empty($atleastonepaymentnotnull))
 	    {
-	    	setEventMessage($langs->transnoentities('ErrorFieldRequired',$langs->trans('PaymentAmount')), 'errors');
+	    	setEventMessages($langs->transnoentities('ErrorFieldRequired',$langs->trans('PaymentAmount')), null, 'errors');
 	        $error++;
 	    }
 
 	    if (empty($datepaye))
 	    {
-	    	setEventMessage($langs->transnoentities('ErrorFieldRequired',$langs->transnoentities('Date')), 'errors');
+	    	setEventMessages($langs->transnoentities('ErrorFieldRequired',$langs->transnoentities('Date')), null, 'errors');
 	        $error++;
 	    }
 	}
@@ -193,7 +193,7 @@ if (empty($reshook))
 	            $paiement_id = $paiement->create($user,(GETPOST('closepaidinvoices')=='on'?1:0));
 	            if ($paiement_id < 0)
 	            {
-	            	setEventMessage($paiement->error, 'errors');
+	            	setEventMessages($paiement->error, $paiement->errors, 'errors');
 	                $error++;
 	            }
 	        }
@@ -203,7 +203,7 @@ if (empty($reshook))
 	            $result=$paiement->addPaymentToBank($user,'payment_supplier','(SupplierInvoicePayment)',$accountid,'','');
 	            if ($result < 0)
 	            {
-	            	setEventMessage($paiement->error, 'errors');
+	            	setEventMessages($paiement->error, $paiement->errors, 'errors');
 	                $error++;
 	            }
 	        }
diff --git a/htdocs/fourn/paiement/card.php b/htdocs/fourn/paiement/card.php
index de070a2b3b0..f3295bf744c 100644
--- a/htdocs/fourn/paiement/card.php
+++ b/htdocs/fourn/paiement/card.php
@@ -59,7 +59,7 @@ if ($action == 'setnote' && $user->rights->fournisseur->facture->creer)
     }
     else
     {
-	    setEventMessage($object->error, 'errors');
+	    setEventMessages($object->error, $object->errors, 'errors');
         $db->rollback();
     }
 }
@@ -78,7 +78,7 @@ if ($action == 'confirm_delete' && $confirm == 'yes' && $user->rights->fournisse
 	}
 	else
 	{
-		setEventMessage($object->error, 'errors');
+		setEventMessages($object->error, $object->errors, 'errors');
 		$db->rollback();
 	}
 }
@@ -99,7 +99,7 @@ if ($action == 'confirm_valide' && $confirm == 'yes' &&
 	}
 	else
 	{
-		setEventMessage($object->error, 'errors');
+		setEventMessages($object->error, $object->errors, 'errors');
 		$db->rollback();
 	}
 }
@@ -110,11 +110,11 @@ if ($action == 'setnum_paiement' && ! empty($_POST['num_paiement']))
     $res = $object->update_num($_POST['num_paiement']);
 	if ($res === 0)
 	{
-		setEventMessage($langs->trans('PaymentNumberUpdateSucceeded'));
+		setEventMessages($langs->trans('PaymentNumberUpdateSucceeded'), null, 'mesgs');
 	}
 	else
 	{
-		setEventMessage($langs->trans('PaymentNumberUpdateFailed'), 'errors');
+		setEventMessages($langs->trans('PaymentNumberUpdateFailed'), null, 'errors');
 	}
 }
 
@@ -125,11 +125,11 @@ if ($action == 'setdatep' && ! empty($_POST['datepday']))
 	$res = $object->update_date($datepaye);
 	if ($res === 0)
 	{
-		setEventMessage($langs->trans('PaymentDateUpdateSucceeded'));
+		setEventMessages($langs->trans('PaymentDateUpdateSucceeded'), null, 'mesgs');
 	}
 	else
 	{
-		setEventMessage($langs->trans('PaymentDateUpdateFailed'), 'errors');
+		setEventMessages($langs->trans('PaymentDateUpdateFailed'), null, 'errors');
 	}
 }
 
-- 
GitLab


From 9e0817ac05d3af92091c3c5405ea06c63a564902 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= <frederic.france@free.fr>
Date: Thu, 10 Dec 2015 16:28:22 +0100
Subject: [PATCH 144/197] Update paypal.lib.php

---
 htdocs/paypal/lib/paypal.lib.php | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/htdocs/paypal/lib/paypal.lib.php b/htdocs/paypal/lib/paypal.lib.php
index 045863c2c4f..f06624cb076 100644
--- a/htdocs/paypal/lib/paypal.lib.php
+++ b/htdocs/paypal/lib/paypal.lib.php
@@ -702,10 +702,8 @@ function hash_call($methodName,$nvpStr)
      exit;*/
     curl_setopt($ch, CURLOPT_URL, $API_Endpoint);
     curl_setopt($ch, CURLOPT_VERBOSE, 1);
-	//curl_setopt($ch, CURLOPT_SSLVERSION, 3); // unsecure, no more accepted
-    curl_setopt($ch, CURLOPT_SSLVERSION, 1); // Force TLSv1
-    // After 14 january 2016 paypal will accept tls v1.2 and no more tls v1
-    //curl_setopt($ch, CURLOPT_SSLVERSION, 6); // Force TLSv1.2
+    // TLSv1 by default or change to TLSv1.2 in module configuration
+    curl_setopt($ch, CURLOPT_SSLVERSION, (empty($conf->global->PAYPAL_SSLVERSION)?1:$conf->global->PAYPAL_SSLVERSION));
 
     //turning off the server and peer verification(TrustManager Concept).
     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
-- 
GitLab


From 9bb9e6b787956756f8e2b7b5d2f49f9f52d08e1b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= <frederic.france@free.fr>
Date: Thu, 10 Dec 2015 16:29:35 +0100
Subject: [PATCH 145/197] Update paypal.php

---
 htdocs/paypal/admin/paypal.php | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/htdocs/paypal/admin/paypal.php b/htdocs/paypal/admin/paypal.php
index fd649b825bc..f02c720a388 100644
--- a/htdocs/paypal/admin/paypal.php
+++ b/htdocs/paypal/admin/paypal.php
@@ -119,6 +119,7 @@ print '<br>';
 
 print '<table class="noborder" width="100%">';
 
+// Account Parameters
 $var=true;
 print '<tr class="liste_titre">';
 print '<td>'.$langs->trans("AccountParameter").'</td>';
@@ -151,6 +152,13 @@ print '<input size="64" type="text" name="PAYPAL_API_SIGNATURE" value="'.$conf->
 print '<br>'.$langs->trans("Example").': ASsqXEmw4KzmX-CPChWSVDNCNfd.A3YNR7uz-VncXXAERFDFDFDF';
 print '</td></tr>';
 
+$var=!$var;
+print '<tr '.$bc[$var].'><td class="fieldrequired">';
+print $langs->trans("PAYPAL_SSLVERSION").'</td><td>';
+print $form->selectarray("PAYPAL_SSLVERSION",array('1'=> $langs->trans('TLSv1'),'6'=> $langs->trans('TLSv1.2')),$conf->global->PAYPAL_SSLVERSION);
+print '</td></tr>';
+
+// Usage Parameters
 $var=true;
 print '<tr class="liste_titre">';
 print '<td>'.$langs->trans("UsageParameter").'</td>';
-- 
GitLab


From 5f0c7b6c3886bfeb940b309d20122df5b063b335 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= <frederic.france@free.fr>
Date: Thu, 10 Dec 2015 16:31:11 +0100
Subject: [PATCH 146/197] Update paypal.lang

---
 htdocs/langs/en_US/paypal.lang | 1 +
 1 file changed, 1 insertion(+)

diff --git a/htdocs/langs/en_US/paypal.lang b/htdocs/langs/en_US/paypal.lang
index b2eadfce654..54f8cb1980f 100644
--- a/htdocs/langs/en_US/paypal.lang
+++ b/htdocs/langs/en_US/paypal.lang
@@ -8,6 +8,7 @@ PAYPAL_API_SANDBOX=Mode test/sandbox
 PAYPAL_API_USER=API username
 PAYPAL_API_PASSWORD=API password
 PAYPAL_API_SIGNATURE=API signature
+PAYPAL_SSLVERSION=Curl SSL Version
 PAYPAL_API_INTEGRAL_OR_PAYPALONLY=Offer payment "integral" (Credit card+Paypal) or "Paypal" only
 PaypalModeIntegral=Integral
 PaypalModeOnlyPaypal=PayPal only
-- 
GitLab


From 5aaafc3f8ab1d1e8354c705127966a9f1ded7138 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rapha=C3=ABl=20Doursenaud?= <rdoursenaud@gpcsolutions.fr>
Date: Thu, 10 Dec 2015 16:37:37 +0100
Subject: [PATCH 147/197] [Qual] OOP constructor

Using class name as constructor method is deprecated in PHP 7
---
 htdocs/expensereport/class/expensereport.class.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/htdocs/expensereport/class/expensereport.class.php b/htdocs/expensereport/class/expensereport.class.php
index 3063bcde35f..b781d4f3dc6 100644
--- a/htdocs/expensereport/class/expensereport.class.php
+++ b/htdocs/expensereport/class/expensereport.class.php
@@ -1590,7 +1590,7 @@ class ExpenseReportLine
      *
      * @param DoliDB    $db     Handlet database
      */
-    function ExpenseReportLine($db)
+    function __construct($db)
     {
         $this->db= $db;
     }
-- 
GitLab


From ac04fdbd9a9d1e0018778a13a8213863f4a68210 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= <frederic.france@free.fr>
Date: Thu, 10 Dec 2015 16:49:55 +0100
Subject: [PATCH 148/197] Update paypal.php

---
 htdocs/paypal/admin/paypal.php | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/htdocs/paypal/admin/paypal.php b/htdocs/paypal/admin/paypal.php
index f02c720a388..89065cb7c77 100644
--- a/htdocs/paypal/admin/paypal.php
+++ b/htdocs/paypal/admin/paypal.php
@@ -51,6 +51,8 @@ if ($action == 'setvalue' && $user->admin)
     if (! $result > 0) $error++;
     $result=dolibarr_set_const($db, "PAYPAL_API_SIGNATURE",GETPOST('PAYPAL_API_SIGNATURE','alpha'),'chaine',0,'',$conf->entity);
     if (! $result > 0) $error++;
+    $result=dolibarr_set_const($db, "PAYPAL_SSLVERSION",GETPOST('PAYPAL_SSLVERSION','alpha'),'chaine',0,'',$conf->entity);
+    if (! $result > 0) $error++;
     $result=dolibarr_set_const($db, "PAYPAL_CREDITOR",GETPOST('PAYPAL_CREDITOR','alpha'),'chaine',0,'',$conf->entity);
     if (! $result > 0) $error++;
     $result=dolibarr_set_const($db, "PAYPAL_API_INTEGRAL_OR_PAYPALONLY",GETPOST('PAYPAL_API_INTEGRAL_OR_PAYPALONLY','alpha'),'chaine',0,'',$conf->entity);
-- 
GitLab


From 3e2309d0e6da1de1d29570447978f3c6a3634a12 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rapha=C3=ABl=20Doursenaud?= <rdoursenaud@gpcsolutions.fr>
Date: Mon, 7 Dec 2015 15:10:23 +0100
Subject: [PATCH 149/197] NEW Factorized price2numjs into lib_head.js.php

Used public domain code from the MDN to provide a robust decimal
rounding implementation.

Warning for developers: the path of the javascript file has changed.
Please update your scripts.
---
 htdocs/core/datepicker.php                    |   4 +-
 .../core/js/{lib_head.js => lib_head.js.php}  | 163 +++++++++++++++---
 htdocs/core/tpl/objectline_create.tpl.php     |  37 ----
 htdocs/core/tpl/objectline_edit.tpl.php       |  36 ----
 htdocs/main.inc.php                           |   2 +-
 5 files changed, 144 insertions(+), 98 deletions(-)
 rename htdocs/core/js/{lib_head.js => lib_head.js.php} (84%)

diff --git a/htdocs/core/datepicker.php b/htdocs/core/datepicker.php
index eae723946f6..63b765fbadb 100644
--- a/htdocs/core/datepicker.php
+++ b/htdocs/core/datepicker.php
@@ -56,7 +56,7 @@ print '<html>'."\n";
 print '<head>'."\n";
 if (GETPOST('mode') && GETPOST('mode') == 'test')
 {
-	print '<script type="text/javascript" src="'.DOL_URL_ROOT.'/core/js/lib_head.js"></script>'."\n";
+	print '<script type="text/javascript" src="'.DOL_URL_ROOT.'/core/js/lib_head.js.php"></script>'."\n";
 }
 else
 {
@@ -288,4 +288,4 @@ function displayBox($selectedDate,$month,$year)
 	</tr>
 </table>
 		<?php
-}//end function
\ No newline at end of file
+}//end function
diff --git a/htdocs/core/js/lib_head.js b/htdocs/core/js/lib_head.js.php
similarity index 84%
rename from htdocs/core/js/lib_head.js
rename to htdocs/core/js/lib_head.js.php
index ad799e72bd0..15a25bf10ed 100644
--- a/htdocs/core/js/lib_head.js
+++ b/htdocs/core/js/lib_head.js.php
@@ -1,25 +1,49 @@
-// Copyright (C) 2005-2014 Laurent Destailleur  <eldy@users.sourceforge.net>
-// Copyright (C) 2005-2014 Regis Houssin        <regis.houssin@capnetworks.com>
-//
-// This program is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 3 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program. If not, see <http://www.gnu.org/licenses/>.
-// or see http://www.gnu.org/
-
-//
-// \file       htdocs/core/js/lib_head.js
-// \brief      File that include javascript functions (included if option use_javascript activated)
-//
+<?php
+/* Copyright (C) 2005-2014  Laurent Destailleur <eldy@users.sourceforge.net>
+ * Copyright (C) 2005-2014  Regis Houssin       <regis.houssin@capnetworks.com>
+ * Copyright (C) 2015       Raphaël Doursenaud  <rdoursenaud@gpcsolutions.fr>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * or see http://www.gnu.org/
+ */
+
+/**
+ * \file       htdocs/core/js/lib_head.js.php
+ * \brief      File that include javascript functions (included if option use_javascript activated)
+ */
+
+//if (! defined('NOREQUIREUSER')) define('NOREQUIREUSER','1');	// Not disabled cause need to load personalized language
+//if (! defined('NOREQUIREDB'))   define('NOREQUIREDB','1');
+if (! defined('NOREQUIRESOC'))    define('NOREQUIRESOC','1');
+//if (! defined('NOREQUIRETRAN')) define('NOREQUIRETRAN','1');	// Not disabled cause need to do translations
+if (! defined('NOCSRFCHECK'))     define('NOCSRFCHECK',1);
+if (! defined('NOTOKENRENEWAL'))  define('NOTOKENRENEWAL',1);
+if (! defined('NOLOGIN'))         define('NOLOGIN',1);
+if (! defined('NOREQUIREMENU'))   define('NOREQUIREMENU',1);
+if (! defined('NOREQUIREHTML'))   define('NOREQUIREHTML',1);
+if (! defined('NOREQUIREAJAX'))   define('NOREQUIREAJAX','1');
+
+session_cache_limiter(FALSE);
+
+require_once '../../main.inc.php';
 
+// Define javascript type
+header('Content-type: text/javascript; charset=UTF-8');
+// Important: Following code is to avoid page request by browser and PHP CPU at each Dolibarr page access.
+if (empty($dolibarr_nocache)) header('Cache-Control: max-age=3600, public, must-revalidate');
+else header('Cache-Control: no-cache');
+?>
 
 /*
  * ================================================================= 
@@ -923,7 +947,6 @@ function copyToClipboard(text,text2)
 	return false;
 }
 
-
 /*
  * Provide a function to get an URL GET parameter in javascript 
  * 
@@ -938,3 +961,99 @@ function getParameterByName(name, valueifnotfound)
         results = regex.exec(location.search);
     return results === null ? valueifnotfound : decodeURIComponent(results[1].replace(/\+/g, " "));
 }
+
+// Code in the public domain from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/round
+(function() {
+	/**
+	 * Decimal adjustment of a number.
+	 *
+	 * @param {String}  type  The type of adjustment.
+	 * @param {Number}  value The number.
+	 * @param {Integer} exp   The exponent (the 10 logarithm of the adjustment base).
+	 * @returns {Number} The adjusted value.
+	 */
+	function decimalAdjust(type, value, exp) {
+		// If the exp is undefined or zero...
+		if (typeof exp === 'undefined' || +exp === 0) {
+			return Math[type](value);
+		}
+		value = +value;
+		exp = +exp;
+		// If the value is not a number or the exp is not an integer...
+		if (isNaN(value) || !(typeof exp === 'number' && exp % 1 === 0)) {
+			return NaN;
+		}
+		// Shift
+		value = value.toString().split('e');
+		value = Math[type](+(value[0] + 'e' + (value[1] ? (+value[1] - exp) : -exp)));
+		// Shift back
+		value = value.toString().split('e');
+		return +(value[0] + 'e' + (value[1] ? (+value[1] + exp) : exp));
+	}
+
+	// Decimal round
+	if (!Math.round10) {
+		Math.round10 = function(value, exp) {
+			return decimalAdjust('round', value, exp);
+		};
+	}
+	// Decimal floor
+	if (!Math.floor10) {
+		Math.floor10 = function(value, exp) {
+			return decimalAdjust('floor', value, exp);
+		};
+	}
+	// Decimal ceil
+	if (!Math.ceil10) {
+		Math.ceil10 = function(value, exp) {
+			return decimalAdjust('ceil', value, exp);
+		};
+	}
+})();
+
+
+/**
+ * Function similar to PHP price2num()
+ *
+ * @param {number|string} amount    The amount to convert/clean
+ * @returns {string}                The amount in universal numeric format (Example: '99.99999')
+ * @todo Implement rounding parameter
+ */
+function price2numjs(amount) {
+	if (amount == '') return '';
+
+	<?php
+				$dec = ',';
+		$thousand = ' ';
+		if ($langs->transnoentitiesnoconv("SeparatorDecimal") != "SeparatorDecimal") {
+			$dec = $langs->transnoentitiesnoconv("SeparatorDecimal");
+		}
+		if ($langs->transnoentitiesnoconv("SeparatorThousand") != "SeparatorThousand") {
+			$thousand = $langs->transnoentitiesnoconv("SeparatorThousand");
+		}
+		print "var dec='" . $dec . "'; var thousand='" . $thousand . "';\n";    // Set var in javascript
+	?>
+
+	var main_max_dec_shown = <?php echo $conf->global->MAIN_MAX_DECIMALS_SHOWN; ?>;
+	var main_rounding_unit = <?php echo $conf->global->MAIN_MAX_DECIMALS_UNIT; ?>;
+	var main_rounding_tot = <?php echo $conf->global->MAIN_MAX_DECIMALS_TOT; ?>;
+
+	var amount = amount.toString();
+
+	// rounding for unit price
+	var rounding = main_rounding_unit;
+	var pos = amount.indexOf(dec);
+	var decpart = '';
+	if (pos >= 0) decpart = amount.substr(pos + 1).replace('/0+$/i', '');    // Remove 0 for decimal part
+	var nbdec = decpart.length;
+	if (nbdec > rounding) rounding = nbdec;
+	// If rounding higher than max shown
+	if (rounding > main_max_dec_shown) rounding = main_max_dec_shown;
+
+	if (thousand != ',' && thousand != '.') amount = amount.replace(',', '.');
+	amount = amount.replace(' ', '');            // To avoid spaces
+	amount = amount.replace(thousand, '');        // Replace of thousand before replace of dec to avoid pb if thousand is .
+	amount = amount.replace(dec, '.');
+
+	return Math.round10(amount, rounding);
+}
diff --git a/htdocs/core/tpl/objectline_create.tpl.php b/htdocs/core/tpl/objectline_create.tpl.php
index 25668b2876d..485336335e6 100644
--- a/htdocs/core/tpl/objectline_create.tpl.php
+++ b/htdocs/core/tpl/objectline_create.tpl.php
@@ -464,43 +464,6 @@ if (! empty($usemargins) && $user->rights->margins->creer)
 		return true;
 	}
 
-
-	/* Function similar to price2num in PHP */
-	function price2numjs(num)
-	{
-		if (num == '') return '';
-
-		<?php
-		$dec=','; $thousand=' ';
-		if ($langs->transnoentitiesnoconv("SeparatorDecimal") != "SeparatorDecimal")  $dec=$langs->transnoentitiesnoconv("SeparatorDecimal");
-		if ($langs->transnoentitiesnoconv("SeparatorThousand")!= "SeparatorThousand") $thousand=$langs->transnoentitiesnoconv("SeparatorThousand");
-		print "var dec='".$dec."'; var thousand='".$thousand."';\n";	// Set var in javascript
-		?>
-
-		var main_max_dec_shown = <?php echo $conf->global->MAIN_MAX_DECIMALS_SHOWN; ?>;
-		var main_rounding_unit = <?php echo $conf->global->MAIN_MAX_DECIMALS_UNIT; ?>;
-		var main_rounding_tot = <?php echo $conf->global->MAIN_MAX_DECIMALS_TOT; ?>;
-
-		var amount = num.toString();
-
-		// rounding for unit price
-		var rounding = main_rounding_unit;
-		var pos = amount.indexOf(dec);
-		var decpart = '';
-		if (pos >= 0) decpart = amount.substr(pos+1).replace('/0+$/i','');	// Supprime les 0 de fin de partie decimale
-		var nbdec = decpart.length;
-		if (nbdec > rounding) rounding = nbdec;
-	    // If rounding higher than max shown
-	    if (rounding > main_max_dec_shown) rounding = main_max_dec_shown;
-
-		if (thousand != ',' && thousand != '.') amount=amount.replace(',','.');
-		amount=amount.replace(' ','');			// To avoid spaces
-		amount=amount.replace(thousand,'');		// Replace of thousand before replace of dec to avoid pb if thousand is .
-		amount=amount.replace(dec,'.');
-
-		return parseFloat(amount).toFixed(rounding);
-	}
-
 <?php
 }
 ?>
diff --git a/htdocs/core/tpl/objectline_edit.tpl.php b/htdocs/core/tpl/objectline_edit.tpl.php
index 883c1f5eea9..4316ab0b318 100644
--- a/htdocs/core/tpl/objectline_edit.tpl.php
+++ b/htdocs/core/tpl/objectline_edit.tpl.php
@@ -375,42 +375,6 @@ if (! empty($conf->margin->enabled))
 		return true;
 	}
 
-	/* Function similar to price2num in PHP */
-	function price2numjs(num)
-	{
-		if (num == '') return '';
-
-		<?php
-		$dec=','; $thousand=' ';
-		if ($langs->transnoentitiesnoconv("SeparatorDecimal") != "SeparatorDecimal")  $dec=$langs->transnoentitiesnoconv("SeparatorDecimal");
-		if ($langs->transnoentitiesnoconv("SeparatorThousand")!= "SeparatorThousand") $thousand=$langs->transnoentitiesnoconv("SeparatorThousand");
-		print "var dec='".$dec."'; var thousand='".$thousand."';\n";	// Set var in javascript
-		?>
-
-		var main_max_dec_shown = <?php echo $conf->global->MAIN_MAX_DECIMALS_SHOWN; ?>;
-		var main_rounding_unit = <?php echo $conf->global->MAIN_MAX_DECIMALS_UNIT; ?>;
-		var main_rounding_tot = <?php echo $conf->global->MAIN_MAX_DECIMALS_TOT; ?>;
-
-		var amount = num.toString();
-
-		// rounding for unit price
-		var rounding = main_rounding_unit;
-		var pos = amount.indexOf(dec);
-		var decpart = '';
-		if (pos >= 0) decpart = amount.substr(pos+1).replace('/0+$/i','');	// Remove 0 for decimal part
-		var nbdec = decpart.length;
-		if (nbdec > rounding) rounding = nbdec;
-	    // If rounding higher than max shown
-	    if (rounding > main_max_dec_shown) rounding = main_max_dec_shown;
-
-		if (thousand != ',' && thousand != '.') amount=amount.replace(',','.');
-		amount=amount.replace(' ','');			// To avoid spaces
-		amount=amount.replace(thousand,'');		// Replace of thousand before replace of dec to avoid pb if thousand is .
-		amount=amount.replace(dec,'.');
-
-		return parseFloat(amount).toFixed(rounding);
-	}
-
 <?php
 }
 ?>
diff --git a/htdocs/main.inc.php b/htdocs/main.inc.php
index a3c647a5e47..890027c9d30 100644
--- a/htdocs/main.inc.php
+++ b/htdocs/main.inc.php
@@ -1269,7 +1269,7 @@ function top_htmlhead($head, $title='', $disablejs=0, $disablehead=0, $arrayofjs
 
             // Global js function
             print '<!-- Includes JS of Dolibarr -->'."\n";
-            print '<script type="text/javascript" src="'.DOL_URL_ROOT.'/core/js/lib_head.js?version='.urlencode(DOL_VERSION).($ext?'&amp;'.$ext:'').'"></script>'."\n";
+            print '<script type="text/javascript" src="'.DOL_URL_ROOT.'/core/js/lib_head.js.php?version='.urlencode(DOL_VERSION).($ext?'&amp;'.$ext:'').'"></script>'."\n";
 
             // Add datepicker default options
             print '<script type="text/javascript" src="'.DOL_URL_ROOT.'/core/js/datepicker.js.php?lang='.$langs->defaultlang.($ext?'&amp;'.$ext:'').'"></script>'."\n";
-- 
GitLab


From e193d9be971d3bead04c577fd944cc74543c4a47 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= <frederic.france@free.fr>
Date: Thu, 10 Dec 2015 23:08:21 +0100
Subject: [PATCH 150/197] Update CSMSFile.class.php

---
 htdocs/core/class/CSMSFile.class.php | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/htdocs/core/class/CSMSFile.class.php b/htdocs/core/class/CSMSFile.class.php
index 5620e641df0..b6819fdd87f 100644
--- a/htdocs/core/class/CSMSFile.class.php
+++ b/htdocs/core/class/CSMSFile.class.php
@@ -85,9 +85,9 @@ class CSMSFile
 
 
 	/**
-	 * Send mail that was prepared by constructor
+	 * Send sms that was prepared by constructor
 	 *
-	 * @return    boolean     True if mail sent, false otherwise
+	 * @return    boolean     True if sms sent, false otherwise
 	 */
 	function sendfile()
 	{
@@ -168,7 +168,7 @@ class CSMSFile
 		    }
 			else
 			{
-				// Send mail method not correctly defined
+				// Send sms method not correctly defined
 				// --------------------------------------
 
 				return 'Bad value for MAIN_SMS_SENDMODE constant';
@@ -176,7 +176,7 @@ class CSMSFile
 		}
 		else
 		{
-			$this->error='No mail sent. Feature is disabled by option MAIN_DISABLE_ALL_SMS';
+			$this->error='No sms sent. Feature is disabled by option MAIN_DISABLE_ALL_SMS';
 			dol_syslog("CSMSFile::sendfile: ".$this->error, LOG_WARNING);
 		}
 
@@ -187,7 +187,7 @@ class CSMSFile
 
 
 	/**
-	 *  Write content of a SMTP request into a dump file (mode = all)
+	 *  Write content of a SendSms request into a dump file (mode = all)
 	 *  Used for debugging.
 	 *
 	 *  @return	void
@@ -215,7 +215,7 @@ class CSMSFile
 	}
 
     /**
-     *  Write content of a SMTP request into a dump file (mode = all)
+     *  Write content of a SendSms result into a dump file (mode = all)
      *  Used for debugging.
      *
      *  @param	int		$result		Result of sms sending
-- 
GitLab


From f34fb0d82d1066bec56f9061be4955611e1aab5e Mon Sep 17 00:00:00 2001
From: Ion Agorria <ion@agorria.com>
Date: Fri, 11 Dec 2015 03:09:09 +0100
Subject: [PATCH 151/197] More consistent check

---
 htdocs/core/tpl/objectline_create.tpl.php | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/htdocs/core/tpl/objectline_create.tpl.php b/htdocs/core/tpl/objectline_create.tpl.php
index 176c70e4a5a..bb84e47ad7d 100644
--- a/htdocs/core/tpl/objectline_create.tpl.php
+++ b/htdocs/core/tpl/objectline_create.tpl.php
@@ -518,7 +518,7 @@ jQuery(document).ready(function() {
 			/* focus work on a standard textarea but not if field was replaced with CKEDITOR */
 			jQuery('#dp_desc').focus();
 			/* focus if CKEDITOR */
-			if (typeof(CKEDITOR) !== 'undefined')
+			if (typeof CKEDITOR == "object" && typeof CKEDITOR.instances != "undefined" && CKEDITOR.instances[key] != "undefined")
 			{
 				var editor = CKEDITOR.instances['dp_desc'];
    				if (editor) { editor.focus(); }
@@ -624,7 +624,7 @@ jQuery(document).ready(function() {
 			/* focus work on a standard textarea but not if field was replaced with CKEDITOR */
 			jQuery('#dp_desc').focus();
 			/* focus if CKEDITOR */
-			if (typeof(CKEDITOR) !== 'undefined')
+			if (typeof CKEDITOR == "object" && typeof CKEDITOR.instances != "undefined" && CKEDITOR.instances[key] != "undefined")
 			{
 				var editor = CKEDITOR.instances['dp_desc'];
    				if (editor) { editor.focus(); }
-- 
GitLab


From 8ccafc6e3655700fc0f9c2185a848e4ff04f1bd4 Mon Sep 17 00:00:00 2001
From: philippe grand <philippe.grand@atoo-net.com>
Date: Fri, 11 Dec 2015 09:54:30 +0100
Subject: [PATCH 152/197] [Qual] Uniformize code

---
 htdocs/ftp/index.php              | 23 +++++++++++------------
 htdocs/holiday/card.php           | 10 +++++-----
 htdocs/hrm/establishment/card.php |  6 +++---
 htdocs/imports/import.php         | 16 ++++++++--------
 htdocs/livraison/card.php         |  6 +++---
 htdocs/loan/card.php              | 12 ++++++------
 htdocs/loan/payment/card.php      |  4 ++--
 htdocs/loan/payment/payment.php   |  6 +++---
 8 files changed, 41 insertions(+), 42 deletions(-)

diff --git a/htdocs/ftp/index.php b/htdocs/ftp/index.php
index b26e7b96f86..62bb22bf328 100644
--- a/htdocs/ftp/index.php
+++ b/htdocs/ftp/index.php
@@ -108,15 +108,15 @@ if (GETPOST("sendit") && ! empty($conf->global->MAIN_UPLOAD_DOC))
 			$langs->load("errors");
 			if ($resupload < 0)	// Unknown error
 			{
-				setEventMessage($langs->trans("ErrorFileNotUploaded"), 'errors');
+				setEventMessages($langs->trans("ErrorFileNotUploaded"), null, 'errors');
 			}
 			else if (preg_match('/ErrorFileIsInfectedWithAVirus/',$resupload))	// Files infected by a virus
 			{
-				setEventMessage($langs->trans("ErrorFileIsInfectedWithAVirus"), 'errors');
+				setEventMessages($langs->trans("ErrorFileIsInfectedWithAVirus"), null, 'errors');
 			}
 			else	// Known error
 			{
-				setEventMessage($langs->trans($resupload), 'errors');
+				setEventMessages($langs->trans($resupload), null, 'errors');
 			}
 		}
 	}
@@ -124,7 +124,7 @@ if (GETPOST("sendit") && ! empty($conf->global->MAIN_UPLOAD_DOC))
 	{
 		// Echec transfert (fichier depassant la limite ?)
 		$langs->load("errors");
-		setEventMessage($langs->trans("ErrorFailToCreateDir",$upload_dir), 'errors');
+		setEventMessages($langs->trans("ErrorFailToCreateDir",$upload_dir), null, 'errors');
 	}
 }
 
@@ -143,8 +143,7 @@ if ($action == 'add' && $user->rights->ftp->setup)
 	}
 	else
 	{
-		//TODO: Translate
-		setEventMessage('Error '.$langs->trans($ecmdir->error));
+		setEventMessages($langs->trans("ErrorFailToCreateDir"), null, 'errors');
 		$action = "create";
 	}
 }
@@ -176,12 +175,12 @@ if ($action == 'confirm_deletefile' && $_REQUEST['confirm'] == 'yes')
 		$result=@ftp_delete($conn_id, $newremotefileiso);
 		if ($result)
 		{
-			setEventMessage($langs->trans("FileWasRemoved",$file));
+			setEventMessages($langs->trans("FileWasRemoved",$file), null, 'mesgs');
 		}
 		else
 		{
 			dol_syslog("ftp/index.php ftp_delete", LOG_ERR);
-			setEventMessage($langs->trans("FTPFailedToRemoveFile",$file), 'errors');
+			setEventMessages($langs->trans("FTPFailedToRemoveFile",$file), null, 'errors');
 		}
 
 		//ftp_close($conn_id);	Close later
@@ -226,12 +225,12 @@ if ($_POST["const"] && $_POST["delete"] && $_POST["delete"] == $langs->trans("De
 				$result=@ftp_delete($conn_id, $newremotefileiso);
 				if ($result)
 				{
-					setEventMessage($langs->trans("FileWasRemoved",$file));
+					setEventMessages($langs->trans("FileWasRemoved",$file), null, 'mesgs');
 				}
 				else
 				{
 					dol_syslog("ftp/index.php ftp_delete", LOG_ERR);
-					setEventMessage($langs->trans("FTPFailedToRemoveFile",$file), 'errors');
+					setEventMessages($langs->trans("FTPFailedToRemoveFile",$file), null, 'errors');
 				}
 
 				//ftp_close($conn_id);	Close later
@@ -270,11 +269,11 @@ if ($action == 'confirm_deletesection' && $confirm == 'yes')
 		$result=@ftp_rmdir($conn_id, $newremotefileiso);
 		if ($result)
 		{
-			setEventMessage($langs->trans("DirWasRemoved",$file));
+			setEventMessages($langs->trans("DirWasRemoved",$file), null, 'mesgs');
 		}
 		else
 		{
-			setEventMessage($langs->trans("FTPFailedToRemoveDir",$file), 'errors');
+			setEventMessages($langs->trans("FTPFailedToRemoveDir",$file), null, 'errors');
 		}
 
 		//ftp_close($conn_id);	Close later
diff --git a/htdocs/holiday/card.php b/htdocs/holiday/card.php
index 7802e0c32fa..80d06fdb446 100644
--- a/htdocs/holiday/card.php
+++ b/htdocs/holiday/card.php
@@ -60,7 +60,7 @@ if ($action == 'create')
     if (($userid == $user->id && empty($user->rights->holiday->write)) || ($userid != $user->id && empty($user->rights->holiday->write_all)))
     {
     	$error++;
-    	setEventMessage($langs->trans('CantCreateCP'));
+    	setEventMessages($langs->trans('CantCreateCP'), null, 'errors');
     	$action='request';
     }
 
@@ -130,7 +130,7 @@ if ($action == 'create')
 	    // If no validator designated
 	    if ($valideur < 1)
 	    {
-	        setEventMessage($langs->transnoentitiesnoconv('InvalidValidatorCP'), 'errors');
+	        setEventMessages($langs->transnoentitiesnoconv('InvalidValidatorCP'), null, 'errors');
 	        $error++;
 	    }
 
@@ -138,7 +138,7 @@ if ($action == 'create')
 
         if ($type < 1)
 	    {
-	        setEventMessage($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv("Type")), 'errors');
+	        setEventMessages($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv("Type")), null, 'errors');
 	        $error++;
 	    }
 
@@ -723,7 +723,7 @@ if (empty($id) || $action == 'add' || $action == 'request' || $action == 'create
                     break;
             }
 
-	        setEventMessage($errors, 'errors');
+	        setEventMessages($errors, null, 'errors');
         }
 
 
@@ -946,7 +946,7 @@ else
                         break;
                 }
 
-	            setEventMessage($errors, 'errors');
+	            setEventMessages($errors, null, 'errors');
             }
 
             // On vérifie si l'utilisateur à le droit de lire cette demande
diff --git a/htdocs/hrm/establishment/card.php b/htdocs/hrm/establishment/card.php
index 10a1b42e961..fb6f41f4f39 100644
--- a/htdocs/hrm/establishment/card.php
+++ b/htdocs/hrm/establishment/card.php
@@ -62,7 +62,7 @@ if ($action == 'confirm_delete' && $confirm == "yes")
     }
     else
     {
-        setEventMessage($object->error, 'errors');
+        setEventMessages($object->error, $object->errors, 'errors');
     }
 }
 
@@ -75,7 +75,7 @@ else if ($action == 'add')
 		$object->name = GETPOST('name', 'alpha');
         if (empty($object->name))
         {
-	        setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("Name")), 'errors');
+	        setEventMessages($langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("Name")), null, 'errors');
             $error++;
         }
 
@@ -124,7 +124,7 @@ else if ($action == 'update')
 
 		$name = GETPOST('name', 'alpha');
 		if (empty($name)) {
-			setEventMessage($langs->trans('ErrorFieldRequired', $langs->trans('Name')), 'errors');
+			setEventMessages($langs->trans('ErrorFieldRequired', $langs->trans('Name')), null, 'errors');
 			$error ++;
 		}
 
diff --git a/htdocs/imports/import.php b/htdocs/imports/import.php
index dd228af1847..9e729fb36ac 100644
--- a/htdocs/imports/import.php
+++ b/htdocs/imports/import.php
@@ -139,11 +139,11 @@ if ($action == 'builddoc')
 	$result=$objimport->build_file($user, GETPOST('model','alpha'), $datatoimport, $array_match_file_to_database);
 	if ($result < 0)
 	{
-		setEventMessage($objimport->error, 'errors');
+		setEventMessages($objimport->error, $objimport->errors, 'errors');
 	}
 	else
 	{
-		setEventMessage($langs->trans("FileSuccessfullyBuilt"));
+		setEventMessages($langs->trans("FileSuccessfullyBuilt"), null, 'mesgs');
 	}
 }
 
@@ -176,17 +176,17 @@ if ($action == 'add_import_model')
 		$result = $objimport->create($user);
 		if ($result >= 0)
 		{
-			setEventMessage($langs->trans("ImportModelSaved",$objimport->model_name));
+			setEventMessages($langs->trans("ImportModelSaved", $objimport->model_name), null, 'mesgs');
 		}
 		else
 		{
 			$langs->load("errors");
 			if ($objimport->errno == 'DB_ERROR_RECORD_ALREADY_EXISTS')
 			{
-				setEventMessage($langs->trans("ErrorImportDuplicateProfil"), 'errors');
+				setEventMessages($langs->trans("ErrorImportDuplicateProfil"), null, 'errors');
 			}
 			else {
-				setEventMessage($objimport->error, 'errors');
+				setEventMessages($objimport->error, null, 'errors');
 			}
 		}
 	}
@@ -211,7 +211,7 @@ if ($step == 3 && $datatoimport)
 		else
 		{
 			$langs->load("errors");
-			setEventMessage($langs->trans("ErrorFailedToSaveFile"), 'errors');
+			setEventMessages($langs->trans("ErrorFailedToSaveFile"), null, 'errors');
 		}
 	}
 
@@ -225,8 +225,8 @@ if ($step == 3 && $datatoimport)
 
 		$file = $conf->import->dir_temp . '/' . GETPOST('urlfile');	// Do not use urldecode here ($_GET and $_REQUEST are already decoded by PHP).
 		$ret=dol_delete_file($file);
-		if ($ret) setEventMessage($langs->trans("FileWasRemoved", GETPOST('urlfile')));
-		else setEventMessage($langs->trans("ErrorFailToDeleteFile", GETPOST('urlfile')), 'errors');
+		if ($ret) setEventMessages($langs->trans("FileWasRemoved", GETPOST('urlfile')), null, 'mesgs');
+		else setEventMessages($langs->trans("ErrorFailToDeleteFile", GETPOST('urlfile')), null, 'errors');
 		Header('Location: '.$_SERVER["PHP_SELF"].'?step='.$step.$param);
 		exit;
 	}
diff --git a/htdocs/livraison/card.php b/htdocs/livraison/card.php
index ec4feeb6bf9..8e2007480c1 100644
--- a/htdocs/livraison/card.php
+++ b/htdocs/livraison/card.php
@@ -113,7 +113,7 @@ if ($action == 'add')
 	}
 	else
 	{
-		setEventMessage($object->error, 'errors');
+		setEventMessages($object->error, $object->errors, 'errors');
 		$db->rollback();
 
 		$_GET["commande_id"]=$_POST["commande_id"];
@@ -216,8 +216,8 @@ elseif ($action == 'remove_file')
 	$upload_dir =	$conf->expedition->dir_output . "/receipt";
 	$file =	$upload_dir	. '/' .	GETPOST('file');
 	$ret=dol_delete_file($file,0,0,0,$object);
-	if ($ret) setEventMessage($langs->trans("FileWasRemoved", GETPOST('urlfile')));
-	else setEventMessage($langs->trans("ErrorFailToDeleteFile", GETPOST('urlfile')), 'errors');
+	if ($ret) setEventMessages($langs->trans("FileWasRemoved", GETPOST('urlfile')), null, 'mesgs');
+	else setEventMessages($langs->trans("ErrorFailToDeleteFile", GETPOST('urlfile')), null, 'errors');
 }
 
 
diff --git a/htdocs/loan/card.php b/htdocs/loan/card.php
index a6e9f352d4e..b575536f950 100644
--- a/htdocs/loan/card.php
+++ b/htdocs/loan/card.php
@@ -54,11 +54,11 @@ if ($action == 'confirm_paid' && $confirm == 'yes')
 	$result = $object->set_paid($user);
     if ($result > 0)
     {
-        setEventMessage($langs->trans('LoanPaid'));
+        setEventMessages($langs->trans('LoanPaid'), null, 'mesgs');
     }
     else
     {
-        setEventMessage($loan->error, 'errors');
+        setEventMessages($loan->error, null, 'errors');
     }
 }
 
@@ -69,13 +69,13 @@ if ($action == 'confirm_delete' && $confirm == 'yes')
 	$result=$object->delete($user);
 	if ($result > 0)
 	{
-		setEventMessage($langs->trans('LoanDeleted'));
+		setEventMessages($langs->trans('LoanDeleted'), null, 'mesgs');
 		header("Location: index.php");
 		exit;
 	}
 	else
 	{
-		setEventMessage($loan->error, 'errors');
+		setEventMessages($loan->error, null, 'errors');
 	}
 }
 
@@ -121,7 +121,7 @@ if ($action == 'add' && $user->rights->loan->write)
 			$id=$object->create($user);
 			if ($id <= 0)
 			{
-				setEventMessage($object->error, 'errors');
+				setEventMessages($object->error, $object->errors, 'errors');
 			}
 		}
 	}
@@ -157,7 +157,7 @@ else if ($action == 'update' && $user->rights->loan->write)
         }
         else
         {
-	        setEventMessage($object->error, 'errors');
+	        setEventMessages($object->error, $object->errors, 'errors');
         }
     }
     else
diff --git a/htdocs/loan/payment/card.php b/htdocs/loan/payment/card.php
index 8d8b5dd1ecf..6315264bad7 100644
--- a/htdocs/loan/payment/card.php
+++ b/htdocs/loan/payment/card.php
@@ -65,7 +65,7 @@ if ($action == 'confirm_delete' && $confirm == 'yes' && $user->rights->loan->del
 	}
 	else
 	{
-		setEventMessage($payment->error, 'errors');
+		setEventMessages($payment->error, $payment->errors, 'errors');
         $db->rollback();
 	}
 }
@@ -103,7 +103,7 @@ if ($action == 'confirm_valide' && $confirm == 'yes' && $user->rights->loan->wri
 	}
 	else
 	{
-		setEventMessage($payment->error);
+		setEventMessages($payment->error, $payment->errors, 'errors');
 		$db->rollback();
 	}
 }
diff --git a/htdocs/loan/payment/payment.php b/htdocs/loan/payment/payment.php
index 69cfecbe5c2..f095272d5f2 100644
--- a/htdocs/loan/payment/payment.php
+++ b/htdocs/loan/payment/payment.php
@@ -83,7 +83,7 @@ if ($action == 'add_payment')
         $amount = GETPOST('amount_capital') + GETPOST('amount_insurance') + GETPOST('amount_interest');
         if ($amount == 0)
         {
-            setEventMessage($langs->trans('ErrorNoPaymentDefined'), 'errors');
+            setEventMessages($langs->trans('ErrorNoPaymentDefined'), null, 'errors');
             $error++;
         }
 
@@ -109,7 +109,7 @@ if ($action == 'add_payment')
     		    $paymentid = $payment->create($user);
                 if ($paymentid < 0)
                 {
-                    setEventMessage($payment->error, 'errors');
+                    setEventMessages($payment->error, $payment->errors, 'errors');
                     $error++;
                 }
     		}
@@ -119,7 +119,7 @@ if ($action == 'add_payment')
                 $result = $payment->addPaymentToBank($user, 'payment_loan', '(LoanPayment)', GETPOST('accountid', 'int'), '', '');
                 if (! $result > 0)
                 {
-                    setEventMessage($payment->error, 'errors');
+                    setEventMessages($payment->error, $payment->errors, 'errors');
                     $error++;
                 }
             }
-- 
GitLab


From 8edf3c65c6ba67a532c300b411f0de178b6762ae Mon Sep 17 00:00:00 2001
From: Florian HENRY <florian.henry@open-concept.pro>
Date: Fri, 11 Dec 2015 11:46:22 +0100
Subject: [PATCH 153/197] work on accounting

---
 htdocs/accountancy/admin/account.php          |  4 +--
 htdocs/accountancy/admin/card.php             |  4 +--
 htdocs/accountancy/bookkeeping/list.php       | 31 +++++++++++++++++--
 htdocs/accountancy/customer/list.php          | 15 ++++-----
 htdocs/accountancy/journal/bankjournal.php    | 30 +++++++++++-------
 .../accountancy/journal/purchasesjournal.php  | 12 +++----
 htdocs/accountancy/journal/sellsjournal.php   |  8 ++---
 htdocs/accountancy/supplier/list.php          |  4 +--
 8 files changed, 71 insertions(+), 37 deletions(-)

diff --git a/htdocs/accountancy/admin/account.php b/htdocs/accountancy/admin/account.php
index 0bf37a7753e..c46e07893a3 100644
--- a/htdocs/accountancy/admin/account.php
+++ b/htdocs/accountancy/admin/account.php
@@ -76,7 +76,7 @@ if ($action == 'disable') {
 	
 	$action = 'update';
 	if ($result < 0) {
-		setEventMessage($accounting->error, 'errors');
+		setEventMessages($accounting->error, $accounting->errors, 'errors');
 	}
 } else if ($action == 'enable') {
 	if ($accounting->fetch($id)) {
@@ -84,7 +84,7 @@ if ($action == 'disable') {
 	}
 	$action = 'update';
 	if ($result < 0) {
-		setEventMessage($accounting->error, 'errors');
+		setEventMessages($accounting->error, $accounting->errors, 'errors');
 	}
 }
 
diff --git a/htdocs/accountancy/admin/card.php b/htdocs/accountancy/admin/card.php
index 51c6a5c6715..99eb49949e7 100644
--- a/htdocs/accountancy/admin/card.php
+++ b/htdocs/accountancy/admin/card.php
@@ -125,7 +125,7 @@ else if ($action == 'delete')
 	}
 
 	if ($result < 0) {
-		setEventMessage($accounting->error, 'errors');
+		setEventMessages($accounting->error, $accounting->errors, 'errors');
 	}
 }
 
@@ -139,7 +139,7 @@ $htmlacc = new FormVentilation($db);
 
 if ($action == 'create')
 {
-	print_fiche_titre($langs->trans('NewAccount'));
+	print load_fiche_titre($langs->trans('NewAccount'));
 
 	print '<form name="add" action="' . $_SERVER["PHP_SELF"] . '" method="POST">' . "\n";
 	print '<input type="hidden" name="token" value="' . $_SESSION['newtoken'] . '">';
diff --git a/htdocs/accountancy/bookkeeping/list.php b/htdocs/accountancy/bookkeeping/list.php
index d9b6d66b503..851b095baff 100644
--- a/htdocs/accountancy/bookkeeping/list.php
+++ b/htdocs/accountancy/bookkeeping/list.php
@@ -30,6 +30,7 @@ require '../../main.inc.php';
 require_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php';
 require_once DOL_DOCUMENT_ROOT.'/accountancy/class/html.formventilation.class.php';
 require_once DOL_DOCUMENT_ROOT.'/accountancy/class/bookkeeping.class.php';
+require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
 
 // Langs
 $langs->load("accountancy");
@@ -52,6 +53,7 @@ if ($sortfield == "")
 $offset = $conf->liste_limit * $page;
 
 $formventilation = new FormVentilation($db);
+$formother = new FormOther($db);
 
 if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) // Both test are required to be compatible with all browsers
 {
@@ -74,7 +76,20 @@ if ($action == 'delbookkeeping') {
 		$result = $object->delete_by_importkey($import_key);
 		Header("Location: list.php");
 		if ($result < 0) {
-			setEventMessage($object->errors, 'errors');
+			setEventMessages($object->error, $object->errors, 'errors');
+		}
+	}
+}
+elseif ($action == 'delbookkeepingyear') {
+	
+	$delyear = GETPOST('delyear', 'int');
+	
+	if (! empty($delyear)) {
+		$object = new BookKeeping($db);
+		$result = $object->delete_by_year($delyear);
+		Header("Location: list.php");
+		if ($result < 0) {
+			setEventMessages($object->error, $object->errors, 'errors');
 		}
 	}
 } // Export
@@ -86,7 +101,7 @@ else if ($action == 'export_csv') {
 	$object = new BookKeeping($db);
 	$result = $object->export_bookkeping('ebp');
 	if ($result < 0) {
-		setEventMessage($object->errors, 'errors');
+		setEventMessages($object->error, $object->errors, 'errors');
 	}
 	
 	foreach ( $object->linesexport as $line ) {
@@ -147,7 +162,7 @@ else {
 		
 		print_barre_liste($langs->trans("Bookkeeping"), $page, $_SERVER["PHP_SELF"], "", $sortfield, $sortorder, '', $num);
 		
-		print '<form name="add" action="' . $_SERVER["PHP_SELF"] . '" method="POST">';
+		/*print '<form name="add" action="' . $_SERVER["PHP_SELF"] . '" method="POST">';
 		print '<input type="hidden" name="token" value="' . $_SESSION['newtoken'] . '">';
 		print '<input type="hidden" name="action" value="delbookkeeping">';
 		
@@ -155,6 +170,16 @@ else {
 		
 		print '<div class="inline-block divButAction"><input type="submit" class="butAction" value="' . $langs->trans("DelBookKeeping") . '" /></div>';
 		
+		print '</form>';*/
+		
+		print '<form name="add" action="' . $_SERVER["PHP_SELF"] . '" method="POST">';
+		print '<input type="hidden" name="token" value="' . $_SESSION['newtoken'] . '">';
+		print '<input type="hidden" name="action" value="delbookkeepingyear">';
+		
+		print $formother->select_year(GETPOST('delyear'),'delyear');
+		
+		print '<div class="inline-block divButAction"><input type="submit" class="butAction" value="' . $langs->trans("DelBookKeeping") . '" /></div>';
+		
 		print '</form>';
 		
 		print '<form name="add" action="' . $_SERVER["PHP_SELF"] . '" method="POST">';
diff --git a/htdocs/accountancy/customer/list.php b/htdocs/accountancy/customer/list.php
index c03afd3bcde..321bc5b483b 100644
--- a/htdocs/accountancy/customer/list.php
+++ b/htdocs/accountancy/customer/list.php
@@ -87,10 +87,9 @@ if (! $user->rights->accounting->ventilation->dispatch)
 	accessforbidden();
 
 $formventilation = new FormVentilation($db);
-
 $accounting = new AccountingAccount($db);
-$aarowid_s = $accounting->fetch('', ACCOUNTING_SERVICE_SOLD_ACCOUNT);
-$aarowid_p = $accounting->fetch('', ACCOUNTING_PRODUCT_SOLD_ACCOUNT);
+$aarowid_s = $accounting->fetch('', $conf->global->ACCOUNTING_SERVICE_SOLD_ACCOUNT,1);
+$aarowid_p = $accounting->fetch('',$conf->global->ACCOUNTING_PRODUCT_SOLD_ACCOUNT,1);
 
 // Purge search criteria
 if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) {
@@ -242,7 +241,7 @@ if ($result) {
 	print_liste_field_titre($langs->trans("Description"), $_SERVER["PHP_SELF"], "l.description", "", $param, '', $sortfield, $sortorder);
 	print_liste_field_titre($langs->trans("Amount"), $_SERVER["PHP_SELF"],"l.total_ht","",$param,'align="center"',$sortfield,$sortorder);
 	print_liste_field_titre($langs->trans("VATRate"), $_SERVER["PHP_SELF"], "l.tva_tx", "", $param, 'align="center"', $sortfield, $sortorder);
-	print_liste_field_titre($langs->trans("AccountAccounting"), '', '', '', '', 'align="center"');
+	print_liste_field_titre($langs->trans("AccountAccountingSuggest"), '', '', '', '', 'align="center"');
 	print_liste_field_titre($langs->trans("IntoAccount"), '', '', '', '', 'align="center"');
 	print_liste_field_titre('');
 	print_liste_field_titre($langs->trans("Ventilate") . '<br><label id="select-all">' . $langs->trans('All') . '</label>/<label id="unselect-all">' . $langs->trans('None') . '</label>', '', '', '', '', 'align="center"');
@@ -292,12 +291,14 @@ if ($result) {
 		}
 		if ($objp->type_l == 1) {
 			$objp->code_sell_l = (! empty($conf->global->ACCOUNTING_SERVICE_SOLD_ACCOUNT) ? $conf->global->ACCOUNTING_SERVICE_SOLD_ACCOUNT : $langs->trans("CodeNotDef"));
-			if ($objp->aarowid == '')
+			if ($objp->aarowid == '') {
 				$objp->aarowid_suggest = $aarowid_s;
+			}
 		} elseif ($objp->type_l == 0) {
 			$objp->code_sell_l = (! empty($conf->global->ACCOUNTING_PRODUCT_SOLD_ACCOUNT) ? $conf->global->ACCOUNTING_PRODUCT_SOLD_ACCOUNT : $langs->trans("CodeNotDef"));
-			if ($objp->aarowid == '')
+			if ($objp->aarowid == '') {
 				$objp->aarowid_suggest = $aarowid_p;
+			}
 		}
 		if ($objp->code_sell_l != $objp->code_sell_p)
 			$code_sell_p_l_differ = 'color:red';
@@ -333,7 +334,7 @@ if ($result) {
 		if ($objp->code_sell_l == $objp->code_sell_p) {
 			print $objp->code_sell_l;
 		} else {
-			print 'lines=' . $objp->code_sell_l . '<br />product=' . $objp->code_sell_p;
+			print $langs->trans("Purchase") . ' = ' . $objp->code_sell_l . '<br />' . $langs->trans("Sell") . ' = ' . $objp->code_sell_p;
 		}
 		print '</td>';
 		
diff --git a/htdocs/accountancy/journal/bankjournal.php b/htdocs/accountancy/journal/bankjournal.php
index b08391495c1..0f08c38ad65 100644
--- a/htdocs/accountancy/journal/bankjournal.php
+++ b/htdocs/accountancy/journal/bankjournal.php
@@ -25,7 +25,7 @@
 /**
  *	\file		htdocs/accountancy/journal/bankjournal.php
  *	\ingroup	Accounting Expert
- *	\brief		Page with sells journal
+ *	\brief		Page with bank journal
  */
 
 require '../../main.inc.php';
@@ -66,6 +66,8 @@ $date_endday = GETPOST('date_endday');
 $date_endyear = GETPOST('date_endyear');
 $action = GETPOST('action');
 
+$now = dol_now();
+
 // Security check
 if ($user->societe_id > 0 && empty($id_bank_account))
 	accessforbidden();
@@ -121,7 +123,7 @@ $bank_code_journal = new Account($db);
 $result=$bank_code_journal->fetch($id_bank_account);
 $journal=$bank_code_journal->accountancy_journal;
 
-dol_syslog("accountancy/journal/bankjournal.php:: sql=" . $sql, LOG_DEBUG);
+dol_syslog("accountancy/journal/bankjournal.php", LOG_DEBUG);
 $result = $db->query($sql);
 if ($result) {
 
@@ -280,6 +282,8 @@ if ($result) {
 // Write bookkeeping
 if ($action == 'writebookkeeping')
 {
+	$now=dol_now();
+	
 	$error = 0;
 	foreach ( $tabpay as $key => $val )
 	{
@@ -301,6 +305,7 @@ if ($action == 'writebookkeeping')
 			$bookkeeping->credit = ($mt < 0 ? - $mt : 0);
 			$bookkeeping->code_journal = $journal;
 			$bookkeeping->fk_user_author = $user->id;
+			$bookkeeping->date_create=$now;
 
 			if ($tabtype[$key] == 'payment') {
 
@@ -317,7 +322,7 @@ if ($action == 'writebookkeeping')
 				}
 			} else if ($tabtype[$key] == 'payment_supplier') {
 
-				$sqlmid = 'SELECT facf.facnumber';
+				$sqlmid = 'SELECT facf.ref_supplier,facf.ref';
 				$sqlmid .= " FROM " . MAIN_DB_PREFIX . "facture_fourn facf ";
 				$sqlmid .= " INNER JOIN " . MAIN_DB_PREFIX . "paiementfourn_facturefourn as payfacf ON  payfacf.fk_facturefourn=facf.rowid";
 				$sqlmid .= " INNER JOIN " . MAIN_DB_PREFIX . "paiementfourn as payf ON  payfacf.fk_paiementfourn=payf.rowid";
@@ -326,14 +331,14 @@ if ($action == 'writebookkeeping')
 				$resultmid = $db->query($sqlmid);
 				if ($resultmid) {
 					$objmid = $db->fetch_object($resultmid);
-					$bookkeeping->doc_ref = $objmid->facnumber;
+					$bookkeeping->doc_ref = $objmid->ref_supplier.' ('.$objmid->ref.')';;
 				}
 			}
 
 			$result = $bookkeeping->create();
 			if ($result < 0) {
 				$error ++;
-				setEventMessage($object->errors, 'errors');
+				setEventMessages($object->error, $object->errors, 'errors');
 			}
 		}
 		// Third party
@@ -352,6 +357,7 @@ if ($action == 'writebookkeeping')
 			$bookkeeping->credit = ($mt >= 0) ? $mt : 0;
 			$bookkeeping->code_journal = $journal;
 			$bookkeeping->fk_user_author = $user->id;
+			$bookkeeping->date_create=$now;
 
 			if ($tabtype[$key] == 'sc') {
 				$bookkeeping->code_tiers = '';
@@ -373,7 +379,7 @@ if ($action == 'writebookkeeping')
 				$bookkeeping->numero_compte = $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER;
 			} else if ($tabtype[$key] == 'payment_supplier') {
 
-				$sqlmid = 'SELECT facf.facnumber';
+				$sqlmid = 'SELECT facf.ref_supplier,facf.ref';
 				$sqlmid .= " FROM " . MAIN_DB_PREFIX . "facture_fourn facf ";
 				$sqlmid .= " INNER JOIN " . MAIN_DB_PREFIX . "paiementfourn_facturefourn as payfacf ON  payfacf.fk_facturefourn=facf.rowid";
 				$sqlmid .= " INNER JOIN " . MAIN_DB_PREFIX . "paiementfourn as payf ON  payfacf.fk_paiementfourn=payf.rowid";
@@ -382,7 +388,7 @@ if ($action == 'writebookkeeping')
 				$resultmid = $db->query($sqlmid);
 				if ($resultmid) {
 					$objmid = $db->fetch_object($resultmid);
-					$bookkeeping->doc_ref = $objmid->facnumber;
+					$bookkeeping->doc_ref = $objmid->ref_supplier.' ('.$objmid->ref.')';
 				}
 				$bookkeeping->code_tiers = $k;
 				$bookkeeping->numero_compte = $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER;
@@ -410,17 +416,18 @@ if ($action == 'writebookkeeping')
 			$result = $bookkeeping->create();
 			if ($result < 0) {
 				$error ++;
-				setEventMessage($object->errors, 'errors');
+				setEventMessages($object->error, $object->errors, 'errors');
 			}
 		}
 	}
 
 	if (empty($error)) {
-		setEventMessage($langs->trans("GeneralLedgerIsWritten"),'mesgs');
+		setEventMessages($langs->trans("GeneralLedgerIsWritten"), null, 'mesgs');
 	}
 }
 // Export
-if ($action == 'export_csv') {
+if ($action == 'export_csv')
+{
 	$sep = $conf->global->ACCOUNTING_EXPORT_SEPARATORCSV;
 
 	header('Content-Type: text/csv');
@@ -497,7 +504,8 @@ if ($action == 'export_csv') {
 				}
 			}
 		}
-	} else { 	// Model Classic Export
+	} else 	// Model Classic Export
+	{
 		foreach ( $tabpay as $key => $val ) {
 			$date = dol_print_date($db->jdate($val["date"]), 'day');
 
diff --git a/htdocs/accountancy/journal/purchasesjournal.php b/htdocs/accountancy/journal/purchasesjournal.php
index 5844700748a..90443eb4bc1 100644
--- a/htdocs/accountancy/journal/purchasesjournal.php
+++ b/htdocs/accountancy/journal/purchasesjournal.php
@@ -84,7 +84,7 @@ if (empty($date_start) || empty($date_end)) // We define date_start and date_end
 $p = explode(":", $conf->global->MAIN_INFO_SOCIETE_COUNTRY);
 $idpays = $p[0];
 
-$sql = "SELECT f.rowid, f.ref, f.type, f.datef as df, f.libelle,";
+$sql = "SELECT f.rowid, f.ref, f.type, f.datef as df, f.libelle,f.ref_supplier,";
 $sql .= " fd.rowid as fdid, fd.description, fd.total_ttc, fd.tva_tx, fd.total_ht, fd.tva as total_tva, fd.product_type,";
 $sql .= " s.rowid as socid, s.nom as name, s.code_compta_fournisseur, s.fournisseur,";
 $sql .= " s.code_compta_fournisseur, p.accountancy_code_buy , ct.accountancy_code_buy as account_tva, aa.rowid as fk_compte, aa.account_number as compte, aa.label as label_compte";
@@ -135,7 +135,7 @@ if ($result) {
 		$compta_tva = (! empty($obj->account_tva) ? $obj->account_tva : $cpttva);
 
 		$tabfac[$obj->rowid]["date"] = $obj->df;
-		$tabfac[$obj->rowid]["ref"] = $obj->ref;
+		$tabfac[$obj->rowid]["ref"] = $obj->ref_supplier.' ('.$obj->ref.')';
 		$tabfac[$obj->rowid]["type"] = $obj->type;
 		$tabfac[$obj->rowid]["description"] = $obj->description;
 		$tabfac[$obj->rowid]["fk_facturefourndet"] = $obj->fdid;
@@ -183,7 +183,7 @@ if ($action == 'writebookkeeping') {
 			$result = $bookkeeping->create();
 			if ($result < 0) {
 				$error ++;
-				setEventMessage($object->errors, 'errors');
+				setEventMessages($object->error, $object->errors, 'errors');
 			}
 		}
 
@@ -213,7 +213,7 @@ if ($action == 'writebookkeeping') {
 					$result = $bookkeeping->create();
 					if ($result < 0) {
 						$error ++;
-						setEventMessage($object->errors, 'errors');
+						setEventMessages($object->error, $object->errors, 'errors');
 					}
 				}
 			}
@@ -244,14 +244,14 @@ if ($action == 'writebookkeeping') {
 				$result = $bookkeeping->create();
 				if ($result < 0) {
 					$error ++;
-					setEventMessage($object->errors, 'errors');
+					setEventMessages($object->error, $object->errors, 'errors');
 				}
 			}
 		}
 	}
 
 	if (empty($error)) {
-		setEventMessage($langs->trans("GeneralLedgerIsWritten"),'mesgs');
+		setEventMessages($langs->trans("GeneralLedgerIsWritten"), null, 'mesgs');
 	}
 }
 
diff --git a/htdocs/accountancy/journal/sellsjournal.php b/htdocs/accountancy/journal/sellsjournal.php
index 8535e59aa26..38d9c26dcb1 100644
--- a/htdocs/accountancy/journal/sellsjournal.php
+++ b/htdocs/accountancy/journal/sellsjournal.php
@@ -218,7 +218,7 @@ if ($action == 'writebookkeeping')
 			$result = $bookkeeping->create();
 			if ($result < 0) {
 				$error ++;
-				setEventMessage($object->errors, 'errors');
+				setEventMessages($object->error, $object->errors, 'errors');
 			}
 		}
 
@@ -248,7 +248,7 @@ if ($action == 'writebookkeeping')
 					$result = $bookkeeping->create();
 					if ($result < 0) {
 						$error ++;
-						setEventMessage($object->errors, 'errors');
+						setEventMessages($object->error, $object->errors, 'errors');
 					}
 				}
 			}
@@ -280,14 +280,14 @@ if ($action == 'writebookkeeping')
 				$result = $bookkeeping->create();
 				if ($result < 0) {
 					$error ++;
-					setEventMessage($object->errors, 'errors');
+					setEventMessages($object->error, $object->errors, 'errors');
 				}
 			}
 		}
 	}
 
 	if (empty($error)) {
-		setEventMessage($langs->trans("GeneralLedgerIsWritten"),'mesgs');
+		setEventMessages($langs->trans("GeneralLedgerIsWritten"), null, 'mesgs');
 	}
 }
 
diff --git a/htdocs/accountancy/supplier/list.php b/htdocs/accountancy/supplier/list.php
index e261dfff350..ea2ed8de0eb 100644
--- a/htdocs/accountancy/supplier/list.php
+++ b/htdocs/accountancy/supplier/list.php
@@ -94,8 +94,8 @@ $formventilation = new FormVentilation($db);
 $accounting = new AccountingAccount($db);
 
 // TODO: we should need to check if result is a really exist accountaccount rowid.....
-$aarowid_s = $accounting->fetch('', ACCOUNTING_SERVICE_BUY_ACCOUNT);
-$aarowid_p = $accounting->fetch('', ACCOUNTING_PRODUCT_BUY_ACCOUNT);
+$aarowid_s = $accounting->fetch('', $conf->global->ACCOUNTING_SERVICE_BUY_ACCOUNT,1);
+$aarowid_p = $accounting->fetch('', $conf->global->ACCOUNTING_PRODUCT_BUY_ACCOUNT,1);
 
 // Purge search criteria
 if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) // Both test are required to be compatible with all browsers
-- 
GitLab


From 9b0dd8159e05d1d9fc2d7a4d5e0e41a5f03dee42 Mon Sep 17 00:00:00 2001
From: philippe grand <philippe.grand@atoo-net.com>
Date: Fri, 11 Dec 2015 12:29:19 +0100
Subject: [PATCH 154/197] [Qual] Close database handler should be after Footer

---
 htdocs/accountancy/admin/card.php               | 5 +++--
 htdocs/accountancy/admin/fiscalyear_info.php    | 3 +--
 htdocs/accountancy/journal/bankjournal.php      | 3 +--
 htdocs/accountancy/journal/index.php            | 4 ++--
 htdocs/accountancy/journal/purchasesjournal.php | 3 +--
 htdocs/accountancy/journal/sellsjournal.php     | 4 +---
 htdocs/adherents/info_subscription.php          | 3 +--
 htdocs/admin/menus/edit.php                     | 4 +---
 htdocs/admin/system/os.php                      | 1 +
 9 files changed, 12 insertions(+), 18 deletions(-)

diff --git a/htdocs/accountancy/admin/card.php b/htdocs/accountancy/admin/card.php
index 99eb49949e7..dc8dac4f959 100644
--- a/htdocs/accountancy/admin/card.php
+++ b/htdocs/accountancy/admin/card.php
@@ -303,6 +303,7 @@ else if ($id)
 		dol_print_error($db);
 	}
 }
-$db->close();
 
-llxFooter();
\ No newline at end of file
+llxFooter();
+
+$db->close();
\ No newline at end of file
diff --git a/htdocs/accountancy/admin/fiscalyear_info.php b/htdocs/accountancy/admin/fiscalyear_info.php
index ddd0eaaab98..00d50d273af 100644
--- a/htdocs/accountancy/admin/fiscalyear_info.php
+++ b/htdocs/accountancy/admin/fiscalyear_info.php
@@ -55,6 +55,5 @@ if ($id)
     print '</div>';
 }
 
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/accountancy/journal/bankjournal.php b/htdocs/accountancy/journal/bankjournal.php
index be136a38b98..a1f1e3fff59 100644
--- a/htdocs/accountancy/journal/bankjournal.php
+++ b/htdocs/accountancy/journal/bankjournal.php
@@ -709,7 +709,6 @@ else
 
 	print "</table>";
 
-	// End of page
-	llxFooter();
 }
+llxFooter();
 $db->close();
diff --git a/htdocs/accountancy/journal/index.php b/htdocs/accountancy/journal/index.php
index 9906c68d0c8..c7a57512073 100644
--- a/htdocs/accountancy/journal/index.php
+++ b/htdocs/accountancy/journal/index.php
@@ -42,5 +42,5 @@ llxHeader('', 'Journaux', '');
 $form = new Form($db);
 
 // End of page
-$db->close();
-llxFooter();
\ No newline at end of file
+llxFooter();
+$db->close();
\ No newline at end of file
diff --git a/htdocs/accountancy/journal/purchasesjournal.php b/htdocs/accountancy/journal/purchasesjournal.php
index 538edaa471d..eb9c2baa088 100644
--- a/htdocs/accountancy/journal/purchasesjournal.php
+++ b/htdocs/accountancy/journal/purchasesjournal.php
@@ -488,7 +488,6 @@ if ($action == 'export_csv')
 
 	print "</table>";
 
-	// End of page
-	llxFooter();
 }
+llxFooter();
 $db->close();
diff --git a/htdocs/accountancy/journal/sellsjournal.php b/htdocs/accountancy/journal/sellsjournal.php
index aaf3beea8a1..51f4766cc18 100644
--- a/htdocs/accountancy/journal/sellsjournal.php
+++ b/htdocs/accountancy/journal/sellsjournal.php
@@ -531,8 +531,6 @@ if ($action == 'export_csv')
 
 	print "</table>";
 
-	// End of page
-	llxFooter();
 }
-
+llxFooter();
 $db->close();
diff --git a/htdocs/adherents/info_subscription.php b/htdocs/adherents/info_subscription.php
index cc7902af358..f9dc5ff17af 100644
--- a/htdocs/adherents/info_subscription.php
+++ b/htdocs/adherents/info_subscription.php
@@ -77,6 +77,5 @@ print '</td></tr></table>';
 print '</div>';
 
 
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/admin/menus/edit.php b/htdocs/admin/menus/edit.php
index 2fed48d470c..f4f1bbb96bf 100644
--- a/htdocs/admin/menus/edit.php
+++ b/htdocs/admin/menus/edit.php
@@ -466,7 +466,5 @@ elseif ($action == 'edit')
     print '<br>';
 }
 
-
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/admin/system/os.php b/htdocs/admin/system/os.php
index 2e9e56565c0..01d48f2444d 100644
--- a/htdocs/admin/system/os.php
+++ b/htdocs/admin/system/os.php
@@ -51,3 +51,4 @@ print '</table>';
 
 
 llxFooter();
+$db->close();
-- 
GitLab


From 30eb08151dc2dc945a2b13be198a75975b79bd9d Mon Sep 17 00:00:00 2001
From: philippe grand <philippe.grand@atoo-net.com>
Date: Fri, 11 Dec 2015 14:19:38 +0100
Subject: [PATCH 155/197] [Qual] Close database handler should be after Footer

---
 htdocs/admin/compta.php                        | 2 +-
 htdocs/admin/confexped.php                     | 3 +--
 htdocs/admin/external_rss.php                  | 5 ++---
 htdocs/admin/ldap.php                          | 3 +--
 htdocs/admin/ldap_contacts.php                 | 3 +--
 htdocs/admin/ldap_groups.php                   | 3 +--
 htdocs/admin/ldap_users.php                    | 3 +--
 htdocs/admin/perms.php                         | 4 +---
 htdocs/admin/prelevement.php                   | 3 +--
 htdocs/admin/proxy.php                         | 3 +--
 htdocs/admin/supplier_proposal.php             | 1 +
 htdocs/admin/taxes.php                         | 3 +--
 htdocs/api/admin/explorer.php                  | 1 +
 htdocs/asterisk/wrapper.php                    | 1 +
 htdocs/bookmarks/admin/bookmark.php            | 3 +--
 htdocs/cashdesk/admin/cashdesk.php             | 3 +--
 htdocs/categories/admin/categorie.php          | 4 ++--
 htdocs/comm/action/info.php                    | 3 +--
 htdocs/comm/action/rapport/index.php           | 4 +---
 htdocs/comm/mailing/info.php                   | 3 +--
 htdocs/comm/multiprix.php                      | 3 +--
 htdocs/comm/prospect/recap-prospect.php        | 4 +---
 htdocs/comm/recap-client.php                   | 4 +---
 htdocs/comm/remise.php                         | 3 +--
 htdocs/comm/remx.php                           | 3 +--
 htdocs/commande/info.php                       | 4 +---
 htdocs/compta/bank/bilan.php                   | 3 +--
 htdocs/compta/bank/budget.php                  | 3 +--
 htdocs/compta/bank/card.php                    | 5 +----
 htdocs/compta/bank/info.php                    | 4 +---
 htdocs/compta/bank/search.php                  | 4 +---
 htdocs/compta/bank/treso.php                   | 3 +--
 htdocs/compta/bank/virement.php                | 3 +--
 htdocs/compta/clients.php                      | 3 +--
 htdocs/compta/deplacement/info.php             | 3 +--
 htdocs/compta/facture/info.php                 | 3 +--
 htdocs/compta/localtax/card.php                | 4 +---
 htdocs/compta/localtax/clients.php             | 4 +---
 htdocs/compta/localtax/index.php               | 3 +--
 htdocs/compta/localtax/quadri_detail.php       | 3 +--
 htdocs/compta/localtax/reglement.php           | 3 +--
 htdocs/compta/paiement/avalider.php            | 3 +--
 htdocs/compta/paiement/index.php               | 5 +----
 htdocs/compta/paiement/info.php                | 3 +--
 htdocs/compta/paiement_charge.php              | 4 +---
 htdocs/compta/prelevement/create.php           | 4 +---
 htdocs/compta/prelevement/demandes.php         | 2 +-
 htdocs/compta/prelevement/fiche-rejet.php      | 3 +--
 htdocs/compta/prelevement/fiche-stat.php       | 3 +--
 htdocs/compta/prelevement/list.php             | 4 +---
 htdocs/compta/prelevement/rejets.php           | 3 +--
 htdocs/compta/sociales/index.php               | 6 +-----
 htdocs/compta/tva/card.php                     | 4 +---
 htdocs/compta/tva/index.php                    | 4 +---
 htdocs/compta/tva/quadri.php                   | 4 +---
 htdocs/compta/tva/quadri_detail.php            | 3 +--
 htdocs/compta/tva/quarter_report.php           | 3 +--
 htdocs/compta/ventilation/card.php             | 3 +--
 htdocs/compta/ventilation/fournisseur/card.php | 3 +--
 htdocs/compta/ventilation/fournisseur/list.php | 2 +-
 htdocs/contrat/info.php                        | 3 +--
 htdocs/cron/info.php                           | 5 ++---
 62 files changed, 65 insertions(+), 139 deletions(-)

diff --git a/htdocs/admin/compta.php b/htdocs/admin/compta.php
index 38ba28e9fa4..ab6a0052341 100644
--- a/htdocs/admin/compta.php
+++ b/htdocs/admin/compta.php
@@ -166,6 +166,6 @@ print "</table>\n";
 
 print '<br /><br /><div style="text-align:center"><input type="submit" class="button" value="'.$langs->trans('Modify').'" name="button"></div>';
 print '</form>';
-$db->close();
 
 llxFooter();
+$db->close();
diff --git a/htdocs/admin/confexped.php b/htdocs/admin/confexped.php
index f8d13421b24..91d3b82286c 100644
--- a/htdocs/admin/confexped.php
+++ b/htdocs/admin/confexped.php
@@ -158,6 +158,5 @@ print '</div>';
 
 print info_admin($langs->trans("NoNeedForDeliveryReceipts"));
 
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/admin/external_rss.php b/htdocs/admin/external_rss.php
index 81f6c093d5e..f18a3fe86b6 100644
--- a/htdocs/admin/external_rss.php
+++ b/htdocs/admin/external_rss.php
@@ -5,7 +5,7 @@
  * Copyright (C) 2004      Sebastien Di Cintio  <sdicintio@ressource-toi.org>
  * Copyright (C) 2004      Benoit Mortier       <benoit.mortier@opensides.be>
  * Copyright (C) 2005-2011 Regis Houssin        <regis.houssin@capnetworks.com>
- * Copyright (C) 2011 	    Juanjo Menent		<jmenent@2byte.es>
+ * Copyright (C) 2011 	   Juanjo Menent		<jmenent@2byte.es>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -320,6 +320,5 @@ else
 }
 
 
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/admin/ldap.php b/htdocs/admin/ldap.php
index fadde40dbed..92c4d20670b 100644
--- a/htdocs/admin/ldap.php
+++ b/htdocs/admin/ldap.php
@@ -325,6 +325,5 @@ if (function_exists("ldap_connect"))
 	}
 }
 
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/admin/ldap_contacts.php b/htdocs/admin/ldap_contacts.php
index 56b755bf64a..4901c127e8b 100644
--- a/htdocs/admin/ldap_contacts.php
+++ b/htdocs/admin/ldap_contacts.php
@@ -337,7 +337,6 @@ if (function_exists("ldap_connect"))
 	}
 }
 
-$db->close();
-
 llxFooter();
+$db->close();
 
diff --git a/htdocs/admin/ldap_groups.php b/htdocs/admin/ldap_groups.php
index 20b94023358..90946f5ea44 100644
--- a/htdocs/admin/ldap_groups.php
+++ b/htdocs/admin/ldap_groups.php
@@ -257,6 +257,5 @@ if (function_exists("ldap_connect"))
 	}
 }
 
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/admin/ldap_users.php b/htdocs/admin/ldap_users.php
index 70a94e5817a..dbed44ca5d0 100644
--- a/htdocs/admin/ldap_users.php
+++ b/htdocs/admin/ldap_users.php
@@ -452,6 +452,5 @@ if (function_exists("ldap_connect"))
 	}
 }
 
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/admin/perms.php b/htdocs/admin/perms.php
index aaf2f91688a..2e0ba0873bf 100644
--- a/htdocs/admin/perms.php
+++ b/htdocs/admin/perms.php
@@ -218,7 +218,5 @@ print '</table>';
 
 print '</div>';
 
-
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/admin/prelevement.php b/htdocs/admin/prelevement.php
index 1a3fd19aa1c..410851b640b 100644
--- a/htdocs/admin/prelevement.php
+++ b/htdocs/admin/prelevement.php
@@ -284,6 +284,5 @@ if (! empty($conf->global->MAIN_MODULE_NOTIFICATION))
 }
 */
 
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/admin/proxy.php b/htdocs/admin/proxy.php
index 4591c4636a8..1f6e45223b4 100644
--- a/htdocs/admin/proxy.php
+++ b/htdocs/admin/proxy.php
@@ -208,6 +208,5 @@ print '</div>';
 
 print '</form>';
 
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/admin/supplier_proposal.php b/htdocs/admin/supplier_proposal.php
index c10592487da..069c90ead8a 100644
--- a/htdocs/admin/supplier_proposal.php
+++ b/htdocs/admin/supplier_proposal.php
@@ -603,6 +603,7 @@ print "  <td>".$langs->trans("Value")."</td>\n";
 print "</tr>\n";
 print "<tr ".$bc[false].">\n  <td width=\"140\">".$langs->trans("PathDirectory")."</td>\n  <td>".$conf->supplier_proposal->dir_output."</td>\n</tr>\n";
 print "</table>\n<br>";
+
 llxFooter();
 $db->close();
 
diff --git a/htdocs/admin/taxes.php b/htdocs/admin/taxes.php
index b1ce8ef5dab..0336547fd14 100644
--- a/htdocs/admin/taxes.php
+++ b/htdocs/admin/taxes.php
@@ -226,6 +226,5 @@ print '</div>';
 
 print '</form>';
 
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/api/admin/explorer.php b/htdocs/api/admin/explorer.php
index 154e8d163c1..44a14f99675 100644
--- a/htdocs/api/admin/explorer.php
+++ b/htdocs/api/admin/explorer.php
@@ -162,4 +162,5 @@ foreach($listofapis['v1'] as $key => $val)
 }
 
 llxFooter();
+$db->close();
 
diff --git a/htdocs/asterisk/wrapper.php b/htdocs/asterisk/wrapper.php
index f168de78b6e..bcd5957dbb3 100644
--- a/htdocs/asterisk/wrapper.php
+++ b/htdocs/asterisk/wrapper.php
@@ -190,3 +190,4 @@ else {
 }
 
 llxFooter();
+$db->close();
diff --git a/htdocs/bookmarks/admin/bookmark.php b/htdocs/bookmarks/admin/bookmark.php
index bd249055773..b622aa1d9dd 100644
--- a/htdocs/bookmarks/admin/bookmark.php
+++ b/htdocs/bookmarks/admin/bookmark.php
@@ -82,6 +82,5 @@ print '<input size="3" type="text" name="BOOKMARKS_SHOW_IN_MENU" value="'.$conf-
 print '</td></tr>';
 print '</table><br><div class="center"><input type="submit" class="button" value="'.$langs->trans("Modify").'"></div></form>';
 
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/cashdesk/admin/cashdesk.php b/htdocs/cashdesk/admin/cashdesk.php
index c9b6804ef33..de60e8b80cf 100644
--- a/htdocs/cashdesk/admin/cashdesk.php
+++ b/htdocs/cashdesk/admin/cashdesk.php
@@ -188,6 +188,5 @@ print '<div class="center"><input type="submit" class="button" value="'.$langs->
 
 print "</form>\n";
 
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/categories/admin/categorie.php b/htdocs/categories/admin/categorie.php
index 12b4d3ced81..d1af6bdafb2 100644
--- a/htdocs/categories/admin/categorie.php
+++ b/htdocs/categories/admin/categorie.php
@@ -121,5 +121,5 @@ print '</td></tr>';
 
 print '</table>';
 
-$db->close();
-llxFooter();
\ No newline at end of file
+llxFooter();
+$db->close();
\ No newline at end of file
diff --git a/htdocs/comm/action/info.php b/htdocs/comm/action/info.php
index 93881b35564..7c2001d925d 100644
--- a/htdocs/comm/action/info.php
+++ b/htdocs/comm/action/info.php
@@ -64,6 +64,5 @@ print '</td></tr></table>';
 
 print '</div>';
 
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/comm/action/rapport/index.php b/htdocs/comm/action/rapport/index.php
index 066df5fb39e..21e85c89756 100644
--- a/htdocs/comm/action/rapport/index.php
+++ b/htdocs/comm/action/rapport/index.php
@@ -150,7 +150,5 @@ else
 	dol_print_error($db);
 }
 
-
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/comm/mailing/info.php b/htdocs/comm/mailing/info.php
index bbd10849f42..77245f74766 100644
--- a/htdocs/comm/mailing/info.php
+++ b/htdocs/comm/mailing/info.php
@@ -63,6 +63,5 @@ if ($mil->fetch($_REQUEST["id"]) >= 0)
 	print '</div>';
 }
 
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/comm/multiprix.php b/htdocs/comm/multiprix.php
index 6f8c0b70b86..645bdc580b4 100644
--- a/htdocs/comm/multiprix.php
+++ b/htdocs/comm/multiprix.php
@@ -171,6 +171,5 @@ if ($_socid > 0)
 
 }
 
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/comm/prospect/recap-prospect.php b/htdocs/comm/prospect/recap-prospect.php
index 5d7358a806e..fe0fdc55b58 100644
--- a/htdocs/comm/prospect/recap-prospect.php
+++ b/htdocs/comm/prospect/recap-prospect.php
@@ -89,7 +89,5 @@ else
   	dol_print_error($db);
 }
 
-
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/comm/recap-client.php b/htdocs/comm/recap-client.php
index 405ca2d4a11..71add817dc5 100644
--- a/htdocs/comm/recap-client.php
+++ b/htdocs/comm/recap-client.php
@@ -88,7 +88,5 @@ else
   	dol_print_error($db);
 }
 
-
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/comm/remise.php b/htdocs/comm/remise.php
index 0edcdcd0c1d..a08e0a66a6f 100644
--- a/htdocs/comm/remise.php
+++ b/htdocs/comm/remise.php
@@ -199,6 +199,5 @@ if ($socid > 0)
 
 }
 
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/comm/remx.php b/htdocs/comm/remx.php
index ba85d593fce..07989b457de 100644
--- a/htdocs/comm/remx.php
+++ b/htdocs/comm/remx.php
@@ -544,6 +544,5 @@ if ($socid > 0)
 
 }
 
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/commande/info.php b/htdocs/commande/info.php
index bae932857fe..ae0dd789064 100644
--- a/htdocs/commande/info.php
+++ b/htdocs/commande/info.php
@@ -62,7 +62,5 @@ print '</td></tr></table>';
 
 print '</div>';
 
-
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/compta/bank/bilan.php b/htdocs/compta/bank/bilan.php
index 7e44778b9bd..c1d668df8d7 100644
--- a/htdocs/compta/bank/bilan.php
+++ b/htdocs/compta/bank/bilan.php
@@ -89,6 +89,5 @@ print "<tr ".$bc[$var]."><td>".$langs->trans("BankBalance")."</td><td align=\"ri
 
 print "</table>";
 
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/compta/bank/budget.php b/htdocs/compta/bank/budget.php
index c35dec41e7d..666ad0085e1 100644
--- a/htdocs/compta/bank/budget.php
+++ b/htdocs/compta/bank/budget.php
@@ -97,6 +97,5 @@ else
 }
 print "</table>";
 
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/compta/bank/card.php b/htdocs/compta/bank/card.php
index fb8383cd91a..dbe0722c77d 100644
--- a/htdocs/compta/bank/card.php
+++ b/htdocs/compta/bank/card.php
@@ -1041,8 +1041,5 @@ else
 
 }
 
-
-
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/compta/bank/info.php b/htdocs/compta/bank/info.php
index cfc0c10d0a5..a1952ab5957 100644
--- a/htdocs/compta/bank/info.php
+++ b/htdocs/compta/bank/info.php
@@ -62,7 +62,5 @@ print '</td></tr></table>';
 
 print '</div>';
 
-
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/compta/bank/search.php b/htdocs/compta/bank/search.php
index 0fd5336af7e..5bdca142a91 100644
--- a/htdocs/compta/bank/search.php
+++ b/htdocs/compta/bank/search.php
@@ -353,7 +353,5 @@ if ($_POST["action"] == "search" && ! $num)
 	print $langs->trans("NoRecordFound");
 }
 
-
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/compta/bank/treso.php b/htdocs/compta/bank/treso.php
index cbdb769789f..db7f37cb3e5 100644
--- a/htdocs/compta/bank/treso.php
+++ b/htdocs/compta/bank/treso.php
@@ -339,6 +339,5 @@ else
 	print $langs->trans("ErrorBankAccountNotFound");
 }
 
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/compta/bank/virement.php b/htdocs/compta/bank/virement.php
index 4e323893d85..1a3294a2f15 100644
--- a/htdocs/compta/bank/virement.php
+++ b/htdocs/compta/bank/virement.php
@@ -188,6 +188,5 @@ print '<br><div class="center"><input type="submit" class="button" value="'.$lan
 
 print "</form>";
 
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/compta/clients.php b/htdocs/compta/clients.php
index 14751d308c4..6c2d9023902 100644
--- a/htdocs/compta/clients.php
+++ b/htdocs/compta/clients.php
@@ -210,6 +210,5 @@ else
 	dol_print_error($db);
 }
 
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/compta/deplacement/info.php b/htdocs/compta/deplacement/info.php
index dcdc8c9baf0..1e0279263e3 100644
--- a/htdocs/compta/deplacement/info.php
+++ b/htdocs/compta/deplacement/info.php
@@ -58,6 +58,5 @@ if ($id)
     print '</div>';
 }
 
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/compta/facture/info.php b/htdocs/compta/facture/info.php
index 8611381d486..24164b5709a 100644
--- a/htdocs/compta/facture/info.php
+++ b/htdocs/compta/facture/info.php
@@ -54,6 +54,5 @@ print '</td></tr></table>';
 
 print '</div>';
 
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/compta/localtax/card.php b/htdocs/compta/localtax/card.php
index b5140c54842..aded1c6aa1f 100644
--- a/htdocs/compta/localtax/card.php
+++ b/htdocs/compta/localtax/card.php
@@ -269,8 +269,6 @@ if ($id)
 	print "</div>";
 }
 
-
-$db->close();
-
 llxFooter();
+$db->close();
 
diff --git a/htdocs/compta/localtax/clients.php b/htdocs/compta/localtax/clients.php
index 31eaf4375c3..ac30e529839 100644
--- a/htdocs/compta/localtax/clients.php
+++ b/htdocs/compta/localtax/clients.php
@@ -318,7 +318,5 @@ if($conf->global->$calc ==0){
 }
 print '</table>';
 
-
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/compta/localtax/index.php b/htdocs/compta/localtax/index.php
index c3512fdcc1e..3bed627402e 100644
--- a/htdocs/compta/localtax/index.php
+++ b/htdocs/compta/localtax/index.php
@@ -280,6 +280,5 @@ print '</td></tr></table>';
 print '</td></tr>';
 print '</table>';
 
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/compta/localtax/quadri_detail.php b/htdocs/compta/localtax/quadri_detail.php
index 0e88980796b..7c1e99b3537 100644
--- a/htdocs/compta/localtax/quadri_detail.php
+++ b/htdocs/compta/localtax/quadri_detail.php
@@ -663,6 +663,5 @@ else
 	$i++;
 }
 
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/compta/localtax/reglement.php b/htdocs/compta/localtax/reglement.php
index bfe0cb828c0..54530b14443 100644
--- a/htdocs/compta/localtax/reglement.php
+++ b/htdocs/compta/localtax/reglement.php
@@ -92,6 +92,5 @@ else
     dol_print_error($db);
 }
 
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/compta/paiement/avalider.php b/htdocs/compta/paiement/avalider.php
index 489997011b0..6a891b72bda 100644
--- a/htdocs/compta/paiement/avalider.php
+++ b/htdocs/compta/paiement/avalider.php
@@ -118,6 +118,5 @@ if ($resql)
     print "</table>";
 }
 
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/compta/paiement/index.php b/htdocs/compta/paiement/index.php
index 8575db70288..7f1597b5afc 100644
--- a/htdocs/compta/paiement/index.php
+++ b/htdocs/compta/paiement/index.php
@@ -31,8 +31,5 @@ llxHeader();
 
 print load_fiche_titre("Payments");
 
-
-
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/compta/paiement/info.php b/htdocs/compta/paiement/info.php
index 84ef52c3a80..143ef55e987 100644
--- a/htdocs/compta/paiement/info.php
+++ b/htdocs/compta/paiement/info.php
@@ -63,6 +63,5 @@ print '</td></tr></table>';
 
 print '</div>';
 
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/compta/paiement_charge.php b/htdocs/compta/paiement_charge.php
index 30a3d17ab3f..a68f3445305 100644
--- a/htdocs/compta/paiement_charge.php
+++ b/htdocs/compta/paiement_charge.php
@@ -323,7 +323,5 @@ if ($_GET["action"] == 'create')
 	print "</form>\n";
 }
 
-
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/compta/prelevement/create.php b/htdocs/compta/prelevement/create.php
index 7e81e181d11..7fd5cb10483 100644
--- a/htdocs/compta/prelevement/create.php
+++ b/htdocs/compta/prelevement/create.php
@@ -299,7 +299,5 @@ else
     dol_print_error($db);
 }
 
-
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/compta/prelevement/demandes.php b/htdocs/compta/prelevement/demandes.php
index 364e073676b..22679af2110 100644
--- a/htdocs/compta/prelevement/demandes.php
+++ b/htdocs/compta/prelevement/demandes.php
@@ -157,5 +157,5 @@ else
 	dol_print_error($db);
 }
 
-
 llxFooter();
+$db->close();
diff --git a/htdocs/compta/prelevement/fiche-rejet.php b/htdocs/compta/prelevement/fiche-rejet.php
index 161227aa121..d520abccbcf 100644
--- a/htdocs/compta/prelevement/fiche-rejet.php
+++ b/htdocs/compta/prelevement/fiche-rejet.php
@@ -178,6 +178,5 @@ else
 	dol_print_error($db);
 }
 
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/compta/prelevement/fiche-stat.php b/htdocs/compta/prelevement/fiche-stat.php
index 83de06bc13c..c2316578130 100644
--- a/htdocs/compta/prelevement/fiche-stat.php
+++ b/htdocs/compta/prelevement/fiche-stat.php
@@ -159,6 +159,5 @@ if ($prev_id)
 	}
 }
 
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/compta/prelevement/list.php b/htdocs/compta/prelevement/list.php
index 9274a885105..d0c6792a785 100644
--- a/htdocs/compta/prelevement/list.php
+++ b/htdocs/compta/prelevement/list.php
@@ -192,7 +192,5 @@ else
     dol_print_error($db);
 }
 
-$db->close();
-
-
 llxFooter();
+$db->close();
diff --git a/htdocs/compta/prelevement/rejets.php b/htdocs/compta/prelevement/rejets.php
index 30eafa40efa..78a11e898df 100644
--- a/htdocs/compta/prelevement/rejets.php
+++ b/htdocs/compta/prelevement/rejets.php
@@ -124,6 +124,5 @@ else
 	dol_print_error($db);
 }
 
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/compta/sociales/index.php b/htdocs/compta/sociales/index.php
index 639bf51fefd..6df15c9ba8e 100644
--- a/htdocs/compta/sociales/index.php
+++ b/htdocs/compta/sociales/index.php
@@ -247,9 +247,5 @@ else
 	dol_print_error($db);
 }
 
-
-
-
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/compta/tva/card.php b/htdocs/compta/tva/card.php
index ed80ee21a4e..674e800a168 100644
--- a/htdocs/compta/tva/card.php
+++ b/htdocs/compta/tva/card.php
@@ -372,7 +372,5 @@ if ($id)
 	print "</div>";
 }
 
-
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/compta/tva/index.php b/htdocs/compta/tva/index.php
index a5f45d0c72c..6445eb09f02 100644
--- a/htdocs/compta/tva/index.php
+++ b/htdocs/compta/tva/index.php
@@ -252,7 +252,5 @@ print "</td></tr></table>";
 print '</td></tr>';
 print '</table>';
 
-
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/compta/tva/quadri.php b/htdocs/compta/tva/quadri.php
index a8434a70868..0e4a66146aa 100644
--- a/htdocs/compta/tva/quadri.php
+++ b/htdocs/compta/tva/quadri.php
@@ -313,7 +313,5 @@ print '</table>';
 echo '</td></tr>';
 echo '</table>';
 
-
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/compta/tva/quadri_detail.php b/htdocs/compta/tva/quadri_detail.php
index cedc38a2143..8175744a75d 100644
--- a/htdocs/compta/tva/quadri_detail.php
+++ b/htdocs/compta/tva/quadri_detail.php
@@ -638,6 +638,5 @@ else
 }
 echo '</table>';
 
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/compta/tva/quarter_report.php b/htdocs/compta/tva/quarter_report.php
index e906b65ed4f..61d019894e8 100644
--- a/htdocs/compta/tva/quarter_report.php
+++ b/htdocs/compta/tva/quarter_report.php
@@ -707,6 +707,5 @@ if (!is_array($x_coll) || !is_array($x_paye)) {
 }
 print '</table>';
 
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/compta/ventilation/card.php b/htdocs/compta/ventilation/card.php
index 463f8884242..59ed7fe9cde 100644
--- a/htdocs/compta/ventilation/card.php
+++ b/htdocs/compta/ventilation/card.php
@@ -160,6 +160,5 @@ else
     print "Error ID incorrect";
 }
 
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/compta/ventilation/fournisseur/card.php b/htdocs/compta/ventilation/fournisseur/card.php
index 9c69b613697..dc376de7c06 100644
--- a/htdocs/compta/ventilation/fournisseur/card.php
+++ b/htdocs/compta/ventilation/fournisseur/card.php
@@ -144,6 +144,5 @@ else
   print "Error ID incorrect";
 }
 
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/compta/ventilation/fournisseur/list.php b/htdocs/compta/ventilation/fournisseur/list.php
index 5213a4686be..888f9152240 100644
--- a/htdocs/compta/ventilation/fournisseur/list.php
+++ b/htdocs/compta/ventilation/fournisseur/list.php
@@ -100,6 +100,6 @@ else
 {
   print $db->error();
 }
-$db->close();
 
 llxFooter();
+$db->close();
diff --git a/htdocs/contrat/info.php b/htdocs/contrat/info.php
index 53af58a2415..2067247dbf6 100644
--- a/htdocs/contrat/info.php
+++ b/htdocs/contrat/info.php
@@ -55,6 +55,5 @@ print '</td></tr></table>';
 
 print '</div>';
 
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/cron/info.php b/htdocs/cron/info.php
index 1e13bd725b3..334a5da6890 100644
--- a/htdocs/cron/info.php
+++ b/htdocs/cron/info.php
@@ -55,6 +55,5 @@ dol_print_object_info($object);
 print '</td></tr></table>';
 print '</div>';
 
-
-$db->close();
-llxFooter();
\ No newline at end of file
+llxFooter();
+$db->close();
\ No newline at end of file
-- 
GitLab


From 793e6e2a8f25472ed96462876b1650c2592ba678 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Fri, 11 Dec 2015 16:56:25 +0100
Subject: [PATCH 156/197] Example mut be excluded of packages

---
 build/makepack-dolibarr.pl                    |   2 +
 .../phpoffice/phpexcel/Examples/.gitignore    |   3 -
 .../phpexcel/Examples/01pharSimple.php        | 112 ---
 .../Examples/01simple-download-ods.php        |  89 ---
 .../Examples/01simple-download-pdf.php        | 104 ---
 .../Examples/01simple-download-xls.php        |  89 ---
 .../Examples/01simple-download-xlsx.php       |  89 ---
 .../phpoffice/phpexcel/Examples/01simple.php  | 118 ---
 .../phpexcel/Examples/01simplePCLZip.php      | 106 ---
 .../phpexcel/Examples/02types-xls.php         | 183 -----
 .../phpoffice/phpexcel/Examples/02types.php   | 183 -----
 .../phpexcel/Examples/03formulas.php          | 149 ----
 .../phpexcel/Examples/04printing.php          | 125 ----
 .../phpexcel/Examples/05featuredemo.inc.php   | 394 ----------
 .../phpexcel/Examples/05featuredemo.php       |  78 --
 .../06largescale-with-cellcaching-sqlite.php  | 129 ----
 .../06largescale-with-cellcaching-sqlite3.php | 129 ----
 .../06largescale-with-cellcaching.php         | 128 ----
 .../phpexcel/Examples/06largescale-xls.php    | 136 ----
 .../phpexcel/Examples/06largescale.php        | 136 ----
 .../phpoffice/phpexcel/Examples/07reader.php  |  76 --
 .../phpexcel/Examples/07readerPCLZip.php      |  79 --
 .../Examples/08conditionalformatting.php      | 189 -----
 .../Examples/08conditionalformatting2.php     | 136 ----
 .../phpexcel/Examples/09pagebreaks.php        | 134 ----
 .../Examples/10autofilter-selection-1.php     | 221 ------
 .../Examples/10autofilter-selection-2.php     | 213 ------
 .../10autofilter-selection-display.php        | 198 -----
 .../phpexcel/Examples/10autofilter.php        | 171 -----
 .../Examples/11documentsecurity-xls.php       | 109 ---
 .../phpexcel/Examples/11documentsecurity.php  | 109 ---
 .../phpexcel/Examples/12cellProtection.php    | 107 ---
 .../phpexcel/Examples/13calculation.php       | 235 ------
 .../phpoffice/phpexcel/Examples/14excel5.php  |  63 --
 .../Examples/15datavalidation-xls.php         | 142 ----
 .../phpexcel/Examples/15datavalidation.php    | 143 ----
 .../phpoffice/phpexcel/Examples/16csv.php     | 107 ---
 .../phpoffice/phpexcel/Examples/17html.php    |  64 --
 .../Examples/18extendedcalculation.php        | 108 ---
 .../phpexcel/Examples/19namedrange.php        | 129 ----
 .../phpexcel/Examples/20readexcel5.php        |  79 --
 .../phpoffice/phpexcel/Examples/21pdf.php     |  94 ---
 .../phpexcel/Examples/22heavilyformatted.php  | 116 ---
 .../phpexcel/Examples/23sharedstyles.php      | 124 ----
 .../phpexcel/Examples/24readfilter.php        |  77 --
 .../phpexcel/Examples/25inmemoryimage.php     |  83 ---
 .../phpoffice/phpexcel/Examples/26utf8.php    | 122 ---
 .../phpexcel/Examples/27imagesexcel5.php      |  64 --
 .../phpexcel/Examples/28iterator.php          |  68 --
 .../Examples/29advancedvaluebinder.php        | 183 -----
 .../phpexcel/Examples/30template.php          |  91 ---
 .../Examples/31docproperties_write-xls.php    | 119 ---
 .../Examples/31docproperties_write.php        | 119 ---
 .../phpexcel/Examples/32chartreadwrite.php    | 131 ----
 .../phpexcel/Examples/33chartcreate-area.php  | 142 ----
 .../Examples/33chartcreate-bar-stacked.php    | 145 ----
 .../phpexcel/Examples/33chartcreate-bar.php   | 145 ----
 .../Examples/33chartcreate-column-2.php       | 154 ----
 .../Examples/33chartcreate-column.php         | 145 ----
 .../Examples/33chartcreate-composite.php      | 203 -----
 .../phpexcel/Examples/33chartcreate-line.php  | 142 ----
 .../33chartcreate-multiple-charts.php         | 220 ------
 .../phpexcel/Examples/33chartcreate-pie.php   | 215 ------
 .../phpexcel/Examples/33chartcreate-radar.php | 154 ----
 .../Examples/33chartcreate-scatter.php        | 138 ----
 .../phpexcel/Examples/33chartcreate-stock.php | 151 ----
 .../phpexcel/Examples/34chartupdate.php       |  78 --
 .../phpexcel/Examples/35chartrender.php       | 134 ----
 .../Examples/36chartreadwriteHTML.php         | 151 ----
 .../phpexcel/Examples/36chartreadwritePDF.php | 174 -----
 .../phpexcel/Examples/37page_layout_view.php  |  83 ---
 .../phpexcel/Examples/38cloneWorksheet.php    | 118 ---
 .../phpexcel/Examples/39dropdown.php          | 175 -----
 .../phpexcel/Examples/40duplicateStyle.php    |  51 --
 .../phpexcel/Examples/41password.php          |  84 ---
 .../phpexcel/Examples/42richText.php          | 159 ----
 .../phpexcel/Examples/Excel2003XMLReader.php  |  61 --
 .../phpexcel/Examples/Excel2003XMLTest.xml    |   1 -
 .../phpexcel/Examples/GnumericReader.php      |  60 --
 .../phpexcel/Examples/GnumericTest.gnumeric   | Bin 7823 -> 0 bytes
 .../phpexcel/Examples/OOCalcReader.php        |  61 --
 .../phpexcel/Examples/OOCalcReaderPCLZip.php  |  64 --
 .../phpexcel/Examples/OOCalcTest.ods          | Bin 17931 -> 0 bytes
 .../phpoffice/phpexcel/Examples/Quadratic.php |  68 --
 .../phpexcel/Examples/Quadratic2.php          |  65 --
 .../phpexcel/Examples/SylkReader.php          |  50 --
 .../phpoffice/phpexcel/Examples/SylkTest.slk  | 152 ----
 .../phpoffice/phpexcel/Examples/XMLReader.php |  60 --
 .../phpoffice/phpexcel/Examples/XMLTest.xml   | 450 -----------
 .../Examples/data/continents/Africa.txt       |  54 --
 .../Examples/data/continents/Asia.txt         |  44 --
 .../Examples/data/continents/Europe.txt       |  47 --
 .../data/continents/North America.txt         |  23 -
 .../Examples/data/continents/Oceania.txt      |  14 -
 .../data/continents/South America.txt         |  12 -
 .../phpexcel/Examples/images/officelogo.jpg   | Bin 5597 -> 0 bytes
 .../phpexcel/Examples/images/paid.png         | Bin 1605 -> 0 bytes
 .../Examples/images/phpexcel_logo.gif         | Bin 6104 -> 0 bytes
 .../Examples/images/termsconditions.jpg       | Bin 528 -> 0 bytes
 .../phpoffice/phpexcel/Examples/runall.php    | 130 ----
 .../Classes/PHPExcel/AutoloaderTest.php       |  56 --
 .../PHPExcel/Calculation/DateTimeTest.php     | 466 ------------
 .../PHPExcel/Calculation/EngineeringTest.php  | 698 ------------------
 .../PHPExcel/Calculation/FinancialTest.php    | 516 -------------
 .../PHPExcel/Calculation/FunctionsTest.php    | 276 -------
 .../PHPExcel/Calculation/LogicalTest.php      | 112 ---
 .../PHPExcel/Calculation/LookupRefTest.php    |  52 --
 .../PHPExcel/Calculation/MathTrigTest.php     | 560 --------------
 .../PHPExcel/Calculation/TextDataTest.php     | 365 ---------
 .../Classes/PHPExcel/CalculationTest.php      |  37 -
 .../PHPExcel/Cell/AdvancedValueBinderTest.php |  73 --
 .../Classes/PHPExcel/Cell/DataTypeTest.php    |  24 -
 .../PHPExcel/Cell/DefaultValueBinderTest.php  |  85 ---
 .../Classes/PHPExcel/Cell/HyperlinkTest.php   |  88 ---
 .../unitTests/Classes/PHPExcel/CellTest.php   | 295 --------
 .../PHPExcel/Chart/DataSeriesValuesTest.php   |  55 --
 .../Classes/PHPExcel/Chart/LayoutTest.php     |  37 -
 .../Classes/PHPExcel/Chart/LegendTest.php     | 134 ----
 .../PHPExcel/Reader/XEEValidatorTest.php      |  55 --
 .../Classes/PHPExcel/ReferenceHelperTest.php  |  58 --
 .../Classes/PHPExcel/Shared/CodePageTest.php  |  57 --
 .../Classes/PHPExcel/Shared/DateTest.php      | 188 -----
 .../Classes/PHPExcel/Shared/FileTest.php      |  39 -
 .../Classes/PHPExcel/Shared/FontTest.php      |  94 ---
 .../PHPExcel/Shared/PasswordHasherTest.php    |  33 -
 .../Classes/PHPExcel/Shared/StringTest.php    |  83 ---
 .../Classes/PHPExcel/Shared/TimeZoneTest.php  |  39 -
 .../Classes/PHPExcel/Style/ColorTest.php      |  81 --
 .../PHPExcel/Style/NumberFormatTest.php       |  36 -
 .../Worksheet/AutoFilter/Column/RuleTest.php  | 109 ---
 .../Worksheet/AutoFilter/ColumnTest.php       | 173 -----
 .../PHPExcel/Worksheet/AutoFilterTest.php     | 340 ---------
 .../PHPExcel/Worksheet/CellCollectionTest.php |  31 -
 .../Worksheet/ColumnCellIteratorTest.php      |  87 ---
 .../PHPExcel/Worksheet/ColumnIteratorTest.php |  89 ---
 .../Worksheet/RowCellIteratorTest.php         |  89 ---
 .../PHPExcel/Worksheet/RowIteratorTest.php    |  87 ---
 .../Worksheet/WorksheetColumnTest.php         |  46 --
 .../PHPExcel/Worksheet/WorksheetRowTest.php   |  46 --
 .../phpexcel/unitTests/bootstrap.php          |  49 --
 .../phpexcel/unitTests/custom/Complex.php     | 114 ---
 .../unitTests/custom/complexAssert.php        |  62 --
 .../phpexcel/unitTests/phpunit-cc.xml         |  40 -
 .../phpoffice/phpexcel/unitTests/phpunit.xml  |  32 -
 .../Calculation/DateTime/DATE.data            |  79 --
 .../Calculation/DateTime/DATEDIF.data         |  96 ---
 .../Calculation/DateTime/DATEVALUE.data       |  66 --
 .../rawTestData/Calculation/DateTime/DAY.data |   8 -
 .../Calculation/DateTime/DAYS360.data         |  34 -
 .../Calculation/DateTime/EDATE.data           |  15 -
 .../Calculation/DateTime/EOMONTH.data         |  17 -
 .../Calculation/DateTime/HOUR.data            |  12 -
 .../Calculation/DateTime/MINUTE.data          |  12 -
 .../Calculation/DateTime/MONTH.data           |  12 -
 .../Calculation/DateTime/NETWORKDAYS.data     |  18 -
 .../Calculation/DateTime/SECOND.data          |  12 -
 .../Calculation/DateTime/TIME.data            |  22 -
 .../Calculation/DateTime/TIMEVALUE.data       |  13 -
 .../Calculation/DateTime/WEEKDAY.data         |  27 -
 .../Calculation/DateTime/WEEKNUM.data         |   7 -
 .../Calculation/DateTime/WORKDAY.data         |  13 -
 .../Calculation/DateTime/YEAR.data            |  11 -
 .../Calculation/DateTime/YEARFRAC.data        |  65 --
 .../Calculation/Engineering/BESSELI.data      |  59 --
 .../Calculation/Engineering/BESSELJ.data      |  37 -
 .../Calculation/Engineering/BESSELK.data      |  38 -
 .../Calculation/Engineering/BESSELY.data      |  37 -
 .../Calculation/Engineering/BIN2DEC.data      |  10 -
 .../Calculation/Engineering/BIN2HEX.data      |  14 -
 .../Calculation/Engineering/BIN2OCT.data      |  15 -
 .../Calculation/Engineering/COMPLEX.data      | 547 --------------
 .../Calculation/Engineering/CONVERTUOM.data   |  24 -
 .../Calculation/Engineering/DEC2BIN.data      |  16 -
 .../Calculation/Engineering/DEC2HEX.data      |  15 -
 .../Calculation/Engineering/DEC2OCT.data      |  12 -
 .../Calculation/Engineering/DELTA.data        |  25 -
 .../Calculation/Engineering/ERF.data          | 124 ----
 .../Calculation/Engineering/ERFC.data         |  41 -
 .../Calculation/Engineering/GESTEP.data       |  81 --
 .../Calculation/Engineering/HEX2BIN.data      |  13 -
 .../Calculation/Engineering/HEX2DEC.data      |  13 -
 .../Calculation/Engineering/HEX2OCT.data      |  13 -
 .../Calculation/Engineering/IMABS.data        |  27 -
 .../Calculation/Engineering/IMAGINARY.data    |  30 -
 .../Calculation/Engineering/IMARGUMENT.data   |  26 -
 .../Calculation/Engineering/IMCONJUGATE.data  |  26 -
 .../Calculation/Engineering/IMCOS.data        |  27 -
 .../Calculation/Engineering/IMDIV.data        |  20 -
 .../Calculation/Engineering/IMEXP.data        |  27 -
 .../Calculation/Engineering/IMLN.data         |  27 -
 .../Calculation/Engineering/IMLOG10.data      |  27 -
 .../Calculation/Engineering/IMLOG2.data       |  27 -
 .../Calculation/Engineering/IMPOWER.data      |  18 -
 .../Calculation/Engineering/IMPRODUCT.data    |  15 -
 .../Calculation/Engineering/IMREAL.data       |  30 -
 .../Calculation/Engineering/IMSIN.data        |  27 -
 .../Calculation/Engineering/IMSQRT.data       |  28 -
 .../Calculation/Engineering/IMSUB.data        |  10 -
 .../Calculation/Engineering/IMSUM.data        |  10 -
 .../Calculation/Engineering/OCT2BIN.data      |   9 -
 .../Calculation/Engineering/OCT2DEC.data      |   9 -
 .../Calculation/Engineering/OCT2HEX.data      |   9 -
 .../Calculation/Financial/ACCRINT.data        |   8 -
 .../Calculation/Financial/ACCRINTM.data       |   6 -
 .../Calculation/Financial/AMORDEGRC.data      |   3 -
 .../Calculation/Financial/AMORLINC.data       |   3 -
 .../Calculation/Financial/COUPDAYBS.data      |   6 -
 .../Calculation/Financial/COUPDAYS.data       |   6 -
 .../Calculation/Financial/COUPDAYSNC.data     |   6 -
 .../Calculation/Financial/COUPNCD.data        |   6 -
 .../Calculation/Financial/COUPNUM.data        |   7 -
 .../Calculation/Financial/COUPPCD.data        |   6 -
 .../Calculation/Financial/CUMIPMT.data        |  10 -
 .../Calculation/Financial/CUMPRINC.data       |  10 -
 .../rawTestData/Calculation/Financial/DB.data |  17 -
 .../Calculation/Financial/DDB.data            |  16 -
 .../Calculation/Financial/DISC.data           |   6 -
 .../Calculation/Financial/DOLLARDE.data       |  10 -
 .../Calculation/Financial/DOLLARFR.data       |  10 -
 .../Calculation/Financial/EFFECT.data         |   6 -
 .../rawTestData/Calculation/Financial/FV.data |   9 -
 .../Calculation/Financial/FVSCHEDULE.data     |   4 -
 .../Calculation/Financial/INTRATE.data        |   6 -
 .../Calculation/Financial/IPMT.data           |   9 -
 .../Calculation/Financial/IRR.data            |   6 -
 .../Calculation/Financial/ISPMT.data          |   5 -
 .../Calculation/Financial/MIRR.data           |   6 -
 .../Calculation/Financial/NOMINAL.data        |   6 -
 .../Calculation/Financial/NPER.data           |  10 -
 .../Calculation/Financial/NPV.data            |   5 -
 .../Calculation/Financial/PRICE.data          |  10 -
 .../Calculation/Financial/RATE.data           |  11 -
 .../Calculation/Financial/XIRR.data           |   4 -
 .../Calculation/Functions/ERROR_TYPE.data     |  14 -
 .../Calculation/Functions/IS_BLANK.data       |  16 -
 .../Calculation/Functions/IS_ERR.data         |  16 -
 .../Calculation/Functions/IS_ERROR.data       |  16 -
 .../Calculation/Functions/IS_EVEN.data        |  20 -
 .../Calculation/Functions/IS_LOGICAL.data     |  16 -
 .../Calculation/Functions/IS_NA.data          |  16 -
 .../Calculation/Functions/IS_NONTEXT.data     |  16 -
 .../Calculation/Functions/IS_NUMBER.data      |  16 -
 .../Calculation/Functions/IS_ODD.data         |  20 -
 .../Calculation/Functions/IS_TEXT.data        |  16 -
 .../rawTestData/Calculation/Functions/N.data  |  20 -
 .../Calculation/Functions/TYPE.data           |  16 -
 .../rawTestData/Calculation/Logical/AND.data  |  21 -
 .../rawTestData/Calculation/Logical/IF.data   |   7 -
 .../Calculation/Logical/IFERROR.data          |   8 -
 .../rawTestData/Calculation/Logical/NOT.data  |  20 -
 .../rawTestData/Calculation/Logical/OR.data   |  20 -
 .../Calculation/LookupRef/HLOOKUP.data        |   9 -
 .../Calculation/LookupRef/VLOOKUP.data        |   5 -
 .../Calculation/MathTrig/ATAN2.data           |  17 -
 .../Calculation/MathTrig/CEILING.data         |  21 -
 .../Calculation/MathTrig/COMBIN.data          |  25 -
 .../Calculation/MathTrig/EVEN.data            |  17 -
 .../Calculation/MathTrig/FACT.data            |  10 -
 .../Calculation/MathTrig/FACTDOUBLE.data      |   8 -
 .../Calculation/MathTrig/FLOOR.data           |  11 -
 .../rawTestData/Calculation/MathTrig/GCD.data |  20 -
 .../rawTestData/Calculation/MathTrig/INT.data |  19 -
 .../rawTestData/Calculation/MathTrig/LCM.data |  12 -
 .../rawTestData/Calculation/MathTrig/LOG.data |  70 --
 .../Calculation/MathTrig/MDETERM.data         |  14 -
 .../Calculation/MathTrig/MINVERSE.data        |  15 -
 .../Calculation/MathTrig/MMULT.data           |  12 -
 .../rawTestData/Calculation/MathTrig/MOD.data |   9 -
 .../Calculation/MathTrig/MROUND.data          |  11 -
 .../Calculation/MathTrig/MULTINOMIAL.data     |   2 -
 .../rawTestData/Calculation/MathTrig/ODD.data |  13 -
 .../Calculation/MathTrig/POWER.data           |  81 --
 .../Calculation/MathTrig/PRODUCT.data         |   7 -
 .../Calculation/MathTrig/QUOTIENT.data        |   6 -
 .../Calculation/MathTrig/ROMAN.data           |   5 -
 .../Calculation/MathTrig/ROUNDDOWN.data       |  14 -
 .../Calculation/MathTrig/ROUNDUP.data         |  14 -
 .../Calculation/MathTrig/SERIESSUM.data       |   2 -
 .../Calculation/MathTrig/SIGN.data            |  13 -
 .../Calculation/MathTrig/SQRTPI.data          |  15 -
 .../Calculation/MathTrig/SUMSQ.data           |   7 -
 .../Calculation/MathTrig/TRUNC.data           |  19 -
 .../Calculation/TextData/CHAR.data            |   5 -
 .../Calculation/TextData/CLEAN.data           |   5 -
 .../Calculation/TextData/CODE.data            |  12 -
 .../Calculation/TextData/CONCATENATE.data     |   3 -
 .../Calculation/TextData/DOLLAR.data          |   6 -
 .../Calculation/TextData/FIND.data            |  13 -
 .../Calculation/TextData/FIXED.data           |   5 -
 .../Calculation/TextData/LEFT.data            |   6 -
 .../rawTestData/Calculation/TextData/LEN.data |   6 -
 .../Calculation/TextData/LOWER.data           |   4 -
 .../rawTestData/Calculation/TextData/MID.data |   9 -
 .../Calculation/TextData/PROPER.data          |   3 -
 .../Calculation/TextData/REPLACE.data         |   4 -
 .../Calculation/TextData/RIGHT.data           |   6 -
 .../Calculation/TextData/SEARCH.data          |  11 -
 .../Calculation/TextData/SUBSTITUTE.data      |   4 -
 .../rawTestData/Calculation/TextData/T.data   |   5 -
 .../Calculation/TextData/TEXT.data            |  13 -
 .../Calculation/TextData/TRIM.data            |   7 -
 .../Calculation/TextData/UPPER.data           |   4 -
 .../Calculation/TextData/VALUE.data           |  10 -
 .../CalculationBinaryComparisonOperation.data |  53 --
 .../rawTestData/Cell/DefaultValueBinder.data  |  19 -
 .../rawTestData/CellAbsoluteCoordinate.data   |  12 -
 .../rawTestData/CellAbsoluteReference.data    |  16 -
 .../unitTests/rawTestData/CellBuildRange.data |   2 -
 .../rawTestData/CellCoordinates.data          |   6 -
 .../CellExtractAllCellReferencesInRange.data  |   9 -
 .../rawTestData/CellGetRangeBoundaries.data   |   2 -
 .../rawTestData/CellRangeBoundaries.data      |   2 -
 .../rawTestData/CellRangeDimension.data       |   2 -
 .../unitTests/rawTestData/CellSplitRange.data |   3 -
 .../unitTests/rawTestData/ColumnIndex.data    |   9 -
 .../unitTests/rawTestData/ColumnString.data   |   9 -
 .../Reader/XEETestInvalidUTF-16.xml           | Bin 276 -> 0 bytes
 .../Reader/XEETestInvalidUTF-16BE.xml         | Bin 278 -> 0 bytes
 .../Reader/XEETestInvalidUTF-16LE.xml         | Bin 278 -> 0 bytes
 .../Reader/XEETestInvalidUTF-8.xml            |   8 -
 .../rawTestData/Reader/XEETestValidUTF-16.xml | Bin 176 -> 0 bytes
 .../Reader/XEETestValidUTF-16BE.xml           | Bin 178 -> 0 bytes
 .../Reader/XEETestValidUTF-16LE.xml           | Bin 178 -> 0 bytes
 .../rawTestData/Reader/XEETestValidUTF-8.xml  |   4 -
 .../Shared/CentimeterSizeToPixels.data        |   5 -
 .../rawTestData/Shared/CodePage.data          |  43 --
 .../Shared/DateTimeExcelToPHP1900.data        |  15 -
 .../DateTimeExcelToPHP1900Timezone.data       |  23 -
 .../Shared/DateTimeExcelToPHP1904.data        |  10 -
 .../Shared/DateTimeFormatCodes.data           |  37 -
 .../DateTimeFormattedPHPToExcel1900.data      |  12 -
 .../Shared/DateTimePHPToExcel1900.data        |  12 -
 .../Shared/DateTimePHPToExcel1904.data        |   7 -
 .../rawTestData/Shared/FontSizeToPixels.data  |  16 -
 .../rawTestData/Shared/InchSizeToPixels.data  |   5 -
 .../rawTestData/Shared/PasswordHashes.data    |   9 -
 .../Style/ColorChangeBrightness.data          |  14 -
 .../rawTestData/Style/ColorGetBlue.data       |   6 -
 .../rawTestData/Style/ColorGetGreen.data      |   6 -
 .../rawTestData/Style/ColorGetRed.data        |   6 -
 .../rawTestData/Style/NumberFormat.data       |  37 -
 .../unitTests/testDataFileIterator.php        | 131 ----
 342 files changed, 2 insertions(+), 21169 deletions(-)
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/.gitignore
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/01pharSimple.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/01simple-download-ods.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/01simple-download-pdf.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/01simple-download-xls.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/01simple-download-xlsx.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/01simple.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/01simplePCLZip.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/02types-xls.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/02types.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/03formulas.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/04printing.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/05featuredemo.inc.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/05featuredemo.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/06largescale-with-cellcaching-sqlite.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/06largescale-with-cellcaching-sqlite3.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/06largescale-with-cellcaching.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/06largescale-xls.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/06largescale.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/07reader.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/07readerPCLZip.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/08conditionalformatting.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/08conditionalformatting2.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/09pagebreaks.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/10autofilter-selection-1.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/10autofilter-selection-2.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/10autofilter-selection-display.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/10autofilter.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/11documentsecurity-xls.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/11documentsecurity.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/12cellProtection.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/13calculation.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/14excel5.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/15datavalidation-xls.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/15datavalidation.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/16csv.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/17html.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/18extendedcalculation.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/19namedrange.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/20readexcel5.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/21pdf.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/22heavilyformatted.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/23sharedstyles.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/24readfilter.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/25inmemoryimage.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/26utf8.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/27imagesexcel5.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/28iterator.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/29advancedvaluebinder.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/30template.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/31docproperties_write-xls.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/31docproperties_write.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/32chartreadwrite.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-area.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-bar-stacked.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-bar.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-column-2.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-column.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-composite.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-line.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-multiple-charts.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-pie.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-radar.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-scatter.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-stock.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/34chartupdate.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/35chartrender.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/36chartreadwriteHTML.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/36chartreadwritePDF.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/37page_layout_view.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/38cloneWorksheet.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/39dropdown.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/40duplicateStyle.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/41password.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/42richText.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/Excel2003XMLReader.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/Excel2003XMLTest.xml
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/GnumericReader.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/GnumericTest.gnumeric
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/OOCalcReader.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/OOCalcReaderPCLZip.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/OOCalcTest.ods
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/Quadratic.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/Quadratic2.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/SylkReader.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/SylkTest.slk
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/XMLReader.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/XMLTest.xml
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/data/continents/Africa.txt
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/data/continents/Asia.txt
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/data/continents/Europe.txt
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/data/continents/North America.txt
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/data/continents/Oceania.txt
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/data/continents/South America.txt
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/images/officelogo.jpg
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/images/paid.png
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/images/phpexcel_logo.gif
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/images/termsconditions.jpg
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/Examples/runall.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/AutoloaderTest.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Calculation/DateTimeTest.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Calculation/EngineeringTest.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Calculation/FinancialTest.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Calculation/FunctionsTest.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Calculation/LogicalTest.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Calculation/LookupRefTest.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Calculation/MathTrigTest.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Calculation/TextDataTest.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/CalculationTest.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Cell/AdvancedValueBinderTest.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Cell/DataTypeTest.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Cell/DefaultValueBinderTest.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Cell/HyperlinkTest.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/CellTest.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Chart/DataSeriesValuesTest.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Chart/LayoutTest.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Chart/LegendTest.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Reader/XEEValidatorTest.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/ReferenceHelperTest.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Shared/CodePageTest.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Shared/DateTest.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Shared/FileTest.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Shared/FontTest.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Shared/PasswordHasherTest.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Shared/StringTest.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Shared/TimeZoneTest.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Style/ColorTest.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Style/NumberFormatTest.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Worksheet/AutoFilter/Column/RuleTest.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Worksheet/AutoFilter/ColumnTest.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Worksheet/AutoFilterTest.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Worksheet/CellCollectionTest.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Worksheet/ColumnCellIteratorTest.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Worksheet/ColumnIteratorTest.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Worksheet/RowCellIteratorTest.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Worksheet/RowIteratorTest.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Worksheet/WorksheetColumnTest.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Worksheet/WorksheetRowTest.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/bootstrap.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/custom/Complex.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/custom/complexAssert.php
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/phpunit-cc.xml
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/phpunit.xml
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/DATE.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/DATEDIF.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/DATEVALUE.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/DAY.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/DAYS360.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/EDATE.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/EOMONTH.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/HOUR.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/MINUTE.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/MONTH.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/NETWORKDAYS.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/SECOND.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/TIME.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/TIMEVALUE.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/WEEKDAY.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/WEEKNUM.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/WORKDAY.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/YEAR.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/YEARFRAC.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/BESSELI.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/BESSELJ.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/BESSELK.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/BESSELY.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/BIN2DEC.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/BIN2HEX.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/BIN2OCT.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/COMPLEX.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/CONVERTUOM.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/DEC2BIN.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/DEC2HEX.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/DEC2OCT.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/DELTA.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/ERF.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/ERFC.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/GESTEP.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/HEX2BIN.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/HEX2DEC.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/HEX2OCT.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMABS.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMAGINARY.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMARGUMENT.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMCONJUGATE.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMCOS.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMDIV.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMEXP.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMLN.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMLOG10.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMLOG2.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMPOWER.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMPRODUCT.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMREAL.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMSIN.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMSQRT.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMSUB.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMSUM.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/OCT2BIN.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/OCT2DEC.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/OCT2HEX.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/ACCRINT.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/ACCRINTM.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/AMORDEGRC.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/AMORLINC.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/COUPDAYBS.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/COUPDAYS.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/COUPDAYSNC.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/COUPNCD.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/COUPNUM.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/COUPPCD.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/CUMIPMT.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/CUMPRINC.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/DB.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/DDB.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/DISC.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/DOLLARDE.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/DOLLARFR.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/EFFECT.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/FV.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/FVSCHEDULE.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/INTRATE.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/IPMT.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/IRR.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/ISPMT.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/MIRR.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/NOMINAL.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/NPER.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/NPV.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/PRICE.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/RATE.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/XIRR.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Functions/ERROR_TYPE.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Functions/IS_BLANK.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Functions/IS_ERR.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Functions/IS_ERROR.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Functions/IS_EVEN.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Functions/IS_LOGICAL.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Functions/IS_NA.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Functions/IS_NONTEXT.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Functions/IS_NUMBER.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Functions/IS_ODD.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Functions/IS_TEXT.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Functions/N.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Functions/TYPE.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Logical/AND.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Logical/IF.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Logical/IFERROR.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Logical/NOT.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Logical/OR.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/LookupRef/HLOOKUP.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/LookupRef/VLOOKUP.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/ATAN2.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/CEILING.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/COMBIN.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/EVEN.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/FACT.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/FACTDOUBLE.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/FLOOR.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/GCD.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/INT.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/LCM.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/LOG.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/MDETERM.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/MINVERSE.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/MMULT.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/MOD.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/MROUND.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/MULTINOMIAL.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/ODD.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/POWER.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/PRODUCT.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/QUOTIENT.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/ROMAN.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/ROUNDDOWN.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/ROUNDUP.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/SERIESSUM.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/SIGN.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/SQRTPI.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/SUMSQ.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/TRUNC.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/CHAR.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/CLEAN.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/CODE.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/CONCATENATE.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/DOLLAR.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/FIND.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/FIXED.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/LEFT.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/LEN.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/LOWER.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/MID.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/PROPER.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/REPLACE.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/RIGHT.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/SEARCH.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/SUBSTITUTE.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/T.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/TEXT.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/TRIM.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/UPPER.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/VALUE.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/CalculationBinaryComparisonOperation.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Cell/DefaultValueBinder.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/CellAbsoluteCoordinate.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/CellAbsoluteReference.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/CellBuildRange.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/CellCoordinates.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/CellExtractAllCellReferencesInRange.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/CellGetRangeBoundaries.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/CellRangeBoundaries.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/CellRangeDimension.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/CellSplitRange.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/ColumnIndex.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/ColumnString.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Reader/XEETestInvalidUTF-16.xml
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Reader/XEETestInvalidUTF-16BE.xml
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Reader/XEETestInvalidUTF-16LE.xml
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Reader/XEETestInvalidUTF-8.xml
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Reader/XEETestValidUTF-16.xml
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Reader/XEETestValidUTF-16BE.xml
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Reader/XEETestValidUTF-16LE.xml
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Reader/XEETestValidUTF-8.xml
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Shared/CentimeterSizeToPixels.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Shared/CodePage.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Shared/DateTimeExcelToPHP1900.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Shared/DateTimeExcelToPHP1900Timezone.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Shared/DateTimeExcelToPHP1904.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Shared/DateTimeFormatCodes.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Shared/DateTimeFormattedPHPToExcel1900.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Shared/DateTimePHPToExcel1900.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Shared/DateTimePHPToExcel1904.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Shared/FontSizeToPixels.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Shared/InchSizeToPixels.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Shared/PasswordHashes.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Style/ColorChangeBrightness.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Style/ColorGetBlue.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Style/ColorGetGreen.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Style/ColorGetRed.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Style/NumberFormat.data
 delete mode 100644 htdocs/includes/phpoffice/phpexcel/unitTests/testDataFileIterator.php

diff --git a/build/makepack-dolibarr.pl b/build/makepack-dolibarr.pl
index c22c977bdf0..8fc8e49aaf8 100755
--- a/build/makepack-dolibarr.pl
+++ b/build/makepack-dolibarr.pl
@@ -533,8 +533,10 @@ if ($nboftargetok) {
         $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/phpexcel/PHPExcel/Shared/PDF`;
         $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/phpexcel/PHPExcel/Shared/PCLZip`;
         $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/phpoffice/phpexcel/license.txt`;
+        $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/phpoffice/phpexcel/Examples`;
         $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/phpoffice/phpexcel/PHPExcel/Shared/PDF`;
         $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/phpoffice/phpexcel/PHPExcel/Shared/PCLZip`;
+        $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/phpoffice/phpexcel/unitTests`;
         $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/tcpdf/fonts/dejavu-fonts-ttf-*`;
         $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/tcpdf/fonts/freefont-*`;
         $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/tcpdf/fonts/utils`;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/.gitignore b/htdocs/includes/phpoffice/phpexcel/Examples/.gitignore
deleted file mode 100644
index 1888a98fa19..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-
-*.xls
-*.xlsx
\ No newline at end of file
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/01pharSimple.php b/htdocs/includes/phpoffice/phpexcel/Examples/01pharSimple.php
deleted file mode 100644
index a8804770129..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/01pharSimple.php
+++ /dev/null
@@ -1,112 +0,0 @@
-<?php
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-date_default_timezone_set('Europe/London');
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-/** Include PHPExcel */
-require_once '../Build/PHPExcel.phar';
-
-
-// Create new PHPExcel object
-echo date('H:i:s') , " Create new PHPExcel object" , EOL;
-$objPHPExcel = new PHPExcel();
-
-// Set document properties
-echo date('H:i:s') , " Set document properties" , EOL;
-$objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
-							 ->setLastModifiedBy("Maarten Balliauw")
-							 ->setTitle("PHPExcel Test Document")
-							 ->setSubject("PHPExcel Test Document")
-							 ->setDescription("Test document for PHPExcel, generated using PHP classes.")
-							 ->setKeywords("office PHPExcel php")
-							 ->setCategory("Test result file");
-
-
-// Add some data
-echo date('H:i:s') , " Add some data" , EOL;
-$objPHPExcel->setActiveSheetIndex(0)
-            ->setCellValue('A1', 'Hello')
-            ->setCellValue('B2', 'world!')
-            ->setCellValue('C1', 'Hello')
-            ->setCellValue('D2', 'world!');
-
-// Miscellaneous glyphs, UTF-8
-$objPHPExcel->setActiveSheetIndex(0)
-            ->setCellValue('A4', 'Miscellaneous glyphs')
-            ->setCellValue('A5', 'éàèùâêîôûëïüÿäöüç');
-
-// Rename worksheet
-echo date('H:i:s') , " Rename worksheet" , EOL;
-$objPHPExcel->getActiveSheet()->setTitle('Simple');
-
-
-// Set active sheet index to the first sheet, so Excel opens this as the first sheet
-$objPHPExcel->setActiveSheetIndex(0);
-
-
-// Save Excel 2007 file
-echo date('H:i:s') , " Write to Excel2007 format" , EOL;
-$callStartTime = microtime(true);
-
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
-$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-
-// Save Excel5 file
-echo date('H:i:s') , " Write to Excel5 format" , EOL;
-$callStartTime = microtime(true);
-
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
-$objWriter->save(str_replace('.php', '.xls', __FILE__));
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing files" , EOL;
-echo 'Files have been created in ' , getcwd() , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/01simple-download-ods.php b/htdocs/includes/phpoffice/phpexcel/Examples/01simple-download-ods.php
deleted file mode 100644
index 574fb0113eb..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/01simple-download-ods.php
+++ /dev/null
@@ -1,89 +0,0 @@
-<?php
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-date_default_timezone_set('Europe/London');
-
-if (PHP_SAPI == 'cli')
-	die('This example should only be run from a Web Browser');
-
-/** Include PHPExcel */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
-
-
-// Create new PHPExcel object
-$objPHPExcel = new PHPExcel();
-
-// Set document properties
-$objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
-							 ->setLastModifiedBy("Maarten Balliauw")
-							 ->setTitle("Office 2007 XLSX Test Document")
-							 ->setSubject("Office 2007 XLSX Test Document")
-							 ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
-							 ->setKeywords("office 2007 openxml php")
-							 ->setCategory("Test result file");
-
-
-// Add some data
-$objPHPExcel->setActiveSheetIndex(0)
-            ->setCellValue('A1', 'Hello')
-            ->setCellValue('B2', 'world!')
-            ->setCellValue('C1', 'Hello')
-            ->setCellValue('D2', 'world!');
-
-// Miscellaneous glyphs, UTF-8
-$objPHPExcel->setActiveSheetIndex(0)
-            ->setCellValue('A4', 'Miscellaneous glyphs')
-            ->setCellValue('A5', 'éàèùâêîôûëïüÿäöüç');
-
-// Rename worksheet
-$objPHPExcel->getActiveSheet()->setTitle('Simple');
-
-
-// Set active sheet index to the first sheet, so Excel opens this as the first sheet
-$objPHPExcel->setActiveSheetIndex(0);
-
-
-// Redirect output to a client’s web browser (OpenDocument)
-header('Content-Type: application/vnd.oasis.opendocument.spreadsheet');
-header('Content-Disposition: attachment;filename="01simple.ods"');
-header('Cache-Control: max-age=0');
-// If you're serving to IE 9, then the following may be needed
-header('Cache-Control: max-age=1');
-
-// If you're serving to IE over SSL, then the following may be needed
-header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
-header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); // always modified
-header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1
-header ('Pragma: public'); // HTTP/1.0
-
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'OpenDocument');
-$objWriter->save('php://output');
-exit;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/01simple-download-pdf.php b/htdocs/includes/phpoffice/phpexcel/Examples/01simple-download-pdf.php
deleted file mode 100644
index 287b0e891bd..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/01simple-download-pdf.php
+++ /dev/null
@@ -1,104 +0,0 @@
-<?php
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-date_default_timezone_set('Europe/London');
-
-if (PHP_SAPI == 'cli')
-	die('This example should only be run from a Web Browser');
-
-/** Include PHPExcel */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
-
-
-//	Change these values to select the Rendering library that you wish to use
-//		and its directory location on your server
-//$rendererName = PHPExcel_Settings::PDF_RENDERER_TCPDF;
-$rendererName = PHPExcel_Settings::PDF_RENDERER_MPDF;
-//$rendererName = PHPExcel_Settings::PDF_RENDERER_DOMPDF;
-//$rendererLibrary = 'tcPDF5.9';
-$rendererLibrary = 'mPDF5.4';
-//$rendererLibrary = 'domPDF0.6.0beta3';
-$rendererLibraryPath = dirname(__FILE__).'/../../../libraries/PDF/' . $rendererLibrary;
-
-
-// Create new PHPExcel object
-$objPHPExcel = new PHPExcel();
-
-// Set document properties
-$objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
-							 ->setLastModifiedBy("Maarten Balliauw")
-							 ->setTitle("PDF Test Document")
-							 ->setSubject("PDF Test Document")
-							 ->setDescription("Test document for PDF, generated using PHP classes.")
-							 ->setKeywords("pdf php")
-							 ->setCategory("Test result file");
-
-
-// Add some data
-$objPHPExcel->setActiveSheetIndex(0)
-            ->setCellValue('A1', 'Hello')
-            ->setCellValue('B2', 'world!')
-            ->setCellValue('C1', 'Hello')
-            ->setCellValue('D2', 'world!');
-
-// Miscellaneous glyphs, UTF-8
-$objPHPExcel->setActiveSheetIndex(0)
-            ->setCellValue('A4', 'Miscellaneous glyphs')
-            ->setCellValue('A5', 'éàèùâêîôûëïüÿäöüç');
-
-// Rename worksheet
-$objPHPExcel->getActiveSheet()->setTitle('Simple');
-$objPHPExcel->getActiveSheet()->setShowGridLines(false);
-
-// Set active sheet index to the first sheet, so Excel opens this as the first sheet
-$objPHPExcel->setActiveSheetIndex(0);
-
-
-if (!PHPExcel_Settings::setPdfRenderer(
-		$rendererName,
-		$rendererLibraryPath
-	)) {
-	die(
-		'NOTICE: Please set the $rendererName and $rendererLibraryPath values' .
-		'<br />' .
-		'at the top of this script as appropriate for your directory structure'
-	);
-}
-
-
-// Redirect output to a client’s web browser (PDF)
-header('Content-Type: application/pdf');
-header('Content-Disposition: attachment;filename="01simple.pdf"');
-header('Cache-Control: max-age=0');
-
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'PDF');
-$objWriter->save('php://output');
-exit;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/01simple-download-xls.php b/htdocs/includes/phpoffice/phpexcel/Examples/01simple-download-xls.php
deleted file mode 100644
index 60fc901bf8d..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/01simple-download-xls.php
+++ /dev/null
@@ -1,89 +0,0 @@
-<?php
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-date_default_timezone_set('Europe/London');
-
-if (PHP_SAPI == 'cli')
-	die('This example should only be run from a Web Browser');
-
-/** Include PHPExcel */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
-
-
-// Create new PHPExcel object
-$objPHPExcel = new PHPExcel();
-
-// Set document properties
-$objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
-							 ->setLastModifiedBy("Maarten Balliauw")
-							 ->setTitle("Office 2007 XLSX Test Document")
-							 ->setSubject("Office 2007 XLSX Test Document")
-							 ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
-							 ->setKeywords("office 2007 openxml php")
-							 ->setCategory("Test result file");
-
-
-// Add some data
-$objPHPExcel->setActiveSheetIndex(0)
-            ->setCellValue('A1', 'Hello')
-            ->setCellValue('B2', 'world!')
-            ->setCellValue('C1', 'Hello')
-            ->setCellValue('D2', 'world!');
-
-// Miscellaneous glyphs, UTF-8
-$objPHPExcel->setActiveSheetIndex(0)
-            ->setCellValue('A4', 'Miscellaneous glyphs')
-            ->setCellValue('A5', 'éàèùâêîôûëïüÿäöüç');
-
-// Rename worksheet
-$objPHPExcel->getActiveSheet()->setTitle('Simple');
-
-
-// Set active sheet index to the first sheet, so Excel opens this as the first sheet
-$objPHPExcel->setActiveSheetIndex(0);
-
-
-// Redirect output to a client’s web browser (Excel5)
-header('Content-Type: application/vnd.ms-excel');
-header('Content-Disposition: attachment;filename="01simple.xls"');
-header('Cache-Control: max-age=0');
-// If you're serving to IE 9, then the following may be needed
-header('Cache-Control: max-age=1');
-
-// If you're serving to IE over SSL, then the following may be needed
-header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
-header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); // always modified
-header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1
-header ('Pragma: public'); // HTTP/1.0
-
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
-$objWriter->save('php://output');
-exit;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/01simple-download-xlsx.php b/htdocs/includes/phpoffice/phpexcel/Examples/01simple-download-xlsx.php
deleted file mode 100644
index 538888ea735..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/01simple-download-xlsx.php
+++ /dev/null
@@ -1,89 +0,0 @@
-<?php
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-date_default_timezone_set('Europe/London');
-
-if (PHP_SAPI == 'cli')
-	die('This example should only be run from a Web Browser');
-
-/** Include PHPExcel */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
-
-
-// Create new PHPExcel object
-$objPHPExcel = new PHPExcel();
-
-// Set document properties
-$objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
-							 ->setLastModifiedBy("Maarten Balliauw")
-							 ->setTitle("Office 2007 XLSX Test Document")
-							 ->setSubject("Office 2007 XLSX Test Document")
-							 ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
-							 ->setKeywords("office 2007 openxml php")
-							 ->setCategory("Test result file");
-
-
-// Add some data
-$objPHPExcel->setActiveSheetIndex(0)
-            ->setCellValue('A1', 'Hello')
-            ->setCellValue('B2', 'world!')
-            ->setCellValue('C1', 'Hello')
-            ->setCellValue('D2', 'world!');
-
-// Miscellaneous glyphs, UTF-8
-$objPHPExcel->setActiveSheetIndex(0)
-            ->setCellValue('A4', 'Miscellaneous glyphs')
-            ->setCellValue('A5', 'éàèùâêîôûëïüÿäöüç');
-
-// Rename worksheet
-$objPHPExcel->getActiveSheet()->setTitle('Simple');
-
-
-// Set active sheet index to the first sheet, so Excel opens this as the first sheet
-$objPHPExcel->setActiveSheetIndex(0);
-
-
-// Redirect output to a client’s web browser (Excel2007)
-header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
-header('Content-Disposition: attachment;filename="01simple.xlsx"');
-header('Cache-Control: max-age=0');
-// If you're serving to IE 9, then the following may be needed
-header('Cache-Control: max-age=1');
-
-// If you're serving to IE over SSL, then the following may be needed
-header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
-header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); // always modified
-header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1
-header ('Pragma: public'); // HTTP/1.0
-
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
-$objWriter->save('php://output');
-exit;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/01simple.php b/htdocs/includes/phpoffice/phpexcel/Examples/01simple.php
deleted file mode 100644
index 965fefafebc..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/01simple.php
+++ /dev/null
@@ -1,118 +0,0 @@
-<?php
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-date_default_timezone_set('Europe/London');
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-/** Include PHPExcel */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
-
-
-// Create new PHPExcel object
-echo date('H:i:s') , " Create new PHPExcel object" , EOL;
-$objPHPExcel = new PHPExcel();
-
-// Set document properties
-echo date('H:i:s') , " Set document properties" , EOL;
-$objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
-							 ->setLastModifiedBy("Maarten Balliauw")
-							 ->setTitle("PHPExcel Test Document")
-							 ->setSubject("PHPExcel Test Document")
-							 ->setDescription("Test document for PHPExcel, generated using PHP classes.")
-							 ->setKeywords("office PHPExcel php")
-							 ->setCategory("Test result file");
-
-
-// Add some data
-echo date('H:i:s') , " Add some data" , EOL;
-$objPHPExcel->setActiveSheetIndex(0)
-            ->setCellValue('A1', 'Hello')
-            ->setCellValue('B2', 'world!')
-            ->setCellValue('C1', 'Hello')
-            ->setCellValue('D2', 'world!');
-
-// Miscellaneous glyphs, UTF-8
-$objPHPExcel->setActiveSheetIndex(0)
-            ->setCellValue('A4', 'Miscellaneous glyphs')
-            ->setCellValue('A5', 'éàèùâêîôûëïüÿäöüç');
-
-
-$objPHPExcel->getActiveSheet()->setCellValue('A8',"Hello\nWorld");
-$objPHPExcel->getActiveSheet()->getRowDimension(8)->setRowHeight(-1);
-$objPHPExcel->getActiveSheet()->getStyle('A8')->getAlignment()->setWrapText(true);
-
-
-// Rename worksheet
-echo date('H:i:s') , " Rename worksheet" , EOL;
-$objPHPExcel->getActiveSheet()->setTitle('Simple');
-
-
-// Set active sheet index to the first sheet, so Excel opens this as the first sheet
-$objPHPExcel->setActiveSheetIndex(0);
-
-
-// Save Excel 2007 file
-echo date('H:i:s') , " Write to Excel2007 format" , EOL;
-$callStartTime = microtime(true);
-
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
-$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-
-// Save Excel 95 file
-echo date('H:i:s') , " Write to Excel5 format" , EOL;
-$callStartTime = microtime(true);
-
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
-$objWriter->save(str_replace('.php', '.xls', __FILE__));
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing files" , EOL;
-echo 'Files have been created in ' , getcwd() , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/01simplePCLZip.php b/htdocs/includes/phpoffice/phpexcel/Examples/01simplePCLZip.php
deleted file mode 100644
index 0b7a46c17d5..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/01simplePCLZip.php
+++ /dev/null
@@ -1,106 +0,0 @@
-<?php
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-date_default_timezone_set('Europe/London');
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-/** Include PHPExcel */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
-
-
-// Create new PHPExcel object
-echo date('H:i:s') , " Create new PHPExcel object" , EOL;
-$objPHPExcel = new PHPExcel();
-
-// Set document properties
-echo date('H:i:s') , " Set document properties" , EOL;
-$objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
-							 ->setLastModifiedBy("Maarten Balliauw")
-							 ->setTitle("PHPExcel Test Document")
-							 ->setSubject("PHPExcel Test Document")
-							 ->setDescription("Test document for PHPExcel, generated using PHP classes.")
-							 ->setKeywords("office PHPExcel php")
-							 ->setCategory("Test result file");
-
-
-// Add some data
-echo date('H:i:s') , " Add some data" , EOL;
-$objPHPExcel->setActiveSheetIndex(0)
-            ->setCellValue('A1', 'Hello')
-            ->setCellValue('B2', 'world!')
-            ->setCellValue('C1', 'Hello')
-            ->setCellValue('D2', 'world!');
-
-// Miscellaneous glyphs, UTF-8
-$objPHPExcel->setActiveSheetIndex(0)
-            ->setCellValue('A4', 'Miscellaneous glyphs')
-            ->setCellValue('A5', 'éàèùâêîôûëïüÿäöüç');
-
-
-$objPHPExcel->getActiveSheet()->setCellValue('A8',"Hello\nWorld");
-$objPHPExcel->getActiveSheet()->getRowDimension(8)->setRowHeight(-1);
-$objPHPExcel->getActiveSheet()->getStyle('A8')->getAlignment()->setWrapText(true);
-
-
-// Rename worksheet
-echo date('H:i:s') , " Rename worksheet" , EOL;
-$objPHPExcel->getActiveSheet()->setTitle('Simple');
-
-
-// Set active sheet index to the first sheet, so Excel opens this as the first sheet
-$objPHPExcel->setActiveSheetIndex(0);
-
-
-// Save Excel 2007 file
-echo date('H:i:s') , " Write to Excel2007 format" , EOL;
-$callStartTime = microtime(true);
-
-// Use PCLZip rather than ZipArchive to create the Excel2007 OfficeOpenXML file
-PHPExcel_Settings::setZipClass(PHPExcel_Settings::PCLZIP);
-
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
-$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing files" , EOL;
-echo 'Files have been created in ' , getcwd() , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/02types-xls.php b/htdocs/includes/phpoffice/phpexcel/Examples/02types-xls.php
deleted file mode 100644
index cc1dc3744f9..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/02types-xls.php
+++ /dev/null
@@ -1,183 +0,0 @@
-<?php
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE); 
-ini_set('display_startup_errors', TRUE); 
-date_default_timezone_set('Europe/London');
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-/** Include PHPExcel */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
-
-
-// Create new PHPExcel object
-echo date('H:i:s') , " Create new PHPExcel object" , EOL;
-$objPHPExcel = new PHPExcel();
-
-// Set document properties
-echo date('H:i:s') , " Set document properties" , EOL;
-$objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
-							 ->setLastModifiedBy("Maarten Balliauw")
-							 ->setTitle("Office 2007 XLSX Test Document")
-							 ->setSubject("Office 2007 XLSX Test Document")
-							 ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
-							 ->setKeywords("office 2007 openxml php")
-							 ->setCategory("Test result file");
-
-// Set default font
-echo date('H:i:s') , " Set default font" , EOL;
-$objPHPExcel->getDefaultStyle()->getFont()->setName('Arial')
-                                          ->setSize(10);
-
-// Add some data, resembling some different data types
-echo date('H:i:s') , " Add some data" , EOL;
-$objPHPExcel->getActiveSheet()->setCellValue('A1', 'String')
-                              ->setCellValue('B1', 'Simple')
-                              ->setCellValue('C1', 'PHPExcel');
-
-$objPHPExcel->getActiveSheet()->setCellValue('A2', 'String')
-                              ->setCellValue('B2', 'Symbols')
-                              ->setCellValue('C2', '!+&=()~§±æþ');
-
-$objPHPExcel->getActiveSheet()->setCellValue('A3', 'String')
-                              ->setCellValue('B3', 'UTF-8')
-                              ->setCellValue('C3', 'Создать MS Excel Книги из PHP скриптов');
-
-$objPHPExcel->getActiveSheet()->setCellValue('A4', 'Number')
-                              ->setCellValue('B4', 'Integer')
-                              ->setCellValue('C4', 12);
-
-$objPHPExcel->getActiveSheet()->setCellValue('A5', 'Number')
-                              ->setCellValue('B5', 'Float')
-                              ->setCellValue('C5', 34.56);
-
-$objPHPExcel->getActiveSheet()->setCellValue('A6', 'Number')
-                              ->setCellValue('B6', 'Negative')
-                              ->setCellValue('C6', -7.89);
-
-$objPHPExcel->getActiveSheet()->setCellValue('A7', 'Boolean')
-                              ->setCellValue('B7', 'True')
-                              ->setCellValue('C7', true);
-
-$objPHPExcel->getActiveSheet()->setCellValue('A8', 'Boolean')
-                              ->setCellValue('B8', 'False')
-                              ->setCellValue('C8', false);
-
-$dateTimeNow = time();
-$objPHPExcel->getActiveSheet()->setCellValue('A9', 'Date/Time')
-                              ->setCellValue('B9', 'Date')
-                              ->setCellValue('C9', PHPExcel_Shared_Date::PHPToExcel( $dateTimeNow ));
-$objPHPExcel->getActiveSheet()->getStyle('C9')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDD2);
-
-$objPHPExcel->getActiveSheet()->setCellValue('A10', 'Date/Time')
-                              ->setCellValue('B10', 'Time')
-                              ->setCellValue('C10', PHPExcel_Shared_Date::PHPToExcel( $dateTimeNow ));
-$objPHPExcel->getActiveSheet()->getStyle('C10')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_TIME4);
-
-$objPHPExcel->getActiveSheet()->setCellValue('A11', 'Date/Time')
-                              ->setCellValue('B11', 'Date and Time')
-                              ->setCellValue('C11', PHPExcel_Shared_Date::PHPToExcel( $dateTimeNow ));
-$objPHPExcel->getActiveSheet()->getStyle('C11')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_DATETIME);
-
-$objPHPExcel->getActiveSheet()->setCellValue('A12', 'NULL')
-                              ->setCellValue('C12', NULL);
-
-$objRichText = new PHPExcel_RichText();
-$objRichText->createText('你好 ');
-$objPayable = $objRichText->createTextRun('你 好 吗?');
-$objPayable->getFont()->setBold(true);
-$objPayable->getFont()->setItalic(true);
-$objPayable->getFont()->setColor( new PHPExcel_Style_Color( PHPExcel_Style_Color::COLOR_DARKGREEN ) );
-
-$objRichText->createText(', unless specified otherwise on the invoice.');
-
-$objPHPExcel->getActiveSheet()->setCellValue('A13', 'Rich Text')
-                              ->setCellValue('C13', $objRichText);
-
-
-$objRichText2 = new PHPExcel_RichText();
-$objRichText2->createText("black text\n");
-
-$objRed = $objRichText2->createTextRun("red text");
-$objRed->getFont()->setColor( new PHPExcel_Style_Color(PHPExcel_Style_Color::COLOR_RED  ) );
-
-$objPHPExcel->getActiveSheet()->getCell("C14")->setValue($objRichText2);
-$objPHPExcel->getActiveSheet()->getStyle("C14")->getAlignment()->setWrapText(true);
-
-
-$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setAutoSize(true);
-$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setAutoSize(true);
-
-// Rename worksheet
-echo date('H:i:s') , " Rename worksheet" , EOL;
-$objPHPExcel->getActiveSheet()->setTitle('Datatypes');
-
-
-// Set active sheet index to the first sheet, so Excel opens this as the first sheet
-$objPHPExcel->setActiveSheetIndex(0);
-
-
-// Save Excel 95 file
-echo date('H:i:s') , " Write to Excel5 format" , EOL;
-$callStartTime = microtime(true);
-
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
-$objWriter->save(str_replace('.php', '.xls', __FILE__));
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-
-echo date('H:i:s') , " Reload workbook from saved file" , EOL;
-$callStartTime = microtime(true);
-
-$objPHPExcel = PHPExcel_IOFactory::load(str_replace('.php', '.xls', __FILE__));
-
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-echo 'Call time to reload Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-
-var_dump($objPHPExcel->getActiveSheet()->toArray());
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-// Echo done
-echo date('H:i:s') , " Done testing file" , EOL;
-echo 'File has been created in ' , getcwd() , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/02types.php b/htdocs/includes/phpoffice/phpexcel/Examples/02types.php
deleted file mode 100644
index ff5421e4bba..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/02types.php
+++ /dev/null
@@ -1,183 +0,0 @@
-<?php
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE); 
-ini_set('display_startup_errors', TRUE); 
-date_default_timezone_set('Europe/London');
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-/** Include PHPExcel */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
-
-
-// Create new PHPExcel object
-echo date('H:i:s') , " Create new PHPExcel object" , EOL;
-$objPHPExcel = new PHPExcel();
-
-// Set document properties
-echo date('H:i:s') , " Set document properties" , EOL;
-$objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
-							 ->setLastModifiedBy("Maarten Balliauw")
-							 ->setTitle("Office 2007 XLSX Test Document")
-							 ->setSubject("Office 2007 XLSX Test Document")
-							 ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
-							 ->setKeywords("office 2007 openxml php")
-							 ->setCategory("Test result file");
-
-// Set default font
-echo date('H:i:s') , " Set default font" , EOL;
-$objPHPExcel->getDefaultStyle()->getFont()->setName('Arial')
-                                          ->setSize(10);
-
-// Add some data, resembling some different data types
-echo date('H:i:s') , " Add some data" , EOL;
-$objPHPExcel->getActiveSheet()->setCellValue('A1', 'String')
-                              ->setCellValue('B1', 'Simple')
-                              ->setCellValue('C1', 'PHPExcel');
-
-$objPHPExcel->getActiveSheet()->setCellValue('A2', 'String')
-                              ->setCellValue('B2', 'Symbols')
-                              ->setCellValue('C2', '!+&=()~§±æþ');
-
-$objPHPExcel->getActiveSheet()->setCellValue('A3', 'String')
-                              ->setCellValue('B3', 'UTF-8')
-                              ->setCellValue('C3', 'Создать MS Excel Книги из PHP скриптов');
-
-$objPHPExcel->getActiveSheet()->setCellValue('A4', 'Number')
-                              ->setCellValue('B4', 'Integer')
-                              ->setCellValue('C4', 12);
-
-$objPHPExcel->getActiveSheet()->setCellValue('A5', 'Number')
-                              ->setCellValue('B5', 'Float')
-                              ->setCellValue('C5', 34.56);
-
-$objPHPExcel->getActiveSheet()->setCellValue('A6', 'Number')
-                              ->setCellValue('B6', 'Negative')
-                              ->setCellValue('C6', -7.89);
-
-$objPHPExcel->getActiveSheet()->setCellValue('A7', 'Boolean')
-                              ->setCellValue('B7', 'True')
-                              ->setCellValue('C7', true);
-
-$objPHPExcel->getActiveSheet()->setCellValue('A8', 'Boolean')
-                              ->setCellValue('B8', 'False')
-                              ->setCellValue('C8', false);
-
-$dateTimeNow = time();
-$objPHPExcel->getActiveSheet()->setCellValue('A9', 'Date/Time')
-                              ->setCellValue('B9', 'Date')
-                              ->setCellValue('C9', PHPExcel_Shared_Date::PHPToExcel( $dateTimeNow ));
-$objPHPExcel->getActiveSheet()->getStyle('C9')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDD2);
-
-$objPHPExcel->getActiveSheet()->setCellValue('A10', 'Date/Time')
-                              ->setCellValue('B10', 'Time')
-                              ->setCellValue('C10', PHPExcel_Shared_Date::PHPToExcel( $dateTimeNow ));
-$objPHPExcel->getActiveSheet()->getStyle('C10')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_TIME4);
-
-$objPHPExcel->getActiveSheet()->setCellValue('A11', 'Date/Time')
-                              ->setCellValue('B11', 'Date and Time')
-                              ->setCellValue('C11', PHPExcel_Shared_Date::PHPToExcel( $dateTimeNow ));
-$objPHPExcel->getActiveSheet()->getStyle('C11')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_DATETIME);
-
-$objPHPExcel->getActiveSheet()->setCellValue('A12', 'NULL')
-                              ->setCellValue('C12', NULL);
-
-$objRichText = new PHPExcel_RichText();
-$objRichText->createText('你好 ');
-
-$objPayable = $objRichText->createTextRun('你 好 吗?');
-$objPayable->getFont()->setBold(true);
-$objPayable->getFont()->setItalic(true);
-$objPayable->getFont()->setColor( new PHPExcel_Style_Color( PHPExcel_Style_Color::COLOR_DARKGREEN ) );
-
-$objRichText->createText(', unless specified otherwise on the invoice.');
-
-$objPHPExcel->getActiveSheet()->setCellValue('A13', 'Rich Text')
-                              ->setCellValue('C13', $objRichText);
-
-
-$objRichText2 = new PHPExcel_RichText();
-$objRichText2->createText("black text\n");
-
-$objRed = $objRichText2->createTextRun("red text");
-$objRed->getFont()->setColor( new PHPExcel_Style_Color(PHPExcel_Style_Color::COLOR_RED  ) );
-
-$objPHPExcel->getActiveSheet()->getCell("C14")->setValue($objRichText2);
-$objPHPExcel->getActiveSheet()->getStyle("C14")->getAlignment()->setWrapText(true);
-
-
-$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setAutoSize(true);
-$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setAutoSize(true);
-
-// Rename worksheet
-echo date('H:i:s') , " Rename worksheet" , EOL;
-$objPHPExcel->getActiveSheet()->setTitle('Datatypes');
-
-
-// Set active sheet index to the first sheet, so Excel opens this as the first sheet
-$objPHPExcel->setActiveSheetIndex(0);
-
-
-// Save Excel 2007 file
-echo date('H:i:s') , " Write to Excel2007 format" , EOL;
-$callStartTime = microtime(true);
-
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
-$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-
-echo date('H:i:s') , " Reload workbook from saved file" , EOL;
-$callStartTime = microtime(true);
-
-$objPHPExcel = PHPExcel_IOFactory::load(str_replace('.php', '.xlsx', __FILE__));
-
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-echo 'Call time to reload Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-
-var_dump($objPHPExcel->getActiveSheet()->toArray());
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-// Echo done
-echo date('H:i:s') , " Done testing file" , EOL;
-echo 'File has been created in ' , getcwd() , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/03formulas.php b/htdocs/includes/phpoffice/phpexcel/Examples/03formulas.php
deleted file mode 100644
index 1396717d79d..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/03formulas.php
+++ /dev/null
@@ -1,149 +0,0 @@
-<?php
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-date_default_timezone_set('Europe/London');
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-/** Include PHPExcel */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
-
-
-// Create new PHPExcel object
-echo date('H:i:s') , " Create new PHPExcel object" , EOL;
-$objPHPExcel = new PHPExcel();
-
-// Set document properties
-echo date('H:i:s') , " Set document properties" , EOL;
-$objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
-							 ->setLastModifiedBy("Maarten Balliauw")
-							 ->setTitle("Office 2007 XLSX Test Document")
-							 ->setSubject("Office 2007 XLSX Test Document")
-							 ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
-							 ->setKeywords("office 2007 openxml php")
-							 ->setCategory("Test result file");
-
-
-// Add some data, we will use some formulas here
-echo date('H:i:s') , " Add some data" , EOL;
-$objPHPExcel->getActiveSheet()->setCellValue('A5', 'Sum:');
-
-$objPHPExcel->getActiveSheet()->setCellValue('B1', 'Range #1')
-                              ->setCellValue('B2', 3)
-                              ->setCellValue('B3', 7)
-                              ->setCellValue('B4', 13)
-                              ->setCellValue('B5', '=SUM(B2:B4)');
-echo date('H:i:s') , " Sum of Range #1 is " ,
-                     $objPHPExcel->getActiveSheet()->getCell('B5')->getCalculatedValue() , EOL;
-
-$objPHPExcel->getActiveSheet()->setCellValue('C1', 'Range #2')
-                              ->setCellValue('C2', 5)
-                              ->setCellValue('C3', 11)
-                              ->setCellValue('C4', 17)
-                              ->setCellValue('C5', '=SUM(C2:C4)');
-echo date('H:i:s') , " Sum of Range #2 is " ,
-                     $objPHPExcel->getActiveSheet()->getCell('C5')->getCalculatedValue() , EOL;
-
-$objPHPExcel->getActiveSheet()->setCellValue('A7', 'Total of both ranges:');
-$objPHPExcel->getActiveSheet()->setCellValue('B7', '=SUM(B5:C5)');
-echo date('H:i:s') , " Sum of both Ranges is " ,
-                     $objPHPExcel->getActiveSheet()->getCell('B7')->getCalculatedValue() , EOL;
-
-$objPHPExcel->getActiveSheet()->setCellValue('A8', 'Minimum of both ranges:');
-$objPHPExcel->getActiveSheet()->setCellValue('B8', '=MIN(B2:C4)');
-echo date('H:i:s') , " Minimum value in either Range is " ,
-                     $objPHPExcel->getActiveSheet()->getCell('B8')->getCalculatedValue() , EOL;
-
-$objPHPExcel->getActiveSheet()->setCellValue('A9', 'Maximum of both ranges:');
-$objPHPExcel->getActiveSheet()->setCellValue('B9', '=MAX(B2:C4)');
-echo date('H:i:s') , " Maximum value in either Range is " ,
-                     $objPHPExcel->getActiveSheet()->getCell('B9')->getCalculatedValue() , EOL;
-
-$objPHPExcel->getActiveSheet()->setCellValue('A10', 'Average of both ranges:');
-$objPHPExcel->getActiveSheet()->setCellValue('B10', '=AVERAGE(B2:C4)');
-echo date('H:i:s') , " Average value of both Ranges is " ,
-                     $objPHPExcel->getActiveSheet()->getCell('B10')->getCalculatedValue() , EOL;
-
-
-// Rename worksheet
-echo date('H:i:s') , " Rename worksheet" , EOL;
-$objPHPExcel->getActiveSheet()->setTitle('Formulas');
-
-
-// Set active sheet index to the first sheet, so Excel opens this as the first sheet
-$objPHPExcel->setActiveSheetIndex(0);
-
-
-// Save Excel 2007 file
-echo date('H:i:s') , " Write to Excel2007 format" , EOL;
-$callStartTime = microtime(true);
-
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
-
-//
-//  If we set Pre Calculated Formulas to true then PHPExcel will calculate all formulae in the
-//    workbook before saving. This adds time and memory overhead, and can cause some problems with formulae
-//    using functions or features (such as array formulae) that aren't yet supported by the calculation engine
-//  If the value is false (the default) for the Excel2007 Writer, then MS Excel (or the application used to
-//    open the file) will need to recalculate values itself to guarantee that the correct results are available.
-//
-//$objWriter->setPreCalculateFormulas(true);
-$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-
-// Save Excel 95 file
-echo date('H:i:s') , " Write to Excel5 format" , EOL;
-$callStartTime = microtime(true);
-
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
-$objWriter->save(str_replace('.php', '.xls', __FILE__));
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing files" , EOL;
-echo 'Files have been created in ' , getcwd() , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/04printing.php b/htdocs/includes/phpoffice/phpexcel/Examples/04printing.php
deleted file mode 100644
index 14358b05e74..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/04printing.php
+++ /dev/null
@@ -1,125 +0,0 @@
-<?php
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-date_default_timezone_set('Europe/London');
-
-/** Include PHPExcel */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
-
-
-// Create new PHPExcel object
-echo date('H:i:s') , " Create new PHPExcel object" , EOL;
-$objPHPExcel = new PHPExcel();
-
-// Set document properties
-echo date('H:i:s') , " Set document properties" , EOL;
-$objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
-							 ->setLastModifiedBy("Maarten Balliauw")
-							 ->setTitle("Office 2007 XLSX Test Document")
-							 ->setSubject("Office 2007 XLSX Test Document")
-							 ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
-							 ->setKeywords("office 2007 openxml php")
-							 ->setCategory("Test result file");
-
-
-// Add some data, we will use printing features
-echo date('H:i:s') , " Add some data" , EOL;
-for ($i = 1; $i < 200; $i++) {
-	$objPHPExcel->getActiveSheet()->setCellValue('A' . $i, $i);
-	$objPHPExcel->getActiveSheet()->setCellValue('B' . $i, 'Test value');
-}
-
-// Set header and footer. When no different headers for odd/even are used, odd header is assumed.
-echo date('H:i:s') , " Set header/footer" , EOL;
-$objPHPExcel->getActiveSheet()->getHeaderFooter()->setOddHeader('&L&G&C&HPlease treat this document as confidential!');
-$objPHPExcel->getActiveSheet()->getHeaderFooter()->setOddFooter('&L&B' . $objPHPExcel->getProperties()->getTitle() . '&RPage &P of &N');
-
-// Add a drawing to the header
-echo date('H:i:s') , " Add a drawing to the header" , EOL;
-$objDrawing = new PHPExcel_Worksheet_HeaderFooterDrawing();
-$objDrawing->setName('PHPExcel logo');
-$objDrawing->setPath('./images/phpexcel_logo.gif');
-$objDrawing->setHeight(36);
-$objPHPExcel->getActiveSheet()->getHeaderFooter()->addImage($objDrawing, PHPExcel_Worksheet_HeaderFooter::IMAGE_HEADER_LEFT);
-
-// Set page orientation and size
-echo date('H:i:s') , " Set page orientation and size" , EOL;
-$objPHPExcel->getActiveSheet()->getPageSetup()->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE);
-$objPHPExcel->getActiveSheet()->getPageSetup()->setPaperSize(PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4);
-
-// Rename worksheet
-echo date('H:i:s') , " Rename worksheet" , EOL;
-$objPHPExcel->getActiveSheet()->setTitle('Printing');
-
-
-// Set active sheet index to the first sheet, so Excel opens this as the first sheet
-$objPHPExcel->setActiveSheetIndex(0);
-
-
-// Save Excel 2007 file
-echo date('H:i:s') , " Write to Excel2007 format" , EOL;
-$callStartTime = microtime(true);
-
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
-$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-
-// Save Excel 95 file
-echo date('H:i:s') , " Write to Excel5 format" , EOL;
-$callStartTime = microtime(true);
-
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
-$objWriter->save(str_replace('.php', '.xls', __FILE__));
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing files" , EOL;
-echo 'Files have been created in ' , getcwd() , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/05featuredemo.inc.php b/htdocs/includes/phpoffice/phpexcel/Examples/05featuredemo.inc.php
deleted file mode 100644
index b543ca46bb7..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/05featuredemo.inc.php
+++ /dev/null
@@ -1,394 +0,0 @@
-<?php
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** Error reporting */
-error_reporting(E_ALL);
-
-/** Include PHPExcel */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
-
-
-// Create new PHPExcel object
-echo date('H:i:s') , " Create new PHPExcel object" , EOL;
-$objPHPExcel = new PHPExcel();
-
-// Set document properties
-echo date('H:i:s') , " Set document properties" , EOL;
-$objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
-							 ->setLastModifiedBy("Maarten Balliauw")
-							 ->setTitle("Office 2007 XLSX Test Document")
-							 ->setSubject("Office 2007 XLSX Test Document")
-							 ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
-							 ->setKeywords("office 2007 openxml php")
-							 ->setCategory("Test result file");
-
-
-// Create a first sheet, representing sales data
-echo date('H:i:s') , " Add some data" , EOL;
-$objPHPExcel->setActiveSheetIndex(0);
-$objPHPExcel->getActiveSheet()->setCellValue('B1', 'Invoice');
-$objPHPExcel->getActiveSheet()->setCellValue('D1', PHPExcel_Shared_Date::PHPToExcel( gmmktime(0,0,0,date('m'),date('d'),date('Y')) ));
-$objPHPExcel->getActiveSheet()->getStyle('D1')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_XLSX15);
-$objPHPExcel->getActiveSheet()->setCellValue('E1', '#12566');
-
-$objPHPExcel->getActiveSheet()->setCellValue('A3', 'Product Id');
-$objPHPExcel->getActiveSheet()->setCellValue('B3', 'Description');
-$objPHPExcel->getActiveSheet()->setCellValue('C3', 'Price');
-$objPHPExcel->getActiveSheet()->setCellValue('D3', 'Amount');
-$objPHPExcel->getActiveSheet()->setCellValue('E3', 'Total');
-
-$objPHPExcel->getActiveSheet()->setCellValue('A4', '1001');
-$objPHPExcel->getActiveSheet()->setCellValue('B4', 'PHP for dummies');
-$objPHPExcel->getActiveSheet()->setCellValue('C4', '20');
-$objPHPExcel->getActiveSheet()->setCellValue('D4', '1');
-$objPHPExcel->getActiveSheet()->setCellValue('E4', '=IF(D4<>"",C4*D4,"")');
-
-$objPHPExcel->getActiveSheet()->setCellValue('A5', '1012');
-$objPHPExcel->getActiveSheet()->setCellValue('B5', 'OpenXML for dummies');
-$objPHPExcel->getActiveSheet()->setCellValue('C5', '22');
-$objPHPExcel->getActiveSheet()->setCellValue('D5', '2');
-$objPHPExcel->getActiveSheet()->setCellValue('E5', '=IF(D5<>"",C5*D5,"")');
-
-$objPHPExcel->getActiveSheet()->setCellValue('E6', '=IF(D6<>"",C6*D6,"")');
-$objPHPExcel->getActiveSheet()->setCellValue('E7', '=IF(D7<>"",C7*D7,"")');
-$objPHPExcel->getActiveSheet()->setCellValue('E8', '=IF(D8<>"",C8*D8,"")');
-$objPHPExcel->getActiveSheet()->setCellValue('E9', '=IF(D9<>"",C9*D9,"")');
-
-$objPHPExcel->getActiveSheet()->setCellValue('D11', 'Total excl.:');
-$objPHPExcel->getActiveSheet()->setCellValue('E11', '=SUM(E4:E9)');
-
-$objPHPExcel->getActiveSheet()->setCellValue('D12', 'VAT:');
-$objPHPExcel->getActiveSheet()->setCellValue('E12', '=E11*0.21');
-
-$objPHPExcel->getActiveSheet()->setCellValue('D13', 'Total incl.:');
-$objPHPExcel->getActiveSheet()->setCellValue('E13', '=E11+E12');
-
-// Add comment
-echo date('H:i:s') , " Add comments" , EOL;
-
-$objPHPExcel->getActiveSheet()->getComment('E11')->setAuthor('PHPExcel');
-$objCommentRichText = $objPHPExcel->getActiveSheet()->getComment('E11')->getText()->createTextRun('PHPExcel:');
-$objCommentRichText->getFont()->setBold(true);
-$objPHPExcel->getActiveSheet()->getComment('E11')->getText()->createTextRun("\r\n");
-$objPHPExcel->getActiveSheet()->getComment('E11')->getText()->createTextRun('Total amount on the current invoice, excluding VAT.');
-
-$objPHPExcel->getActiveSheet()->getComment('E12')->setAuthor('PHPExcel');
-$objCommentRichText = $objPHPExcel->getActiveSheet()->getComment('E12')->getText()->createTextRun('PHPExcel:');
-$objCommentRichText->getFont()->setBold(true);
-$objPHPExcel->getActiveSheet()->getComment('E12')->getText()->createTextRun("\r\n");
-$objPHPExcel->getActiveSheet()->getComment('E12')->getText()->createTextRun('Total amount of VAT on the current invoice.');
-
-$objPHPExcel->getActiveSheet()->getComment('E13')->setAuthor('PHPExcel');
-$objCommentRichText = $objPHPExcel->getActiveSheet()->getComment('E13')->getText()->createTextRun('PHPExcel:');
-$objCommentRichText->getFont()->setBold(true);
-$objPHPExcel->getActiveSheet()->getComment('E13')->getText()->createTextRun("\r\n");
-$objPHPExcel->getActiveSheet()->getComment('E13')->getText()->createTextRun('Total amount on the current invoice, including VAT.');
-$objPHPExcel->getActiveSheet()->getComment('E13')->setWidth('100pt');
-$objPHPExcel->getActiveSheet()->getComment('E13')->setHeight('100pt');
-$objPHPExcel->getActiveSheet()->getComment('E13')->setMarginLeft('150pt');
-$objPHPExcel->getActiveSheet()->getComment('E13')->getFillColor()->setRGB('EEEEEE');
-
-
-// Add rich-text string
-echo date('H:i:s') , " Add rich-text string" , EOL;
-$objRichText = new PHPExcel_RichText();
-$objRichText->createText('This invoice is ');
-
-$objPayable = $objRichText->createTextRun('payable within thirty days after the end of the month');
-$objPayable->getFont()->setBold(true);
-$objPayable->getFont()->setItalic(true);
-$objPayable->getFont()->setColor( new PHPExcel_Style_Color( PHPExcel_Style_Color::COLOR_DARKGREEN ) );
-
-$objRichText->createText(', unless specified otherwise on the invoice.');
-
-$objPHPExcel->getActiveSheet()->getCell('A18')->setValue($objRichText);
-
-// Merge cells
-echo date('H:i:s') , " Merge cells" , EOL;
-$objPHPExcel->getActiveSheet()->mergeCells('A18:E22');
-$objPHPExcel->getActiveSheet()->mergeCells('A28:B28');		// Just to test...
-$objPHPExcel->getActiveSheet()->unmergeCells('A28:B28');	// Just to test...
-
-// Protect cells
-echo date('H:i:s') , " Protect cells" , EOL;
-$objPHPExcel->getActiveSheet()->getProtection()->setSheet(true);	// Needs to be set to true in order to enable any worksheet protection!
-$objPHPExcel->getActiveSheet()->protectCells('A3:E13', 'PHPExcel');
-
-// Set cell number formats
-echo date('H:i:s') , " Set cell number formats" , EOL;
-$objPHPExcel->getActiveSheet()->getStyle('E4:E13')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_CURRENCY_EUR_SIMPLE);
-
-// Set column widths
-echo date('H:i:s') , " Set column widths" , EOL;
-$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setAutoSize(true);
-$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(12);
-$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(12);
-
-// Set fonts
-echo date('H:i:s') , " Set fonts" , EOL;
-$objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setName('Candara');
-$objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setSize(20);
-$objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setBold(true);
-$objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setUnderline(PHPExcel_Style_Font::UNDERLINE_SINGLE);
-$objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_WHITE);
-
-$objPHPExcel->getActiveSheet()->getStyle('D1')->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_WHITE);
-$objPHPExcel->getActiveSheet()->getStyle('E1')->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_WHITE);
-
-$objPHPExcel->getActiveSheet()->getStyle('D13')->getFont()->setBold(true);
-$objPHPExcel->getActiveSheet()->getStyle('E13')->getFont()->setBold(true);
-
-// Set alignments
-echo date('H:i:s') , " Set alignments" , EOL;
-$objPHPExcel->getActiveSheet()->getStyle('D11')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
-$objPHPExcel->getActiveSheet()->getStyle('D12')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
-$objPHPExcel->getActiveSheet()->getStyle('D13')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
-
-$objPHPExcel->getActiveSheet()->getStyle('A18')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_JUSTIFY);
-$objPHPExcel->getActiveSheet()->getStyle('A18')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
-
-$objPHPExcel->getActiveSheet()->getStyle('B5')->getAlignment()->setShrinkToFit(true);
-
-// Set thin black border outline around column
-echo date('H:i:s') , " Set thin black border outline around column" , EOL;
-$styleThinBlackBorderOutline = array(
-	'borders' => array(
-		'outline' => array(
-			'style' => PHPExcel_Style_Border::BORDER_THIN,
-			'color' => array('argb' => 'FF000000'),
-		),
-	),
-);
-$objPHPExcel->getActiveSheet()->getStyle('A4:E10')->applyFromArray($styleThinBlackBorderOutline);
-
-
-// Set thick brown border outline around "Total"
-echo date('H:i:s') , " Set thick brown border outline around Total" , EOL;
-$styleThickBrownBorderOutline = array(
-	'borders' => array(
-		'outline' => array(
-			'style' => PHPExcel_Style_Border::BORDER_THICK,
-			'color' => array('argb' => 'FF993300'),
-		),
-	),
-);
-$objPHPExcel->getActiveSheet()->getStyle('D13:E13')->applyFromArray($styleThickBrownBorderOutline);
-
-// Set fills
-echo date('H:i:s') , " Set fills" , EOL;
-$objPHPExcel->getActiveSheet()->getStyle('A1:E1')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
-$objPHPExcel->getActiveSheet()->getStyle('A1:E1')->getFill()->getStartColor()->setARGB('FF808080');
-
-// Set style for header row using alternative method
-echo date('H:i:s') , " Set style for header row using alternative method" , EOL;
-$objPHPExcel->getActiveSheet()->getStyle('A3:E3')->applyFromArray(
-		array(
-			'font'    => array(
-				'bold'      => true
-			),
-			'alignment' => array(
-				'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_RIGHT,
-			),
-			'borders' => array(
-				'top'     => array(
- 					'style' => PHPExcel_Style_Border::BORDER_THIN
- 				)
-			),
-			'fill' => array(
-	 			'type'       => PHPExcel_Style_Fill::FILL_GRADIENT_LINEAR,
-	  			'rotation'   => 90,
-	 			'startcolor' => array(
-	 				'argb' => 'FFA0A0A0'
-	 			),
-	 			'endcolor'   => array(
-	 				'argb' => 'FFFFFFFF'
-	 			)
-	 		)
-		)
-);
-
-$objPHPExcel->getActiveSheet()->getStyle('A3')->applyFromArray(
-		array(
-			'alignment' => array(
-				'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_LEFT,
-			),
-			'borders' => array(
-				'left'     => array(
- 					'style' => PHPExcel_Style_Border::BORDER_THIN
- 				)
-			)
-		)
-);
-
-$objPHPExcel->getActiveSheet()->getStyle('B3')->applyFromArray(
-		array(
-			'alignment' => array(
-				'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_LEFT,
-			)
-		)
-);
-
-$objPHPExcel->getActiveSheet()->getStyle('E3')->applyFromArray(
-		array(
-			'borders' => array(
-				'right'     => array(
- 					'style' => PHPExcel_Style_Border::BORDER_THIN
- 				)
-			)
-		)
-);
-
-// Unprotect a cell
-echo date('H:i:s') , " Unprotect a cell" , EOL;
-$objPHPExcel->getActiveSheet()->getStyle('B1')->getProtection()->setLocked(PHPExcel_Style_Protection::PROTECTION_UNPROTECTED);
-
-// Add a hyperlink to the sheet
-echo date('H:i:s') , " Add a hyperlink to an external website" , EOL;
-$objPHPExcel->getActiveSheet()->setCellValue('E26', 'www.phpexcel.net');
-$objPHPExcel->getActiveSheet()->getCell('E26')->getHyperlink()->setUrl('http://www.phpexcel.net');
-$objPHPExcel->getActiveSheet()->getCell('E26')->getHyperlink()->setTooltip('Navigate to website');
-$objPHPExcel->getActiveSheet()->getStyle('E26')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
-
-echo date('H:i:s') , " Add a hyperlink to another cell on a different worksheet within the workbook" , EOL;
-$objPHPExcel->getActiveSheet()->setCellValue('E27', 'Terms and conditions');
-$objPHPExcel->getActiveSheet()->getCell('E27')->getHyperlink()->setUrl("sheet://'Terms and conditions'!A1");
-$objPHPExcel->getActiveSheet()->getCell('E27')->getHyperlink()->setTooltip('Review terms and conditions');
-$objPHPExcel->getActiveSheet()->getStyle('E27')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
-
-// Add a drawing to the worksheet
-echo date('H:i:s') , " Add a drawing to the worksheet" , EOL;
-$objDrawing = new PHPExcel_Worksheet_Drawing();
-$objDrawing->setName('Logo');
-$objDrawing->setDescription('Logo');
-$objDrawing->setPath('./images/officelogo.jpg');
-$objDrawing->setHeight(36);
-$objDrawing->setWorksheet($objPHPExcel->getActiveSheet());
-
-// Add a drawing to the worksheet
-echo date('H:i:s') , " Add a drawing to the worksheet" , EOL;
-$objDrawing = new PHPExcel_Worksheet_Drawing();
-$objDrawing->setName('Paid');
-$objDrawing->setDescription('Paid');
-$objDrawing->setPath('./images/paid.png');
-$objDrawing->setCoordinates('B15');
-$objDrawing->setOffsetX(110);
-$objDrawing->setRotation(25);
-$objDrawing->getShadow()->setVisible(true);
-$objDrawing->getShadow()->setDirection(45);
-$objDrawing->setWorksheet($objPHPExcel->getActiveSheet());
-
-// Add a drawing to the worksheet
-echo date('H:i:s') , " Add a drawing to the worksheet" , EOL;
-$objDrawing = new PHPExcel_Worksheet_Drawing();
-$objDrawing->setName('PHPExcel logo');
-$objDrawing->setDescription('PHPExcel logo');
-$objDrawing->setPath('./images/phpexcel_logo.gif');
-$objDrawing->setHeight(36);
-$objDrawing->setCoordinates('D24');
-$objDrawing->setOffsetX(10);
-$objDrawing->setWorksheet($objPHPExcel->getActiveSheet());
-
-// Play around with inserting and removing rows and columns
-echo date('H:i:s') , " Play around with inserting and removing rows and columns" , EOL;
-$objPHPExcel->getActiveSheet()->insertNewRowBefore(6, 10);
-$objPHPExcel->getActiveSheet()->removeRow(6, 10);
-$objPHPExcel->getActiveSheet()->insertNewColumnBefore('E', 5);
-$objPHPExcel->getActiveSheet()->removeColumn('E', 5);
-
-// Set header and footer. When no different headers for odd/even are used, odd header is assumed.
-echo date('H:i:s') , " Set header/footer" , EOL;
-$objPHPExcel->getActiveSheet()->getHeaderFooter()->setOddHeader('&L&BInvoice&RPrinted on &D');
-$objPHPExcel->getActiveSheet()->getHeaderFooter()->setOddFooter('&L&B' . $objPHPExcel->getProperties()->getTitle() . '&RPage &P of &N');
-
-// Set page orientation and size
-echo date('H:i:s') , " Set page orientation and size" , EOL;
-$objPHPExcel->getActiveSheet()->getPageSetup()->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_PORTRAIT);
-$objPHPExcel->getActiveSheet()->getPageSetup()->setPaperSize(PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4);
-
-// Rename first worksheet
-echo date('H:i:s') , " Rename first worksheet" , EOL;
-$objPHPExcel->getActiveSheet()->setTitle('Invoice');
-
-
-// Create a new worksheet, after the default sheet
-echo date('H:i:s') , " Create a second Worksheet object" , EOL;
-$objPHPExcel->createSheet();
-
-// Llorem ipsum...
-$sLloremIpsum = 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Vivamus eget ante. Sed cursus nunc semper tortor. Aliquam luctus purus non elit. Fusce vel elit commodo sapien dignissim dignissim. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Curabitur accumsan magna sed massa. Nullam bibendum quam ac ipsum. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Proin augue. Praesent malesuada justo sed orci. Pellentesque lacus ligula, sodales quis, ultricies a, ultricies vitae, elit. Sed luctus consectetuer dolor. Vivamus vel sem ut nisi sodales accumsan. Nunc et felis. Suspendisse semper viverra odio. Morbi at odio. Integer a orci a purus venenatis molestie. Nam mattis. Praesent rhoncus, nisi vel mattis auctor, neque nisi faucibus sem, non dapibus elit pede ac nisl. Cras turpis.';
-
-// Add some data to the second sheet, resembling some different data types
-echo date('H:i:s') , " Add some data" , EOL;
-$objPHPExcel->setActiveSheetIndex(1);
-$objPHPExcel->getActiveSheet()->setCellValue('A1', 'Terms and conditions');
-$objPHPExcel->getActiveSheet()->setCellValue('A3', $sLloremIpsum);
-$objPHPExcel->getActiveSheet()->setCellValue('A4', $sLloremIpsum);
-$objPHPExcel->getActiveSheet()->setCellValue('A5', $sLloremIpsum);
-$objPHPExcel->getActiveSheet()->setCellValue('A6', $sLloremIpsum);
-
-// Set the worksheet tab color
-echo date('H:i:s') , " Set the worksheet tab color" , EOL;
-$objPHPExcel->getActiveSheet()->getTabColor()->setARGB('FF0094FF');;
-
-// Set alignments
-echo date('H:i:s') , " Set alignments" , EOL;
-$objPHPExcel->getActiveSheet()->getStyle('A3:A6')->getAlignment()->setWrapText(true);
-
-// Set column widths
-echo date('H:i:s') , " Set column widths" , EOL;
-$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(80);
-
-// Set fonts
-echo date('H:i:s') , " Set fonts" , EOL;
-$objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setName('Candara');
-$objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setSize(20);
-$objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setBold(true);
-$objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setUnderline(PHPExcel_Style_Font::UNDERLINE_SINGLE);
-
-$objPHPExcel->getActiveSheet()->getStyle('A3:A6')->getFont()->setSize(8);
-
-// Add a drawing to the worksheet
-echo date('H:i:s') , " Add a drawing to the worksheet" , EOL;
-$objDrawing = new PHPExcel_Worksheet_Drawing();
-$objDrawing->setName('Terms and conditions');
-$objDrawing->setDescription('Terms and conditions');
-$objDrawing->setPath('./images/termsconditions.jpg');
-$objDrawing->setCoordinates('B14');
-$objDrawing->setWorksheet($objPHPExcel->getActiveSheet());
-
-// Set page orientation and size
-echo date('H:i:s') , " Set page orientation and size" , EOL;
-$objPHPExcel->getActiveSheet()->getPageSetup()->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE);
-$objPHPExcel->getActiveSheet()->getPageSetup()->setPaperSize(PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4);
-
-// Rename second worksheet
-echo date('H:i:s') , " Rename second worksheet" , EOL;
-$objPHPExcel->getActiveSheet()->setTitle('Terms and conditions');
-
-
-// Set active sheet index to the first sheet, so Excel opens this as the first sheet
-$objPHPExcel->setActiveSheetIndex(0);
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/05featuredemo.php b/htdocs/includes/phpoffice/phpexcel/Examples/05featuredemo.php
deleted file mode 100644
index 66d4980ec51..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/05featuredemo.php
+++ /dev/null
@@ -1,78 +0,0 @@
-<?php
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-date_default_timezone_set('Europe/London');
-
-include "05featuredemo.inc.php";
-
-/** Include PHPExcel_IOFactory */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel/IOFactory.php';
-
-
-// Save Excel 2007 file
-echo date('H:i:s') , " Write to Excel2007 format" , EOL;
-$callStartTime = microtime(true);
-
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
-$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-
-// Save Excel 95 file
-echo date('H:i:s') , " Write to Excel5 format" , EOL;
-$callStartTime = microtime(true);
-
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
-$objWriter->save(str_replace('.php', '.xls', __FILE__));
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing files" , EOL;
-echo 'Files have been created in ' , getcwd() , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/06largescale-with-cellcaching-sqlite.php b/htdocs/includes/phpoffice/phpexcel/Examples/06largescale-with-cellcaching-sqlite.php
deleted file mode 100644
index cbdb59b91b1..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/06largescale-with-cellcaching-sqlite.php
+++ /dev/null
@@ -1,129 +0,0 @@
-<?php
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-date_default_timezone_set('Europe/London');
-
-/** Include PHPExcel */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
-
-$cacheMethod = PHPExcel_CachedObjectStorageFactory::cache_to_sqlite;
-if (PHPExcel_Settings::setCacheStorageMethod($cacheMethod)) {
-    echo date('H:i:s') , " Enable Cell Caching using " , $cacheMethod , " method" , EOL;
-} else {
-    echo date('H:i:s') , " Unable to set Cell Caching using " , $cacheMethod , " method, reverting to memory" , EOL;
-}
-
-
-// Create new PHPExcel object
-echo date('H:i:s') , " Create new PHPExcel object" , EOL;
-$objPHPExcel = new PHPExcel();
-
-// Set document properties
-echo date('H:i:s') , " Set properties" , EOL;
-$objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
-							 ->setLastModifiedBy("Maarten Balliauw")
-							 ->setTitle("Office 2007 XLSX Test Document")
-							 ->setSubject("Office 2007 XLSX Test Document")
-							 ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
-							 ->setKeywords("office 2007 openxml php")
-							 ->setCategory("Test result file");
-
-
-// Create a first sheet
-echo date('H:i:s') , " Add data" , EOL;
-$objPHPExcel->setActiveSheetIndex(0);
-$objPHPExcel->getActiveSheet()->setCellValue('A1', "Firstname");
-$objPHPExcel->getActiveSheet()->setCellValue('B1', "Lastname");
-$objPHPExcel->getActiveSheet()->setCellValue('C1', "Phone");
-$objPHPExcel->getActiveSheet()->setCellValue('D1', "Fax");
-$objPHPExcel->getActiveSheet()->setCellValue('E1', "Is Client ?");
-
-
-// Hide "Phone" and "fax" column
-echo date('H:i:s') , " Hide 'Phone' and 'fax' columns" , EOL;
-$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setVisible(false);
-$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setVisible(false);
-
-
-// Set outline levels
-echo date('H:i:s') , " Set outline levels" , EOL;
-$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setOutlineLevel(1)
-                                                       ->setVisible(false)
-                                                       ->setCollapsed(true);
-
-// Freeze panes
-echo date('H:i:s') , " Freeze panes" , EOL;
-$objPHPExcel->getActiveSheet()->freezePane('A2');
-
-
-// Rows to repeat at top
-echo date('H:i:s') , " Rows to repeat at top" , EOL;
-$objPHPExcel->getActiveSheet()->getPageSetup()->setRowsToRepeatAtTopByStartAndEnd(1, 1);
-
-
-// Add data
-for ($i = 2; $i <= 5000; $i++) {
-	$objPHPExcel->getActiveSheet()->setCellValue('A' . $i, "FName $i")
-	                              ->setCellValue('B' . $i, "LName $i")
-	                              ->setCellValue('C' . $i, "PhoneNo $i")
-	                              ->setCellValue('D' . $i, "FaxNo $i")
-	                              ->setCellValue('E' . $i, true);
-}
-
-
-// Set active sheet index to the first sheet, so Excel opens this as the first sheet
-$objPHPExcel->setActiveSheetIndex(0);
-
-
-// Save Excel 2007 file
-echo date('H:i:s') , " Write to Excel2007 format" , EOL;
-$callStartTime = microtime(true);
-
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
-$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing file" , EOL;
-echo 'File has been created in ' , getcwd() , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/06largescale-with-cellcaching-sqlite3.php b/htdocs/includes/phpoffice/phpexcel/Examples/06largescale-with-cellcaching-sqlite3.php
deleted file mode 100644
index ca04f85e92c..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/06largescale-with-cellcaching-sqlite3.php
+++ /dev/null
@@ -1,129 +0,0 @@
-<?php
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-date_default_timezone_set('Europe/London');
-
-/** Include PHPExcel */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
-
-$cacheMethod = PHPExcel_CachedObjectStorageFactory::cache_to_sqlite3;
-if (PHPExcel_Settings::setCacheStorageMethod($cacheMethod)) {
-    echo date('H:i:s') , " Enable Cell Caching using " , $cacheMethod , " method" , EOL;
-} else {
-    echo date('H:i:s') , " Unable to set Cell Caching using " , $cacheMethod , " method, reverting to memory" , EOL;
-}
-
-
-// Create new PHPExcel object
-echo date('H:i:s') , " Create new PHPExcel object" , EOL;
-$objPHPExcel = new PHPExcel();
-
-// Set document properties
-echo date('H:i:s') , " Set properties" , EOL;
-$objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
-							 ->setLastModifiedBy("Maarten Balliauw")
-							 ->setTitle("Office 2007 XLSX Test Document")
-							 ->setSubject("Office 2007 XLSX Test Document")
-							 ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
-							 ->setKeywords("office 2007 openxml php")
-							 ->setCategory("Test result file");
-
-
-// Create a first sheet
-echo date('H:i:s') , " Add data" , EOL;
-$objPHPExcel->setActiveSheetIndex(0);
-$objPHPExcel->getActiveSheet()->setCellValue('A1', "Firstname");
-$objPHPExcel->getActiveSheet()->setCellValue('B1', "Lastname");
-$objPHPExcel->getActiveSheet()->setCellValue('C1', "Phone");
-$objPHPExcel->getActiveSheet()->setCellValue('D1', "Fax");
-$objPHPExcel->getActiveSheet()->setCellValue('E1', "Is Client ?");
-
-
-// Hide "Phone" and "fax" column
-echo date('H:i:s') , " Hide 'Phone' and 'fax' columns" , EOL;
-$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setVisible(false);
-$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setVisible(false);
-
-
-// Set outline levels
-echo date('H:i:s') , " Set outline levels" , EOL;
-$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setOutlineLevel(1)
-                                                       ->setVisible(false)
-                                                       ->setCollapsed(true);
-
-// Freeze panes
-echo date('H:i:s') , " Freeze panes" , EOL;
-$objPHPExcel->getActiveSheet()->freezePane('A2');
-
-
-// Rows to repeat at top
-echo date('H:i:s') , " Rows to repeat at top" , EOL;
-$objPHPExcel->getActiveSheet()->getPageSetup()->setRowsToRepeatAtTopByStartAndEnd(1, 1);
-
-
-// Add data
-for ($i = 2; $i <= 5000; $i++) {
-	$objPHPExcel->getActiveSheet()->setCellValue('A' . $i, "FName $i")
-	                              ->setCellValue('B' . $i, "LName $i")
-	                              ->setCellValue('C' . $i, "PhoneNo $i")
-	                              ->setCellValue('D' . $i, "FaxNo $i")
-	                              ->setCellValue('E' . $i, true);
-}
-
-
-// Set active sheet index to the first sheet, so Excel opens this as the first sheet
-$objPHPExcel->setActiveSheetIndex(0);
-
-
-// Save Excel 2007 file
-echo date('H:i:s') , " Write to Excel2007 format" , EOL;
-$callStartTime = microtime(true);
-
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
-$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing file" , EOL;
-echo 'File has been created in ' , getcwd() , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/06largescale-with-cellcaching.php b/htdocs/includes/phpoffice/phpexcel/Examples/06largescale-with-cellcaching.php
deleted file mode 100644
index aa23b8cbb8a..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/06largescale-with-cellcaching.php
+++ /dev/null
@@ -1,128 +0,0 @@
-<?php
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-date_default_timezone_set('Europe/London');
-
-/** Include PHPExcel */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
-
-$cacheMethod = PHPExcel_CachedObjectStorageFactory::cache_in_memory_gzip;
-if (!PHPExcel_Settings::setCacheStorageMethod($cacheMethod)) {
-	die($cacheMethod . " caching method is not available" . EOL);
-}
-echo date('H:i:s') , " Enable Cell Caching using " , $cacheMethod , " method" , EOL;
-
-
-// Create new PHPExcel object
-echo date('H:i:s') , " Create new PHPExcel object" , EOL;
-$objPHPExcel = new PHPExcel();
-
-// Set document properties
-echo date('H:i:s') , " Set properties" , EOL;
-$objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
-							 ->setLastModifiedBy("Maarten Balliauw")
-							 ->setTitle("Office 2007 XLSX Test Document")
-							 ->setSubject("Office 2007 XLSX Test Document")
-							 ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
-							 ->setKeywords("office 2007 openxml php")
-							 ->setCategory("Test result file");
-
-
-// Create a first sheet
-echo date('H:i:s') , " Add data" , EOL;
-$objPHPExcel->setActiveSheetIndex(0);
-$objPHPExcel->getActiveSheet()->setCellValue('A1', "Firstname");
-$objPHPExcel->getActiveSheet()->setCellValue('B1', "Lastname");
-$objPHPExcel->getActiveSheet()->setCellValue('C1', "Phone");
-$objPHPExcel->getActiveSheet()->setCellValue('D1', "Fax");
-$objPHPExcel->getActiveSheet()->setCellValue('E1', "Is Client ?");
-
-
-// Hide "Phone" and "fax" column
-echo date('H:i:s') , " Hide 'Phone' and 'fax' columns" , EOL;
-$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setVisible(false);
-$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setVisible(false);
-
-
-// Set outline levels
-echo date('H:i:s') , " Set outline levels" , EOL;
-$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setOutlineLevel(1)
-                                                       ->setVisible(false)
-                                                       ->setCollapsed(true);
-
-// Freeze panes
-echo date('H:i:s') , " Freeze panes" , EOL;
-$objPHPExcel->getActiveSheet()->freezePane('A2');
-
-
-// Rows to repeat at top
-echo date('H:i:s') , " Rows to repeat at top" , EOL;
-$objPHPExcel->getActiveSheet()->getPageSetup()->setRowsToRepeatAtTopByStartAndEnd(1, 1);
-
-
-// Add data
-for ($i = 2; $i <= 5000; $i++) {
-	$objPHPExcel->getActiveSheet()->setCellValue('A' . $i, "FName $i")
-	                              ->setCellValue('B' . $i, "LName $i")
-	                              ->setCellValue('C' . $i, "PhoneNo $i")
-	                              ->setCellValue('D' . $i, "FaxNo $i")
-	                              ->setCellValue('E' . $i, true);
-}
-
-
-// Set active sheet index to the first sheet, so Excel opens this as the first sheet
-$objPHPExcel->setActiveSheetIndex(0);
-
-
-// Save Excel 2007 file
-echo date('H:i:s') , " Write to Excel2007 format" , EOL;
-$callStartTime = microtime(true);
-
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
-$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing file" , EOL;
-echo 'File has been created in ' , getcwd() , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/06largescale-xls.php b/htdocs/includes/phpoffice/phpexcel/Examples/06largescale-xls.php
deleted file mode 100644
index 00137ad896b..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/06largescale-xls.php
+++ /dev/null
@@ -1,136 +0,0 @@
-<?php
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-date_default_timezone_set('Europe/London');
-
-/** Include PHPExcel */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
-
-
-/*
-After doing some test, I've got these results benchmarked
-for writing to Excel2007:
-
-	Number of rows	Seconds to generate
-	200				3
-	500				4
-	1000			6
-	2000			12
-	4000			36
-	8000			64
-	15000			465
-*/
-
-// Create new PHPExcel object
-echo date('H:i:s') , " Create new PHPExcel object" , EOL;
-$objPHPExcel = new PHPExcel();
-
-// Set document properties
-echo date('H:i:s') , " Set properties" , EOL;
-$objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
-							 ->setLastModifiedBy("Maarten Balliauw")
-							 ->setTitle("Office 2007 XLSX Test Document")
-							 ->setSubject("Office 2007 XLSX Test Document")
-							 ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
-							 ->setKeywords("office 2007 openxml php")
-							 ->setCategory("Test result file");
-
-
-// Create a first sheet
-echo date('H:i:s') , " Add data" , EOL;
-$objPHPExcel->setActiveSheetIndex(0);
-$objPHPExcel->getActiveSheet()->setCellValue('A1', "Firstname");
-$objPHPExcel->getActiveSheet()->setCellValue('B1', "Lastname");
-$objPHPExcel->getActiveSheet()->setCellValue('C1', "Phone");
-$objPHPExcel->getActiveSheet()->setCellValue('D1', "Fax");
-$objPHPExcel->getActiveSheet()->setCellValue('E1', "Is Client ?");
-
-
-// Hide "Phone" and "fax" column
-echo date('H:i:s') , " Hide 'Phone' and 'fax' columns" , EOL;
-$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setVisible(false);
-$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setVisible(false);
-
-
-// Set outline levels
-echo date('H:i:s') , " Set outline levels" , EOL;
-$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setOutlineLevel(1)
-                                                       ->setVisible(false)
-                                                       ->setCollapsed(true);
-
-// Freeze panes
-echo date('H:i:s') , " Freeze panes" , EOL;
-$objPHPExcel->getActiveSheet()->freezePane('A2');
-
-
-// Rows to repeat at top
-echo date('H:i:s') , " Rows to repeat at top" , EOL;
-$objPHPExcel->getActiveSheet()->getPageSetup()->setRowsToRepeatAtTopByStartAndEnd(1, 1);
-
-
-// Add data
-for ($i = 2; $i <= 5000; $i++) {
-	$objPHPExcel->getActiveSheet()->setCellValue('A' . $i, "FName $i")
-	                              ->setCellValue('B' . $i, "LName $i")
-	                              ->setCellValue('C' . $i, "PhoneNo $i")
-	                              ->setCellValue('D' . $i, "FaxNo $i")
-	                              ->setCellValue('E' . $i, true);
-}
-
-
-// Set active sheet index to the first sheet, so Excel opens this as the first sheet
-$objPHPExcel->setActiveSheetIndex(0);
-
-
-// Save Excel 95 file
-echo date('H:i:s') , " Write to Excel5 format" , EOL;
-$callStartTime = microtime(true);
-
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
-$objWriter->save(str_replace('.php', '.xls', __FILE__));
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing file" , EOL;
-echo 'File has been created in ' , getcwd() , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/06largescale.php b/htdocs/includes/phpoffice/phpexcel/Examples/06largescale.php
deleted file mode 100644
index b0fa44047a3..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/06largescale.php
+++ /dev/null
@@ -1,136 +0,0 @@
-<?php
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-date_default_timezone_set('Europe/London');
-
-/** Include PHPExcel */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
-
-
-/*
-After doing some test, I've got these results benchmarked
-for writing to Excel2007:
-
-	Number of rows	Seconds to generate
-	200				3
-	500				4
-	1000			6
-	2000			12
-	4000			36
-	8000			64
-	15000			465
-*/
-
-// Create new PHPExcel object
-echo date('H:i:s') , " Create new PHPExcel object" , EOL;
-$objPHPExcel = new PHPExcel();
-
-// Set document properties
-echo date('H:i:s') , " Set properties" , EOL;
-$objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
-							 ->setLastModifiedBy("Maarten Balliauw")
-							 ->setTitle("Office 2007 XLSX Test Document")
-							 ->setSubject("Office 2007 XLSX Test Document")
-							 ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
-							 ->setKeywords("office 2007 openxml php")
-							 ->setCategory("Test result file");
-
-
-// Create a first sheet
-echo date('H:i:s') , " Add data" , EOL;
-$objPHPExcel->setActiveSheetIndex(0);
-$objPHPExcel->getActiveSheet()->setCellValue('A1', "Firstname");
-$objPHPExcel->getActiveSheet()->setCellValue('B1', "Lastname");
-$objPHPExcel->getActiveSheet()->setCellValue('C1', "Phone");
-$objPHPExcel->getActiveSheet()->setCellValue('D1', "Fax");
-$objPHPExcel->getActiveSheet()->setCellValue('E1', "Is Client ?");
-
-
-// Hide "Phone" and "fax" column
-echo date('H:i:s') , " Hide 'Phone' and 'fax' columns" , EOL;
-$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setVisible(false);
-$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setVisible(false);
-
-
-// Set outline levels
-echo date('H:i:s') , " Set outline levels" , EOL;
-$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setOutlineLevel(1)
-                                                       ->setVisible(false)
-                                                       ->setCollapsed(true);
-
-// Freeze panes
-echo date('H:i:s') , " Freeze panes" , EOL;
-$objPHPExcel->getActiveSheet()->freezePane('A2');
-
-
-// Rows to repeat at top
-echo date('H:i:s') , " Rows to repeat at top" , EOL;
-$objPHPExcel->getActiveSheet()->getPageSetup()->setRowsToRepeatAtTopByStartAndEnd(1, 1);
-
-
-// Add data
-for ($i = 2; $i <= 5000; $i++) {
-	$objPHPExcel->getActiveSheet()->setCellValue('A' . $i, "FName $i")
-	                              ->setCellValue('B' . $i, "LName $i")
-	                              ->setCellValue('C' . $i, "PhoneNo $i")
-	                              ->setCellValue('D' . $i, "FaxNo $i")
-	                              ->setCellValue('E' . $i, true);
-}
-
-
-// Set active sheet index to the first sheet, so Excel opens this as the first sheet
-$objPHPExcel->setActiveSheetIndex(0);
-
-
-// Save Excel 2007 file
-echo date('H:i:s') , " Write to Excel2007 format" , EOL;
-$callStartTime = microtime(true);
-
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
-$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing file" , EOL;
-echo 'File has been created in ' , getcwd() , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/07reader.php b/htdocs/includes/phpoffice/phpexcel/Examples/07reader.php
deleted file mode 100644
index 616b6622ff9..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/07reader.php
+++ /dev/null
@@ -1,76 +0,0 @@
-<?php
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-date_default_timezone_set('Europe/London');
-
-/** Include PHPExcel_IOFactory */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel/IOFactory.php';
-
-
-if (!file_exists("05featuredemo.xlsx")) {
-	exit("Please run 05featuredemo.php first." . EOL);
-}
-
-echo date('H:i:s') , " Load from Excel2007 file" , EOL;
-$callStartTime = microtime(true);
-
-$objPHPExcel = PHPExcel_IOFactory::load("05featuredemo.xlsx");
-
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-echo 'Call time to read Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-
-echo date('H:i:s') , " Write to Excel2007 format" , EOL;
-$callStartTime = microtime(true);
-
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
-$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
-
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing file" , EOL;
-echo 'File has been created in ' , getcwd() , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/07readerPCLZip.php b/htdocs/includes/phpoffice/phpexcel/Examples/07readerPCLZip.php
deleted file mode 100644
index 90e85905019..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/07readerPCLZip.php
+++ /dev/null
@@ -1,79 +0,0 @@
-<?php
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-date_default_timezone_set('Europe/London');
-
-/** Include PHPExcel_IOFactory */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel/IOFactory.php';
-
-
-if (!file_exists("05featuredemo.xlsx")) {
-	exit("Please run 05featuredemo.php first." . EOL);
-}
-
-// Use PCLZip rather than ZipArchive to read the Excel2007 OfficeOpenXML file
-PHPExcel_Settings::setZipClass(PHPExcel_Settings::PCLZIP);
-
-echo date('H:i:s') , " Load from Excel2007 file" , EOL;
-$callStartTime = microtime(true);
-
-$objPHPExcel = PHPExcel_IOFactory::load("05featuredemo.xlsx");
-
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-echo 'Call time to read Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-
-echo date('H:i:s') , " Write to Excel2007 format" , EOL;
-$callStartTime = microtime(true);
-
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
-$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
-
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing file" , EOL;
-echo 'File has been created in ' , getcwd() , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/08conditionalformatting.php b/htdocs/includes/phpoffice/phpexcel/Examples/08conditionalformatting.php
deleted file mode 100644
index f65ec9efd32..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/08conditionalformatting.php
+++ /dev/null
@@ -1,189 +0,0 @@
-<?php
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-date_default_timezone_set('Europe/London');
-
-/** Include PHPExcel */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
-
-
-// Create new PHPExcel object
-echo date('H:i:s') , " Create new PHPExcel object" , EOL;
-$objPHPExcel = new PHPExcel();
-
-// Set document properties
-echo date('H:i:s') , " Set document properties" , EOL;
-$objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
-							 ->setLastModifiedBy("Maarten Balliauw")
-							 ->setTitle("Office 2007 XLSX Test Document")
-							 ->setSubject("Office 2007 XLSX Test Document")
-							 ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
-							 ->setKeywords("office 2007 openxml php")
-							 ->setCategory("Test result file");
-
-
-// Create a first sheet, representing sales data
-echo date('H:i:s') , " Add some data" , EOL;
-$objPHPExcel->setActiveSheetIndex(0);
-$objPHPExcel->getActiveSheet()->setCellValue('A1', 'Description')
-                              ->setCellValue('B1', 'Amount');
-
-$objPHPExcel->getActiveSheet()->setCellValue('A2', 'Paycheck received')
-                              ->setCellValue('B2', 100);
-
-$objPHPExcel->getActiveSheet()->setCellValue('A3', 'Cup of coffee bought')
-                              ->setCellValue('B3', -1.5);
-
-$objPHPExcel->getActiveSheet()->setCellValue('A4', 'Cup of coffee bought')
-                              ->setCellValue('B4', -1.5);
-
-$objPHPExcel->getActiveSheet()->setCellValue('A5', 'Cup of tea bought')
-                              ->setCellValue('B5', -1.2);
-
-$objPHPExcel->getActiveSheet()->setCellValue('A6', 'Found some money')
-                              ->setCellValue('B6', 8);
-
-$objPHPExcel->getActiveSheet()->setCellValue('A7', 'Total:')
-                              ->setCellValue('B7', '=SUM(B2:B6)');
-
-
-// Set column widths
-echo date('H:i:s') , " Set column widths" , EOL;
-$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(30);
-$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(12);
-
-
-// Add conditional formatting
-echo date('H:i:s') , " Add conditional formatting" , EOL;
-$objConditional1 = new PHPExcel_Style_Conditional();
-$objConditional1->setConditionType(PHPExcel_Style_Conditional::CONDITION_CELLIS)
-                ->setOperatorType(PHPExcel_Style_Conditional::OPERATOR_BETWEEN)
-                ->addCondition('200')
-                ->addCondition('400');
-$objConditional1->getStyle()->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_YELLOW);
-$objConditional1->getStyle()->getFont()->setBold(true);
-$objConditional1->getStyle()->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_CURRENCY_EUR_SIMPLE);
-
-$objConditional2 = new PHPExcel_Style_Conditional();
-$objConditional2->setConditionType(PHPExcel_Style_Conditional::CONDITION_CELLIS)
-                ->setOperatorType(PHPExcel_Style_Conditional::OPERATOR_LESSTHAN)
-                ->addCondition('0');
-$objConditional2->getStyle()->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_RED);
-$objConditional2->getStyle()->getFont()->setItalic(true);
-$objConditional2->getStyle()->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_CURRENCY_EUR_SIMPLE);
-
-$objConditional3 = new PHPExcel_Style_Conditional();
-$objConditional3->setConditionType(PHPExcel_Style_Conditional::CONDITION_CELLIS)
-                ->setOperatorType(PHPExcel_Style_Conditional::OPERATOR_GREATERTHANOREQUAL)
-                ->addCondition('0');
-$objConditional3->getStyle()->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_GREEN);
-$objConditional3->getStyle()->getFont()->setItalic(true);
-$objConditional3->getStyle()->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_CURRENCY_EUR_SIMPLE);
-
-$conditionalStyles = $objPHPExcel->getActiveSheet()->getStyle('B2')->getConditionalStyles();
-array_push($conditionalStyles, $objConditional1);
-array_push($conditionalStyles, $objConditional2);
-array_push($conditionalStyles, $objConditional3);
-$objPHPExcel->getActiveSheet()->getStyle('B2')->setConditionalStyles($conditionalStyles);
-
-
-//	duplicate the conditional styles across a range of cells
-echo date('H:i:s') , " Duplicate the conditional formatting across a range of cells" , EOL;
-$objPHPExcel->getActiveSheet()->duplicateConditionalStyle(
-				$objPHPExcel->getActiveSheet()->getStyle('B2')->getConditionalStyles(),
-				'B3:B7'
-			  );
-
-
-// Set fonts
-echo date('H:i:s') , " Set fonts" , EOL;
-$objPHPExcel->getActiveSheet()->getStyle('A1:B1')->getFont()->setBold(true);
-//$objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setBold(true);
-$objPHPExcel->getActiveSheet()->getStyle('A7:B7')->getFont()->setBold(true);
-//$objPHPExcel->getActiveSheet()->getStyle('B7')->getFont()->setBold(true);
-
-
-// Set header and footer. When no different headers for odd/even are used, odd header is assumed.
-echo date('H:i:s') , " Set header/footer" , EOL;
-$objPHPExcel->getActiveSheet()->getHeaderFooter()->setOddHeader('&L&BPersonal cash register&RPrinted on &D');
-$objPHPExcel->getActiveSheet()->getHeaderFooter()->setOddFooter('&L&B' . $objPHPExcel->getProperties()->getTitle() . '&RPage &P of &N');
-
-
-// Set page orientation and size
-echo date('H:i:s') , " Set page orientation and size" , EOL;
-$objPHPExcel->getActiveSheet()->getPageSetup()->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_PORTRAIT);
-$objPHPExcel->getActiveSheet()->getPageSetup()->setPaperSize(PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4);
-
-
-// Rename worksheet
-echo date('H:i:s') , " Rename worksheet" , EOL;
-$objPHPExcel->getActiveSheet()->setTitle('Invoice');
-
-
-// Set active sheet index to the first sheet, so Excel opens this as the first sheet
-$objPHPExcel->setActiveSheetIndex(0);
-
-
-// Save Excel 2007 file
-echo date('H:i:s') , " Write to Excel2007 format" , EOL;
-$callStartTime = microtime(true);
-
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
-$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
-// Save Excel5 file
-echo date('H:i:s') , " Write to Excel5 format" , EOL;
-$callStartTime = microtime(true);
-
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
-$objWriter->save(str_replace('.php', '.xls', __FILE__));
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing file" , EOL;
-echo 'File has been created in ' , getcwd() , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/08conditionalformatting2.php b/htdocs/includes/phpoffice/phpexcel/Examples/08conditionalformatting2.php
deleted file mode 100644
index bbe084a26fb..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/08conditionalformatting2.php
+++ /dev/null
@@ -1,136 +0,0 @@
-<?php
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-date_default_timezone_set('Europe/London');
-
-/** Include PHPExcel */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
-
-
-// Create new PHPExcel object
-echo date('H:i:s') , " Create new PHPExcel object" , EOL;
-$objPHPExcel = new PHPExcel();
-
-// Set document properties
-echo date('H:i:s') , " Set document properties" , EOL;
-$objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
-							 ->setLastModifiedBy("Maarten Balliauw")
-							 ->setTitle("Office 2007 XLSX Test Document")
-							 ->setSubject("Office 2007 XLSX Test Document")
-							 ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
-							 ->setKeywords("office 2007 openxml php")
-							 ->setCategory("Test result file");
-
-
-// Create a first sheet, representing sales data
-echo date('H:i:s') , " Add some data" , EOL;
-$objPHPExcel->setActiveSheetIndex(0);
-$objPHPExcel->getActiveSheet()
-    ->setCellValue('A1', '-0.5')
-    ->setCellValue('A2', '-0.25')
-    ->setCellValue('A3', '0.0')
-    ->setCellValue('A4', '0.25')
-    ->setCellValue('A5', '0.5')
-    ->setCellValue('A6', '0.75')
-    ->setCellValue('A7', '1.0')
-    ->setCellValue('A8', '1.25')
-;
-
-$objPHPExcel->getActiveSheet()->getStyle('A1:A8')
-    ->getNumberFormat()
-    ->setFormatCode(
-        PHPExcel_Style_NumberFormat::FORMAT_PERCENTAGE_00
-    );
-
-
-// Add conditional formatting
-echo date('H:i:s') , " Add conditional formatting" , EOL;
-$objConditional1 = new PHPExcel_Style_Conditional();
-$objConditional1->setConditionType(PHPExcel_Style_Conditional::CONDITION_CELLIS)
-    ->setOperatorType(PHPExcel_Style_Conditional::OPERATOR_LESSTHAN)
-    ->addCondition('0');
-$objConditional1->getStyle()->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_RED);
-
-$objConditional3 = new PHPExcel_Style_Conditional();
-$objConditional3->setConditionType(PHPExcel_Style_Conditional::CONDITION_CELLIS)
-    ->setOperatorType(PHPExcel_Style_Conditional::OPERATOR_GREATERTHANOREQUAL)
-    ->addCondition('1');
-$objConditional3->getStyle()->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_GREEN);
-
-$conditionalStyles = $objPHPExcel->getActiveSheet()->getStyle('A1')->getConditionalStyles();
-array_push($conditionalStyles, $objConditional1);
-array_push($conditionalStyles, $objConditional3);
-$objPHPExcel->getActiveSheet()->getStyle('A1')->setConditionalStyles($conditionalStyles);
-
-
-//	duplicate the conditional styles across a range of cells
-echo date('H:i:s') , " Duplicate the conditional formatting across a range of cells" , EOL;
-$objPHPExcel->getActiveSheet()->duplicateConditionalStyle(
-				$objPHPExcel->getActiveSheet()->getStyle('A1')->getConditionalStyles(),
-				'A2:A8'
-			  );
-
-
-// Save Excel 2007 file
-echo date('H:i:s') , " Write to Excel2007 format" , EOL;
-$callStartTime = microtime(true);
-
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
-$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
-// Save Excel5 file
-echo date('H:i:s') , " Write to Excel5 format" , EOL;
-$callStartTime = microtime(true);
-
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
-$objWriter->save(str_replace('.php', '.xls', __FILE__));
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing file" , EOL;
-echo 'File has been created in ' , getcwd() , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/09pagebreaks.php b/htdocs/includes/phpoffice/phpexcel/Examples/09pagebreaks.php
deleted file mode 100644
index 6b8c185e3aa..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/09pagebreaks.php
+++ /dev/null
@@ -1,134 +0,0 @@
-<?php
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-date_default_timezone_set('Europe/London');
-
-/** Include PHPExcel */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
-
-
-// Create new PHPExcel object
-echo date('H:i:s') , " Create new PHPExcel object" , EOL;
-$objPHPExcel = new PHPExcel();
-
-// Set document properties
-echo date('H:i:s') , " Set document properties" , EOL;
-$objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
-							 ->setLastModifiedBy("Maarten Balliauw")
-							 ->setTitle("Office 2007 XLSX Test Document")
-							 ->setSubject("Office 2007 XLSX Test Document")
-							 ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
-							 ->setKeywords("office 2007 openxml php")
-							 ->setCategory("Test result file");
-
-
-// Create a first sheet
-echo date('H:i:s') , " Add data and page breaks" , EOL;
-$objPHPExcel->setActiveSheetIndex(0);
-$objPHPExcel->getActiveSheet()->setCellValue('A1', "Firstname")
-                              ->setCellValue('B1', "Lastname")
-                              ->setCellValue('C1', "Phone")
-                              ->setCellValue('D1', "Fax")
-                              ->setCellValue('E1', "Is Client ?");
-
-
-// Add data
-for ($i = 2; $i <= 50; $i++) {
-	$objPHPExcel->getActiveSheet()->setCellValue('A' . $i, "FName $i");
-	$objPHPExcel->getActiveSheet()->setCellValue('B' . $i, "LName $i");
-	$objPHPExcel->getActiveSheet()->setCellValue('C' . $i, "PhoneNo $i");
-	$objPHPExcel->getActiveSheet()->setCellValue('D' . $i, "FaxNo $i");
-	$objPHPExcel->getActiveSheet()->setCellValue('E' . $i, true);
-
-	// Add page breaks every 10 rows
-	if ($i % 10 == 0) {
-		// Add a page break
-		$objPHPExcel->getActiveSheet()->setBreak( 'A' . $i, PHPExcel_Worksheet::BREAK_ROW );
-	}
-}
-
-// Set active sheet index to the first sheet, so Excel opens this as the first sheet
-$objPHPExcel->setActiveSheetIndex(0);
-$objPHPExcel->getActiveSheet()->setTitle('Printing Options');
-
-// Set print headers
-$objPHPExcel->getActiveSheet()
-    ->getHeaderFooter()->setOddHeader('&C&24&K0000FF&B&U&A');
-$objPHPExcel->getActiveSheet()
-    ->getHeaderFooter()->setEvenHeader('&C&24&K0000FF&B&U&A');
-
-// Set print footers
-$objPHPExcel->getActiveSheet()
-    ->getHeaderFooter()->setOddFooter('&R&D &T&C&F&LPage &P / &N');
-$objPHPExcel->getActiveSheet()
-    ->getHeaderFooter()->setEvenFooter('&L&D &T&C&F&RPage &P / &N');
-
-
-
-// Save Excel 2007 file
-echo date('H:i:s') , " Write to Excel2007 format" , EOL;
-$callStartTime = microtime(true);
-
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
-$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-
-// Save Excel 95 file
-echo date('H:i:s') , " Write to Excel5 format" , EOL;
-$callStartTime = microtime(true);
-
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
-$objWriter->save(str_replace('.php', '.xls', __FILE__));
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing files" , EOL;
-echo 'Files have been created in ' , getcwd() , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/10autofilter-selection-1.php b/htdocs/includes/phpoffice/phpexcel/Examples/10autofilter-selection-1.php
deleted file mode 100644
index 7542a52955c..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/10autofilter-selection-1.php
+++ /dev/null
@@ -1,221 +0,0 @@
-<?php
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-date_default_timezone_set('Europe/London');
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-/** Include PHPExcel */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
-
-
-// Create new PHPExcel object
-echo date('H:i:s').' Create new PHPExcel object'.EOL;
-$objPHPExcel = new PHPExcel();
-
-// Set document properties
-echo date('H:i:s').' Set document properties'.EOL;
-$objPHPExcel->getProperties()->setCreator('Maarten Balliauw')
-							 ->setLastModifiedBy('Maarten Balliauw')
-							 ->setTitle('PHPExcel Test Document')
-							 ->setSubject('PHPExcel Test Document')
-							 ->setDescription('Test document for PHPExcel, generated using PHP classes.')
-							 ->setKeywords('office PHPExcel php')
-							 ->setCategory('Test result file');
-
-// Create the worksheet
-echo date('H:i:s').' Add data'.EOL;
-$objPHPExcel->setActiveSheetIndex(0);
-$objPHPExcel->getActiveSheet()->setCellValue('A1', 'Financial Year')
-                              ->setCellValue('B1', 'Financial Period')
-                              ->setCellValue('C1', 'Country')
-                              ->setCellValue('D1', 'Date')
-                              ->setCellValue('E1', 'Sales Value')
-                              ->setCellValue('F1', 'Expenditure')
-                              ;
-$startYear = $endYear = $currentYear = date('Y');
-$startYear--;
-$endYear++;
-
-$years = range($startYear,$endYear);
-$periods = range(1,12);
-$countries = array(	'United States',	'UK',		'France',	'Germany',
-					'Italy',			'Spain',	'Portugal',	'Japan'
-				  );
-
-$row = 2;
-foreach($years as $year) {
-	foreach($periods as $period) {
-		foreach($countries as $country) {
-			$endDays = date('t',mktime(0,0,0,$period,1,$year));
-			for($i = 1; $i <= $endDays; ++$i) {
-				$eDate = PHPExcel_Shared_Date::FormattedPHPToExcel(
-					$year,
-					$period,
-					$i
-				);
-				$value = rand(500,1000) * (1 + rand(-0.25,+0.25));
-				$salesValue = $invoiceValue = NULL;
-				$incomeOrExpenditure = rand(-1,1);
-				if ($incomeOrExpenditure == -1) {
-					$expenditure = rand(-500,-1000) * (1 + rand(-0.25,+0.25));
-					$income = NULL;
-				} elseif ($incomeOrExpenditure == 1) {
-					$expenditure = rand(-500,-1000) * (1 + rand(-0.25,+0.25));
-					$income = rand(500,1000) * (1 + rand(-0.25,+0.25));;
-				} else {
-					$expenditure = NULL;
-					$income = rand(500,1000) * (1 + rand(-0.25,+0.25));;
-				}
-				$dataArray = array(	$year,
-									$period,
-									$country,
-									$eDate,
-									$income,
-									$expenditure,
-								  );
-				$objPHPExcel->getActiveSheet()->fromArray($dataArray, NULL, 'A'.$row++);
-			}
-		}
-	}
-}
-$row--;
-
-
-// Set styling
-echo date('H:i:s').' Set styling'.EOL;
-$objPHPExcel->getActiveSheet()->getStyle('A1:F1')->getFont()->setBold(true);
-$objPHPExcel->getActiveSheet()->getStyle('A1:F1')->getAlignment()->setWrapText(TRUE);
-$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(12.5);
-$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(10.5);
-$objPHPExcel->getActiveSheet()->getStyle('D2:D'.$row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDD2);
-$objPHPExcel->getActiveSheet()->getStyle('E2:F'.$row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_CURRENCY_USD_SIMPLE);
-$objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(14);
-$objPHPExcel->getActiveSheet()->freezePane('A2');
-
-
-
-// Set autofilter range
-echo date('H:i:s').' Set autofilter range'.EOL;
-// Always include the complete filter range!
-// Excel does support setting only the caption
-// row, but that's not a best practise...
-$objPHPExcel->getActiveSheet()->setAutoFilter($objPHPExcel->getActiveSheet()->calculateWorksheetDimension());
-
-// Set active filters
-$autoFilter = $objPHPExcel->getActiveSheet()->getAutoFilter();
-echo date('H:i:s').' Set active filters'.EOL;
-// Filter the Country column on a filter value of countries beginning with the letter U (or Japan)
-//     We use * as a wildcard, so specify as U* and using a wildcard requires customFilter
-$autoFilter->getColumn('C')
-    ->setFilterType(PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_FILTERTYPE_CUSTOMFILTER)
-    ->createRule()
-		->setRule(
-			PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_EQUAL,
-			'u*'
-		)
-		->setRuleType(PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_CUSTOMFILTER);
-$autoFilter->getColumn('C')
-    ->createRule()
-		->setRule(
-			PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_EQUAL,
-			'japan'
-		)
-		->setRuleType(PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_CUSTOMFILTER);
-// Filter the Date column on a filter value of the first day of every period of the current year
-//	We us a dateGroup ruletype for this, although it is still a standard filter
-foreach($periods as $period) {
-	$endDate = date('t',mktime(0,0,0,$period,1,$currentYear));
-
-	$autoFilter->getColumn('D')
-	    ->setFilterType(PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_FILTERTYPE_FILTER)
-	    ->createRule()
-			->setRule(
-				PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_EQUAL,
-				array(
-					'year' => $currentYear,
-					'month' => $period,
-					'day' => $endDate
-				)
-			)
-			->setRuleType(PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP);
-}
-// Display only sales values that are blank
-//     Standard filter, operator equals, and value of NULL
-$autoFilter->getColumn('E')
-    ->setFilterType(PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_FILTERTYPE_FILTER)
-    ->createRule()
-		->setRule(
-			PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_EQUAL,
-			''
-		);
-
-
-// Set active sheet index to the first sheet, so Excel opens this as the first sheet
-$objPHPExcel->setActiveSheetIndex(0);
-
-
-// Save Excel 2007 file
-echo date('H:i:s') , " Write to Excel2007 format" , EOL;
-$callStartTime = microtime(true);
-
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
-$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-
-// Save Excel 95 file
-echo date('H:i:s') , " Write to Excel5 format" , EOL;
-$callStartTime = microtime(true);
-
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
-$objWriter->save(str_replace('.php', '.xls', __FILE__));
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-
-// Echo memory peak usage
-echo date('H:i:s').' Peak memory usage: '.(memory_get_peak_usage(true) / 1024 / 1024).' MB'.EOL;
-
-// Echo done
-echo date('H:i:s').' Done writing files'.EOL;
-echo 'Files have been created in ' , getcwd() , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/10autofilter-selection-2.php b/htdocs/includes/phpoffice/phpexcel/Examples/10autofilter-selection-2.php
deleted file mode 100644
index c89173f5c75..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/10autofilter-selection-2.php
+++ /dev/null
@@ -1,213 +0,0 @@
-<?php
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-date_default_timezone_set('Europe/London');
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-/** Include PHPExcel */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
-
-
-// Create new PHPExcel object
-echo date('H:i:s').' Create new PHPExcel object'.EOL;
-$objPHPExcel = new PHPExcel();
-
-// Set document properties
-echo date('H:i:s').' Set document properties'.EOL;
-$objPHPExcel->getProperties()->setCreator('Maarten Balliauw')
-							 ->setLastModifiedBy('Maarten Balliauw')
-							 ->setTitle('PHPExcel Test Document')
-							 ->setSubject('PHPExcel Test Document')
-							 ->setDescription('Test document for PHPExcel, generated using PHP classes.')
-							 ->setKeywords('office PHPExcel php')
-							 ->setCategory('Test result file');
-
-// Create the worksheet
-echo date('H:i:s').' Add data'.EOL;
-$objPHPExcel->setActiveSheetIndex(0);
-$objPHPExcel->getActiveSheet()->setCellValue('A1', 'Financial Year')
-                              ->setCellValue('B1', 'Financial Period')
-                              ->setCellValue('C1', 'Country')
-                              ->setCellValue('D1', 'Date')
-                              ->setCellValue('E1', 'Sales Value')
-                              ->setCellValue('F1', 'Expenditure')
-                              ;
-$startYear = $endYear = $currentYear = date('Y');
-$startYear--;
-$endYear++;
-
-$years = range($startYear,$endYear);
-$periods = range(1,12);
-$countries = array(	'United States',	'UK',		'France',	'Germany',
-					'Italy',			'Spain',	'Portugal',	'Japan'
-				  );
-
-$row = 2;
-foreach($years as $year) {
-	foreach($periods as $period) {
-		foreach($countries as $country) {
-			$endDays = date('t',mktime(0,0,0,$period,1,$year));
-			for($i = 1; $i <= $endDays; ++$i) {
-				$eDate = PHPExcel_Shared_Date::FormattedPHPToExcel(
-					$year,
-					$period,
-					$i
-				);
-				$value = rand(500,1000) * (1 + rand(-0.25,+0.25));
-				$salesValue = $invoiceValue = NULL;
-				$incomeOrExpenditure = rand(-1,1);
-				if ($incomeOrExpenditure == -1) {
-					$expenditure = rand(-500,-1000) * (1 + rand(-0.25,+0.25));
-					$income = NULL;
-				} elseif ($incomeOrExpenditure == 1) {
-					$expenditure = rand(-500,-1000) * (1 + rand(-0.25,+0.25));
-					$income = rand(500,1000) * (1 + rand(-0.25,+0.25));;
-				} else {
-					$expenditure = NULL;
-					$income = rand(500,1000) * (1 + rand(-0.25,+0.25));;
-				}
-				$dataArray = array(	$year,
-									$period,
-									$country,
-									$eDate,
-									$income,
-									$expenditure,
-								  );
-				$objPHPExcel->getActiveSheet()->fromArray($dataArray, NULL, 'A'.$row++);
-			}
-		}
-	}
-}
-$row--;
-
-
-// Set styling
-echo date('H:i:s').' Set styling'.EOL;
-$objPHPExcel->getActiveSheet()->getStyle('A1:F1')->getFont()->setBold(true);
-$objPHPExcel->getActiveSheet()->getStyle('A1:F1')->getAlignment()->setWrapText(TRUE);
-$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(12.5);
-$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(10.5);
-$objPHPExcel->getActiveSheet()->getStyle('D2:D'.$row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDD2);
-$objPHPExcel->getActiveSheet()->getStyle('E2:F'.$row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_CURRENCY_USD_SIMPLE);
-$objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(14);
-$objPHPExcel->getActiveSheet()->freezePane('A2');
-
-
-
-// Set autofilter range
-echo date('H:i:s').' Set autofilter range'.EOL;
-// Always include the complete filter range!
-// Excel does support setting only the caption
-// row, but that's not a best practise...
-$objPHPExcel->getActiveSheet()->setAutoFilter($objPHPExcel->getActiveSheet()->calculateWorksheetDimension());
-
-// Set active filters
-$autoFilter = $objPHPExcel->getActiveSheet()->getAutoFilter();
-echo date('H:i:s').' Set active filters'.EOL;
-// Filter the Country column on a filter value of Germany
-//	As it's just a simple value filter, we can use FILTERTYPE_FILTER
-$autoFilter->getColumn('C')
-    ->setFilterType(PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_FILTERTYPE_FILTER)
-    ->createRule()
-		->setRule(
-			PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_EQUAL,
-			'Germany'
-		);
-// Filter the Date column on a filter value of the year to date
-$autoFilter->getColumn('D')
-	->setFilterType(PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_FILTERTYPE_DYNAMICFILTER)
-	->createRule()
-		->setRule(
-			PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_EQUAL,
-			NULL,
-			PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMIC_YEARTODATE
-		)
-		->setRuleType(PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMICFILTER);
-// Display only sales values that are between 400 and 600
-$autoFilter->getColumn('E')
-    ->setFilterType(PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_FILTERTYPE_CUSTOMFILTER)
-    ->createRule()
-		->setRule(
-			PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_GREATERTHANOREQUAL,
-			400
-		)
-		->setRuleType(PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_CUSTOMFILTER);
-$autoFilter->getColumn('E')
-    ->setJoin(PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_COLUMN_JOIN_AND)
-    ->createRule()
-		->setRule(
-			PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_LESSTHANOREQUAL,
-			600
-		)
-		->setRuleType(PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_CUSTOMFILTER);
-
-
-// Set active sheet index to the first sheet, so Excel opens this as the first sheet
-$objPHPExcel->setActiveSheetIndex(0);
-
-
-// Save Excel 2007 file
-echo date('H:i:s') , " Write to Excel2007 format" , EOL;
-$callStartTime = microtime(true);
-
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
-$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-
-// Save Excel 95 file
-echo date('H:i:s') , " Write to Excel5 format" , EOL;
-$callStartTime = microtime(true);
-
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
-$objWriter->save(str_replace('.php', '.xls', __FILE__));
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-
-// Echo memory peak usage
-echo date('H:i:s').' Peak memory usage: '.(memory_get_peak_usage(true) / 1024 / 1024).' MB'.EOL;
-
-// Echo done
-echo date('H:i:s').' Done writing files'.EOL;
-echo 'Files have been created in ' , getcwd() , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/10autofilter-selection-display.php b/htdocs/includes/phpoffice/phpexcel/Examples/10autofilter-selection-display.php
deleted file mode 100644
index cf2b8acfd99..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/10autofilter-selection-display.php
+++ /dev/null
@@ -1,198 +0,0 @@
-<?php
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-date_default_timezone_set('Europe/London');
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-/** Include PHPExcel */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
-
-
-// Create new PHPExcel object
-echo date('H:i:s').' Create new PHPExcel object'.EOL;
-$objPHPExcel = new PHPExcel();
-
-// Set document properties
-echo date('H:i:s').' Set document properties'.EOL;
-$objPHPExcel->getProperties()->setCreator('Maarten Balliauw')
-							 ->setLastModifiedBy('Maarten Balliauw')
-							 ->setTitle('PHPExcel Test Document')
-							 ->setSubject('PHPExcel Test Document')
-							 ->setDescription('Test document for PHPExcel, generated using PHP classes.')
-							 ->setKeywords('office PHPExcel php')
-							 ->setCategory('Test result file');
-
-// Create the worksheet
-echo date('H:i:s').' Add data'.EOL;
-$objPHPExcel->setActiveSheetIndex(0);
-$objPHPExcel->getActiveSheet()->setCellValue('A1', 'Financial Year')
-                              ->setCellValue('B1', 'Financial Period')
-                              ->setCellValue('C1', 'Country')
-                              ->setCellValue('D1', 'Date')
-                              ->setCellValue('E1', 'Sales Value')
-                              ->setCellValue('F1', 'Expenditure')
-                              ;
-$startYear = $endYear = $currentYear = date('Y');
-$startYear--;
-$endYear++;
-
-$years = range($startYear,$endYear);
-$periods = range(1,12);
-$countries = array(	'United States',	'UK',		'France',	'Germany',
-					'Italy',			'Spain',	'Portugal',	'Japan'
-				  );
-
-$row = 2;
-foreach($years as $year) {
-	foreach($periods as $period) {
-		foreach($countries as $country) {
-			$endDays = date('t',mktime(0,0,0,$period,1,$year));
-			for($i = 1; $i <= $endDays; ++$i) {
-				$eDate = PHPExcel_Shared_Date::FormattedPHPToExcel(
-					$year,
-					$period,
-					$i
-				);
-				$value = rand(500,1000) * (1 + rand(-0.25,+0.25));
-				$salesValue = $invoiceValue = NULL;
-				$incomeOrExpenditure = rand(-1,1);
-				if ($incomeOrExpenditure == -1) {
-					$expenditure = rand(-500,-1000) * (1 + rand(-0.25,+0.25));
-					$income = NULL;
-				} elseif ($incomeOrExpenditure == 1) {
-					$expenditure = rand(-500,-1000) * (1 + rand(-0.25,+0.25));
-					$income = rand(500,1000) * (1 + rand(-0.25,+0.25));;
-				} else {
-					$expenditure = NULL;
-					$income = rand(500,1000) * (1 + rand(-0.25,+0.25));;
-				}
-				$dataArray = array(	$year,
-									$period,
-									$country,
-									$eDate,
-									$income,
-									$expenditure,
-								  );
-				$objPHPExcel->getActiveSheet()->fromArray($dataArray, NULL, 'A'.$row++);
-			}
-		}
-	}
-}
-$row--;
-
-
-// Set styling
-echo date('H:i:s').' Set styling'.EOL;
-$objPHPExcel->getActiveSheet()->getStyle('A1:F1')->getFont()->setBold(true);
-$objPHPExcel->getActiveSheet()->getStyle('A1:F1')->getAlignment()->setWrapText(TRUE);
-$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(12.5);
-$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(10.5);
-$objPHPExcel->getActiveSheet()->getStyle('D2:D'.$row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDD2);
-$objPHPExcel->getActiveSheet()->getStyle('E2:F'.$row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_CURRENCY_USD_SIMPLE);
-$objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(14);
-$objPHPExcel->getActiveSheet()->freezePane('A2');
-
-
-
-// Set autofilter range
-echo date('H:i:s').' Set autofilter range'.EOL;
-// Always include the complete filter range!
-// Excel does support setting only the caption
-// row, but that's not a best practise...
-$objPHPExcel->getActiveSheet()->setAutoFilter($objPHPExcel->getActiveSheet()->calculateWorksheetDimension());
-
-// Set active filters
-$autoFilter = $objPHPExcel->getActiveSheet()->getAutoFilter();
-echo date('H:i:s').' Set active filters'.EOL;
-// Filter the Country column on a filter value of countries beginning with the letter U (or Japan)
-//     We use * as a wildcard, so specify as U* and using a wildcard requires customFilter
-$autoFilter->getColumn('C')
-    ->setFilterType(PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_FILTERTYPE_CUSTOMFILTER)
-    ->createRule()
-		->setRule(
-			PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_EQUAL,
-			'u*'
-		)
-		->setRuleType(PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_CUSTOMFILTER);
-$autoFilter->getColumn('C')
-    ->createRule()
-		->setRule(
-			PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_EQUAL,
-			'japan'
-		)
-		->setRuleType(PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_CUSTOMFILTER);
-// Filter the Date column on a filter value of the first day of every period of the current year
-//	We us a dateGroup ruletype for this, although it is still a standard filter
-foreach($periods as $period) {
-	$endDate = date('t',mktime(0,0,0,$period,1,$currentYear));
-
-	$autoFilter->getColumn('D')
-	    ->setFilterType(PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_FILTERTYPE_FILTER)
-	    ->createRule()
-			->setRule(
-				PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_EQUAL,
-				array(
-					'year' => $currentYear,
-					'month' => $period,
-					'day' => $endDate
-				)
-			)
-			->setRuleType(PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP);
-}
-// Display only sales values that are blank
-//     Standard filter, operator equals, and value of NULL
-$autoFilter->getColumn('E')
-    ->setFilterType(PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_FILTERTYPE_FILTER)
-    ->createRule()
-		->setRule(
-			PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_EQUAL,
-			''
-		);
-
-// Execute filtering
-echo date('H:i:s').' Execute filtering'.EOL;
-$autoFilter->showHideRows();
-
-// Set active sheet index to the first sheet, so Excel opens this as the first sheet
-$objPHPExcel->setActiveSheetIndex(0);
-
-
-// Display Results of filtering
-echo date('H:i:s').' Display filtered rows'.EOL;
-foreach ($objPHPExcel->getActiveSheet()->getRowIterator() as $row) {
-	if ($objPHPExcel->getActiveSheet()->getRowDimension($row->getRowIndex())->getVisible()) {
-		echo '    Row number - ' , $row->getRowIndex() , ' ';
-		echo $objPHPExcel->getActiveSheet()->getCell('C'.$row->getRowIndex())->getValue(), ' ';
-		echo $objPHPExcel->getActiveSheet()->getCell('D'.$row->getRowIndex())->getFormattedValue(), ' ';
-		echo EOL;
-	}
-}
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/10autofilter.php b/htdocs/includes/phpoffice/phpexcel/Examples/10autofilter.php
deleted file mode 100644
index ea3f76343b8..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/10autofilter.php
+++ /dev/null
@@ -1,171 +0,0 @@
-<?php
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-date_default_timezone_set('Europe/London');
-
-/** Include PHPExcel */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
-
-// Create new PHPExcel object
-echo date('H:i:s').' Create new PHPExcel object'.EOL;
-$objPHPExcel = new PHPExcel();
-
-// Set document properties
-echo date('H:i:s').' Set document properties'.EOL;
-$objPHPExcel->getProperties()->setCreator('Maarten Balliauw')
-							 ->setLastModifiedBy('Maarten Balliauw')
-							 ->setTitle('PHPExcel Test Document')
-							 ->setSubject('PHPExcel Test Document')
-							 ->setDescription('Test document for PHPExcel, generated using PHP classes.')
-							 ->setKeywords('office PHPExcel php')
-							 ->setCategory('Test result file');
-
-// Create the worksheet
-echo date('H:i:s').' Add data'.EOL;
-$objPHPExcel->setActiveSheetIndex(0);
-$objPHPExcel->getActiveSheet()->setCellValue('A1', 'Year')
-                              ->setCellValue('B1', 'Quarter')
-                              ->setCellValue('C1', 'Country')
-                              ->setCellValue('D1', 'Sales');
-
-$dataArray = array(array('2010',	'Q1',	'United States',	790),
-                   array('2010',	'Q2',	'United States',	730),
-                   array('2010',	'Q3',	'United States',	860),
-                   array('2010',	'Q4',	'United States',	850),
-                   array('2011',	'Q1',	'United States',	800),
-                   array('2011',	'Q2',	'United States',	700),
-                   array('2011',	'Q3',	'United States',	900),
-                   array('2011',	'Q4',	'United States',	950),
-                   array('2010',	'Q1',	'Belgium',			380),
-                   array('2010',	'Q2',	'Belgium',			390),
-                   array('2010',	'Q3',	'Belgium',			420),
-                   array('2010',	'Q4',	'Belgium',			460),
-                   array('2011',	'Q1',	'Belgium',			400),
-                   array('2011',	'Q2',	'Belgium',			350),
-                   array('2011',	'Q3',	'Belgium',			450),
-                   array('2011',	'Q4',	'Belgium',			500),
-                   array('2010',	'Q1',	'UK',				690),
-                   array('2010',	'Q2',	'UK',				610),
-                   array('2010',	'Q3',	'UK',				620),
-                   array('2010',	'Q4',	'UK',				600),
-                   array('2011',	'Q1',	'UK',				720),
-                   array('2011',	'Q2',	'UK',				650),
-                   array('2011',	'Q3',	'UK',				580),
-                   array('2011',	'Q4',	'UK',				510),
-                   array('2010',	'Q1',	'France',			510),
-                   array('2010',	'Q2',	'France',			490),
-                   array('2010',	'Q3',	'France',			460),
-                   array('2010',	'Q4',	'France', 			590),
-                   array('2011',	'Q1',	'France',			620),
-                   array('2011',	'Q2',	'France',			650),
-                   array('2011',	'Q3',	'France',			415),
-                   array('2011',	'Q4',	'France', 			570),
-                   array('2010',	'Q1',	'Germany',			720),
-                   array('2010',	'Q2',	'Germany',			680),
-                   array('2010',	'Q3',	'Germany',			640),
-                   array('2010',	'Q4',	'Germany',			660),
-                   array('2011',	'Q1',	'Germany',			680),
-                   array('2011',	'Q2',	'Germany',			620),
-                   array('2011',	'Q3',	'Germany',			710),
-                   array('2011',	'Q4',	'Germany',			690),
-                   array('2010',	'Q1',	'Spain',			510),
-                   array('2010',	'Q2',	'Spain',			490),
-                   array('2010',	'Q3',	'Spain',			470),
-                   array('2010',	'Q4',	'Spain',			420),
-                   array('2011',	'Q1',	'Spain',			460),
-                   array('2011',	'Q2',	'Spain',			390),
-                   array('2011',	'Q3',	'Spain',			430),
-                   array('2011',	'Q4',	'Spain',			415),
-                   array('2010',	'Q1',	'Italy',			440),
-                   array('2010',	'Q2',	'Italy',			410),
-                   array('2010',	'Q3',	'Italy',			420),
-                   array('2010',	'Q4',	'Italy',			450),
-                   array('2011',	'Q1',	'Italy',			430),
-                   array('2011',	'Q2',	'Italy',			370),
-                   array('2011',	'Q3',	'Italy',			350),
-                   array('2011',	'Q4',	'Italy',			335),
-                  );
-$objPHPExcel->getActiveSheet()->fromArray($dataArray, NULL, 'A2');
-
-// Set title row bold
-echo date('H:i:s').' Set title row bold'.EOL;
-$objPHPExcel->getActiveSheet()->getStyle('A1:D1')->getFont()->setBold(true);
-
-// Set autofilter
-echo date('H:i:s').' Set autofilter'.EOL;
-// Always include the complete filter range!
-// Excel does support setting only the caption
-// row, but that's not a best practise...
-$objPHPExcel->getActiveSheet()->setAutoFilter($objPHPExcel->getActiveSheet()->calculateWorksheetDimension());
-
-// Set active sheet index to the first sheet, so Excel opens this as the first sheet
-$objPHPExcel->setActiveSheetIndex(0);
-
-
-// Save Excel 2007 file
-echo date('H:i:s') , " Write to Excel2007 format" , EOL;
-$callStartTime = microtime(true);
-
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
-$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-
-// Save Excel 95 file
-echo date('H:i:s') , " Write to Excel5 format" , EOL;
-$callStartTime = microtime(true);
-
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
-$objWriter->save(str_replace('.php', '.xls', __FILE__));
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-
-// Echo memory peak usage
-echo date('H:i:s').' Peak memory usage: '.(memory_get_peak_usage(true) / 1024 / 1024).' MB'.EOL;
-
-// Echo done
-echo date('H:i:s').' Done writing files'.EOL;
-echo 'Files have been created in ' , getcwd() , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/11documentsecurity-xls.php b/htdocs/includes/phpoffice/phpexcel/Examples/11documentsecurity-xls.php
deleted file mode 100644
index b104c7b8ac3..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/11documentsecurity-xls.php
+++ /dev/null
@@ -1,109 +0,0 @@
-<?php
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-date_default_timezone_set('Europe/London');
-
-/** Include PHPExcel */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
-
-
-// Create new PHPExcel object
-echo date('H:i:s') , " Create new PHPExcel object" , EOL;
-$objPHPExcel = new PHPExcel();
-
-// Set document properties
-echo date('H:i:s') , " Set document properties" , EOL;
-$objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
-							 ->setLastModifiedBy("Maarten Balliauw")
-							 ->setTitle("Office 2007 XLSX Test Document")
-							 ->setSubject("Office 2007 XLSX Test Document")
-							 ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
-							 ->setKeywords("office 2007 openxml php")
-							 ->setCategory("Test result file");
-
-
-// Add some data
-echo date('H:i:s') , " Add some data" , EOL;
-$objPHPExcel->setActiveSheetIndex(0);
-$objPHPExcel->getActiveSheet()->setCellValue('A1', 'Hello');
-$objPHPExcel->getActiveSheet()->setCellValue('B2', 'world!');
-$objPHPExcel->getActiveSheet()->setCellValue('C1', 'Hello');
-$objPHPExcel->getActiveSheet()->setCellValue('D2', 'world!');
-
-// Rename worksheet
-echo date('H:i:s') , " Rename worksheet" , EOL;
-$objPHPExcel->getActiveSheet()->setTitle('Simple');
-
-
-// Set document security
-echo date('H:i:s') , " Set document security" , EOL;
-$objPHPExcel->getSecurity()->setLockWindows(true);
-$objPHPExcel->getSecurity()->setLockStructure(true);
-$objPHPExcel->getSecurity()->setWorkbookPassword("PHPExcel");
-
-
-// Set sheet security
-echo date('H:i:s') , " Set sheet security" , EOL;
-$objPHPExcel->getActiveSheet()->getProtection()->setPassword('PHPExcel');
-$objPHPExcel->getActiveSheet()->getProtection()->setSheet(true); // This should be enabled in order to enable any of the following!
-$objPHPExcel->getActiveSheet()->getProtection()->setSort(true);
-$objPHPExcel->getActiveSheet()->getProtection()->setInsertRows(true);
-$objPHPExcel->getActiveSheet()->getProtection()->setFormatCells(true);
-
-
-// Set active sheet index to the first sheet, so Excel opens this as the first sheet
-$objPHPExcel->setActiveSheetIndex(0);
-
-
-// Save Excel 95 file
-echo date('H:i:s') , " Write to Excel5 format" , EOL;
-$callStartTime = microtime(true);
-
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
-$objWriter->save(str_replace('.php', '.xls', __FILE__));
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing file" , EOL;
-echo 'File has been created in ' , getcwd() , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/11documentsecurity.php b/htdocs/includes/phpoffice/phpexcel/Examples/11documentsecurity.php
deleted file mode 100644
index 96f5d99300d..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/11documentsecurity.php
+++ /dev/null
@@ -1,109 +0,0 @@
-<?php
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-date_default_timezone_set('Europe/London');
-
-/** Include PHPExcel */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
-
-
-// Create new PHPExcel object
-echo date('H:i:s') , " Create new PHPExcel object" , EOL;
-$objPHPExcel = new PHPExcel();
-
-// Set document properties
-echo date('H:i:s') , " Set document properties" , EOL;
-$objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
-							 ->setLastModifiedBy("Maarten Balliauw")
-							 ->setTitle("Office 2007 XLSX Test Document")
-							 ->setSubject("Office 2007 XLSX Test Document")
-							 ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
-							 ->setKeywords("office 2007 openxml php")
-							 ->setCategory("Test result file");
-
-
-// Add some data
-echo date('H:i:s') , " Add some data" , EOL;
-$objPHPExcel->setActiveSheetIndex(0);
-$objPHPExcel->getActiveSheet()->setCellValue('A1', 'Hello');
-$objPHPExcel->getActiveSheet()->setCellValue('B2', 'world!');
-$objPHPExcel->getActiveSheet()->setCellValue('C1', 'Hello');
-$objPHPExcel->getActiveSheet()->setCellValue('D2', 'world!');
-
-// Rename worksheet
-echo date('H:i:s') , " Rename worksheet" , EOL;
-$objPHPExcel->getActiveSheet()->setTitle('Simple');
-
-
-// Set document security
-echo date('H:i:s') , " Set document security" , EOL;
-$objPHPExcel->getSecurity()->setLockWindows(true);
-$objPHPExcel->getSecurity()->setLockStructure(true);
-$objPHPExcel->getSecurity()->setWorkbookPassword("PHPExcel");
-
-
-// Set sheet security
-echo date('H:i:s') , " Set sheet security" , EOL;
-$objPHPExcel->getActiveSheet()->getProtection()->setPassword('PHPExcel');
-$objPHPExcel->getActiveSheet()->getProtection()->setSheet(true); // This should be enabled in order to enable any of the following!
-$objPHPExcel->getActiveSheet()->getProtection()->setSort(true);
-$objPHPExcel->getActiveSheet()->getProtection()->setInsertRows(true);
-$objPHPExcel->getActiveSheet()->getProtection()->setFormatCells(true);
-
-
-// Set active sheet index to the first sheet, so Excel opens this as the first sheet
-$objPHPExcel->setActiveSheetIndex(0);
-
-
-// Save Excel 2007 file
-echo date('H:i:s') , " Write to Excel2007 format" , EOL;
-$callStartTime = microtime(true);
-
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
-$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing file" , EOL;
-echo 'File has been created in ' , getcwd() , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/12cellProtection.php b/htdocs/includes/phpoffice/phpexcel/Examples/12cellProtection.php
deleted file mode 100644
index 77bfee4ce4b..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/12cellProtection.php
+++ /dev/null
@@ -1,107 +0,0 @@
-<?php
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-date_default_timezone_set('Europe/London');
-
-/** Include PHPExcel */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
-
-
-// Create new PHPExcel object
-echo date('H:i:s') , " Create new PHPExcel object" , EOL;
-$objPHPExcel = new PHPExcel();
-
-// Set document properties
-echo date('H:i:s') , " Set document properties" , EOL;
-$objPHPExcel->getProperties()->setCreator("Mark Baker")
-							 ->setLastModifiedBy("Mark Baker")
-							 ->setTitle("Office 2007 XLSX Test Document")
-							 ->setSubject("Office 2007 XLSX Test Document")
-							 ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
-							 ->setKeywords("office 2007 openxml php")
-							 ->setCategory("Test result file");
-
-
-// Add some data
-echo date('H:i:s') , " Add some data" , EOL;
-$objPHPExcel->setActiveSheetIndex(0);
-$objPHPExcel->getActiveSheet()->setCellValue('A1', 'Crouching');
-$objPHPExcel->getActiveSheet()->setCellValue('B1', 'Tiger');
-$objPHPExcel->getActiveSheet()->setCellValue('A2', 'Hidden');
-$objPHPExcel->getActiveSheet()->setCellValue('B2', 'Dragon');
-
-// Rename worksheet
-echo date('H:i:s') , " Rename worksheet" , EOL;
-$objPHPExcel->getActiveSheet()->setTitle('Simple');
-
-
-// Set document security
-echo date('H:i:s') , " Set cell protection" , EOL;
-
-
-// Set sheet security
-echo date('H:i:s') , " Set sheet security" , EOL;
-$objPHPExcel->getActiveSheet()->getProtection()->setSheet(true);
-$objPHPExcel->getActiveSheet()
-	->getStyle('A2:B2')
-	->getProtection()->setLocked(
-		PHPExcel_Style_Protection::PROTECTION_UNPROTECTED
-	);
-
-
-// Set active sheet index to the first sheet, so Excel opens this as the first sheet
-$objPHPExcel->setActiveSheetIndex(0);
-
-
-// Save Excel 2007 file
-echo date('H:i:s') , " Write to Excel2007 format" , EOL;
-$callStartTime = microtime(true);
-
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
-$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing file" , EOL;
-echo 'File has been created in ' , getcwd() , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/13calculation.php b/htdocs/includes/phpoffice/phpexcel/Examples/13calculation.php
deleted file mode 100644
index 01e63ea7751..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/13calculation.php
+++ /dev/null
@@ -1,235 +0,0 @@
-<?php
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-date_default_timezone_set('Europe/London');
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-date_default_timezone_set('Europe/London');
-mt_srand(1234567890);
-
-/** Include PHPExcel */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
-
-
-// List functions
-echo date('H:i:s') , " List implemented functions" , EOL;
-$objCalc = PHPExcel_Calculation::getInstance();
-print_r($objCalc->listFunctionNames());
-
-// Create new PHPExcel object
-echo date('H:i:s') , " Create new PHPExcel object" , EOL;
-$objPHPExcel = new PHPExcel();
-
-// Add some data, we will use some formulas here
-echo date('H:i:s') , " Add some data and formulas" , EOL;
-$objPHPExcel->getActiveSheet()->setCellValue('A14', 'Count:')
-                              ->setCellValue('A15', 'Sum:')
-                              ->setCellValue('A16', 'Max:')
-                              ->setCellValue('A17', 'Min:')
-                              ->setCellValue('A18', 'Average:')
-                              ->setCellValue('A19', 'Median:')
-                              ->setCellValue('A20', 'Mode:');
-
-$objPHPExcel->getActiveSheet()->setCellValue('A22', 'CountA:')
-                              ->setCellValue('A23', 'MaxA:')
-                              ->setCellValue('A24', 'MinA:');
-
-$objPHPExcel->getActiveSheet()->setCellValue('A26', 'StDev:')
-                              ->setCellValue('A27', 'StDevA:')
-                              ->setCellValue('A28', 'StDevP:')
-                              ->setCellValue('A29', 'StDevPA:');
-
-$objPHPExcel->getActiveSheet()->setCellValue('A31', 'DevSq:')
-                              ->setCellValue('A32', 'Var:')
-                              ->setCellValue('A33', 'VarA:')
-                              ->setCellValue('A34', 'VarP:')
-                              ->setCellValue('A35', 'VarPA:');
-
-$objPHPExcel->getActiveSheet()->setCellValue('A37', 'Date:');
-
-
-$objPHPExcel->getActiveSheet()->setCellValue('B1', 'Range 1')
-                              ->setCellValue('B2', 2)
-                              ->setCellValue('B3', 8)
-                              ->setCellValue('B4', 10)
-                              ->setCellValue('B5', True)
-                              ->setCellValue('B6', False)
-                              ->setCellValue('B7', 'Text String')
-                              ->setCellValue('B9', '22')
-                              ->setCellValue('B10', 4)
-                              ->setCellValue('B11', 6)
-                              ->setCellValue('B12', 12);
-
-$objPHPExcel->getActiveSheet()->setCellValue('B14', '=COUNT(B2:B12)')
-                              ->setCellValue('B15', '=SUM(B2:B12)')
-                              ->setCellValue('B16', '=MAX(B2:B12)')
-                              ->setCellValue('B17', '=MIN(B2:B12)')
-                              ->setCellValue('B18', '=AVERAGE(B2:B12)')
-                              ->setCellValue('B19', '=MEDIAN(B2:B12)')
-                              ->setCellValue('B20', '=MODE(B2:B12)');
-
-$objPHPExcel->getActiveSheet()->setCellValue('B22', '=COUNTA(B2:B12)')
-                              ->setCellValue('B23', '=MAXA(B2:B12)')
-                              ->setCellValue('B24', '=MINA(B2:B12)');
-
-$objPHPExcel->getActiveSheet()->setCellValue('B26', '=STDEV(B2:B12)')
-                              ->setCellValue('B27', '=STDEVA(B2:B12)')
-                              ->setCellValue('B28', '=STDEVP(B2:B12)')
-                              ->setCellValue('B29', '=STDEVPA(B2:B12)');
-
-$objPHPExcel->getActiveSheet()->setCellValue('B31', '=DEVSQ(B2:B12)')
-                              ->setCellValue('B32', '=VAR(B2:B12)')
-                              ->setCellValue('B33', '=VARA(B2:B12)')
-                              ->setCellValue('B34', '=VARP(B2:B12)')
-                              ->setCellValue('B35', '=VARPA(B2:B12)');
-
-$objPHPExcel->getActiveSheet()->setCellValue('B37', '=DATE(2007, 12, 21)')
-                              ->setCellValue('B38', '=DATEDIF( DATE(2007, 12, 21), DATE(2007, 12, 22), "D" )')
-                              ->setCellValue('B39', '=DATEVALUE("01-Feb-2006 10:06 AM")')
-                              ->setCellValue('B40', '=DAY( DATE(2006, 1, 2) )')
-                              ->setCellValue('B41', '=DAYS360( DATE(2002, 2, 3), DATE(2005, 5, 31) )');
-
-
-$objPHPExcel->getActiveSheet()->setCellValue('C1', 'Range 2')
-                              ->setCellValue('C2', 1)
-                              ->setCellValue('C3', 2)
-                              ->setCellValue('C4', 2)
-                              ->setCellValue('C5', 3)
-                              ->setCellValue('C6', 3)
-                              ->setCellValue('C7', 3)
-                              ->setCellValue('C8', '0')
-                              ->setCellValue('C9', 4)
-                              ->setCellValue('C10', 4)
-                              ->setCellValue('C11', 4)
-                              ->setCellValue('C12', 4);
-
-$objPHPExcel->getActiveSheet()->setCellValue('C14', '=COUNT(C2:C12)')
-                              ->setCellValue('C15', '=SUM(C2:C12)')
-                              ->setCellValue('C16', '=MAX(C2:C12)')
-                              ->setCellValue('C17', '=MIN(C2:C12)')
-                              ->setCellValue('C18', '=AVERAGE(C2:C12)')
-                              ->setCellValue('C19', '=MEDIAN(C2:C12)')
-                              ->setCellValue('C20', '=MODE(C2:C12)');
-
-$objPHPExcel->getActiveSheet()->setCellValue('C22', '=COUNTA(C2:C12)')
-                              ->setCellValue('C23', '=MAXA(C2:C12)')
-                              ->setCellValue('C24', '=MINA(C2:C12)');
-
-$objPHPExcel->getActiveSheet()->setCellValue('C26', '=STDEV(C2:C12)')
-                              ->setCellValue('C27', '=STDEVA(C2:C12)')
-                              ->setCellValue('C28', '=STDEVP(C2:C12)')
-                              ->setCellValue('C29', '=STDEVPA(C2:C12)');
-
-$objPHPExcel->getActiveSheet()->setCellValue('C31', '=DEVSQ(C2:C12)')
-                              ->setCellValue('C32', '=VAR(C2:C12)')
-                              ->setCellValue('C33', '=VARA(C2:C12)')
-                              ->setCellValue('C34', '=VARP(C2:C12)')
-                              ->setCellValue('C35', '=VARPA(C2:C12)');
-
-
-$objPHPExcel->getActiveSheet()->setCellValue('D1', 'Range 3')
-                              ->setCellValue('D2', 2)
-                              ->setCellValue('D3', 3)
-                              ->setCellValue('D4', 4);
-
-$objPHPExcel->getActiveSheet()->setCellValue('D14', '=((D2 * D3) + D4) & " should be 10"');
-
-$objPHPExcel->getActiveSheet()->setCellValue('E12', 'Other functions')
-                              ->setCellValue('E14', '=PI()')
-                              ->setCellValue('E15', '=RAND()')
-                              ->setCellValue('E16', '=RANDBETWEEN(5, 10)');
-
-$objPHPExcel->getActiveSheet()->setCellValue('E17', 'Count of both ranges:')
-                              ->setCellValue('F17', '=COUNT(B2:C12)');
-
-$objPHPExcel->getActiveSheet()->setCellValue('E18', 'Total of both ranges:')
-                              ->setCellValue('F18', '=SUM(B2:C12)');
-
-$objPHPExcel->getActiveSheet()->setCellValue('E19', 'Maximum of both ranges:')
-                              ->setCellValue('F19', '=MAX(B2:C12)');
-
-$objPHPExcel->getActiveSheet()->setCellValue('E20', 'Minimum of both ranges:')
-                              ->setCellValue('F20', '=MIN(B2:C12)');
-
-$objPHPExcel->getActiveSheet()->setCellValue('E21', 'Average of both ranges:')
-                              ->setCellValue('F21', '=AVERAGE(B2:C12)');
-
-$objPHPExcel->getActiveSheet()->setCellValue('E22', 'Median of both ranges:')
-                              ->setCellValue('F22', '=MEDIAN(B2:C12)');
-
-$objPHPExcel->getActiveSheet()->setCellValue('E23', 'Mode of both ranges:')
-                              ->setCellValue('F23', '=MODE(B2:C12)');
-
-
-// Calculated data
-echo date('H:i:s') , " Calculated data" , EOL;
-for ($col = 'B'; $col != 'G'; ++$col) {
-    for($row = 14; $row <= 41; ++$row) {
-        if ((!is_null($formula = $objPHPExcel->getActiveSheet()->getCell($col.$row)->getValue())) &&
-			($formula[0] == '=')) {
-            echo 'Value of ' , $col , $row , ' [' , $formula , ']: ' ,
-                               $objPHPExcel->getActiveSheet()->getCell($col.$row)->getCalculatedValue() . EOL;
-        }
-    }
-}
-
-
-// Save Excel 2007 file
-echo date('H:i:s') , " Write to Excel2007 format" , EOL;
-$callStartTime = microtime(true);
-
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
-
-//
-//  If we set Pre Calculated Formulas to true then PHPExcel will calculate all formulae in the
-//    workbook before saving. This adds time and memory overhead, and can cause some problems with formulae
-//    using functions or features (such as array formulae) that aren't yet supported by the calculation engine
-//  If the value is false (the default) for the Excel2007 Writer, then MS Excel (or the application used to
-//    open the file) will need to recalculate values itself to guarantee that the correct results are available.
-//
-//$objWriter->setPreCalculateFormulas(true);
-$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing file" , EOL;
-echo 'File has been created in ' , getcwd() , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/14excel5.php b/htdocs/includes/phpoffice/phpexcel/Examples/14excel5.php
deleted file mode 100644
index 3fd3d69f328..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/14excel5.php
+++ /dev/null
@@ -1,63 +0,0 @@
-<?php
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-date_default_timezone_set('Europe/London');
-
-include "05featuredemo.inc.php";
-
-/** PHPExcel_IOFactory */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel/IOFactory.php';
-
-
-// Save Excel 95 file
-echo date('H:i:s') , " Write to Excel5 format" , EOL;
-$callStartTime = microtime(true);
-
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
-$objWriter->save(str_replace('.php', '.xls', __FILE__));
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing file" , EOL;
-echo 'File has been created in ' , getcwd() , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/15datavalidation-xls.php b/htdocs/includes/phpoffice/phpexcel/Examples/15datavalidation-xls.php
deleted file mode 100644
index 2f8fa5ee9d8..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/15datavalidation-xls.php
+++ /dev/null
@@ -1,142 +0,0 @@
-<?php
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-date_default_timezone_set('Europe/London');
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-date_default_timezone_set('Europe/London');
-
-/** Include PHPExcel */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
-
-
-// Create new PHPExcel object
-echo date('H:i:s') , " Create new PHPExcel object" , EOL;
-$objPHPExcel = new PHPExcel();
-
-
-// Set document properties
-echo date('H:i:s') , " Set document properties" , EOL;
-$objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
-							 ->setLastModifiedBy("Maarten Balliauw")
-							 ->setTitle("Office 2007 XLSX Test Document")
-							 ->setSubject("Office 2007 XLSX Test Document")
-							 ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
-							 ->setKeywords("office 2007 openxml php")
-							 ->setCategory("Test result file");
-
-
-// Create a first sheet
-echo date('H:i:s') , " Add data" , EOL;
-$objPHPExcel->setActiveSheetIndex(0);
-$objPHPExcel->getActiveSheet()->setCellValue('A1', "Cell B3 and B5 contain data validation...")
-                              ->setCellValue('A3', "Number:")
-                              ->setCellValue('B3', "10")
-                              ->setCellValue('A5', "List:")
-                              ->setCellValue('B5', "Item A")
-                              ->setCellValue('A7', "List #2:")
-                              ->setCellValue('B7', "Item #2")
-                              ->setCellValue('D2', "Item #1")
-                              ->setCellValue('D3', "Item #2")
-                              ->setCellValue('D4', "Item #3")
-                              ->setCellValue('D5', "Item #4")
-                              ->setCellValue('D6', "Item #5")
-                              ;
-
-
-// Set data validation
-echo date('H:i:s') , " Set data validation" , EOL;
-$objValidation = $objPHPExcel->getActiveSheet()->getCell('B3')->getDataValidation();
-$objValidation->setType( PHPExcel_Cell_DataValidation::TYPE_WHOLE );
-$objValidation->setErrorStyle( PHPExcel_Cell_DataValidation::STYLE_STOP );
-$objValidation->setAllowBlank(true);
-$objValidation->setShowInputMessage(true);
-$objValidation->setShowErrorMessage(true);
-$objValidation->setErrorTitle('Input error');
-$objValidation->setError('Only numbers between 10 and 20 are allowed!');
-$objValidation->setPromptTitle('Allowed input');
-$objValidation->setPrompt('Only numbers between 10 and 20 are allowed.');
-$objValidation->setFormula1(10);
-$objValidation->setFormula2(20);
-
-$objValidation = $objPHPExcel->getActiveSheet()->getCell('B5')->getDataValidation();
-$objValidation->setType( PHPExcel_Cell_DataValidation::TYPE_LIST );
-$objValidation->setErrorStyle( PHPExcel_Cell_DataValidation::STYLE_INFORMATION );
-$objValidation->setAllowBlank(false);
-$objValidation->setShowInputMessage(true);
-$objValidation->setShowErrorMessage(true);
-$objValidation->setShowDropDown(true);
-$objValidation->setErrorTitle('Input error');
-$objValidation->setError('Value is not in list.');
-$objValidation->setPromptTitle('Pick from list');
-$objValidation->setPrompt('Please pick a value from the drop-down list.');
-$objValidation->setFormula1('"Item A,Item B,Item C"');	// Make sure to put the list items between " and "  !!!
-
-$objValidation = $objPHPExcel->getActiveSheet()->getCell('B7')->getDataValidation();
-$objValidation->setType( PHPExcel_Cell_DataValidation::TYPE_LIST );
-$objValidation->setErrorStyle( PHPExcel_Cell_DataValidation::STYLE_INFORMATION );
-$objValidation->setAllowBlank(false);
-$objValidation->setShowInputMessage(true);
-$objValidation->setShowErrorMessage(true);
-$objValidation->setShowDropDown(true);
-$objValidation->setErrorTitle('Input error');
-$objValidation->setError('Value is not in list.');
-$objValidation->setPromptTitle('Pick from list');
-$objValidation->setPrompt('Please pick a value from the drop-down list.');
-$objValidation->setFormula1('$D$2:$D$6');	// Make sure NOT to put a range of cells or a formula between " and "  !!!
-
-
-// Set active sheet index to the first sheet, so Excel opens this as the first sheet
-$objPHPExcel->setActiveSheetIndex(0);
-
-
-// Save Excel 95 file
-echo date('H:i:s') , " Write to Excel5 format" , EOL;
-$callStartTime = microtime(true);
-
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
-$objWriter->save(str_replace('.php', '.xls', __FILE__));
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing file" , EOL;
-echo 'File has been created in ' , getcwd() , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/15datavalidation.php b/htdocs/includes/phpoffice/phpexcel/Examples/15datavalidation.php
deleted file mode 100644
index 932bacc6fa0..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/15datavalidation.php
+++ /dev/null
@@ -1,143 +0,0 @@
-<?php
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-date_default_timezone_set('Europe/London');
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-date_default_timezone_set('Europe/London');
-
-/** Include PHPExcel */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
-
-
-// Create new PHPExcel object
-echo date('H:i:s') , " Create new PHPExcel object" , EOL;
-$objPHPExcel = new PHPExcel();
-
-
-// Set document properties
-echo date('H:i:s') , " Set document properties" , EOL;
-$objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
-							 ->setLastModifiedBy("Maarten Balliauw")
-							 ->setTitle("Office 2007 XLSX Test Document")
-							 ->setSubject("Office 2007 XLSX Test Document")
-							 ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
-							 ->setKeywords("office 2007 openxml php")
-							 ->setCategory("Test result file");
-
-
-// Create a first sheet
-echo date('H:i:s') , " Add data" , EOL;
-$objPHPExcel->setActiveSheetIndex(0);
-$objPHPExcel->getActiveSheet()->setCellValue('A1', "Cell B3 and B5 contain data validation...")
-                              ->setCellValue('A3', "Number:")
-                              ->setCellValue('B3', "10")
-                              ->setCellValue('A5', "List:")
-                              ->setCellValue('B5', "Item A")
-                              ->setCellValue('A7', "List #2:")
-                              ->setCellValue('B7', "Item #2")
-                              ->setCellValue('D2', "Item #1")
-                              ->setCellValue('D3', "Item #2")
-                              ->setCellValue('D4', "Item #3")
-                              ->setCellValue('D5', "Item #4")
-                              ->setCellValue('D6', "Item #5")
-                              ;
-
-
-// Set data validation
-echo date('H:i:s') , " Set data validation" , EOL;
-$objValidation = $objPHPExcel->getActiveSheet()->getCell('B3')->getDataValidation();
-$objValidation->setType( PHPExcel_Cell_DataValidation::TYPE_WHOLE );
-$objValidation->setErrorStyle( PHPExcel_Cell_DataValidation::STYLE_STOP );
-$objValidation->setAllowBlank(true);
-$objValidation->setShowInputMessage(true);
-$objValidation->setShowErrorMessage(true);
-$objValidation->setErrorTitle('Input error');
-$objValidation->setError('Only numbers between 10 and 20 are allowed!');
-$objValidation->setPromptTitle('Allowed input');
-$objValidation->setPrompt('Only numbers between 10 and 20 are allowed.');
-$objValidation->setFormula1(10);
-$objValidation->setFormula2(20);
-
-$objValidation = $objPHPExcel->getActiveSheet()->getCell('B5')->getDataValidation();
-$objValidation->setType( PHPExcel_Cell_DataValidation::TYPE_LIST );
-$objValidation->setErrorStyle( PHPExcel_Cell_DataValidation::STYLE_INFORMATION );
-$objValidation->setAllowBlank(false);
-$objValidation->setShowInputMessage(true);
-$objValidation->setShowErrorMessage(true);
-$objValidation->setShowDropDown(true);
-$objValidation->setErrorTitle('Input error');
-$objValidation->setError('Value is not in list.');
-$objValidation->setPromptTitle('Pick from list');
-$objValidation->setPrompt('Please pick a value from the drop-down list.');
-$objValidation->setFormula1('"Item A,Item B,Item C"');	// Make sure to put the list items between " and " if your list is simply a comma-separated list of values !!!
-
-
-$objValidation = $objPHPExcel->getActiveSheet()->getCell('B7')->getDataValidation();
-$objValidation->setType( PHPExcel_Cell_DataValidation::TYPE_LIST );
-$objValidation->setErrorStyle( PHPExcel_Cell_DataValidation::STYLE_INFORMATION );
-$objValidation->setAllowBlank(false);
-$objValidation->setShowInputMessage(true);
-$objValidation->setShowErrorMessage(true);
-$objValidation->setShowDropDown(true);
-$objValidation->setErrorTitle('Input error');
-$objValidation->setError('Value is not in list.');
-$objValidation->setPromptTitle('Pick from list');
-$objValidation->setPrompt('Please pick a value from the drop-down list.');
-$objValidation->setFormula1('$D$2:$D$6');	// Make sure NOT to put a range of cells or a formula between " and "  !!!
-
-
-// Set active sheet index to the first sheet, so Excel opens this as the first sheet
-$objPHPExcel->setActiveSheetIndex(0);
-
-
-// Save Excel 2007 file
-echo date('H:i:s') , " Write to Excel2007 format" , EOL;
-$callStartTime = microtime(true);
-
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
-$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing file" , EOL;
-echo 'File has been created in ' , getcwd() , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/16csv.php b/htdocs/includes/phpoffice/phpexcel/Examples/16csv.php
deleted file mode 100644
index 71ebfd00dcc..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/16csv.php
+++ /dev/null
@@ -1,107 +0,0 @@
-<?php
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-date_default_timezone_set('Europe/London');
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-date_default_timezone_set('Europe/London');
-
-include "05featuredemo.inc.php";
-
-/** PHPExcel_IOFactory */
-require_once '../Classes/PHPExcel/IOFactory.php';
-
-
-echo date('H:i:s') , " Write to CSV format" , EOL;
-$callStartTime = microtime(true);
-
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'CSV')->setDelimiter(',')
-                                                                  ->setEnclosure('"')
-                                                                  ->setLineEnding("\r\n")
-                                                                  ->setSheetIndex(0)
-                                                                  ->save(str_replace('.php', '.csv', __FILE__));
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-echo date('H:i:s') , " File written to " , str_replace('.php', '.csv', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-
-echo date('H:i:s') , " Read from CSV format" , EOL;
-$callStartTime = microtime(true);
-$objReader = PHPExcel_IOFactory::createReader('CSV')->setDelimiter(',')
-                                                    ->setEnclosure('"')
-                                                    ->setLineEnding("\r\n")
-                                                    ->setSheetIndex(0);
-$objPHPExcelFromCSV = $objReader->load(str_replace('.php', '.csv', __FILE__));
-
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-echo 'Call time to reload Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-
-echo date('H:i:s') , " Write to Excel2007 format" , EOL;
-$callStartTime = microtime(true);
-
-$objWriter2007 = PHPExcel_IOFactory::createWriter($objPHPExcelFromCSV, 'Excel2007');
-$objWriter2007->save(str_replace('.php', '.xlsx', __FILE__));
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-
-echo date('H:i:s') , " Write to CSV format" , EOL;
-$callStartTime = microtime(true);
-
-$objWriterCSV = PHPExcel_IOFactory::createWriter($objPHPExcelFromCSV, 'CSV');
-$objWriterCSV->setExcelCompatibility(true);
-$objWriterCSV->save(str_replace('.php', '_excel.csv', __FILE__));
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-echo date('H:i:s') , " File written to " , str_replace('.php', '_excel.csv', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing files" , EOL;
-echo 'Files have been created in ' , getcwd() , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/17html.php b/htdocs/includes/phpoffice/phpexcel/Examples/17html.php
deleted file mode 100644
index 0dc825b04a1..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/17html.php
+++ /dev/null
@@ -1,64 +0,0 @@
-<?php
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-date_default_timezone_set('Europe/London');
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-date_default_timezone_set('Europe/London');
-
-include "05featuredemo.inc.php";
-
-/** PHPExcel_IOFactory */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel/IOFactory.php';
-
-
-echo date('H:i:s') , " Write to HTML format" , EOL;
-$callStartTime = microtime(true);
-
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'HTML');
-$objWriter->setSheetIndex(0);
-//$objWriter->setImagesRoot('http://www.example.com');
-$objWriter->save(str_replace('.php', '.htm', __FILE__));
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-echo date('H:i:s') , " File written to " , str_replace('.php', '.htm', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing file" , EOL;
-echo 'File has been created in ' , getcwd() , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/18extendedcalculation.php b/htdocs/includes/phpoffice/phpexcel/Examples/18extendedcalculation.php
deleted file mode 100644
index 3c6fcb49227..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/18extendedcalculation.php
+++ /dev/null
@@ -1,108 +0,0 @@
-<?php
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-date_default_timezone_set('Europe/London');
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-date_default_timezone_set('Europe/London');
-
-/** PHPExcel */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
-
-
-// List functions
-echo date('H:i:s') . " List implemented functions\n";
-$objCalc = PHPExcel_Calculation::getInstance();
-print_r($objCalc->listFunctionNames());
-
-// Create new PHPExcel object
-echo date('H:i:s') . " Create new PHPExcel object\n";
-$objPHPExcel = new PHPExcel();
-
-// Add some data, we will use some formulas here
-echo date('H:i:s') . " Add some data\n";
-$objPHPExcel->getActiveSheet()->setCellValue('A14', 'Count:');
-
-$objPHPExcel->getActiveSheet()->setCellValue('B1', 'Range 1');
-$objPHPExcel->getActiveSheet()->setCellValue('B2', 2);
-$objPHPExcel->getActiveSheet()->setCellValue('B3', 8);
-$objPHPExcel->getActiveSheet()->setCellValue('B4', 10);
-$objPHPExcel->getActiveSheet()->setCellValue('B5', True);
-$objPHPExcel->getActiveSheet()->setCellValue('B6', False);
-$objPHPExcel->getActiveSheet()->setCellValue('B7', 'Text String');
-$objPHPExcel->getActiveSheet()->setCellValue('B9', '22');
-$objPHPExcel->getActiveSheet()->setCellValue('B10', 4);
-$objPHPExcel->getActiveSheet()->setCellValue('B11', 6);
-$objPHPExcel->getActiveSheet()->setCellValue('B12', 12);
-
-$objPHPExcel->getActiveSheet()->setCellValue('B14', '=COUNT(B2:B12)');
-
-$objPHPExcel->getActiveSheet()->setCellValue('C1', 'Range 2');
-$objPHPExcel->getActiveSheet()->setCellValue('C2', 1);
-$objPHPExcel->getActiveSheet()->setCellValue('C3', 2);
-$objPHPExcel->getActiveSheet()->setCellValue('C4', 2);
-$objPHPExcel->getActiveSheet()->setCellValue('C5', 3);
-$objPHPExcel->getActiveSheet()->setCellValue('C6', 3);
-$objPHPExcel->getActiveSheet()->setCellValue('C7', 3);
-$objPHPExcel->getActiveSheet()->setCellValue('C8', '0');
-$objPHPExcel->getActiveSheet()->setCellValue('C9', 4);
-$objPHPExcel->getActiveSheet()->setCellValue('C10', 4);
-$objPHPExcel->getActiveSheet()->setCellValue('C11', 4);
-$objPHPExcel->getActiveSheet()->setCellValue('C12', 4);
-
-$objPHPExcel->getActiveSheet()->setCellValue('C14', '=COUNT(C2:C12)');
-
-$objPHPExcel->getActiveSheet()->setCellValue('D1', 'Range 3');
-$objPHPExcel->getActiveSheet()->setCellValue('D2', 2);
-$objPHPExcel->getActiveSheet()->setCellValue('D3', 3);
-$objPHPExcel->getActiveSheet()->setCellValue('D4', 4);
-
-$objPHPExcel->getActiveSheet()->setCellValue('D5', '=((D2 * D3) + D4) & " should be 10"');
-
-$objPHPExcel->getActiveSheet()->setCellValue('E1', 'Other functions');
-$objPHPExcel->getActiveSheet()->setCellValue('E2', '=PI()');
-$objPHPExcel->getActiveSheet()->setCellValue('E3', '=RAND()');
-$objPHPExcel->getActiveSheet()->setCellValue('E4', '=RANDBETWEEN(5, 10)');
-
-$objPHPExcel->getActiveSheet()->setCellValue('E14', 'Count of both ranges:');
-$objPHPExcel->getActiveSheet()->setCellValue('F14', '=COUNT(B2:C12)');
-
-// Calculated data
-echo date('H:i:s') . " Calculated data\n";
-echo 'Value of B14 [=COUNT(B2:B12)]: ' . $objPHPExcel->getActiveSheet()->getCell('B14')->getCalculatedValue() . "\r\n";
-
-
-// Echo memory peak usage
-echo date('H:i:s') . " Peak memory usage: " . (memory_get_peak_usage(true) / 1024 / 1024) . " MB\r\n";
-
-// Echo done
-echo date('H:i:s') . " Done" , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/19namedrange.php b/htdocs/includes/phpoffice/phpexcel/Examples/19namedrange.php
deleted file mode 100644
index acea22b6d72..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/19namedrange.php
+++ /dev/null
@@ -1,129 +0,0 @@
-<?php
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-date_default_timezone_set('Europe/London');
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-date_default_timezone_set('Europe/London');
-
-/** Include PHPExcel */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
-
-
-// Create new PHPExcel object
-echo date('H:i:s') , " Create new PHPExcel object" , EOL;
-$objPHPExcel = new PHPExcel();
-
-// Set document properties
-echo date('H:i:s') , " Set document properties" , EOL;
-$objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
-							 ->setLastModifiedBy("Maarten Balliauw")
-							 ->setTitle("Office 2007 XLSX Test Document")
-							 ->setSubject("Office 2007 XLSX Test Document")
-							 ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
-							 ->setKeywords("office 2007 openxml php")
-							 ->setCategory("Test result file");
-
-
-// Add some data
-echo date('H:i:s') , " Add some data" , EOL;
-$objPHPExcel->setActiveSheetIndex(0);
-$objPHPExcel->getActiveSheet()->setCellValue('A1', 'Firstname:')
-                              ->setCellValue('A2', 'Lastname:')
-                              ->setCellValue('A3', 'Fullname:')
-                              ->setCellValue('B1', 'Maarten')
-                              ->setCellValue('B2', 'Balliauw')
-                              ->setCellValue('B3', '=B1 & " " & B2');
-
-// Define named ranges
-echo date('H:i:s') , " Define named ranges" , EOL;
-$objPHPExcel->addNamedRange( new PHPExcel_NamedRange('PersonName', $objPHPExcel->getActiveSheet(), 'B1') );
-$objPHPExcel->addNamedRange( new PHPExcel_NamedRange('PersonLN', $objPHPExcel->getActiveSheet(), 'B2') );
-
-// Rename named ranges
-echo date('H:i:s') , " Rename named ranges" , EOL;
-$objPHPExcel->getNamedRange('PersonName')->setName('PersonFN');
-
-// Rename worksheet
-echo date('H:i:s') , " Rename worksheet" , EOL;
-$objPHPExcel->getActiveSheet()->setTitle('Person');
-
-
-// Create a new worksheet, after the default sheet
-echo date('H:i:s') , " Create new Worksheet object" , EOL;
-$objPHPExcel->createSheet();
-
-// Add some data to the second sheet, resembling some different data types
-echo date('H:i:s') , " Add some data" , EOL;
-$objPHPExcel->setActiveSheetIndex(1);
-$objPHPExcel->getActiveSheet()->setCellValue('A1', 'Firstname:')
-                              ->setCellValue('A2', 'Lastname:')
-                              ->setCellValue('A3', 'Fullname:')
-                              ->setCellValue('B1', '=PersonFN')
-                              ->setCellValue('B2', '=PersonLN')
-                              ->setCellValue('B3', '=PersonFN & " " & PersonLN');
-
-// Resolve range
-echo date('H:i:s') , " Resolve range" , EOL;
-echo 'Cell B1 {=PersonFN}: ' , $objPHPExcel->getActiveSheet()->getCell('B1')->getCalculatedValue() , EOL;
-echo 'Cell B3 {=PersonFN & " " & PersonLN}: ' , $objPHPExcel->getActiveSheet()->getCell('B3')->getCalculatedValue() , EOL;
-echo 'Cell Person!B1: ' , $objPHPExcel->getActiveSheet()->getCell('Person!B1')->getCalculatedValue() , EOL;
-
-// Rename worksheet
-echo date('H:i:s') , " Rename worksheet" , EOL;
-$objPHPExcel->getActiveSheet()->setTitle('Person (cloned)');
-
-// Set active sheet index to the first sheet, so Excel opens this as the first sheet
-$objPHPExcel->setActiveSheetIndex(0);
-
-
-// Save Excel 2007 file
-echo date('H:i:s') , " Write to Excel2007 format" , EOL;
-$callStartTime = microtime(true);
-
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
-$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing file" , EOL;
-echo 'File has been created in ' , getcwd() , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/20readexcel5.php b/htdocs/includes/phpoffice/phpexcel/Examples/20readexcel5.php
deleted file mode 100644
index 98eff9ec1b1..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/20readexcel5.php
+++ /dev/null
@@ -1,79 +0,0 @@
-<?php
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-date_default_timezone_set('Europe/London');
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-date_default_timezone_set('Europe/London');
-
-/** Include PHPExcel_IOFactory */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel/IOFactory.php';
-
-
-if (!file_exists("14excel5.xls")) {
-	exit("Please run 14excel5.php first.\n");
-}
-
-echo date('H:i:s') , " Load workbook from Excel5 file" , EOL;
-$callStartTime = microtime(true);
-
-$objPHPExcel = PHPExcel_IOFactory::load("14excel5.xls");
-
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-
-echo 'Call time to load Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-
-// Save Excel 2007 file
-echo date('H:i:s') , " Write to Excel2007 format" , EOL;
-$callStartTime = microtime(true);
-
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
-$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-// Echo done
-echo date('H:i:s') , " Done reading file" , EOL;
-echo 'File has been created in ' , getcwd() , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/21pdf.php b/htdocs/includes/phpoffice/phpexcel/Examples/21pdf.php
deleted file mode 100644
index 11c56b2caf0..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/21pdf.php
+++ /dev/null
@@ -1,94 +0,0 @@
-<?php
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-date_default_timezone_set('Europe/London');
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-date_default_timezone_set('Europe/London');
-
-include "05featuredemo.inc.php";
-
-/** PHPExcel_IOFactory */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel/IOFactory.php';
-
-
-//	Change these values to select the Rendering library that you wish to use
-//		and its directory location on your server
-//$rendererName = PHPExcel_Settings::PDF_RENDERER_TCPDF;
-//$rendererName = PHPExcel_Settings::PDF_RENDERER_MPDF;
-$rendererName = PHPExcel_Settings::PDF_RENDERER_DOMPDF;
-//$rendererLibrary = 'tcPDF5.9';
-//$rendererLibrary = 'mPDF5.4';
-$rendererLibrary = 'domPDF0.6.0beta3';
-$rendererLibraryPath = '/php/libraries/PDF/' . $rendererLibrary;
-
-
-echo date('H:i:s') , " Hide grid lines" , EOL;
-$objPHPExcel->getActiveSheet()->setShowGridLines(false);
-
-echo date('H:i:s') , " Set orientation to landscape" , EOL;
-$objPHPExcel->getActiveSheet()->getPageSetup()->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE);
-
-
-echo date('H:i:s') , " Write to PDF format using {$rendererName}" , EOL;
-
-if (!PHPExcel_Settings::setPdfRenderer(
-		$rendererName,
-		$rendererLibraryPath
-	)) {
-	die(
-		'NOTICE: Please set the $rendererName and $rendererLibraryPath values' .
-		EOL .
-		'at the top of this script as appropriate for your directory structure'
-	);
-}
-
-
-$callStartTime = microtime(true);
-
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'PDF');
-$objWriter->setSheetIndex(0);
-$objWriter->save(str_replace('.php', '_'.$rendererName.'.pdf', __FILE__));
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-echo date('H:i:s') , " File written to " , str_replace('.php', '_'.$rendererName.'.pdf', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing files" , EOL;
-echo 'File has been created in ' , getcwd() , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/22heavilyformatted.php b/htdocs/includes/phpoffice/phpexcel/Examples/22heavilyformatted.php
deleted file mode 100644
index c17bc8683ae..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/22heavilyformatted.php
+++ /dev/null
@@ -1,116 +0,0 @@
-<?php
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-date_default_timezone_set('Europe/London');
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-date_default_timezone_set('Europe/London');
-
-/** Include PHPExcel */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
-
-
-// Create new PHPExcel object
-echo date('H:i:s') , " Create new PHPExcel object" , EOL;
-$objPHPExcel = new PHPExcel();
-
-// Set document properties
-echo date('H:i:s') , " Set document properties" , EOL;
-$objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
-							 ->setLastModifiedBy("Maarten Balliauw")
-							 ->setTitle("Office 2007 XLSX Test Document")
-							 ->setSubject("Office 2007 XLSX Test Document")
-							 ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
-							 ->setKeywords("office 2007 openxml php")
-							 ->setCategory("Test result file");
-
-
-// Add some data
-echo date('H:i:s') , " Add some data" , EOL;
-$objPHPExcel->setActiveSheetIndex(0);
-
-$objPHPExcel->getActiveSheet()->getStyle('A1:T100')->applyFromArray(
-	array('fill' 	=> array(
-								'type'		=> PHPExcel_Style_Fill::FILL_SOLID,
-								'color'		=> array('argb' => 'FFCCFFCC')
-							),
-		  'borders' => array(
-								'bottom'	=> array('style' => PHPExcel_Style_Border::BORDER_THIN),
-								'right'		=> array('style' => PHPExcel_Style_Border::BORDER_MEDIUM)
-							)
-		 )
-	);
-
-$objPHPExcel->getActiveSheet()->getStyle('C5:R95')->applyFromArray(
-	array('fill' 	=> array(
-								'type'		=> PHPExcel_Style_Fill::FILL_SOLID,
-								'color'		=> array('argb' => 'FFFFFF00')
-							),
-		 )
-	);
-
-// Save Excel 2007 file
-echo date('H:i:s') , " Write to Excel2007 format" , EOL;
-$callStartTime = microtime(true);
-
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
-$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-
-// Save Excel 95 file
-echo date('H:i:s') , " Write to Excel5 format" , EOL;
-$callStartTime = microtime(true);
-
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
-$objWriter->save(str_replace('.php', '.xls', __FILE__));
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing file" , EOL;
-echo 'File has been created in ' , getcwd() , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/23sharedstyles.php b/htdocs/includes/phpoffice/phpexcel/Examples/23sharedstyles.php
deleted file mode 100644
index 652b4ed2f27..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/23sharedstyles.php
+++ /dev/null
@@ -1,124 +0,0 @@
-<?php
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-date_default_timezone_set('Europe/London');
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-date_default_timezone_set('Europe/London');
-
-/** Include PHPExcel */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
-
-
-// Create new PHPExcel object
-echo date('H:i:s') , " Create new PHPExcel object" , EOL;
-$objPHPExcel = new PHPExcel();
-
-// Set document properties
-echo date('H:i:s') , " Set document properties" , EOL;
-$objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
-							 ->setLastModifiedBy("Maarten Balliauw")
-							 ->setTitle("Office 2007 XLSX Test Document")
-							 ->setSubject("Office 2007 XLSX Test Document")
-							 ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
-							 ->setKeywords("office 2007 openxml php")
-							 ->setCategory("Test result file");
-
-
-// Add some data
-echo date('H:i:s') , " Add some data" , EOL;
-$objPHPExcel->setActiveSheetIndex(0);
-
-$sharedStyle1 = new PHPExcel_Style();
-$sharedStyle2 = new PHPExcel_Style();
-
-$sharedStyle1->applyFromArray(
-	array('fill' 	=> array(
-								'type'		=> PHPExcel_Style_Fill::FILL_SOLID,
-								'color'		=> array('argb' => 'FFCCFFCC')
-							),
-		  'borders' => array(
-								'bottom'	=> array('style' => PHPExcel_Style_Border::BORDER_THIN),
-								'right'		=> array('style' => PHPExcel_Style_Border::BORDER_MEDIUM)
-							)
-		 ));
-
-$sharedStyle2->applyFromArray(
-	array('fill' 	=> array(
-								'type'		=> PHPExcel_Style_Fill::FILL_SOLID,
-								'color'		=> array('argb' => 'FFFFFF00')
-							),
-		  'borders' => array(
-								'bottom'	=> array('style' => PHPExcel_Style_Border::BORDER_THIN),
-								'right'		=> array('style' => PHPExcel_Style_Border::BORDER_MEDIUM)
-							)
-		 ));
-
-$objPHPExcel->getActiveSheet()->setSharedStyle($sharedStyle1, "A1:T100");
-$objPHPExcel->getActiveSheet()->setSharedStyle($sharedStyle2, "C5:R95");
-
-// Save Excel 2007 file
-echo date('H:i:s') , " Write to Excel2007 format" , EOL;
-$callStartTime = microtime(true);
-
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
-$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-
-// Save Excel 95 file
-echo date('H:i:s') , " Write to Excel5 format" , EOL;
-$callStartTime = microtime(true);
-
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
-$objWriter->save(str_replace('.php', '.xls', __FILE__));
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing file" , EOL;
-echo 'File has been created in ' , getcwd() , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/24readfilter.php b/htdocs/includes/phpoffice/phpexcel/Examples/24readfilter.php
deleted file mode 100644
index afa6d0c416c..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/24readfilter.php
+++ /dev/null
@@ -1,77 +0,0 @@
-<?php
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-date_default_timezone_set('Europe/London');
-
-/** PHPExcel_IOFactory */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel/IOFactory.php';
-
-
-// Check prerequisites
-if (!file_exists("06largescale.xlsx")) {
-	exit("Please run 06largescale.php first.\n");
-}
-
-class MyReadFilter implements PHPExcel_Reader_IReadFilter
-{
-	public function readCell($column, $row, $worksheetName = '') {
-		// Read title row and rows 20 - 30
-		if ($row == 1 || ($row >= 20 && $row <= 30)) {
-			return true;
-		}
-
-		return false;
-	}
-}
-
-
-echo date('H:i:s') , " Load from Excel2007 file" , EOL;
-$objReader = PHPExcel_IOFactory::createReader('Excel2007');
-$objReader->setReadFilter( new MyReadFilter() );
-$objPHPExcel = $objReader->load("06largescale.xlsx");
-
-echo date('H:i:s') , " Remove unnecessary rows" , EOL;
-$objPHPExcel->getActiveSheet()->removeRow(2, 18);
-
-echo date('H:i:s') , " Write to Excel2007 format" , EOL;
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
-$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing file" , EOL;
-echo 'File has been created in ' , getcwd() , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/25inmemoryimage.php b/htdocs/includes/phpoffice/phpexcel/Examples/25inmemoryimage.php
deleted file mode 100644
index 7a3424e2088..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/25inmemoryimage.php
+++ /dev/null
@@ -1,83 +0,0 @@
-<?php
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-date_default_timezone_set('Europe/London');
-
-/** Include PHPExcel */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
-
-
-// Create new PHPExcel object
-echo date('H:i:s') , " Create new PHPExcel object" , EOL;
-$objPHPExcel = new PHPExcel();
-
-// Set document properties
-echo date('H:i:s') , " Set document properties" , EOL;
-$objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
-							 ->setLastModifiedBy("Maarten Balliauw")
-							 ->setTitle("Office 2007 XLSX Test Document")
-							 ->setSubject("Office 2007 XLSX Test Document")
-							 ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
-							 ->setKeywords("office 2007 openxml php")
-							 ->setCategory("Test result file");
-
-// Generate an image
-echo date('H:i:s') , " Generate an image" , EOL;
-$gdImage = @imagecreatetruecolor(120, 20) or die('Cannot Initialize new GD image stream');
-$textColor = imagecolorallocate($gdImage, 255, 255, 255);
-imagestring($gdImage, 1, 5, 5,  'Created with PHPExcel', $textColor);
-
-// Add a drawing to the worksheet
-echo date('H:i:s') , " Add a drawing to the worksheet" , EOL;
-$objDrawing = new PHPExcel_Worksheet_MemoryDrawing();
-$objDrawing->setName('Sample image');
-$objDrawing->setDescription('Sample image');
-$objDrawing->setImageResource($gdImage);
-$objDrawing->setRenderingFunction(PHPExcel_Worksheet_MemoryDrawing::RENDERING_JPEG);
-$objDrawing->setMimeType(PHPExcel_Worksheet_MemoryDrawing::MIMETYPE_DEFAULT);
-$objDrawing->setHeight(36);
-$objDrawing->setWorksheet($objPHPExcel->getActiveSheet());
-
-echo date('H:i:s') , " Write to Excel2007 format" , EOL;
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
-$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing file" , EOL;
-echo 'File has been created in ' , getcwd() , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/26utf8.php b/htdocs/includes/phpoffice/phpexcel/Examples/26utf8.php
deleted file mode 100644
index ad0b400594e..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/26utf8.php
+++ /dev/null
@@ -1,122 +0,0 @@
-<?php
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-date_default_timezone_set('Europe/London');
-
-/** Include PHPExcel */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
-
-
-//	Change these values to select the PDF Rendering library that you wish to use
-//		and its directory location on your server
-//$rendererName = PHPExcel_Settings::PDF_RENDERER_TCPDF;
-//$rendererName = PHPExcel_Settings::PDF_RENDERER_MPDF;
-$rendererName = PHPExcel_Settings::PDF_RENDERER_DOMPDF;
-//$rendererLibrary = 'tcPDF5.9';
-//$rendererLibrary = 'mPDF5.4';
-$rendererLibrary = 'domPDF0.6.0beta3';
-$rendererLibraryPath = '/php/libraries/PDF/' . $rendererLibrary;
-
-
-// Read from Excel2007 (.xlsx) template
-echo date('H:i:s') , " Load Excel2007 template file" , EOL;
-$objReader = PHPExcel_IOFactory::createReader('Excel2007');
-$objPHPExcel = $objReader->load("templates/26template.xlsx");
-
-/** at this point, we could do some manipulations with the template, but we skip this step */
-
-// Export to Excel2007 (.xlsx)
-echo date('H:i:s') , " Write to Excel5 format" , EOL;
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
-$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-
-// Export to Excel5 (.xls)
-echo date('H:i:s') , " Write to Excel5 format" , EOL;
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
-$objWriter->save(str_replace('.php', '.xls', __FILE__));
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-
-// Export to HTML (.html)
-echo date('H:i:s') , " Write to HTML format" , EOL;
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'HTML');
-$objWriter->save(str_replace('.php', '.htm', __FILE__));
-echo date('H:i:s') , " File written to " , str_replace('.php', '.htm', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-
-// Export to PDF (.pdf)
-echo date('H:i:s') , " Write to PDF format" , EOL;
-try {
-	if (!PHPExcel_Settings::setPdfRenderer(
-		$rendererName,
-		$rendererLibraryPath
-	)) {
-		echo (
-			'NOTICE: Please set the $rendererName and $rendererLibraryPath values' .
-			EOL .
-			'at the top of this script as appropriate for your directory structure' .
-			EOL
-		);
-	} else {
-		$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'PDF');
-		$objWriter->save(str_replace('.php', '.pdf', __FILE__));
-		echo date('H:i:s') , " File written to " , str_replace('.php', '.pdf', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-	}
-} catch (Exception $e) {
-	echo date('H:i:s') , ' EXCEPTION: ', $e->getMessage() , EOL;
-}
-
-// Remove first two rows with field headers before exporting to CSV
-echo date('H:i:s') , " Removing first two heading rows for CSV export" , EOL;
-$objWorksheet = $objPHPExcel->getActiveSheet();
-$objWorksheet->removeRow(1, 2);
-
-// Export to CSV (.csv)
-echo date('H:i:s') , " Write to CSV format" , EOL;
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'CSV');
-$objWriter->save(str_replace('.php', '.csv', __FILE__));
-echo date('H:i:s') , " File written to " , str_replace('.php', '.csv', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-
-// Export to CSV with BOM (.csv)
-echo date('H:i:s') , " Write to CSV format (with BOM)" , EOL;
-$objWriter->setUseBOM(true);
-$objWriter->save(str_replace('.php', '-bom.csv', __FILE__));
-echo date('H:i:s') , " File written to " , str_replace('.php', '-bom.csv', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing files" , EOL;
-echo 'Files have been created in ' , getcwd() , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/27imagesexcel5.php b/htdocs/includes/phpoffice/phpexcel/Examples/27imagesexcel5.php
deleted file mode 100644
index 17db771c3b4..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/27imagesexcel5.php
+++ /dev/null
@@ -1,64 +0,0 @@
-<?php
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-date_default_timezone_set('Europe/London');
-
-/** Include PHPExcel */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
-
-
-// Read from Excel5 (.xls) template
-echo date('H:i:s') , " Load Excel2007 template file" , EOL;
-$objReader = PHPExcel_IOFactory::createReader('Excel5');
-$objPHPExcel = $objReader->load("templates/27template.xls");
-
-// Export to Excel2007 (.xlsx)
-echo date('H:i:s') , " Write to Excel5 format" , EOL;
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
-$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-
-// Export to Excel5 (.xls)
-echo date('H:i:s') , " Write to Excel5 format" , EOL;
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
-$objWriter->save(str_replace('.php', '.xls', __FILE__));
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing files" , EOL;
-echo 'Files have been created in ' , getcwd() , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/28iterator.php b/htdocs/includes/phpoffice/phpexcel/Examples/28iterator.php
deleted file mode 100644
index 3e1e681de37..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/28iterator.php
+++ /dev/null
@@ -1,68 +0,0 @@
-<?php
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-date_default_timezone_set('Europe/London');
-
-/** PHPExcel_IOFactory */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel/IOFactory.php';
-
-
-if (!file_exists("05featuredemo.xlsx")) {
-	exit("Please run 05featuredemo.php first." . EOL);
-}
-
-echo date('H:i:s') , " Load from Excel2007 file" , EOL;
-$objReader = PHPExcel_IOFactory::createReader('Excel2007');
-$objPHPExcel = $objReader->load("05featuredemo.xlsx");
-
-echo date('H:i:s') , " Iterate worksheets" , EOL;
-foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) {
-	echo 'Worksheet - ' , $worksheet->getTitle() , EOL;
-
-	foreach ($worksheet->getRowIterator() as $row) {
-		echo '    Row number - ' , $row->getRowIndex() , EOL;
-
-		$cellIterator = $row->getCellIterator();
-		$cellIterator->setIterateOnlyExistingCells(false); // Loop all cells, even if it is not set
-		foreach ($cellIterator as $cell) {
-			if (!is_null($cell)) {
-				echo '        Cell - ' , $cell->getCoordinate() , ' - ' , $cell->getCalculatedValue() , EOL;
-			}
-		}
-	}
-}
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/29advancedvaluebinder.php b/htdocs/includes/phpoffice/phpexcel/Examples/29advancedvaluebinder.php
deleted file mode 100644
index bb387f9cd1d..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/29advancedvaluebinder.php
+++ /dev/null
@@ -1,183 +0,0 @@
-<?php
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-/** PHPExcel */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
-
-
-// Set timezone
-echo date('H:i:s') , " Set timezone" , EOL;
-date_default_timezone_set('UTC');
-
-// Set value binder
-echo date('H:i:s') , " Set value binder" , EOL;
-PHPExcel_Cell::setValueBinder( new PHPExcel_Cell_AdvancedValueBinder() );
-
-// Create new PHPExcel object
-echo date('H:i:s') , " Create new PHPExcel object" , EOL;
-$objPHPExcel = new PHPExcel();
-
-// Set document properties
-echo date('H:i:s') , " Set document properties" , EOL;
-$objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
-							 ->setLastModifiedBy("Maarten Balliauw")
-							 ->setTitle("Office 2007 XLSX Test Document")
-							 ->setSubject("Office 2007 XLSX Test Document")
-							 ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
-							 ->setKeywords("office 2007 openxml php")
-							 ->setCategory("Test result file");
-
-// Set default font
-echo date('H:i:s') , " Set default font" , EOL;
-$objPHPExcel->getActiveSheet()->getDefaultStyle()->getFont()->setName('Arial');
-$objPHPExcel->getActiveSheet()->getDefaultStyle()->getFont()->setSize(10);
-
-// Set column widths
-echo date('H:i:s') , " Set column widths" , EOL;
-$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setAutoSize(true);
-$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(14);
-
-// Add some data, resembling some different data types
-echo date('H:i:s') , " Add some data" , EOL;
-$objPHPExcel->getActiveSheet()->setCellValue('A1', 'String value:')
-                              ->setCellValue('B1', 'Mark Baker');
-
-$objPHPExcel->getActiveSheet()->setCellValue('A2', 'Numeric value #1:')
-                              ->setCellValue('B2', 12345);
-
-$objPHPExcel->getActiveSheet()->setCellValue('A3', 'Numeric value #2:')
-                              ->setCellValue('B3', -12.345);
-
-$objPHPExcel->getActiveSheet()->setCellValue('A4', 'Numeric value #3:')
-                              ->setCellValue('B4', .12345);
-
-$objPHPExcel->getActiveSheet()->setCellValue('A5', 'Numeric value #4:')
-                              ->setCellValue('B5', '12345');
-
-$objPHPExcel->getActiveSheet()->setCellValue('A6', 'Numeric value #5:')
-                              ->setCellValue('B6', '1.2345');
-
-$objPHPExcel->getActiveSheet()->setCellValue('A7', 'Numeric value #6:')
-                              ->setCellValue('B7', '.12345');
-
-$objPHPExcel->getActiveSheet()->setCellValue('A8', 'Numeric value #7:')
-                              ->setCellValue('B8', '1.234e-5');
-
-$objPHPExcel->getActiveSheet()->setCellValue('A9', 'Numeric value #8:')
-                              ->setCellValue('B9', '-1.234e+5');
-
-$objPHPExcel->getActiveSheet()->setCellValue('A10', 'Boolean value:')
-                              ->setCellValue('B10', 'TRUE');
-
-$objPHPExcel->getActiveSheet()->setCellValue('A11', 'Percentage value #1:')
-                              ->setCellValue('B11', '10%');
-
-$objPHPExcel->getActiveSheet()->setCellValue('A12', 'Percentage value #2:')
-                              ->setCellValue('B12', '12.5%');
-
-$objPHPExcel->getActiveSheet()->setCellValue('A13', 'Fraction value #1:')
-                              ->setCellValue('B13', '-1/2');
-
-$objPHPExcel->getActiveSheet()->setCellValue('A14', 'Fraction value #2:')
-                              ->setCellValue('B14', '3 1/2');
-
-$objPHPExcel->getActiveSheet()->setCellValue('A15', 'Fraction value #3:')
-                              ->setCellValue('B15', '-12 3/4');
-
-$objPHPExcel->getActiveSheet()->setCellValue('A16', 'Fraction value #4:')
-                              ->setCellValue('B16', '13/4');
-
-$objPHPExcel->getActiveSheet()->setCellValue('A17', 'Currency value #1:')
-                              ->setCellValue('B17', '$12345');
-
-$objPHPExcel->getActiveSheet()->setCellValue('A18', 'Currency value #2:')
-                              ->setCellValue('B18', '$12345.67');
-
-$objPHPExcel->getActiveSheet()->setCellValue('A19', 'Currency value #3:')
-                              ->setCellValue('B19', '$12,345.67');
-
-$objPHPExcel->getActiveSheet()->setCellValue('A20', 'Date value #1:')
-                              ->setCellValue('B20', '21 December 1983');
-
-$objPHPExcel->getActiveSheet()->setCellValue('A21', 'Date value #2:')
-                              ->setCellValue('B21', '19-Dec-1960');
-
-$objPHPExcel->getActiveSheet()->setCellValue('A22', 'Date value #3:')
-                              ->setCellValue('B22', '07/12/1982');
-
-$objPHPExcel->getActiveSheet()->setCellValue('A23', 'Date value #4:')
-                              ->setCellValue('B23', '24-11-1950');
-
-$objPHPExcel->getActiveSheet()->setCellValue('A24', 'Date value #5:')
-                              ->setCellValue('B24', '17-Mar');
-
-$objPHPExcel->getActiveSheet()->setCellValue('A25', 'Time value #1:')
-                              ->setCellValue('B25', '01:30');
-
-$objPHPExcel->getActiveSheet()->setCellValue('A26', 'Time value #2:')
-                              ->setCellValue('B26', '01:30:15');
-
-$objPHPExcel->getActiveSheet()->setCellValue('A27', 'Date/Time value:')
-                              ->setCellValue('B27', '19-Dec-1960 01:30');
-
-$objPHPExcel->getActiveSheet()->setCellValue('A28', 'Formula:')
-                              ->setCellValue('B28', '=SUM(B2:B9)');
-
-// Rename worksheet
-echo date('H:i:s') , " Rename worksheet" , EOL;
-$objPHPExcel->getActiveSheet()->setTitle('Advanced value binder');
-
-
-// Set active sheet index to the first sheet, so Excel opens this as the first sheet
-$objPHPExcel->setActiveSheetIndex(0);
-
-
-// Save Excel 2007 file
-echo date('H:i:s') , " Write to Excel2007 format" , EOL;
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
-$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-// Save Excel5 file
-echo date('H:i:s') , " Write to Excel5 format" , EOL;
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
-$objWriter->save(str_replace('.php', '.xls', __FILE__));
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing file" , EOL;
-echo 'File has been created in ' , getcwd() , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/30template.php b/htdocs/includes/phpoffice/phpexcel/Examples/30template.php
deleted file mode 100644
index 2b66c2ceb41..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/30template.php
+++ /dev/null
@@ -1,91 +0,0 @@
-<?php
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-date_default_timezone_set('Europe/London');
-
-/** PHPExcel_IOFactory */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel/IOFactory.php';
-
-
-
-echo date('H:i:s') , " Load from Excel5 template" , EOL;
-$objReader = PHPExcel_IOFactory::createReader('Excel5');
-$objPHPExcel = $objReader->load("templates/30template.xls");
-
-
-
-
-echo date('H:i:s') , " Add new data to the template" , EOL;
-$data = array(array('title'		=> 'Excel for dummies',
-					'price'		=> 17.99,
-					'quantity'	=> 2
-				   ),
-			  array('title'		=> 'PHP for dummies',
-					'price'		=> 15.99,
-					'quantity'	=> 1
-				   ),
-			  array('title'		=> 'Inside OOP',
-					'price'		=> 12.95,
-					'quantity'	=> 1
-				   )
-			 );
-
-$objPHPExcel->getActiveSheet()->setCellValue('D1', PHPExcel_Shared_Date::PHPToExcel(time()));
-
-$baseRow = 5;
-foreach($data as $r => $dataRow) {
-	$row = $baseRow + $r;
-	$objPHPExcel->getActiveSheet()->insertNewRowBefore($row,1);
-
-	$objPHPExcel->getActiveSheet()->setCellValue('A'.$row, $r+1)
-	                              ->setCellValue('B'.$row, $dataRow['title'])
-	                              ->setCellValue('C'.$row, $dataRow['price'])
-	                              ->setCellValue('D'.$row, $dataRow['quantity'])
-	                              ->setCellValue('E'.$row, '=C'.$row.'*D'.$row);
-}
-$objPHPExcel->getActiveSheet()->removeRow($baseRow-1,1);
-
-
-echo date('H:i:s') , " Write to Excel5 format" , EOL;
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
-$objWriter->save(str_replace('.php', '.xls', __FILE__));
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing file" , EOL;
-echo 'File has been created in ' , getcwd() , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/31docproperties_write-xls.php b/htdocs/includes/phpoffice/phpexcel/Examples/31docproperties_write-xls.php
deleted file mode 100644
index f3ad0a4bdb7..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/31docproperties_write-xls.php
+++ /dev/null
@@ -1,119 +0,0 @@
-<?php
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-date_default_timezone_set('Europe/London');
-
-/** Include PHPExcel */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
-
-
-$inputFileType = 'Excel5';
-$inputFileName = 'templates/31docproperties.xls';
-
-
-echo date('H:i:s') , " Load Tests from $inputFileType file" , EOL;
-$callStartTime = microtime(true);
-
-$objPHPExcelReader = PHPExcel_IOFactory::createReader($inputFileType);
-$objPHPExcel = $objPHPExcelReader->load($inputFileName);
-
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-echo 'Call time to read Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-
-echo date('H:i:s') , " Adjust properties" , EOL;
-$objPHPExcel->getProperties()->setTitle("Office 95 XLS Test Document")
-							 ->setSubject("Office 95 XLS Test Document")
-							 ->setDescription("Test XLS document, generated using PHPExcel")
-							 ->setKeywords("office 95 biff php");
-
-
-// Save Excel 95 file
-echo date('H:i:s') , " Write to Excel5 format" , EOL;
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
-$objWriter->save(str_replace('.php', '.xls', __FILE__));
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " . (memory_get_peak_usage(true) / 1024 / 1024) . " MB" , EOL;
-
-
-echo EOL;
-// Reread File
-echo date('H:i:s') , " Reread Excel5 file" , EOL;
-$objPHPExcelRead = PHPExcel_IOFactory::load(str_replace('.php', '.xls', __FILE__));
-
-// Set properties
-echo date('H:i:s') , " Get properties" , EOL;
-
-echo 'Core Properties:' , EOL;
-echo '    Created by - ' , $objPHPExcel->getProperties()->getCreator() , EOL;
-echo '    Created on - ' , date('d-M-Y',$objPHPExcel->getProperties()->getCreated()) , ' at ' ,
-                       date('H:i:s',$objPHPExcel->getProperties()->getCreated()) , EOL;
-echo '    Last Modified by - ' , $objPHPExcel->getProperties()->getLastModifiedBy() , EOL;
-echo '    Last Modified on - ' , date('d-M-Y',$objPHPExcel->getProperties()->getModified()) , ' at ' ,
-                             date('H:i:s',$objPHPExcel->getProperties()->getModified()) , EOL;
-echo '    Title - ' , $objPHPExcel->getProperties()->getTitle() , EOL;
-echo '    Subject - ' , $objPHPExcel->getProperties()->getSubject() , EOL;
-echo '    Description - ' , $objPHPExcel->getProperties()->getDescription() , EOL;
-echo '    Keywords: - ' , $objPHPExcel->getProperties()->getKeywords() , EOL;
-
-
-echo 'Extended (Application) Properties:' , EOL;
-echo '    Category - ' , $objPHPExcel->getProperties()->getCategory() , EOL;
-echo '    Company - ' , $objPHPExcel->getProperties()->getCompany() , EOL;
-echo '    Manager - ' , $objPHPExcel->getProperties()->getManager() , EOL;
-
-
-echo 'Custom Properties:' , EOL;
-$customProperties = $objPHPExcel->getProperties()->getCustomProperties();
-foreach($customProperties as $customProperty) {
-	$propertyValue = $objPHPExcel->getProperties()->getCustomPropertyValue($customProperty);
-	$propertyType = $objPHPExcel->getProperties()->getCustomPropertyType($customProperty);
-	echo '    ' , $customProperty , ' - (' , $propertyType , ') - ';
-	if ($propertyType == PHPExcel_DocumentProperties::PROPERTY_TYPE_DATE) {
-		echo date('d-M-Y H:i:s',$propertyValue) , EOL;
-	} elseif ($propertyType == PHPExcel_DocumentProperties::PROPERTY_TYPE_BOOLEAN) {
-		echo (($propertyValue) ? 'TRUE' : 'FALSE') , EOL;
-	} else {
-		echo $propertyValue , EOL;
-	}
-}
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) . " MB" , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/31docproperties_write.php b/htdocs/includes/phpoffice/phpexcel/Examples/31docproperties_write.php
deleted file mode 100644
index 3f5328c5ec3..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/31docproperties_write.php
+++ /dev/null
@@ -1,119 +0,0 @@
-<?php
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-date_default_timezone_set('Europe/London');
-
-/** Include PHPExcel */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
-
-
-$inputFileType = 'Excel2007';
-$inputFileName = 'templates/31docproperties.xlsx';
-
-
-echo date('H:i:s') , " Load Tests from $inputFileType file" , EOL;
-$callStartTime = microtime(true);
-
-$objPHPExcelReader = PHPExcel_IOFactory::createReader($inputFileType);
-$objPHPExcel = $objPHPExcelReader->load($inputFileName);
-
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-echo 'Call time to read Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-
-echo date('H:i:s') , " Adjust properties" , EOL;
-$objPHPExcel->getProperties()->setTitle("Office 2007 XLSX Test Document")
-							 ->setSubject("Office 2007 XLSX Test Document")
-							 ->setDescription("Test XLSX document, generated using PHPExcel")
-							 ->setKeywords("office 2007 openxml php");
-
-
-// Save Excel 2007 file
-echo date('H:i:s') , " Write to Excel2007 format" , EOL;
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
-$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " . (memory_get_peak_usage(true) / 1024 / 1024) . " MB" , EOL;
-
-
-echo EOL;
-// Reread File
-echo date('H:i:s') , " Reread Excel2007 file" , EOL;
-$objPHPExcelRead = PHPExcel_IOFactory::load(str_replace('.php', '.xlsx', __FILE__));
-
-// Set properties
-echo date('H:i:s') , " Get properties" , EOL;
-
-echo 'Core Properties:' , EOL;
-echo '    Created by - ' , $objPHPExcel->getProperties()->getCreator() , EOL;
-echo '    Created on - ' , date('d-M-Y',$objPHPExcel->getProperties()->getCreated()) , ' at ' ,
-                       date('H:i:s',$objPHPExcel->getProperties()->getCreated()) , EOL;
-echo '    Last Modified by - ' , $objPHPExcel->getProperties()->getLastModifiedBy() , EOL;
-echo '    Last Modified on - ' , date('d-M-Y',$objPHPExcel->getProperties()->getModified()) , ' at ' ,
-                             date('H:i:s',$objPHPExcel->getProperties()->getModified()) , EOL;
-echo '    Title - ' , $objPHPExcel->getProperties()->getTitle() , EOL;
-echo '    Subject - ' , $objPHPExcel->getProperties()->getSubject() , EOL;
-echo '    Description - ' , $objPHPExcel->getProperties()->getDescription() , EOL;
-echo '    Keywords: - ' , $objPHPExcel->getProperties()->getKeywords() , EOL;
-
-
-echo 'Extended (Application) Properties:' , EOL;
-echo '    Category - ' , $objPHPExcel->getProperties()->getCategory() , EOL;
-echo '    Company - ' , $objPHPExcel->getProperties()->getCompany() , EOL;
-echo '    Manager - ' , $objPHPExcel->getProperties()->getManager() , EOL;
-
-
-echo 'Custom Properties:' , EOL;
-$customProperties = $objPHPExcel->getProperties()->getCustomProperties();
-foreach($customProperties as $customProperty) {
-	$propertyValue = $objPHPExcel->getProperties()->getCustomPropertyValue($customProperty);
-	$propertyType = $objPHPExcel->getProperties()->getCustomPropertyType($customProperty);
-	echo '    ' , $customProperty , ' - (' , $propertyType , ') - ';
-	if ($propertyType == PHPExcel_DocumentProperties::PROPERTY_TYPE_DATE) {
-		echo date('d-M-Y H:i:s',$propertyValue) , EOL;
-	} elseif ($propertyType == PHPExcel_DocumentProperties::PROPERTY_TYPE_BOOLEAN) {
-		echo (($propertyValue) ? 'TRUE' : 'FALSE') , EOL;
-	} else {
-		echo $propertyValue , EOL;
-	}
-}
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) . " MB" , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/32chartreadwrite.php b/htdocs/includes/phpoffice/phpexcel/Examples/32chartreadwrite.php
deleted file mode 100644
index be1925a5b4f..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/32chartreadwrite.php
+++ /dev/null
@@ -1,131 +0,0 @@
-<?php
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-date_default_timezone_set('Europe/London');
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-date_default_timezone_set('Europe/London');
-
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** Include path **/
-set_include_path(get_include_path() . PATH_SEPARATOR . dirname(__FILE__) . '/../Classes/');
-
-/** PHPExcel_IOFactory */
-include 'PHPExcel/IOFactory.php';
-
-$inputFileType = 'Excel2007';
-$inputFileNames = 'templates/32readwrite*[0-9].xlsx';
-
-if ((isset($argc)) && ($argc > 1)) {
-	$inputFileNames = array();
-	for($i = 1; $i < $argc; ++$i) {
-		$inputFileNames[] = dirname(__FILE__) . '/templates/' . $argv[$i];
-	}
-} else {
-	$inputFileNames = glob($inputFileNames);
-}
-foreach($inputFileNames as $inputFileName) {
-	$inputFileNameShort = basename($inputFileName);
-
-	if (!file_exists($inputFileName)) {
-		echo date('H:i:s') , " File " , $inputFileNameShort , ' does not exist' , EOL;
-		continue;
-	}
-
-	echo date('H:i:s') , " Load Test from $inputFileType file " , $inputFileNameShort , EOL;
-
-	$objReader = PHPExcel_IOFactory::createReader($inputFileType);
-	$objReader->setIncludeCharts(TRUE);
-	$objPHPExcel = $objReader->load($inputFileName);
-
-
-	echo date('H:i:s') , " Iterate worksheets looking at the charts" , EOL;
-	foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) {
-		$sheetName = $worksheet->getTitle();
-		echo 'Worksheet: ' , $sheetName , EOL;
-
-		$chartNames = $worksheet->getChartNames();
-		if(empty($chartNames)) {
-			echo '    There are no charts in this worksheet' , EOL;
-		} else {
-			natsort($chartNames);
-			foreach($chartNames as $i => $chartName) {
-				$chart = $worksheet->getChartByName($chartName);
-				if (!is_null($chart->getTitle())) {
-					$caption = '"' . implode(' ',$chart->getTitle()->getCaption()) . '"';
-				} else {
-					$caption = 'Untitled';
-				}
-				echo '    ' , $chartName , ' - ' , $caption , EOL;
-				echo str_repeat(' ',strlen($chartName)+3);
-				$groupCount = $chart->getPlotArea()->getPlotGroupCount();
-				if ($groupCount == 1) {
-					$chartType = $chart->getPlotArea()->getPlotGroupByIndex(0)->getPlotType();
-					echo '    ' , $chartType , EOL;
-				} else {
-					$chartTypes = array();
-					for($i = 0; $i < $groupCount; ++$i) {
-						$chartTypes[] = $chart->getPlotArea()->getPlotGroupByIndex($i)->getPlotType();
-					}
-					$chartTypes = array_unique($chartTypes);
-					if (count($chartTypes) == 1) {
-						$chartType = 'Multiple Plot ' . array_pop($chartTypes);
-						echo '    ' , $chartType , EOL;
-					} elseif (count($chartTypes) == 0) {
-						echo '    *** Type not yet implemented' , EOL;
-					} else {
-						echo '    Combination Chart' , EOL;
-					}
-				}
-			}
-		}
-	}
-
-
-	$outputFileName = basename($inputFileName);
-
-	echo date('H:i:s') , " Write Tests to Excel2007 file " , EOL;
-	$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
-	$objWriter->setIncludeCharts(TRUE);
-	$objWriter->save($outputFileName);
-	echo date('H:i:s') , " File written to " , $outputFileName , EOL;
-
-	$objPHPExcel->disconnectWorksheets();
-	unset($objPHPExcel);
-}
-
-// Echo memory peak usage
-echo date('H:i:s') , ' Peak memory usage: ' , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing files" , EOL;
-echo 'Files have been created in ' , getcwd() , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-area.php b/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-area.php
deleted file mode 100644
index 53fe52398d2..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-area.php
+++ /dev/null
@@ -1,142 +0,0 @@
-<?php
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-date_default_timezone_set('Europe/London');
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-date_default_timezone_set('Europe/London');
-
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** PHPExcel */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
-
-
-$objPHPExcel = new PHPExcel();
-$objWorksheet = $objPHPExcel->getActiveSheet();
-$objWorksheet->fromArray(
-	array(
-		array('',	2010,	2011,	2012),
-		array('Q1',   12,   15,		21),
-		array('Q2',   56,   73,		86),
-		array('Q3',   52,   61,		69),
-		array('Q4',   30,   32,		0),
-	)
-);
-
-//	Set the Labels for each data series we want to plot
-//		Datatype
-//		Cell reference for data
-//		Format Code
-//		Number of datapoints in series
-//		Data values
-//		Data Marker
-$dataSeriesLabels = array(
-	new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$B$1', NULL, 1),	//	2010
-	new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$C$1', NULL, 1),	//	2011
-	new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$D$1', NULL, 1),	//	2012
-);
-//	Set the X-Axis Labels
-//		Datatype
-//		Cell reference for data
-//		Format Code
-//		Number of datapoints in series
-//		Data values
-//		Data Marker
-$xAxisTickValues = array(
-	new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$A$2:$A$5', NULL, 4),	//	Q1 to Q4
-);
-//	Set the Data values for each data series we want to plot
-//		Datatype
-//		Cell reference for data
-//		Format Code
-//		Number of datapoints in series
-//		Data values
-//		Data Marker
-$dataSeriesValues = array(
-	new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$B$2:$B$5', NULL, 4),
-	new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', NULL, 4),
-	new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$D$2:$D$5', NULL, 4),
-);
-
-//	Build the dataseries
-$series = new PHPExcel_Chart_DataSeries(
-	PHPExcel_Chart_DataSeries::TYPE_AREACHART,				// plotType
-	PHPExcel_Chart_DataSeries::GROUPING_PERCENT_STACKED,	// plotGrouping
-	range(0, count($dataSeriesValues)-1),					// plotOrder
-	$dataSeriesLabels,										// plotLabel
-	$xAxisTickValues,										// plotCategory
-	$dataSeriesValues										// plotValues
-);
-
-//	Set the series in the plot area
-$plotArea = new PHPExcel_Chart_PlotArea(NULL, array($series));
-//	Set the chart legend
-$legend = new PHPExcel_Chart_Legend(PHPExcel_Chart_Legend::POSITION_TOPRIGHT, NULL, false);
-
-$title = new PHPExcel_Chart_Title('Test %age-Stacked Area Chart');
-$yAxisLabel = new PHPExcel_Chart_Title('Value ($k)');
-
-
-//	Create the chart
-$chart = new PHPExcel_Chart(
-	'chart1',		// name
-	$title,			// title
-	$legend,		// legend
-	$plotArea,		// plotArea
-	true,			// plotVisibleOnly
-	0,				// displayBlanksAs
-	NULL,			// xAxisLabel
-	$yAxisLabel		// yAxisLabel
-);
-
-//	Set the position where the chart should appear in the worksheet
-$chart->setTopLeftPosition('A7');
-$chart->setBottomRightPosition('H20');
-
-//	Add the chart to the worksheet
-$objWorksheet->addChart($chart);
-
-
-// Save Excel 2007 file
-echo date('H:i:s') , " Write to Excel2007 format" , EOL;
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
-$objWriter->setIncludeCharts(TRUE);
-$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing file" , EOL;
-echo 'File has been created in ' , getcwd() , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-bar-stacked.php b/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-bar-stacked.php
deleted file mode 100644
index cac29f29f55..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-bar-stacked.php
+++ /dev/null
@@ -1,145 +0,0 @@
-<?php
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-date_default_timezone_set('Europe/London');
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-date_default_timezone_set('Europe/London');
-
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** PHPExcel */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
-
-
-$objPHPExcel = new PHPExcel();
-$objWorksheet = $objPHPExcel->getActiveSheet();
-$objWorksheet->fromArray(
-	array(
-		array('',	2010,	2011,	2012),
-		array('Q1',   12,   15,		21),
-		array('Q2',   56,   73,		86),
-		array('Q3',   52,   61,		69),
-		array('Q4',   30,   32,		0),
-	)
-);
-
-//	Set the Labels for each data series we want to plot
-//		Datatype
-//		Cell reference for data
-//		Format Code
-//		Number of datapoints in series
-//		Data values
-//		Data Marker
-$dataSeriesLabels = array(
-	new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$B$1', NULL, 1),	//	2010
-	new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$C$1', NULL, 1),	//	2011
-	new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$D$1', NULL, 1),	//	2012
-);
-//	Set the X-Axis Labels
-//		Datatype
-//		Cell reference for data
-//		Format Code
-//		Number of datapoints in series
-//		Data values
-//		Data Marker
-$xAxisTickValues = array(
-	new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$A$2:$A$5', NULL, 4),	//	Q1 to Q4
-);
-//	Set the Data values for each data series we want to plot
-//		Datatype
-//		Cell reference for data
-//		Format Code
-//		Number of datapoints in series
-//		Data values
-//		Data Marker
-$dataSeriesValues = array(
-	new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$B$2:$B$5', NULL, 4),
-	new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', NULL, 4),
-	new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$D$2:$D$5', NULL, 4),
-);
-
-//	Build the dataseries
-$series = new PHPExcel_Chart_DataSeries(
-	PHPExcel_Chart_DataSeries::TYPE_BARCHART,		// plotType
-	PHPExcel_Chart_DataSeries::GROUPING_STACKED,	// plotGrouping
-	range(0, count($dataSeriesValues)-1),			// plotOrder
-	$dataSeriesLabels,								// plotLabel
-	$xAxisTickValues,								// plotCategory
-	$dataSeriesValues								// plotValues
-);
-//	Set additional dataseries parameters
-//		Make it a horizontal bar rather than a vertical column graph
-$series->setPlotDirection(PHPExcel_Chart_DataSeries::DIRECTION_BAR);
-
-//	Set the series in the plot area
-$plotArea = new PHPExcel_Chart_PlotArea(NULL, array($series));
-//	Set the chart legend
-$legend = new PHPExcel_Chart_Legend(PHPExcel_Chart_Legend::POSITION_RIGHT, NULL, false);
-
-$title = new PHPExcel_Chart_Title('Test Chart');
-$yAxisLabel = new PHPExcel_Chart_Title('Value ($k)');
-
-
-//	Create the chart
-$chart = new PHPExcel_Chart(
-	'chart1',		// name
-	$title,			// title
-	$legend,		// legend
-	$plotArea,		// plotArea
-	true,			// plotVisibleOnly
-	0,				// displayBlanksAs
-	NULL,			// xAxisLabel
-	$yAxisLabel		// yAxisLabel
-);
-
-//	Set the position where the chart should appear in the worksheet
-$chart->setTopLeftPosition('A7');
-$chart->setBottomRightPosition('H20');
-
-//	Add the chart to the worksheet
-$objWorksheet->addChart($chart);
-
-
-// Save Excel 2007 file
-echo date('H:i:s') , " Write to Excel2007 format" , EOL;
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
-$objWriter->setIncludeCharts(TRUE);
-$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing file" , EOL;
-echo 'File has been created in ' , getcwd() , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-bar.php b/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-bar.php
deleted file mode 100644
index 14fd5d485f9..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-bar.php
+++ /dev/null
@@ -1,145 +0,0 @@
-<?php
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-date_default_timezone_set('Europe/London');
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-date_default_timezone_set('Europe/London');
-
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** PHPExcel */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
-
-
-$objPHPExcel = new PHPExcel();
-$objWorksheet = $objPHPExcel->getActiveSheet();
-$objWorksheet->fromArray(
-	array(
-		array('',	2010,	2011,	2012),
-		array('Q1',   12,   15,		21),
-		array('Q2',   56,   73,		86),
-		array('Q3',   52,   61,		69),
-		array('Q4',   30,   32,		0),
-	)
-);
-
-//	Set the Labels for each data series we want to plot
-//		Datatype
-//		Cell reference for data
-//		Format Code
-//		Number of datapoints in series
-//		Data values
-//		Data Marker
-$dataSeriesLabels = array(
-	new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$B$1', NULL, 1),	//	2010
-	new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$C$1', NULL, 1),	//	2011
-	new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$D$1', NULL, 1),	//	2012
-);
-//	Set the X-Axis Labels
-//		Datatype
-//		Cell reference for data
-//		Format Code
-//		Number of datapoints in series
-//		Data values
-//		Data Marker
-$xAxisTickValues = array(
-	new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$A$2:$A$5', NULL, 4),	//	Q1 to Q4
-);
-//	Set the Data values for each data series we want to plot
-//		Datatype
-//		Cell reference for data
-//		Format Code
-//		Number of datapoints in series
-//		Data values
-//		Data Marker
-$dataSeriesValues = array(
-	new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$B$2:$B$5', NULL, 4),
-	new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', NULL, 4),
-	new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$D$2:$D$5', NULL, 4),
-);
-
-//	Build the dataseries
-$series = new PHPExcel_Chart_DataSeries(
-	PHPExcel_Chart_DataSeries::TYPE_BARCHART,		// plotType
-	PHPExcel_Chart_DataSeries::GROUPING_CLUSTERED,	// plotGrouping
-	range(0, count($dataSeriesValues)-1),			// plotOrder
-	$dataSeriesLabels,								// plotLabel
-	$xAxisTickValues,								// plotCategory
-	$dataSeriesValues								// plotValues
-);
-//	Set additional dataseries parameters
-//		Make it a horizontal bar rather than a vertical column graph
-$series->setPlotDirection(PHPExcel_Chart_DataSeries::DIRECTION_BAR);
-
-//	Set the series in the plot area
-$plotArea = new PHPExcel_Chart_PlotArea(NULL, array($series));
-//	Set the chart legend
-$legend = new PHPExcel_Chart_Legend(PHPExcel_Chart_Legend::POSITION_RIGHT, NULL, false);
-
-$title = new PHPExcel_Chart_Title('Test Bar Chart');
-$yAxisLabel = new PHPExcel_Chart_Title('Value ($k)');
-
-
-//	Create the chart
-$chart = new PHPExcel_Chart(
-	'chart1',		// name
-	$title,			// title
-	$legend,		// legend
-	$plotArea,		// plotArea
-	true,			// plotVisibleOnly
-	0,				// displayBlanksAs
-	NULL,			// xAxisLabel
-	$yAxisLabel		// yAxisLabel
-);
-
-//	Set the position where the chart should appear in the worksheet
-$chart->setTopLeftPosition('A7');
-$chart->setBottomRightPosition('H20');
-
-//	Add the chart to the worksheet
-$objWorksheet->addChart($chart);
-
-
-// Save Excel 2007 file
-echo date('H:i:s') , " Write to Excel2007 format" , EOL;
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
-$objWriter->setIncludeCharts(TRUE);
-$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing file" , EOL;
-echo 'File has been created in ' , getcwd() , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-column-2.php b/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-column-2.php
deleted file mode 100644
index 00bf0d71b50..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-column-2.php
+++ /dev/null
@@ -1,154 +0,0 @@
-<?php
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-date_default_timezone_set('Europe/London');
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-date_default_timezone_set('Europe/London');
-
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** PHPExcel */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
-
-
-$objPHPExcel = new PHPExcel();
-$objWorksheet = $objPHPExcel->getActiveSheet();
-$objWorksheet->fromArray(
-	array(
-		array('',		'',		'Budget',	'Forecast',	'Actual'),
-		array('2010',	'Q1',   47,   		44,			43		),
-		array('',		'Q2',   56,   		53,			50		),
-		array('',		'Q3',   52,   		46,			45		),
-		array('',		'Q4',   45,   		40,			40		),
-		array('2011',	'Q1',   51,   		42,			46		),
-		array('',		'Q2',   53,   		58,			56		),
-		array('',		'Q3',   64,   		66,			69		),
-		array('',		'Q4',   54,   		55,			56		),
-		array('2012',	'Q1',   49,   		52,			58		),
-		array('',		'Q2',   68,   		73,			86		),
-		array('',		'Q3',   72,   		78,			0		),
-		array('',		'Q4',   50,   		60,			0		),
-	)
-);
-
-//	Set the Labels for each data series we want to plot
-//		Datatype
-//		Cell reference for data
-//		Format Code
-//		Number of datapoints in series
-//		Data values
-//		Data Marker
-$dataSeriesLabels = array(
-	new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$C$1', NULL, 1),	//	'Budget'
-	new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$D$1', NULL, 1),	//	'Forecast'
-	new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$E$1', NULL, 1),	//	'Actual'
-);
-//	Set the X-Axis Labels
-//		Datatype
-//		Cell reference for data
-//		Format Code
-//		Number of datapoints in series
-//		Data values
-//		Data Marker
-$xAxisTickValues = array(
-	new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$A$2:$B$13', NULL, 12),	//	Q1 to Q4 for 2010 to 2012
-);
-//	Set the Data values for each data series we want to plot
-//		Datatype
-//		Cell reference for data
-//		Format Code
-//		Number of datapoints in series
-//		Data values
-//		Data Marker
-$dataSeriesValues = array(
-	new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$C$2:$C$13', NULL, 12),
-	new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$D$2:$D$13', NULL, 12),
-	new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$E$2:$E$13', NULL, 12),
-);
-
-//	Build the dataseries
-$series = new PHPExcel_Chart_DataSeries(
-	PHPExcel_Chart_DataSeries::TYPE_BARCHART,		// plotType
-	PHPExcel_Chart_DataSeries::GROUPING_CLUSTERED,	// plotGrouping
-	range(0, count($dataSeriesValues)-1),			// plotOrder
-	$dataSeriesLabels,								// plotLabel
-	$xAxisTickValues,								// plotCategory
-	$dataSeriesValues								// plotValues
-);
-//	Set additional dataseries parameters
-//		Make it a vertical column rather than a horizontal bar graph
-$series->setPlotDirection(PHPExcel_Chart_DataSeries::DIRECTION_COL);
-
-//	Set the series in the plot area
-$plotArea = new PHPExcel_Chart_PlotArea(NULL, array($series));
-//	Set the chart legend
-$legend = new PHPExcel_Chart_Legend(PHPExcel_Chart_Legend::POSITION_BOTTOM, NULL, false);
-
-$title = new PHPExcel_Chart_Title('Test Grouped Column Chart');
-$xAxisLabel = new PHPExcel_Chart_Title('Financial Period');
-$yAxisLabel = new PHPExcel_Chart_Title('Value ($k)');
-
-
-//	Create the chart
-$chart = new PHPExcel_Chart(
-	'chart1',		// name
-	$title,			// title
-	$legend,		// legend
-	$plotArea,		// plotArea
-	true,			// plotVisibleOnly
-	0,				// displayBlanksAs
-	$xAxisLabel,	// xAxisLabel
-	$yAxisLabel		// yAxisLabel
-);
-
-//	Set the position where the chart should appear in the worksheet
-$chart->setTopLeftPosition('G2');
-$chart->setBottomRightPosition('P20');
-
-//	Add the chart to the worksheet
-$objWorksheet->addChart($chart);
-
-
-// Save Excel 2007 file
-echo date('H:i:s') , " Write to Excel2007 format" , EOL;
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
-$objWriter->setIncludeCharts(TRUE);
-$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing file" , EOL;
-echo 'File has been created in ' , getcwd() , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-column.php b/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-column.php
deleted file mode 100644
index ae9c6185e26..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-column.php
+++ /dev/null
@@ -1,145 +0,0 @@
-<?php
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-date_default_timezone_set('Europe/London');
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-date_default_timezone_set('Europe/London');
-
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** PHPExcel */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
-
-
-$objPHPExcel = new PHPExcel();
-$objWorksheet = $objPHPExcel->getActiveSheet();
-$objWorksheet->fromArray(
-	array(
-		array('',	2010,	2011,	2012),
-		array('Q1',   12,   15,		21),
-		array('Q2',   56,   73,		86),
-		array('Q3',   52,   61,		69),
-		array('Q4',   30,   32,		0),
-	)
-);
-
-//	Set the Labels for each data series we want to plot
-//		Datatype
-//		Cell reference for data
-//		Format Code
-//		Number of datapoints in series
-//		Data values
-//		Data Marker
-$dataSeriesLabels = array(
-	new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$B$1', NULL, 1),	//	2010
-	new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$C$1', NULL, 1),	//	2011
-	new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$D$1', NULL, 1),	//	2012
-);
-//	Set the X-Axis Labels
-//		Datatype
-//		Cell reference for data
-//		Format Code
-//		Number of datapoints in series
-//		Data values
-//		Data Marker
-$xAxisTickValues = array(
-	new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$A$2:$A$5', NULL, 4),	//	Q1 to Q4
-);
-//	Set the Data values for each data series we want to plot
-//		Datatype
-//		Cell reference for data
-//		Format Code
-//		Number of datapoints in series
-//		Data values
-//		Data Marker
-$dataSeriesValues = array(
-	new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$B$2:$B$5', NULL, 4),
-	new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', NULL, 4),
-	new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$D$2:$D$5', NULL, 4),
-);
-
-//	Build the dataseries
-$series = new PHPExcel_Chart_DataSeries(
-	PHPExcel_Chart_DataSeries::TYPE_BARCHART,		// plotType
-	PHPExcel_Chart_DataSeries::GROUPING_STANDARD,	// plotGrouping
-	range(0, count($dataSeriesValues)-1),			// plotOrder
-	$dataSeriesLabels,								// plotLabel
-	$xAxisTickValues,								// plotCategory
-	$dataSeriesValues								// plotValues
-);
-//	Set additional dataseries parameters
-//		Make it a vertical column rather than a horizontal bar graph
-$series->setPlotDirection(PHPExcel_Chart_DataSeries::DIRECTION_COL);
-
-//	Set the series in the plot area
-$plotArea = new PHPExcel_Chart_PlotArea(NULL, array($series));
-//	Set the chart legend
-$legend = new PHPExcel_Chart_Legend(PHPExcel_Chart_Legend::POSITION_RIGHT, NULL, false);
-
-$title = new PHPExcel_Chart_Title('Test Column Chart');
-$yAxisLabel = new PHPExcel_Chart_Title('Value ($k)');
-
-
-//	Create the chart
-$chart = new PHPExcel_Chart(
-	'chart1',		// name
-	$title,			// title
-	$legend,		// legend
-	$plotArea,		// plotArea
-	true,			// plotVisibleOnly
-	0,				// displayBlanksAs
-	NULL,			// xAxisLabel
-	$yAxisLabel		// yAxisLabel
-);
-
-//	Set the position where the chart should appear in the worksheet
-$chart->setTopLeftPosition('A7');
-$chart->setBottomRightPosition('H20');
-
-//	Add the chart to the worksheet
-$objWorksheet->addChart($chart);
-
-
-// Save Excel 2007 file
-echo date('H:i:s') , " Write to Excel2007 format" , EOL;
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
-$objWriter->setIncludeCharts(TRUE);
-$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing file" , EOL;
-echo 'File has been created in ' , getcwd() , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-composite.php b/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-composite.php
deleted file mode 100644
index 8ea72126ccb..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-composite.php
+++ /dev/null
@@ -1,203 +0,0 @@
-<?php
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-date_default_timezone_set('Europe/London');
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-date_default_timezone_set('Europe/London');
-
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** PHPExcel */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
-
-
-$objPHPExcel = new PHPExcel();
-$objWorksheet = $objPHPExcel->getActiveSheet();
-$objWorksheet->fromArray(
-	array(
-		array('',		'Rainfall (mm)',	'Temperature (°F)',	'Humidity (%)'),
-		array('Jan',		78,   				52,					61),
-		array('Feb',		64,   				54,					62),
-		array('Mar',		62,   				57,					63),
-		array('Apr',		21,   				62,					59),
-		array('May',		11,   				75,					60),
-		array('Jun',		1,   				75,					57),
-		array('Jul',		1,   				79,					56),
-		array('Aug',		1,   				79,					59),
-		array('Sep',		10,   				75,					60),
-		array('Oct',		40,   				68,					63),
-		array('Nov',		69,   				62,					64),
-		array('Dec',		89,   				57,					66),
-	)
-);
-
-
-//	Set the Labels for each data series we want to plot
-//		Datatype
-//		Cell reference for data
-//		Format Code
-//		Number of datapoints in series
-//		Data values
-//		Data Marker
-$dataSeriesLabels1 = array(
-	new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$B$1', NULL, 1),	//	Temperature
-);
-$dataSeriesLabels2 = array(
-	new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$C$1', NULL, 1),	//	Rainfall
-);
-$dataSeriesLabels3 = array(
-	new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$D$1', NULL, 1),	//	Humidity
-);
-
-//	Set the X-Axis Labels
-//		Datatype
-//		Cell reference for data
-//		Format Code
-//		Number of datapoints in series
-//		Data values
-//		Data Marker
-$xAxisTickValues = array(
-	new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$A$2:$A$13', NULL, 12),	//	Jan to Dec
-);
-
-
-//	Set the Data values for each data series we want to plot
-//		Datatype
-//		Cell reference for data
-//		Format Code
-//		Number of datapoints in series
-//		Data values
-//		Data Marker
-$dataSeriesValues1 = array(
-	new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$B$2:$B$13', NULL, 12),
-);
-
-//	Build the dataseries
-$series1 = new PHPExcel_Chart_DataSeries(
-	PHPExcel_Chart_DataSeries::TYPE_BARCHART,		// plotType
-	PHPExcel_Chart_DataSeries::GROUPING_CLUSTERED,	// plotGrouping
-	range(0, count($dataSeriesValues1)-1),			// plotOrder
-	$dataSeriesLabels1,								// plotLabel
-	$xAxisTickValues,								// plotCategory
-	$dataSeriesValues1								// plotValues
-);
-//	Set additional dataseries parameters
-//		Make it a vertical column rather than a horizontal bar graph
-$series1->setPlotDirection(PHPExcel_Chart_DataSeries::DIRECTION_COL);
-
-
-//	Set the Data values for each data series we want to plot
-//		Datatype
-//		Cell reference for data
-//		Format Code
-//		Number of datapoints in series
-//		Data values
-//		Data Marker
-$dataSeriesValues2 = array(
-	new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$C$2:$C$13', NULL, 12),
-);
-
-//	Build the dataseries
-$series2 = new PHPExcel_Chart_DataSeries(
-	PHPExcel_Chart_DataSeries::TYPE_LINECHART,		// plotType
-	PHPExcel_Chart_DataSeries::GROUPING_STANDARD,	// plotGrouping
-	range(0, count($dataSeriesValues2)-1),			// plotOrder
-	$dataSeriesLabels2,								// plotLabel
-	NULL,											// plotCategory
-	$dataSeriesValues2								// plotValues
-);
-
-
-//	Set the Data values for each data series we want to plot
-//		Datatype
-//		Cell reference for data
-//		Format Code
-//		Number of datapoints in series
-//		Data values
-//		Data Marker
-$dataSeriesValues3 = array(
-	new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$D$2:$D$13', NULL, 12),
-);
-
-//	Build the dataseries
-$series3 = new PHPExcel_Chart_DataSeries(
-	PHPExcel_Chart_DataSeries::TYPE_AREACHART,		// plotType
-	PHPExcel_Chart_DataSeries::GROUPING_STANDARD,	// plotGrouping
-	range(0, count($dataSeriesValues2)-1),			// plotOrder
-	$dataSeriesLabels3,								// plotLabel
-	NULL,											// plotCategory
-	$dataSeriesValues3								// plotValues
-);
-
-
-//	Set the series in the plot area
-$plotArea = new PHPExcel_Chart_PlotArea(NULL, array($series1, $series2, $series3));
-//	Set the chart legend
-$legend = new PHPExcel_Chart_Legend(PHPExcel_Chart_Legend::POSITION_RIGHT, NULL, false);
-
-$title = new PHPExcel_Chart_Title('Average Weather Chart for Crete');
-
-
-//	Create the chart
-$chart = new PHPExcel_Chart(
-	'chart1',		// name
-	$title,			// title
-	$legend,		// legend
-	$plotArea,		// plotArea
-	true,			// plotVisibleOnly
-	0,				// displayBlanksAs
-	NULL,			// xAxisLabel
-	NULL			// yAxisLabel
-);
-
-//	Set the position where the chart should appear in the worksheet
-$chart->setTopLeftPosition('F2');
-$chart->setBottomRightPosition('O16');
-
-//	Add the chart to the worksheet
-$objWorksheet->addChart($chart);
-
-
-// Save Excel 2007 file
-echo date('H:i:s') , " Write to Excel2007 format" , EOL;
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
-$objWriter->setIncludeCharts(TRUE);
-$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing file" , EOL;
-echo 'File has been created in ' , getcwd() , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-line.php b/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-line.php
deleted file mode 100644
index 145ae72e8fd..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-line.php
+++ /dev/null
@@ -1,142 +0,0 @@
-<?php
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-date_default_timezone_set('Europe/London');
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-date_default_timezone_set('Europe/London');
-
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** PHPExcel */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
-
-
-$objPHPExcel = new PHPExcel();
-$objWorksheet = $objPHPExcel->getActiveSheet();
-$objWorksheet->fromArray(
-	array(
-		array('',	2010,	2011,	2012),
-		array('Q1',   12,   15,		21),
-		array('Q2',   56,   73,		86),
-		array('Q3',   52,   61,		69),
-		array('Q4',   30,   32,		0),
-	)
-);
-
-//	Set the Labels for each data series we want to plot
-//		Datatype
-//		Cell reference for data
-//		Format Code
-//		Number of datapoints in series
-//		Data values
-//		Data Marker
-$dataSeriesLabels = array(
-	new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$B$1', NULL, 1),	//	2010
-	new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$C$1', NULL, 1),	//	2011
-	new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$D$1', NULL, 1),	//	2012
-);
-//	Set the X-Axis Labels
-//		Datatype
-//		Cell reference for data
-//		Format Code
-//		Number of datapoints in series
-//		Data values
-//		Data Marker
-$xAxisTickValues = array(
-	new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$A$2:$A$5', NULL, 4),	//	Q1 to Q4
-);
-//	Set the Data values for each data series we want to plot
-//		Datatype
-//		Cell reference for data
-//		Format Code
-//		Number of datapoints in series
-//		Data values
-//		Data Marker
-$dataSeriesValues = array(
-	new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$B$2:$B$5', NULL, 4),
-	new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', NULL, 4),
-	new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$D$2:$D$5', NULL, 4),
-);
-
-//	Build the dataseries
-$series = new PHPExcel_Chart_DataSeries(
-	PHPExcel_Chart_DataSeries::TYPE_LINECHART,		// plotType
-	PHPExcel_Chart_DataSeries::GROUPING_STACKED,	// plotGrouping
-	range(0, count($dataSeriesValues)-1),			// plotOrder
-	$dataSeriesLabels,								// plotLabel
-	$xAxisTickValues,								// plotCategory
-	$dataSeriesValues								// plotValues
-);
-
-//	Set the series in the plot area
-$plotArea = new PHPExcel_Chart_PlotArea(NULL, array($series));
-//	Set the chart legend
-$legend = new PHPExcel_Chart_Legend(PHPExcel_Chart_Legend::POSITION_TOPRIGHT, NULL, false);
-
-$title = new PHPExcel_Chart_Title('Test Stacked Line Chart');
-$yAxisLabel = new PHPExcel_Chart_Title('Value ($k)');
-
-
-//	Create the chart
-$chart = new PHPExcel_Chart(
-	'chart1',		// name
-	$title,			// title
-	$legend,		// legend
-	$plotArea,		// plotArea
-	true,			// plotVisibleOnly
-	0,				// displayBlanksAs
-	NULL,			// xAxisLabel
-	$yAxisLabel		// yAxisLabel
-);
-
-//	Set the position where the chart should appear in the worksheet
-$chart->setTopLeftPosition('A7');
-$chart->setBottomRightPosition('H20');
-
-//	Add the chart to the worksheet
-$objWorksheet->addChart($chart);
-
-
-// Save Excel 2007 file
-echo date('H:i:s') , " Write to Excel2007 format" , EOL;
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
-$objWriter->setIncludeCharts(TRUE);
-$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing file" , EOL;
-echo 'File has been created in ' , getcwd() , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-multiple-charts.php b/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-multiple-charts.php
deleted file mode 100644
index a95c2763323..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-multiple-charts.php
+++ /dev/null
@@ -1,220 +0,0 @@
-<?php
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-date_default_timezone_set('Europe/London');
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-date_default_timezone_set('Europe/London');
-
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** PHPExcel */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
-
-
-$objPHPExcel = new PHPExcel();
-$objWorksheet = $objPHPExcel->getActiveSheet();
-$objWorksheet->fromArray(
-	array(
-		array('',	2010,	2011,	2012),
-		array('Q1',   12,   15,		21),
-		array('Q2',   56,   73,		86),
-		array('Q3',   52,   61,		69),
-		array('Q4',   30,   32,		0),
-	)
-);
-
-
-//	Set the Labels for each data series we want to plot
-//		Datatype
-//		Cell reference for data
-//		Format Code
-//		Number of datapoints in series
-//		Data values
-//		Data Marker
-$dataSeriesLabels1 = array(
-	new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$B$1', NULL, 1),	//	2010
-	new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$C$1', NULL, 1),	//	2011
-	new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$D$1', NULL, 1),	//	2012
-);
-//	Set the X-Axis Labels
-//		Datatype
-//		Cell reference for data
-//		Format Code
-//		Number of datapoints in series
-//		Data values
-//		Data Marker
-$xAxisTickValues1 = array(
-	new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$A$2:$A$5', NULL, 4),	//	Q1 to Q4
-);
-//	Set the Data values for each data series we want to plot
-//		Datatype
-//		Cell reference for data
-//		Format Code
-//		Number of datapoints in series
-//		Data values
-//		Data Marker
-$dataSeriesValues1 = array(
-	new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$B$2:$B$5', NULL, 4),
-	new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', NULL, 4),
-	new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$D$2:$D$5', NULL, 4),
-);
-
-//	Build the dataseries
-$series1 = new PHPExcel_Chart_DataSeries(
-	PHPExcel_Chart_DataSeries::TYPE_AREACHART,				// plotType
-	PHPExcel_Chart_DataSeries::GROUPING_PERCENT_STACKED,	// plotGrouping
-	range(0, count($dataSeriesValues1)-1),					// plotOrder
-	$dataSeriesLabels1,										// plotLabel
-	$xAxisTickValues1,										// plotCategory
-	$dataSeriesValues1										// plotValues
-);
-
-//	Set the series in the plot area
-$plotArea1 = new PHPExcel_Chart_PlotArea(NULL, array($series1));
-//	Set the chart legend
-$legend1 = new PHPExcel_Chart_Legend(PHPExcel_Chart_Legend::POSITION_TOPRIGHT, NULL, false);
-
-$title1 = new PHPExcel_Chart_Title('Test %age-Stacked Area Chart');
-$yAxisLabel1 = new PHPExcel_Chart_Title('Value ($k)');
-
-
-//	Create the chart
-$chart1 = new PHPExcel_Chart(
-	'chart1',		// name
-	$title1,		// title
-	$legend1,		// legend
-	$plotArea1,		// plotArea
-	true,			// plotVisibleOnly
-	0,				// displayBlanksAs
-	NULL,			// xAxisLabel
-	$yAxisLabel1	// yAxisLabel
-);
-
-//	Set the position where the chart should appear in the worksheet
-$chart1->setTopLeftPosition('A7');
-$chart1->setBottomRightPosition('H20');
-
-//	Add the chart to the worksheet
-$objWorksheet->addChart($chart1);
-
-
-//	Set the Labels for each data series we want to plot
-//		Datatype
-//		Cell reference for data
-//		Format Code
-//		Number of datapoints in series
-//		Data values
-//		Data Marker
-$dataSeriesLabels2 = array(
-	new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$B$1', NULL, 1),	//	2010
-	new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$C$1', NULL, 1),	//	2011
-	new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$D$1', NULL, 1),	//	2012
-);
-//	Set the X-Axis Labels
-//		Datatype
-//		Cell reference for data
-//		Format Code
-//		Number of datapoints in series
-//		Data values
-//		Data Marker
-$xAxisTickValues2 = array(
-	new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$A$2:$A$5', NULL, 4),	//	Q1 to Q4
-);
-//	Set the Data values for each data series we want to plot
-//		Datatype
-//		Cell reference for data
-//		Format Code
-//		Number of datapoints in series
-//		Data values
-//		Data Marker
-$dataSeriesValues2 = array(
-	new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$B$2:$B$5', NULL, 4),
-	new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', NULL, 4),
-	new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$D$2:$D$5', NULL, 4),
-);
-
-//	Build the dataseries
-$series2 = new PHPExcel_Chart_DataSeries(
-	PHPExcel_Chart_DataSeries::TYPE_BARCHART,		// plotType
-	PHPExcel_Chart_DataSeries::GROUPING_STANDARD,	// plotGrouping
-	range(0, count($dataSeriesValues2)-1),			// plotOrder
-	$dataSeriesLabels2,								// plotLabel
-	$xAxisTickValues2,								// plotCategory
-	$dataSeriesValues2								// plotValues
-);
-//	Set additional dataseries parameters
-//		Make it a vertical column rather than a horizontal bar graph
-$series2->setPlotDirection(PHPExcel_Chart_DataSeries::DIRECTION_COL);
-
-//	Set the series in the plot area
-$plotArea2 = new PHPExcel_Chart_PlotArea(NULL, array($series2));
-//	Set the chart legend
-$legend2 = new PHPExcel_Chart_Legend(PHPExcel_Chart_Legend::POSITION_RIGHT, NULL, false);
-
-$title2 = new PHPExcel_Chart_Title('Test Column Chart');
-$yAxisLabel2 = new PHPExcel_Chart_Title('Value ($k)');
-
-
-//	Create the chart
-$chart2 = new PHPExcel_Chart(
-	'chart2',		// name
-	$title2,		// title
-	$legend2,		// legend
-	$plotArea2,		// plotArea
-	true,			// plotVisibleOnly
-	0,				// displayBlanksAs
-	NULL,			// xAxisLabel
-	$yAxisLabel2	// yAxisLabel
-);
-
-//	Set the position where the chart should appear in the worksheet
-$chart2->setTopLeftPosition('I7');
-$chart2->setBottomRightPosition('P20');
-
-//	Add the chart to the worksheet
-$objWorksheet->addChart($chart2);
-
-
-// Save Excel 2007 file
-echo date('H:i:s') , " Write to Excel2007 format" , EOL;
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
-$objWriter->setIncludeCharts(TRUE);
-$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing file" , EOL;
-echo 'File has been created in ' , getcwd() , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-pie.php b/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-pie.php
deleted file mode 100644
index 5af02905bfc..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-pie.php
+++ /dev/null
@@ -1,215 +0,0 @@
-<?php
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-date_default_timezone_set('Europe/London');
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-date_default_timezone_set('Europe/London');
-
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** PHPExcel */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
-
-
-$objPHPExcel = new PHPExcel();
-$objWorksheet = $objPHPExcel->getActiveSheet();
-$objWorksheet->fromArray(
-	array(
-		array('',	2010,	2011,	2012),
-		array('Q1',   12,   15,		21),
-		array('Q2',   56,   73,		86),
-		array('Q3',   52,   61,		69),
-		array('Q4',   30,   32,		0),
-	)
-);
-
-
-//	Set the Labels for each data series we want to plot
-//		Datatype
-//		Cell reference for data
-//		Format Code
-//		Number of datapoints in series
-//		Data values
-//		Data Marker
-$dataSeriesLabels1 = array(
-	new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$C$1', NULL, 1),	//	2011
-);
-//	Set the X-Axis Labels
-//		Datatype
-//		Cell reference for data
-//		Format Code
-//		Number of datapoints in series
-//		Data values
-//		Data Marker
-$xAxisTickValues1 = array(
-	new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$A$2:$A$5', NULL, 4),	//	Q1 to Q4
-);
-//	Set the Data values for each data series we want to plot
-//		Datatype
-//		Cell reference for data
-//		Format Code
-//		Number of datapoints in series
-//		Data values
-//		Data Marker
-$dataSeriesValues1 = array(
-	new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', NULL, 4),
-);
-
-//	Build the dataseries
-$series1 = new PHPExcel_Chart_DataSeries(
-	PHPExcel_Chart_DataSeries::TYPE_PIECHART,				// plotType
-	NULL,			                                        // plotGrouping (Pie charts don't have any grouping)
-	range(0, count($dataSeriesValues1)-1),					// plotOrder
-	$dataSeriesLabels1,										// plotLabel
-	$xAxisTickValues1,										// plotCategory
-	$dataSeriesValues1										// plotValues
-);
-
-//	Set up a layout object for the Pie chart
-$layout1 = new PHPExcel_Chart_Layout();
-$layout1->setShowVal(TRUE);
-$layout1->setShowPercent(TRUE);
-
-//	Set the series in the plot area
-$plotArea1 = new PHPExcel_Chart_PlotArea($layout1, array($series1));
-//	Set the chart legend
-$legend1 = new PHPExcel_Chart_Legend(PHPExcel_Chart_Legend::POSITION_RIGHT, NULL, false);
-
-$title1 = new PHPExcel_Chart_Title('Test Pie Chart');
-
-
-//	Create the chart
-$chart1 = new PHPExcel_Chart(
-	'chart1',		// name
-	$title1,		// title
-	$legend1,		// legend
-	$plotArea1,		// plotArea
-	true,			// plotVisibleOnly
-	0,				// displayBlanksAs
-	NULL,			// xAxisLabel
-	NULL			// yAxisLabel		- Pie charts don't have a Y-Axis
-);
-
-//	Set the position where the chart should appear in the worksheet
-$chart1->setTopLeftPosition('A7');
-$chart1->setBottomRightPosition('H20');
-
-//	Add the chart to the worksheet
-$objWorksheet->addChart($chart1);
-
-
-//	Set the Labels for each data series we want to plot
-//		Datatype
-//		Cell reference for data
-//		Format Code
-//		Number of datapoints in series
-//		Data values
-//		Data Marker
-$dataSeriesLabels2 = array(
-	new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$C$1', NULL, 1),	//	2011
-);
-//	Set the X-Axis Labels
-//		Datatype
-//		Cell reference for data
-//		Format Code
-//		Number of datapoints in series
-//		Data values
-//		Data Marker
-$xAxisTickValues2 = array(
-	new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$A$2:$A$5', NULL, 4),	//	Q1 to Q4
-);
-//	Set the Data values for each data series we want to plot
-//		Datatype
-//		Cell reference for data
-//		Format Code
-//		Number of datapoints in series
-//		Data values
-//		Data Marker
-$dataSeriesValues2 = array(
-	new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', NULL, 4),
-);
-
-//	Build the dataseries
-$series2 = new PHPExcel_Chart_DataSeries(
-	PHPExcel_Chart_DataSeries::TYPE_DONUTCHART,		// plotType
-	NULL,			                                // plotGrouping (Donut charts don't have any grouping)
-	range(0, count($dataSeriesValues2)-1),			// plotOrder
-	$dataSeriesLabels2,								// plotLabel
-	$xAxisTickValues2,								// plotCategory
-	$dataSeriesValues2								// plotValues
-);
-
-//	Set up a layout object for the Pie chart
-$layout2 = new PHPExcel_Chart_Layout();
-$layout2->setShowVal(TRUE);
-$layout2->setShowCatName(TRUE);
-
-//	Set the series in the plot area
-$plotArea2 = new PHPExcel_Chart_PlotArea($layout2, array($series2));
-
-$title2 = new PHPExcel_Chart_Title('Test Donut Chart');
-
-
-//	Create the chart
-$chart2 = new PHPExcel_Chart(
-	'chart2',		// name
-	$title2,		// title
-	NULL,			// legend
-	$plotArea2,		// plotArea
-	true,			// plotVisibleOnly
-	0,				// displayBlanksAs
-	NULL,			// xAxisLabel
-	NULL			// yAxisLabel		- Like Pie charts, Donut charts don't have a Y-Axis
-);
-
-//	Set the position where the chart should appear in the worksheet
-$chart2->setTopLeftPosition('I7');
-$chart2->setBottomRightPosition('P20');
-
-//	Add the chart to the worksheet
-$objWorksheet->addChart($chart2);
-
-
-// Save Excel 2007 file
-echo date('H:i:s') , " Write to Excel2007 format" , EOL;
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
-$objWriter->setIncludeCharts(TRUE);
-$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing file" , EOL;
-echo 'File has been created in ' , getcwd() , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-radar.php b/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-radar.php
deleted file mode 100644
index b8b427f3b12..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-radar.php
+++ /dev/null
@@ -1,154 +0,0 @@
-<?php
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-date_default_timezone_set('Europe/London');
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-date_default_timezone_set('Europe/London');
-
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** PHPExcel */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
-
-
-$objPHPExcel = new PHPExcel();
-$objWorksheet = $objPHPExcel->getActiveSheet();
-$objWorksheet->fromArray(
-	array(
-		array('',	2010,	2011,	2012),
-		array('Jan',   47,   45,		71),
-		array('Feb',   56,   73,		86),
-		array('Mar',   52,   61,		69),
-		array('Apr',   40,   52,		60),
-		array('May',   42,   55,		71),
-		array('Jun',   58,   63,		76),
-		array('Jul',   53,   61,		89),
-		array('Aug',   46,   69,		85),
-		array('Sep',   62,   75,		81),
-		array('Oct',   51,   70,		96),
-		array('Nov',   55,   66,		89),
-		array('Dec',   68,   62,		0),
-	)
-);
-
-
-//	Set the Labels for each data series we want to plot
-//		Datatype
-//		Cell reference for data
-//		Format Code
-//		Number of datapoints in series
-//		Data values
-//		Data Marker
-$dataSeriesLabels = array(
-	new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$C$1', NULL, 1),	//	2011
-	new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$D$1', NULL, 1),	//	2012
-);
-//	Set the X-Axis Labels
-//		Datatype
-//		Cell reference for data
-//		Format Code
-//		Number of datapoints in series
-//		Data values
-//		Data Marker
-$xAxisTickValues = array(
-	new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$A$2:$A$13', NULL, 12),	//	Jan to Dec
-	new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$A$2:$A$13', NULL, 12),	//	Jan to Dec
-);
-//	Set the Data values for each data series we want to plot
-//		Datatype
-//		Cell reference for data
-//		Format Code
-//		Number of datapoints in series
-//		Data values
-//		Data Marker
-$dataSeriesValues = array(
-	new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$C$2:$C$13', NULL, 12),
-	new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$D$2:$D$13', NULL, 12),
-);
-
-//	Build the dataseries
-$series = new PHPExcel_Chart_DataSeries(
-	PHPExcel_Chart_DataSeries::TYPE_RADARCHART,				// plotType
-	NULL,													// plotGrouping (Radar charts don't have any grouping)
-	range(0, count($dataSeriesValues)-1),					// plotOrder
-	$dataSeriesLabels,										// plotLabel
-	$xAxisTickValues,										// plotCategory
-	$dataSeriesValues,										// plotValues
-	NULL,													// smooth line
-	PHPExcel_Chart_DataSeries::STYLE_MARKER					// plotStyle
-);
-
-//	Set up a layout object for the Pie chart
-$layout = new PHPExcel_Chart_Layout();
-
-//	Set the series in the plot area
-$plotArea = new PHPExcel_Chart_PlotArea($layout, array($series));
-//	Set the chart legend
-$legend = new PHPExcel_Chart_Legend(PHPExcel_Chart_Legend::POSITION_RIGHT, NULL, false);
-
-$title = new PHPExcel_Chart_Title('Test Radar Chart');
-
-
-//	Create the chart
-$chart = new PHPExcel_Chart(
-	'chart1',		// name
-	$title,			// title
-	$legend,		// legend
-	$plotArea,		// plotArea
-	true,			// plotVisibleOnly
-	0,				// displayBlanksAs
-	NULL,			// xAxisLabel
-	NULL			// yAxisLabel		- Radar charts don't have a Y-Axis
-);
-
-//	Set the position where the chart should appear in the worksheet
-$chart->setTopLeftPosition('F2');
-$chart->setBottomRightPosition('M15');
-
-//	Add the chart to the worksheet
-$objWorksheet->addChart($chart);
-
-
-// Save Excel 2007 file
-echo date('H:i:s') , " Write to Excel2007 format" , EOL;
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
-$objWriter->setIncludeCharts(TRUE);
-$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing file" , EOL;
-echo 'File has been created in ' , getcwd() , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-scatter.php b/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-scatter.php
deleted file mode 100644
index 250c61d7e4c..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-scatter.php
+++ /dev/null
@@ -1,138 +0,0 @@
-<?php
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-date_default_timezone_set('Europe/London');
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-date_default_timezone_set('Europe/London');
-
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** PHPExcel */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
-
-
-$objPHPExcel = new PHPExcel();
-$objWorksheet = $objPHPExcel->getActiveSheet();
-$objWorksheet->fromArray(
-	array(
-		array('',	2010,	2011,	2012),
-		array('Q1',   12,   15,		21),
-		array('Q2',   56,   73,		86),
-		array('Q3',   52,   61,		69),
-		array('Q4',   30,   32,		0),
-	)
-);
-
-//	Set the Labels for each data series we want to plot
-//		Datatype
-//		Cell reference for data
-//		Format Code
-//		Number of datapoints in series
-//		Data values
-//		Data Marker
-$dataSeriesLabels = array(
-	new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$B$1', NULL, 1),	//	2010
-	new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$C$1', NULL, 1),	//	2011
-	new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$D$1', NULL, 1),	//	2012
-);
-//	Set the X-Axis Labels
-$xAxisTickValues = array(
-	new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$A$2:$A$5', NULL, 4),	//	Q1 to Q4
-);
-//	Set the Data values for each data series we want to plot
-//		Datatype
-//		Cell reference for data
-//		Format Code
-//		Number of datapoints in series
-//		Data values
-//		Data Marker
-$dataSeriesValues = array(
-	new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$B$2:$B$5', NULL, 4),
-	new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', NULL, 4),
-	new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$D$2:$D$5', NULL, 4),
-);
-
-//	Build the dataseries
-$series = new PHPExcel_Chart_DataSeries(
-	PHPExcel_Chart_DataSeries::TYPE_SCATTERCHART,	// plotType
-	NULL,											// plotGrouping (Scatter charts don't have any grouping)
-	range(0, count($dataSeriesValues)-1),			// plotOrder
-	$dataSeriesLabels,								// plotLabel
-	$xAxisTickValues,								// plotCategory
-	$dataSeriesValues,								// plotValues
-	NULL,											// smooth line
-	PHPExcel_Chart_DataSeries::STYLE_LINEMARKER		// plotStyle
-);
-
-//	Set the series in the plot area
-$plotArea = new PHPExcel_Chart_PlotArea(NULL, array($series));
-//	Set the chart legend
-$legend = new PHPExcel_Chart_Legend(PHPExcel_Chart_Legend::POSITION_TOPRIGHT, NULL, false);
-
-$title = new PHPExcel_Chart_Title('Test Scatter Chart');
-$yAxisLabel = new PHPExcel_Chart_Title('Value ($k)');
-
-
-//	Create the chart
-$chart = new PHPExcel_Chart(
-	'chart1',		// name
-	$title,			// title
-	$legend,		// legend
-	$plotArea,		// plotArea
-	true,			// plotVisibleOnly
-	0,				// displayBlanksAs
-	NULL,			// xAxisLabel
-	$yAxisLabel		// yAxisLabel
-);
-
-//	Set the position where the chart should appear in the worksheet
-$chart->setTopLeftPosition('A7');
-$chart->setBottomRightPosition('H20');
-
-//	Add the chart to the worksheet
-$objWorksheet->addChart($chart);
-
-
-// Save Excel 2007 file
-echo date('H:i:s') , " Write to Excel2007 format" , EOL;
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
-$objWriter->setIncludeCharts(TRUE);
-$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing file" , EOL;
-echo 'File has been created in ' , getcwd() , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-stock.php b/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-stock.php
deleted file mode 100644
index b38fd518153..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/33chartcreate-stock.php
+++ /dev/null
@@ -1,151 +0,0 @@
-<?php
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-date_default_timezone_set('Europe/London');
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-date_default_timezone_set('Europe/London');
-
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** PHPExcel */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
-
-
-$objPHPExcel = new PHPExcel();
-$objWorksheet = $objPHPExcel->getActiveSheet();
-$objWorksheet->fromArray(
-	array(
-		array('Counts', 		'Max', 		'Min', 		'Min Threshold', 	'Max Threshold'	),
-		array(10,		 		10, 		5, 			0, 					50				),
-		array(30,		 		20, 		10, 		0,	 				50				),
-		array(20,		 		30, 		15, 		0,	 				50				),
-		array(40,		 		10, 		0, 			0, 					50				),
-		array(100,		 		40, 		5, 			0, 					50				),
-	), null, 'A1', true
-);
-$objWorksheet->getStyle('B2:E6')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER_00);
-
-
-//	Set the Labels for each data series we want to plot
-//		Datatype
-//		Cell reference for data
-//		Format Code
-//		Number of datapoints in series
-//		Data values
-//		Data Marker
-$dataSeriesLabels = array(
-	new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$B$1', NULL, 1), //Max / Open
-	new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$C$1', NULL, 1), //Min / Close
-	new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$D$1', NULL, 1), //Min Threshold / Min
-	new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$E$1', NULL, 1), //Max Threshold / Max
-);
-//	Set the X-Axis Labels
-//		Datatype
-//		Cell reference for data
-//		Format Code
-//		Number of datapoints in series
-//		Data values
-//		Data Marker
-$xAxisTickValues = array(
-	new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$A$2:$A$6', NULL, 5),	//	Counts
-);
-//	Set the Data values for each data series we want to plot
-//		Datatype
-//		Cell reference for data
-//		Format Code
-//		Number of datapoints in series
-//		Data values
-//		Data Marker
-$dataSeriesValues = array(
-	new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$B$2:$B$6', NULL, 5),
-	new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$C$2:$C$6', NULL, 5),
-	new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$D$2:$D$6', NULL, 5),
-	new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$E$2:$E$6', NULL, 5),
-);
-
-//	Build the dataseries
-$series = new PHPExcel_Chart_DataSeries(
-	PHPExcel_Chart_DataSeries::TYPE_STOCKCHART,	// plotType
-	null,										// plotGrouping - if we set this to not null, then xlsx throws error
-	range(0, count($dataSeriesValues)-1),		// plotOrder
-	$dataSeriesLabels,							// plotLabel
-	$xAxisTickValues,							// plotCategory
-	$dataSeriesValues							// plotValues
-);
-
-//	Set the series in the plot area
-$plotArea = new PHPExcel_Chart_PlotArea(NULL, array($series));
-//	Set the chart legend
-$legend = new PHPExcel_Chart_Legend(PHPExcel_Chart_Legend::POSITION_RIGHT, NULL, false);
-
-$title = new PHPExcel_Chart_Title('Test Stock Chart');
-$xAxisLabel = new PHPExcel_Chart_Title('Counts');
-$yAxisLabel = new PHPExcel_Chart_Title('Values');
-
-//	Create the chart
-$chart = new PHPExcel_Chart(
-	'stock-chart',	// name
-	$title,			// title
-	$legend,		// legend
-	$plotArea,		// plotArea
-	true,			// plotVisibleOnly
-	0,				// displayBlanksAs
-	$xAxisLabel,	// xAxisLabel
-	$yAxisLabel		// yAxisLabel
-);
-
-//	Set the position where the chart should appear in the worksheet
-$chart->setTopLeftPosition('A7');
-$chart->setBottomRightPosition('H20');
-
-//	Add the chart to the worksheet
-$objWorksheet->addChart($chart);
-
-
-// Save Excel 2007 file
-echo date('H:i:s') , " Write to Excel2007 format" , EOL;
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
-$objWriter->setIncludeCharts(TRUE);
-$filename = str_replace('.php', '.xlsx', __FILE__);
-if(file_exists($filename)) {
-	unlink($filename);
-}
-$objWriter->save($filename);
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing file" , EOL;
-echo 'File has been created in ' , getcwd() , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/34chartupdate.php b/htdocs/includes/phpoffice/phpexcel/Examples/34chartupdate.php
deleted file mode 100644
index cb586a31867..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/34chartupdate.php
+++ /dev/null
@@ -1,78 +0,0 @@
-<?php
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-date_default_timezone_set('Europe/London');
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-date_default_timezone_set('Europe/London');
-
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** PHPExcel */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
-
-if (!file_exists("33chartcreate-bar.xlsx")) {
-	exit("Please run 33chartcreate-bar.php first." . EOL);
-}
-
-echo date('H:i:s') , " Load from Excel2007 file" , EOL;
-$objReader = PHPExcel_IOFactory::createReader("Excel2007");
-$objReader->setIncludeCharts(TRUE);
-$objPHPExcel = $objReader->load("33chartcreate-bar.xlsx");
-
-
-echo date('H:i:s') , " Update cell data values that are displayed in the chart" , EOL;
-$objWorksheet = $objPHPExcel->getActiveSheet();
-$objWorksheet->fromArray(
-	array(
-		array(50-12,   50-15,		50-21),
-		array(50-56,   50-73,		50-86),
-		array(50-52,   50-61,		50-69),
-		array(50-30,   50-32,		50),
-	),
-	NULL,
-	'B2'
-);
-
-// Save Excel 2007 file
-echo date('H:i:s') , " Write to Excel2007 format" , EOL;
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
-$objWriter->setIncludeCharts(TRUE);
-$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing file" , EOL;
-echo 'File has been created in ' , getcwd() , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/35chartrender.php b/htdocs/includes/phpoffice/phpexcel/Examples/35chartrender.php
deleted file mode 100644
index f0e79636b11..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/35chartrender.php
+++ /dev/null
@@ -1,134 +0,0 @@
-<?php
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-date_default_timezone_set('Europe/London');
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-date_default_timezone_set('Europe/London');
-
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** Include path **/
-set_include_path(get_include_path() . PATH_SEPARATOR . dirname(__FILE__) . '/../Classes/');
-
-/** PHPExcel_IOFactory */
-include 'PHPExcel/IOFactory.php';
-
-
-//	Change these values to select the Rendering library that you wish to use
-//		and its directory location on your server
-$rendererName = PHPExcel_Settings::CHART_RENDERER_JPGRAPH;
-$rendererLibrary = 'jpgraph3.5.0b1/src/';
-$rendererLibraryPath = '/php/libraries/Charts/' . $rendererLibrary;
-
-
-if (!PHPExcel_Settings::setChartRenderer(
-		$rendererName,
-		$rendererLibraryPath
-	)) {
-	die(
-		'NOTICE: Please set the $rendererName and $rendererLibraryPath values' .
-		EOL .
-		'at the top of this script as appropriate for your directory structure'
-	);
-}
-
-
-$inputFileType = 'Excel2007';
-$inputFileNames = 'templates/32readwrite*[0-9].xlsx';
-
-	if ((isset($argc)) && ($argc > 1)) {
-	$inputFileNames = array();
-	for($i = 1; $i < $argc; ++$i) {
-		$inputFileNames[] = dirname(__FILE__) . '/templates/' . $argv[$i];
-	}
-} else {
-	$inputFileNames = glob($inputFileNames);
-}
-foreach($inputFileNames as $inputFileName) {
-	$inputFileNameShort = basename($inputFileName);
-
-	if (!file_exists($inputFileName)) {
-		echo date('H:i:s') , " File " , $inputFileNameShort , ' does not exist' , EOL;
-		continue;
-	}
-
-	echo date('H:i:s') , " Load Test from $inputFileType file " , $inputFileNameShort , EOL;
-
-	$objReader = PHPExcel_IOFactory::createReader($inputFileType);
-	$objReader->setIncludeCharts(TRUE);
-	$objPHPExcel = $objReader->load($inputFileName);
-
-
-	echo date('H:i:s') , " Iterate worksheets looking at the charts" , EOL;
-	foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) {
-		$sheetName = $worksheet->getTitle();
-		echo 'Worksheet: ' , $sheetName , EOL;
-
-		$chartNames = $worksheet->getChartNames();
-		if(empty($chartNames)) {
-			echo '    There are no charts in this worksheet' , EOL;
-		} else {
-			natsort($chartNames);
-			foreach($chartNames as $i => $chartName) {
-				$chart = $worksheet->getChartByName($chartName);
-				if (!is_null($chart->getTitle())) {
-					$caption = '"' . implode(' ',$chart->getTitle()->getCaption()) . '"';
-				} else {
-					$caption = 'Untitled';
-				}
-				echo '    ' , $chartName , ' - ' , $caption , EOL;
-				echo str_repeat(' ',strlen($chartName)+3);
-
-				$jpegFile = '35'.str_replace('.xlsx', '.jpg', substr($inputFileNameShort,2));
-				if (file_exists($jpegFile)) {
-					unlink($jpegFile);
-				}
-				try {
-					$chart->render($jpegFile);
-				} catch (Exception $e) {
-					echo 'Error rendering chart: ',$e->getMessage();
-				}
-			}
-		}
-	}
-
-
-	$objPHPExcel->disconnectWorksheets();
-	unset($objPHPExcel);
-}
-
-// Echo memory peak usage
-echo date('H:i:s') , ' Peak memory usage: ' , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-// Echo done
-echo date('H:i:s') , " Done rendering charts as images" , EOL;
-echo 'Image files have been created in ' , getcwd() , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/36chartreadwriteHTML.php b/htdocs/includes/phpoffice/phpexcel/Examples/36chartreadwriteHTML.php
deleted file mode 100644
index b4bae11cba2..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/36chartreadwriteHTML.php
+++ /dev/null
@@ -1,151 +0,0 @@
-<?php
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-date_default_timezone_set('Europe/London');
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-date_default_timezone_set('Europe/London');
-
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** Include path **/
-set_include_path(get_include_path() . PATH_SEPARATOR . dirname(__FILE__) . '/../Classes/');
-
-/** PHPExcel_IOFactory */
-include 'PHPExcel/IOFactory.php';
-
-
-//	Change these values to select the Rendering library that you wish to use
-//		and its directory location on your server
-$rendererName = PHPExcel_Settings::CHART_RENDERER_JPGRAPH;
-$rendererLibrary = 'jpgraph3.5.0b1/src';
-$rendererLibraryPath = '/php/libraries/Charts/' . $rendererLibrary;
-
-
-if (!PHPExcel_Settings::setChartRenderer(
-		$rendererName,
-		$rendererLibraryPath
-	)) {
-	die(
-		'NOTICE: Please set the $rendererName and $rendererLibraryPath values' .
-		EOL .
-		'at the top of this script as appropriate for your directory structure'
-	);
-}
-
-
-$inputFileType = 'Excel2007';
-$inputFileNames = 'templates/36write*.xlsx';
-
-if ((isset($argc)) && ($argc > 1)) {
-	$inputFileNames = array();
-	for($i = 1; $i < $argc; ++$i) {
-		$inputFileNames[] = dirname(__FILE__) . '/templates/' . $argv[$i];
-	}
-} else {
-	$inputFileNames = glob($inputFileNames);
-}
-foreach($inputFileNames as $inputFileName) {
-	$inputFileNameShort = basename($inputFileName);
-
-	if (!file_exists($inputFileName)) {
-		echo date('H:i:s') , " File " , $inputFileNameShort , ' does not exist' , EOL;
-		continue;
-	}
-
-	echo date('H:i:s') , " Load Test from $inputFileType file " , $inputFileNameShort , EOL;
-
-	$objReader = PHPExcel_IOFactory::createReader($inputFileType);
-	$objReader->setIncludeCharts(TRUE);
-	$objPHPExcel = $objReader->load($inputFileName);
-
-
-	echo date('H:i:s') , " Iterate worksheets looking at the charts" , EOL;
-	foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) {
-		$sheetName = $worksheet->getTitle();
-		echo 'Worksheet: ' , $sheetName , EOL;
-
-		$chartNames = $worksheet->getChartNames();
-		if(empty($chartNames)) {
-			echo '    There are no charts in this worksheet' , EOL;
-		} else {
-			natsort($chartNames);
-			foreach($chartNames as $i => $chartName) {
-				$chart = $worksheet->getChartByName($chartName);
-				if (!is_null($chart->getTitle())) {
-					$caption = '"' . implode(' ',$chart->getTitle()->getCaption()) . '"';
-				} else {
-					$caption = 'Untitled';
-				}
-				echo '    ' , $chartName , ' - ' , $caption , EOL;
-				echo str_repeat(' ',strlen($chartName)+3);
-				$groupCount = $chart->getPlotArea()->getPlotGroupCount();
-				if ($groupCount == 1) {
-					$chartType = $chart->getPlotArea()->getPlotGroupByIndex(0)->getPlotType();
-					echo '    ' , $chartType , EOL;
-				} else {
-					$chartTypes = array();
-					for($i = 0; $i < $groupCount; ++$i) {
-						$chartTypes[] = $chart->getPlotArea()->getPlotGroupByIndex($i)->getPlotType();
-					}
-					$chartTypes = array_unique($chartTypes);
-					if (count($chartTypes) == 1) {
-						$chartType = 'Multiple Plot ' . array_pop($chartTypes);
-						echo '    ' , $chartType , EOL;
-					} elseif (count($chartTypes) == 0) {
-						echo '    *** Type not yet implemented' , EOL;
-					} else {
-						echo '    Combination Chart' , EOL;
-					}
-				}
-			}
-		}
-	}
-
-
-	$outputFileName = str_replace('.xlsx', '.html', basename($inputFileName));
-
-	echo date('H:i:s') , " Write Tests to HTML file " , EOL;
-	$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'HTML');
-	$objWriter->setIncludeCharts(TRUE);
-	$objWriter->save($outputFileName);
-	echo date('H:i:s') , " File written to " , $outputFileName , EOL;
-
-	$objPHPExcel->disconnectWorksheets();
-	unset($objPHPExcel);
-}
-
-// Echo memory peak usage
-echo date('H:i:s') , ' Peak memory usage: ' , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing files" , EOL;
-echo 'Files have been created in ' , getcwd() , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/36chartreadwritePDF.php b/htdocs/includes/phpoffice/phpexcel/Examples/36chartreadwritePDF.php
deleted file mode 100644
index 10d62cd04ba..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/36chartreadwritePDF.php
+++ /dev/null
@@ -1,174 +0,0 @@
-<?php
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-date_default_timezone_set('Europe/London');
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-date_default_timezone_set('Europe/London');
-
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** Include path **/
-set_include_path(get_include_path() . PATH_SEPARATOR . dirname(__FILE__) . '/../Classes/');
-
-/** PHPExcel_IOFactory */
-include 'PHPExcel/IOFactory.php';
-
-
-//	Change these values to select the Rendering library that you wish to use
-//		for PDF files, and its directory location on your server
-//$rendererName = PHPExcel_Settings::PDF_RENDERER_TCPDF;
-$rendererName = PHPExcel_Settings::PDF_RENDERER_MPDF;
-//$rendererName = PHPExcel_Settings::PDF_RENDERER_DOMPDF;
-//$rendererLibrary = 'tcPDF5.9';
-$rendererLibrary = 'mPDF5.4';
-//$rendererLibrary = 'domPDF0.6.0beta3';
-$rendererLibraryPath = '/php/libraries/PDF/' . $rendererLibrary;
-
-
-if (!PHPExcel_Settings::setPdfRenderer(
-		$rendererName,
-		$rendererLibraryPath
-	)) {
-	die(
-		'NOTICE: Please set the $rendererName and $rendererLibraryPath values' .
-		EOL .
-		'at the top of this script as appropriate for your directory structure'
-	);
-}
-
-
-//	Change these values to select the Rendering library that you wish to use
-//		for Chart images, and its directory location on your server
-$rendererName = PHPExcel_Settings::CHART_RENDERER_JPGRAPH;
-$rendererLibrary = 'jpgraph3.5.0b1/src';
-$rendererLibraryPath = '/php/libraries/Charts/' . $rendererLibrary;
-
-
-if (!PHPExcel_Settings::setChartRenderer(
-		$rendererName,
-		$rendererLibraryPath
-	)) {
-	die(
-		'NOTICE: Please set the $rendererName and $rendererLibraryPath values' .
-		EOL .
-		'at the top of this script as appropriate for your directory structure'
-	);
-}
-
-
-$inputFileType = 'Excel2007';
-$inputFileNames = 'templates/36write*.xlsx';
-
-if ((isset($argc)) && ($argc > 1)) {
-	$inputFileNames = array();
-	for($i = 1; $i < $argc; ++$i) {
-		$inputFileNames[] = dirname(__FILE__) . '/templates/' . $argv[$i];
-	}
-} else {
-	$inputFileNames = glob($inputFileNames);
-}
-foreach($inputFileNames as $inputFileName) {
-	$inputFileNameShort = basename($inputFileName);
-
-	if (!file_exists($inputFileName)) {
-		echo date('H:i:s') , " File " , $inputFileNameShort , ' does not exist' , EOL;
-		continue;
-	}
-
-	echo date('H:i:s') , " Load Test from $inputFileType file " , $inputFileNameShort , EOL;
-
-	$objReader = PHPExcel_IOFactory::createReader($inputFileType);
-	$objReader->setIncludeCharts(TRUE);
-	$objPHPExcel = $objReader->load($inputFileName);
-
-
-	echo date('H:i:s') , " Iterate worksheets looking at the charts" , EOL;
-	foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) {
-		$sheetName = $worksheet->getTitle();
-		echo 'Worksheet: ' , $sheetName , EOL;
-
-		$chartNames = $worksheet->getChartNames();
-		if(empty($chartNames)) {
-			echo '    There are no charts in this worksheet' , EOL;
-		} else {
-			natsort($chartNames);
-			foreach($chartNames as $i => $chartName) {
-				$chart = $worksheet->getChartByName($chartName);
-				if (!is_null($chart->getTitle())) {
-					$caption = '"' . implode(' ',$chart->getTitle()->getCaption()) . '"';
-				} else {
-					$caption = 'Untitled';
-				}
-				echo '    ' , $chartName , ' - ' , $caption , EOL;
-				echo str_repeat(' ',strlen($chartName)+3);
-				$groupCount = $chart->getPlotArea()->getPlotGroupCount();
-				if ($groupCount == 1) {
-					$chartType = $chart->getPlotArea()->getPlotGroupByIndex(0)->getPlotType();
-					echo '    ' , $chartType , EOL;
-				} else {
-					$chartTypes = array();
-					for($i = 0; $i < $groupCount; ++$i) {
-						$chartTypes[] = $chart->getPlotArea()->getPlotGroupByIndex($i)->getPlotType();
-					}
-					$chartTypes = array_unique($chartTypes);
-					if (count($chartTypes) == 1) {
-						$chartType = 'Multiple Plot ' . array_pop($chartTypes);
-						echo '    ' , $chartType , EOL;
-					} elseif (count($chartTypes) == 0) {
-						echo '    *** Type not yet implemented' , EOL;
-					} else {
-						echo '    Combination Chart' , EOL;
-					}
-				}
-			}
-		}
-	}
-
-
-	$outputFileName = str_replace('.xlsx', '.pdf', basename($inputFileName));
-
-	echo date('H:i:s') , " Write Tests to HTML file " , EOL;
-	$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'PDF');
-	$objWriter->setIncludeCharts(TRUE);
-	$objWriter->save($outputFileName);
-	echo date('H:i:s') , " File written to " , $outputFileName , EOL;
-
-	$objPHPExcel->disconnectWorksheets();
-	unset($objPHPExcel);
-}
-
-// Echo memory peak usage
-echo date('H:i:s') , ' Peak memory usage: ' , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing files" , EOL;
-echo 'Files have been created in ' , getcwd() , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/37page_layout_view.php b/htdocs/includes/phpoffice/phpexcel/Examples/37page_layout_view.php
deleted file mode 100644
index 070f512a2a7..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/37page_layout_view.php
+++ /dev/null
@@ -1,83 +0,0 @@
-<?php
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-date_default_timezone_set('Europe/London');
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-/** Include PHPExcel */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
-
-
-// Create new PHPExcel object
-echo date('H:i:s') , " Create new PHPExcel object" , EOL;
-$objPHPExcel = new PHPExcel();
-
-// Set document properties
-echo date('H:i:s') , " Set document properties" , EOL;
-$objPHPExcel->getProperties()->setCreator("PHPOffice")
-							 ->setLastModifiedBy("PHPOffice")
-							 ->setTitle("PHPExcel Test Document")
-							 ->setSubject("PHPExcel Test Document")
-							 ->setDescription("Test document for PHPExcel, generated using PHP classes.")
-							 ->setKeywords("Office PHPExcel php")
-							 ->setCategory("Test result file");
-
-
-// Add some data
-echo date('H:i:s') , " Add some data" , EOL;
-$objPHPExcel->setActiveSheetIndex(0)
-            ->setCellValue('A1', 'Hello')
-            ->setCellValue('B2', 'world!');
-
-// Set active sheet index to the first sheet, so Excel opens this as the first sheet
-$objPHPExcel->setActiveSheetIndex(0);
-
-// Set the page layout view as page layout
-$objPHPExcel->getActiveSheet()->getSheetView()->setView(PHPExcel_Worksheet_SheetView::SHEETVIEW_PAGE_LAYOUT);
-
-// Save Excel 2007 file
-echo date('H:i:s') , " Write to Excel2007 format" , EOL;
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
-$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-// Save Excel5 file
-echo date('H:i:s') , " Write to Excel5 format" , EOL;
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
-$objWriter->save(str_replace('.php', '.xls', __FILE__));
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing files" , EOL;
-echo 'Files have been created in ' , getcwd() , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/38cloneWorksheet.php b/htdocs/includes/phpoffice/phpexcel/Examples/38cloneWorksheet.php
deleted file mode 100644
index 901b887eeb9..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/38cloneWorksheet.php
+++ /dev/null
@@ -1,118 +0,0 @@
-<?php
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-date_default_timezone_set('Europe/London');
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-/** Include PHPExcel */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
-
-
-// Create new PHPExcel object
-echo date('H:i:s') , " Create new PHPExcel object" , EOL;
-$objPHPExcel = new PHPExcel();
-
-// Set document properties
-echo date('H:i:s') , " Set document properties" , EOL;
-$objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
-							 ->setLastModifiedBy("Maarten Balliauw")
-							 ->setTitle("PHPExcel Test Document")
-							 ->setSubject("PHPExcel Test Document")
-							 ->setDescription("Test document for PHPExcel, generated using PHP classes.")
-							 ->setKeywords("office PHPExcel php")
-							 ->setCategory("Test result file");
-
-
-// Add some data
-echo date('H:i:s') , " Add some data" , EOL;
-$objPHPExcel->setActiveSheetIndex(0)
-            ->setCellValue('A1', 'Hello')
-            ->setCellValue('B2', 'world!')
-            ->setCellValue('C1', 'Hello')
-            ->setCellValue('D2', 'world!');
-
-// Miscellaneous glyphs, UTF-8
-$objPHPExcel->setActiveSheetIndex(0)
-            ->setCellValue('A4', 'Miscellaneous glyphs')
-            ->setCellValue('A5', 'éàèùâêîôûëïüÿäöüç');
-
-
-$objPHPExcel->getActiveSheet()->setCellValue('A8',"Hello\nWorld");
-$objPHPExcel->getActiveSheet()->getRowDimension(8)->setRowHeight(-1);
-$objPHPExcel->getActiveSheet()->getStyle('A8')->getAlignment()->setWrapText(true);
-
-
-// Rename worksheet
-echo date('H:i:s') , " Rename worksheet" , EOL;
-$objPHPExcel->getActiveSheet()->setTitle('Simple');
-
-
-// Clone worksheet
-echo date('H:i:s') , " Clone worksheet" , EOL;
-$clonedSheet = clone $objPHPExcel->getActiveSheet();
-$clonedSheet
-    ->setCellValue('A1', 'Goodbye')
-    ->setCellValue('A2', 'cruel')
-    ->setCellValue('C1', 'Goodbye')
-    ->setCellValue('C2', 'cruel');
-
-// Rename cloned worksheet
-echo date('H:i:s') , " Rename cloned worksheet" , EOL;
-$clonedSheet->setTitle('Simple Clone');
-$objPHPExcel->addSheet($clonedSheet);
-
-
-// Set active sheet index to the first sheet, so Excel opens this as the first sheet
-$objPHPExcel->setActiveSheetIndex(0);
-
-
-// Save Excel 2007 file
-echo date('H:i:s') , " Write to Excel2007 format" , EOL;
-$callStartTime = microtime(true);
-
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
-$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing files" , EOL;
-echo 'File has been created in ' , getcwd() , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/39dropdown.php b/htdocs/includes/phpoffice/phpexcel/Examples/39dropdown.php
deleted file mode 100644
index 5dadc09922f..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/39dropdown.php
+++ /dev/null
@@ -1,175 +0,0 @@
-<?php
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-date_default_timezone_set('Europe/London');
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-/** Include PHPExcel */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
-
-
-// Create new PHPExcel object
-echo date('H:i:s') , " Create new PHPExcel object" , EOL;
-$objPHPExcel = new PHPExcel();
-
-// Set document properties
-echo date('H:i:s') , " Set document properties" , EOL;
-$objPHPExcel->getProperties()
-    ->setCreator("PHPOffice")
-	->setLastModifiedBy("PHPOffice")
-	->setTitle("PHPExcel Test Document")
-	->setSubject("PHPExcel Test Document")
-	->setDescription("Test document for PHPExcel, generated using PHP classes.")
-	->setKeywords("Office PHPExcel php")
-	->setCategory("Test result file");
-
-
-function transpose($value) {
-    return array($value);
-}
-
-// Add some data
-$continentColumn = 'D';
-$column = 'F';
-
-// Set data for dropdowns
-foreach(glob('./data/continents/*') as $key => $filename) {
-    $continent = pathinfo($filename, PATHINFO_FILENAME);
-    echo "Loading $continent", EOL;
-    $continent = str_replace(' ','_',$continent);
-    $countries = file($filename, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
-    $countryCount = count($countries);
-
-    // Transpose $countries from a row to a column array
-    $countries = array_map('transpose', $countries);
-    $objPHPExcel->getActiveSheet()
-        ->fromArray($countries, null, $column . '1');
-    $objPHPExcel->addNamedRange(
-        new PHPExcel_NamedRange(
-            $continent, 
-            $objPHPExcel->getActiveSheet(), $column . '1:' . $column . $countryCount
-        )
-    );
-    $objPHPExcel->getActiveSheet()
-        ->getColumnDimension($column)
-        ->setVisible(false);
-
-    $objPHPExcel->getActiveSheet()
-        ->setCellValue($continentColumn . ($key+1), $continent);
-
-    ++$column;
-}
-
-// Hide the dropdown data
-$objPHPExcel->getActiveSheet()
-    ->getColumnDimension($continentColumn)
-    ->setVisible(false);
-
-$objPHPExcel->addNamedRange(
-    new PHPExcel_NamedRange(
-        'Continents', 
-        $objPHPExcel->getActiveSheet(), $continentColumn . '1:' . $continentColumn . ($key+1)
-    )
-);
-
-
-// Set selection cells
-$objPHPExcel->getActiveSheet()
-    ->setCellValue('A1', 'Continent:');
-$objPHPExcel->getActiveSheet()
-    ->setCellValue('B1', 'Select continent');
-$objPHPExcel->getActiveSheet()
-    ->setCellValue('B3', '=' . $column . 1);
-$objPHPExcel->getActiveSheet()
-    ->setCellValue('B3', 'Select country');
-$objPHPExcel->getActiveSheet()
-    ->getStyle('A1:A3')
-    ->getFont()->setBold(true);
-
-// Set linked validators
-$objValidation = $objPHPExcel->getActiveSheet()
-    ->getCell('B1')
-    ->getDataValidation();
-$objValidation->setType( PHPExcel_Cell_DataValidation::TYPE_LIST )
-    ->setErrorStyle( PHPExcel_Cell_DataValidation::STYLE_INFORMATION )
-    ->setAllowBlank(false)
-    ->setShowInputMessage(true)
-    ->setShowErrorMessage(true)
-    ->setShowDropDown(true)
-    ->setErrorTitle('Input error')
-    ->setError('Continent is not in the list.')
-    ->setPromptTitle('Pick from the list')
-    ->setPrompt('Please pick a continent from the drop-down list.')
-    ->setFormula1('=Continents');
-
-$objPHPExcel->getActiveSheet()
-    ->setCellValue('A3', 'Country:');
-$objPHPExcel->getActiveSheet()
-    ->getStyle('A3')
-    ->getFont()->setBold(true);
-
-$objValidation = $objPHPExcel->getActiveSheet()
-    ->getCell('B3')
-    ->getDataValidation();
-$objValidation->setType( PHPExcel_Cell_DataValidation::TYPE_LIST )
-    ->setErrorStyle( PHPExcel_Cell_DataValidation::STYLE_INFORMATION )
-    ->setAllowBlank(false)
-    ->setShowInputMessage(true)
-    ->setShowErrorMessage(true)
-    ->setShowDropDown(true)
-    ->setErrorTitle('Input error')
-    ->setError('Country is not in the list.')
-    ->setPromptTitle('Pick from the list')
-    ->setPrompt('Please pick a country from the drop-down list.')
-    ->setFormula1('=INDIRECT($B$1)');
-
-
-$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(12);
-$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(30);
-
-
-// Set active sheet index to the first sheet, so Excel opens this as the first sheet
-$objPHPExcel->setActiveSheetIndex(0);
-
-// Save Excel 2007 file
-// This linked validation list method only seems to work for Excel2007, not for Excel5
-echo date('H:i:s') , " Write to Excel2007 format" , EOL;
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
-$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing files" , EOL;
-echo 'Files have been created in ' , getcwd() , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/40duplicateStyle.php b/htdocs/includes/phpoffice/phpexcel/Examples/40duplicateStyle.php
deleted file mode 100644
index be31951a492..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/40duplicateStyle.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-date_default_timezone_set('Europe/London');
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-date_default_timezone_set('Europe/London');
-
-/** Include PHPExcel */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
-
-echo date('H:i:s') , " Create new PHPExcel object" , EOL;
-$objPHPExcel = new PHPExcel();
-$worksheet = $objPHPExcel->getActiveSheet();
-
-echo date('H:i:s') , " Create styles array" , EOL;
-$styles = array();
-for ($i = 0; $i < 10; $i++) {
-    $style = new PHPExcel_Style();
-    $style->getFont()->setSize($i + 4);
-    $styles[] = $style;
-}
-
-echo date('H:i:s') , " Add data (begin)" , EOL;
-$t = microtime(true);
-for ($col = 0; $col < 50; $col++) {
-    for ($row = 0; $row < 100; $row++) {
-        $str = ($row + $col);
-        $style = $styles[$row % 10];
-        $coord = PHPExcel_Cell::stringFromColumnIndex($col) . ($row + 1);
-        $worksheet->setCellValue($coord, $str);
-        $worksheet->duplicateStyle($style, $coord);
-    }
-}
-$d = microtime(true) - $t;
-echo date('H:i:s') , " Add data (end), time: " . round($d, 2) . " s", EOL;
-
-
-echo date('H:i:s') , " Write to Excel2007 format" , EOL;
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
-$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-
-
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-echo date('H:i:s') , " Done writing file" , EOL;
-echo 'File has been created in ' , getcwd() , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/41password.php b/htdocs/includes/phpoffice/phpexcel/Examples/41password.php
deleted file mode 100644
index 7b03e4f9a1f..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/41password.php
+++ /dev/null
@@ -1,84 +0,0 @@
-<?php
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-date_default_timezone_set('Europe/London');
-
-include "05featuredemo.inc.php";
-
-/** Include PHPExcel_IOFactory */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel/IOFactory.php';
-
-
-// Set password against the spreadsheet file
-$objPHPExcel->getSecurity()->setLockWindows(true);
-$objPHPExcel->getSecurity()->setLockStructure(true);
-$objPHPExcel->getSecurity()->setWorkbookPassword('secret');
-
-
-// Save Excel 2007 file
-echo date('H:i:s') , " Write to Excel2007 format" , EOL;
-$callStartTime = microtime(true);
-
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
-$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-
-// Save Excel 95 file
-echo date('H:i:s') , " Write to Excel5 format" , EOL;
-$callStartTime = microtime(true);
-
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
-$objWriter->save(str_replace('.php', '.xls', __FILE__));
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing files" , EOL;
-echo 'Files have been created in ' , getcwd() , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/42richText.php b/htdocs/includes/phpoffice/phpexcel/Examples/42richText.php
deleted file mode 100644
index 4e99b853544..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/42richText.php
+++ /dev/null
@@ -1,159 +0,0 @@
-<?php
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** Error reporting */
-error_reporting(E_ALL);
-ini_set('display_errors', TRUE);
-ini_set('display_startup_errors', TRUE);
-date_default_timezone_set('Europe/London');
-
-define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
-
-/** Include PHPExcel */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';
-
-
-// Create new PHPExcel object
-echo date('H:i:s') , " Create new PHPExcel object" , EOL;
-$objPHPExcel = new PHPExcel();
-
-// Set document properties
-echo date('H:i:s') , " Set document properties" , EOL;
-$objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
-							 ->setLastModifiedBy("Maarten Balliauw")
-							 ->setTitle("PHPExcel Test Document")
-							 ->setSubject("PHPExcel Test Document")
-							 ->setDescription("Test document for PHPExcel, generated using PHP classes.")
-							 ->setKeywords("office PHPExcel php")
-							 ->setCategory("Test result file");
-
-
-// Add some data
-echo date('H:i:s') , " Add some data" , EOL;
-
-$html1='<font color="#0000ff">
-<h1 align="center">My very first example of rich text<br />generated from html markup</h1>
-<p>
-<font size="14" COLOR="rgb(0,255,128)">
-<b>This block</b> contains an <i>italicized</i> word;
-while this block uses an <u>underline</u>.
-</font>
-</p>
-<p align="right"><font size="9" color="red">
-I want to eat <ins><del>healthy food</del><strong>pizza</strong></ins>.
-</font>
-';
-
-$html2='<p>
-<font color="#ff0000">
-    100&deg;C is a hot temperature
-</font>
-<br>
-<font color="#0080ff">
-    10&deg;F is cold
-</font>
-</p>';
-
-$html3='2<sup>3</sup> equals 8';
-
-$html4='H<sub>2</sub>SO<sub>4</sub> is the chemical formula for Sulphuric acid';
-
-
-$wizard = new PHPExcel_Helper_HTML;
-$richText = $wizard->toRichTextObject($html1);
-
-$objPHPExcel->setActiveSheetIndex(0)
-    ->setCellValue('A1', $richText);
-
-$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(48);
-$objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
-$objPHPExcel->getActiveSheet()->getStyle('A1')
-    ->getAlignment()
-    ->setWrapText(true);
-
-$richText = $wizard->toRichTextObject($html2);
-
-$objPHPExcel->setActiveSheetIndex(0)
-    ->setCellValue('A2', $richText);
-
-$objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
-$objPHPExcel->getActiveSheet()->getStyle('A2')
-    ->getAlignment()
-    ->setWrapText(true);
-
-$objPHPExcel->setActiveSheetIndex(0)
-            ->setCellValue('A3', $wizard->toRichTextObject($html3));
-
-$objPHPExcel->setActiveSheetIndex(0)
-    ->setCellValue('A4', $wizard->toRichTextObject($html4));
-
-
-// Rename worksheet
-echo date('H:i:s') , " Rename worksheet" , EOL;
-$objPHPExcel->getActiveSheet()->setTitle('Simple');
-
-
-// Set active sheet index to the first sheet, so Excel opens this as the first sheet
-$objPHPExcel->setActiveSheetIndex(0);
-
-
-// Save Excel 2007 file
-echo date('H:i:s') , " Write to Excel2007 format" , EOL;
-$callStartTime = microtime(true);
-
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
-$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-
-// Save Excel 95 file
-echo date('H:i:s') , " Write to Excel5 format" , EOL;
-$callStartTime = microtime(true);
-
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
-$objWriter->save(str_replace('.php', '.xls', __FILE__));
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
-echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing files" , EOL;
-echo 'Files have been created in ' , getcwd() , EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/Excel2003XMLReader.php b/htdocs/includes/phpoffice/phpexcel/Examples/Excel2003XMLReader.php
deleted file mode 100644
index 99d6df80728..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/Excel2003XMLReader.php
+++ /dev/null
@@ -1,61 +0,0 @@
-<?php
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** Error reporting */
-error_reporting(E_ALL);
-
-date_default_timezone_set('Europe/London');
-
-/** PHPExcel_IOFactory */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel/IOFactory.php';
-
-
-echo date('H:i:s') , " Load from Excel2003XML file" , PHP_EOL;
-$callStartTime = microtime(true);
-
-$objReader = PHPExcel_IOFactory::createReader('Excel2003XML');
-$objPHPExcel = $objReader->load("Excel2003XMLTest.xml");
-
-
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-echo 'Call time to read Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , PHP_EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , PHP_EOL;
-
-
-echo date('H:i:s') , " Write to Excel5 format" , PHP_EOL;
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
-$objWriter->save(str_replace('.php', '.xls', __FILE__));
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', __FILE__) , PHP_EOL;
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , PHP_EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing file" , PHP_EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/Excel2003XMLTest.xml b/htdocs/includes/phpoffice/phpexcel/Examples/Excel2003XMLTest.xml
deleted file mode 100644
index fb2d305c379..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/Excel2003XMLTest.xml
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><?mso-application progid="Excel.Sheet"?><Workbook xmlns:c="urn:schemas-microsoft-com:office:component:spreadsheet" xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:x2="http://schemas.microsoft.com/office/excel/2003/xml" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:x="urn:schemas-microsoft-com:office:excel"><OfficeDocumentSettings xmlns="urn:schemas-microsoft-com:office:office"><Colors><Color><Index>3</Index><RGB>#000000</RGB></Color><Color><Index>4</Index><RGB>#0000ff</RGB></Color><Color><Index>5</Index><RGB>#008000</RGB></Color><Color><Index>6</Index><RGB>#00ccff</RGB></Color><Color><Index>7</Index><RGB>#800080</RGB></Color><Color><Index>8</Index><RGB>#993366</RGB></Color><Color><Index>9</Index><RGB>#c0c0c0</RGB></Color><Color><Index>10</Index><RGB>#c47512</RGB></Color><Color><Index>11</Index><RGB>#ccffcc</RGB></Color><Color><Index>12</Index><RGB>#ddbc7d</RGB></Color><Color><Index>13</Index><RGB>#ff0000</RGB></Color><Color><Index>14</Index><RGB>#ff00ff</RGB></Color><Color><Index>15</Index><RGB>#ff6600</RGB></Color><Color><Index>16</Index><RGB>#ff9900</RGB></Color><Color><Index>17</Index><RGB>#ff99cc</RGB></Color><Color><Index>18</Index><RGB>#ffff00</RGB></Color></Colors></OfficeDocumentSettings><ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel"><WindowHeight>9000</WindowHeight><WindowWidth>13860</WindowWidth><WindowTopX>240</WindowTopX><WindowTopY>75</WindowTopY><ProtectStructure>False</ProtectStructure><ProtectWindows>False</ProtectWindows></ExcelWorkbook><Styles><Style ss:ID="Default" ss:Name="Default"/><Style ss:ID="Result" ss:Name="Result"><Font ss:Bold="1" ss:Italic="1" ss:Underline="Single"/></Style><Style ss:ID="Result2" ss:Name="Result2"><Font ss:Bold="1" ss:Italic="1" ss:Underline="Single"/><NumberFormat ss:Format="Currency"/></Style><Style ss:ID="Heading" ss:Name="Heading"><Font ss:Bold="1" ss:Italic="1" ss:Size="16"/></Style><Style ss:ID="Heading1" ss:Name="Heading1"><Font ss:Bold="1" ss:Italic="1" ss:Size="16"/></Style><Style ss:ID="Gnumeric-default" ss:Name="Gnumeric-default"><Font ss:Color="#000000" ss:FontName="Sans" ss:Size="10"/></Style><Style ss:ID="co1"/><Style ss:ID="co2"/><Style ss:ID="co3"/><Style ss:ID="co4"/><Style ss:ID="co5"/><Style ss:ID="co6"/><Style ss:ID="co7"/><Style ss:ID="co8"/><Style ss:ID="co9"/><Style ss:ID="ta1"/><Style ss:ID="ce1"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Bold="1" ss:Color="#ff0000" ss:FontName="Arial1" ss:Size="11"/></Style><Style ss:ID="ce2"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Bold="1" ss:Color="#000000" ss:FontName="Arial1" ss:Italic="1" ss:Size="11"/></Style><Style ss:ID="ce3"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Arial1" ss:Size="11" ss:Underline="Single"/></Style><Style ss:ID="ce4"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Arial1" ss:Size="11"/></Style><Style ss:ID="ce5"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce6"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11" ss:Underline="Single"/></Style><Style ss:ID="ce7"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11" ss:Underline="Double"/></Style><Style ss:ID="ce8"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11" ss:StrikeThrough="1"/></Style><Style ss:ID="ce9"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Arial1" ss:Size="11"/><NumberFormat ss:Format="Short Date"/></Style><Style ss:ID="ce10"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Arial1" ss:Size="11"/><NumberFormat ss:Format="Fixed"/></Style><Style ss:ID="ce11"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/><NumberFormat ss:Format="Short Time"/></Style><Style ss:ID="ce12"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/><NumberFormat ss:Format="General Date"/></Style><Style ss:ID="ce13"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Sans" ss:Size="10"/></Style><Style ss:ID="ce14"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Sans" ss:Size="10" ss:Underline="Single"/></Style><Style ss:ID="ce15"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Sans" ss:Size="10" ss:Underline="Double"/></Style><Style ss:ID="ce16"><Alignment ss:Vertical="Bottom" ss:WrapText="1" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Sans" ss:Size="10"/></Style><Style ss:ID="ce17"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#0000ff" ss:FontName="Sans" ss:Size="10" ss:Underline="Single"/></Style><Style ss:ID="ce18"><Alignment ss:Horizontal="Center" ss:Vertical="Center" ss:Rotate="0"/><Borders><Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="3" ss:Color="#00b050"/><Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="3" ss:Color="#0070c0"/><Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="3" ss:Color="#ffff00"/><Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="3" ss:Color="#ff0000"/></Borders><Font ss:Color="#000000" ss:FontName="Arial1" ss:Size="11"/></Style><Style ss:ID="ce19"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders><Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="2" ss:Color="#000000"/></Borders><Font ss:Color="#000000" ss:FontName="Arial1" ss:Size="11"/></Style><Style ss:ID="ce20"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders><Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="2" ss:Color="#000000"/></Borders><Font ss:Color="#000000" ss:FontName="Arial1" ss:Size="11"/></Style><Style ss:ID="ce21"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders><Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="2" ss:Color="#000000"/></Borders><Font ss:Color="#000000" ss:FontName="Arial1" ss:Size="11"/></Style><Style ss:ID="ce22"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders><Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="2" ss:Color="#000000"/></Borders><Font ss:Color="#000000" ss:FontName="Arial1" ss:Size="11"/></Style><Style ss:ID="ce23"><Alignment ss:Horizontal="Center" ss:Vertical="Center" ss:Rotate="90"/><Borders/><Font ss:Color="#000000" ss:FontName="Sans" ss:Size="10"/></Style><Style ss:ID="ce24"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Arial1" ss:Size="11"/><NumberFormat ss:Format="General"/></Style><Style ss:ID="ce25"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/><NumberFormat ss:Format="General"/></Style><Style ss:ID="ce26"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Bold="1" ss:Color="#000000" ss:FontName="Arial1" ss:Size="11"/></Style><Style ss:ID="ce27"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Arial1" ss:Italic="1" ss:Size="11"/></Style><Style ss:ID="ce28"><Alignment ss:Horizontal="Center" ss:Vertical="Center" ss:Rotate="45"/><Borders/><Font ss:Color="#000000" ss:FontName="Sans" ss:Size="10"/></Style><Style ss:ID="ce29"><Alignment ss:Vertical="Top" ss:WrapText="1" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce30"><Alignment ss:Vertical="Bottom" ss:WrapText="1" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce31"><Alignment ss:Horizontal="Center" ss:Vertical="Center" ss:Rotate="-90"/><Borders/><Font ss:Color="#000000" ss:FontName="Sans" ss:Size="10"/></Style><Style ss:ID="ce32"><Alignment ss:Horizontal="Center" ss:Vertical="Center" ss:WrapText="1" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce33"><Alignment ss:Vertical="Bottom" ss:WrapText="1" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce34"><Alignment ss:Vertical="Bottom" ss:WrapText="1" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce35"><Alignment ss:Horizontal="Center" ss:Vertical="Center" ss:Rotate="-45"/><Borders/><Font ss:Color="#000000" ss:FontName="Sans" ss:Size="10"/></Style><Style ss:ID="ce36"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce37"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/><Interior ss:Color="#ff0000" ss:Pattern="Solid"/></Style><Style ss:ID="ce38"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/><Interior ss:Color="#ff9900" ss:Pattern="Solid"/></Style><Style ss:ID="ce39"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/><Interior ss:Color="#ffff00" ss:Pattern="Solid"/></Style><Style ss:ID="ce40"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/><Interior ss:Color="#008000" ss:Pattern="Solid"/></Style><Style ss:ID="ce41"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/><Interior ss:Color="#0000ff" ss:Pattern="Solid"/></Style><Style ss:ID="ce42"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/><Interior ss:Color="#993366" ss:Pattern="Solid"/></Style><Style ss:ID="ce43"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/><Interior ss:Color="#ff99cc" ss:Pattern="Solid"/></Style><Style ss:ID="ce44"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/><Interior ss:Color="#ddbc7d" ss:Pattern="Solid"/></Style><Style ss:ID="ce45"><Alignment ss:Horizontal="Center" ss:Vertical="Center" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/><Interior ss:Color="#00ccff" ss:Pattern="Solid"/></Style><Style ss:ID="ce46"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#ff0000" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce47"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#ff6600" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce48"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#ffff00" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce49"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#008000" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce50"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#0000ff" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce51"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#800080" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce52"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#ff00ff" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce53"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#c47512" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce54"><Alignment ss:Horizontal="Center" ss:Vertical="Center" ss:WrapText="1" ss:Rotate="0"/><Borders/><Font ss:Color="#ccffcc" ss:FontName="Calibri" ss:Size="11"/><Interior ss:Color="#ff0000" ss:Pattern="Solid"/></Style><Style ss:ID="ce55"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders><Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1" ss:Color="#000000"/></Borders><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce56"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders><Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1" ss:Color="#000000"/></Borders><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce57"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders><Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1" ss:Color="#000000"/></Borders><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce58"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders><Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1" ss:Color="#000000"/></Borders><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce59"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders><Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="2" ss:Color="#000000"/></Borders><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce60"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders><Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="2" ss:Color="#000000"/></Borders><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce61"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders><Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="2" ss:Color="#000000"/></Borders><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce62"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders><Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="2" ss:Color="#000000"/></Borders><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce63"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders><Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="2" ss:Color="#000000"/></Borders><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce64"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders><Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="3" ss:Color="#000000"/></Borders><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce65"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders><Border ss:Position="Bottom" ss:LineStyle="Double" ss:Weight="3" ss:Color="#000000"/></Borders><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce66"><Alignment ss:Horizontal="Center" ss:Vertical="Bottom" ss:WrapText="1" ss:Rotate="0"/><Borders/><Font ss:Bold="1" ss:Color="#000000" ss:FontName="Arial1" ss:Size="12"/></Style><Style ss:ID="ce67"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Arial1" ss:Size="11"/><NumberFormat ss:Format="General"/></Style><Style ss:ID="ce68"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Arial1" ss:Size="11"/><NumberFormat ss:Format="Medium Date"/></Style><Style ss:ID="ce69"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Arial1" ss:Size="11"/><NumberFormat ss:Format="Medium Time"/></Style><Style ss:ID="gr1"/><Style ss:ID="gr2"/><Style ss:ID="ta_extref"/><Style ss:ID="P1"><Font ss:FontName="Sans" ss:Size="10"/></Style><Style ss:ID="T1"/></Styles><ss:Worksheet ss:Name="Sample Data"><Table ss:StyleID="ta1"><Column ss:Width="96.4913"/><Column ss:Span="1" ss:Width="48.3874"/><Column ss:Index="4" ss:Width="35.8866"/><Column ss:Span="6" ss:Width="48.3874"/><Column ss:Index="12" ss:Width="50.2583"/><Column ss:Span="1011" ss:Width="48.3874"/><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:StyleID="ce1"><ss:Data xmlns="http://www.w3.org/TR/REC-html40" ss:Type="String">Test String 1</ss:Data><Comment><ss:Data xmlns="http://www.w3.org/TR/REC-html40"><Font html:Face="Sans" html:Size="10">Test for a simple colour-formatted string</Font></ss:Data></Comment></Cell><Cell ss:StyleID="ce4"><Data ss:Type="Number">1</Data></Cell><Cell ss:StyleID="ce4"><Data ss:Type="Number">5</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce2"><Data ss:Type="String">A</Data></Cell><Cell ss:StyleID="ce26"><Data ss:Type="String">E</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5" ss:Formula="of:=[.B1]+[.C1]"><Data ss:Type="Number">6</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5" ss:Formula="of:=[.E1]&amp;[.F1]"><Data ss:Type="String">AE</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:StyleID="ce2"><Data ss:Type="String">Test - String 2</Data></Cell><Cell ss:StyleID="ce5"><Data ss:Type="Number">2</Data></Cell><Cell ss:StyleID="ce4"><Data ss:Type="Number">6</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"><Data ss:Type="String">B</Data></Cell><Cell ss:StyleID="ce5"><Data ss:Type="String">F</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5" ss:Formula="of:=[.B2]+[.C2]"><Data ss:Type="Number">8</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5" ss:Formula="of:=[.E2]&amp;[.F2]"><Data ss:Type="String">BF</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce55"><Data ss:Type="String">Dot</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:StyleID="ce3"><Data ss:Type="String">Test #3</Data></Cell><Cell ss:StyleID="ce4"><Data ss:Type="Number">3</Data></Cell><Cell ss:StyleID="ce4"><Data ss:Type="Number">7</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce26"><Data ss:Type="String">C</Data></Cell><Cell ss:StyleID="ce2"><Data ss:Type="String">G</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5" ss:Formula="of:=[.B3]+[.C3]"><Data ss:Type="Number">10</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5" ss:Formula="of:=[.E3]&amp;[.F3]"><Data ss:Type="String">CG</Data></Cell><Cell ss:StyleID="ce37"><Data ss:Type="String">Red</Data></Cell><Cell ss:StyleID="ce46"><Data ss:Type="String">Red</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce56"><Data ss:Type="String">Dash</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:StyleID="ce4"><Data ss:Type="String">Test with (") in string</Data></Cell><Cell ss:StyleID="ce5"><Data ss:Type="Number">4</Data></Cell><Cell ss:StyleID="ce4"><Data ss:Type="Number">8</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce27"><Data ss:Type="String">D</Data></Cell><Cell ss:StyleID="ce5"><Data ss:Type="String">H</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5" ss:Formula="of:=[.B4]+[.C4]"><Data ss:Type="Number">12</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5" ss:Formula="of:=[.E4]&amp;[.F4]"><Data ss:Type="String">DH</Data></Cell><Cell ss:StyleID="ce38"><Data ss:Type="String">Orange</Data></Cell><Cell ss:StyleID="ce47"><Data ss:Type="String">Orange</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce57"><Data ss:Type="String">Dash/Dot/Dot</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5" ss:Formula="of:=SUM([.B1:.B4])"><Data ss:Type="Number">10</Data></Cell><Cell ss:StyleID="ce5" ss:Formula="of:=SUM([.C1:.C4])"><Data ss:Type="Number">26</Data></Cell><Cell ss:StyleID="ce5" ss:Formula="of:=SUM([.B1:.C4])"><Data ss:Type="Number">36</Data></Cell><Cell ss:StyleID="ce39"><Data ss:Type="String">Yellow</Data></Cell><Cell ss:StyleID="ce48"><Data ss:Type="String">Yellow</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce58"><Data ss:Type="String">Dash/Dot</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:StyleID="ce6"><Data ss:Type="String">Test #3</Data></Cell><Cell ss:StyleID="ce5"><Data ss:Type="Number">1.23</Data></Cell><Cell ss:StyleID="ce5" ss:Formula="of:=TRUE()"><Data ss:Type="Boolean">1</Data></Cell><Cell ss:StyleID="ce24"><Data ss:Type="Boolean">1</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce40"><Data ss:Type="String">Green</Data></Cell><Cell ss:StyleID="ce49"><Data ss:Type="String">Green</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce56"><Data ss:Type="String">Thin Line</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:StyleID="ce7"><Data ss:Type="String">Test #3</Data></Cell><Cell ss:StyleID="ce5"><Data ss:Type="Number">2.34</Data></Cell><Cell ss:StyleID="ce5" ss:Formula="of:=FALSE()"><Data ss:Type="Boolean">0</Data></Cell><Cell ss:StyleID="ce25"><Data ss:Type="Boolean">0</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5" ss:Formula="of:=SUM(marksrange)"><Data ss:Type="Number">0</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce41"><Data ss:Type="String">Blue</Data></Cell><Cell ss:StyleID="ce50"><Data ss:Type="String">Blue</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce59"><Data ss:Type="String">Thick Dash/Dot/Dot</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:Index="8" ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:StyleID="ce8"><Data ss:Type="String">Test #3</Data></Cell><Cell ss:StyleID="ce5"><Data ss:Type="Number">3.45</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce42"><Data ss:Type="String">Purple</Data></Cell><Cell ss:StyleID="ce51"><Data ss:Type="String">Purple</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce60"><Data ss:Type="String">Variant Thick Dash/Dot/Dot</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:AutoFitHeight="0" ss:Height="13.4929"><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce43"><Data ss:Type="String">Pink</Data></Cell><Cell ss:StyleID="ce52"><Data ss:Type="String">Pink</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce61"><Data ss:Type="String">Thick Dash/Dot</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:StyleID="ce9"><Data ss:Type="DateTime">1960-12-19T00:00:00.000</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce19"><Data ss:Type="String">TOP</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"><Data ss:Type="Number">0</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce44"><Data ss:Type="String">Brown</Data></Cell><Cell ss:StyleID="ce53"><Data ss:Type="String">Brown</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce62"><Data ss:Type="String">Thick Dash</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:StyleID="ce10"><Data ss:Type="Number">1.5</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5" ss:Formula="of:=12/0"><Data ss:Type="Number">0</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce63"><Data ss:Type="String">Thick Line</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:AutoFitHeight="0" ss:Height="13.4929"><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce20"><Data ss:Type="String">BOTTOM</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce64"><Data ss:Type="String">Extra Thick Line</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:StyleID="ce11"><Data ss:Type="DateTime">1899-12-31T02:30:00.000</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"><ss:Data xmlns="http://www.w3.org/TR/REC-html40" ss:Type="String">Мойва сушеная</ss:Data><Comment><ss:Data xmlns="http://www.w3.org/TR/REC-html40"><Font html:Face="Sans" html:Size="10">Tests for UTF-8 content</Font></ss:Data></Comment></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce65"><Data ss:Type="String">Double Line</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce21"><Data ss:Type="String">LEFT</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"><Data ss:Type="String">Ärendetext</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:StyleID="ce12"><Data ss:Type="DateTime">1960-12-19T01:30:00.000</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"><Data ss:Type="String">Højde</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:Index="16" ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce22"><Data ss:Type="String">RIGHT</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:AutoFitHeight="0" ss:Height="13.4929"><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:Height="41.7543"><Cell ss:StyleID="ce5"/><Cell ss:MergeAcross="1" ss:MergeDown="1" ss:StyleID="ce18"><Data ss:Type="String">BOX</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce29"><Data ss:Type="String">Test Column 1</Data></Cell><Cell ss:StyleID="ce30"/><Cell ss:StyleID="ce33"/><Cell ss:StyleID="ce36"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:Height="41.7543"><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce30"/><Cell ss:StyleID="ce32"><Data ss:Type="String">Test Column 2</Data></Cell><Cell ss:StyleID="ce30"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce45"><Data ss:Type="String">Patterned</Data></Cell><Cell ss:StyleID="ce54"><Data ss:Type="String">Patterned 2</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:Height="41.7543"><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce30"/><Cell ss:StyleID="ce30"/><Cell ss:StyleID="ce34"><Data ss:Type="String">Test Column 3</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:StyleID="ce13"><Data ss:Type="String">Underline None</Data></Cell><Cell ss:Index="3" ss:MergeAcross="1" ss:MergeDown="4" ss:StyleID="ce23"><Data ss:Type="String">Rotate 90</Data></Cell><Cell ss:MergeAcross="1" ss:MergeDown="4" ss:StyleID="ce28"><Data ss:Type="String">Rotate 45</Data></Cell><Cell ss:MergeAcross="1" ss:MergeDown="4" ss:StyleID="ce31"><Data ss:Type="String">Rotate -90</Data></Cell><Cell ss:MergeAcross="1" ss:MergeDown="4" ss:StyleID="ce35"><Data ss:Type="String">Rotate -45</Data></Cell><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:StyleID="ce14"><Data ss:Type="String">Underline 1</Data></Cell><Cell ss:StyleID="ce13"><Data ss:Type="String">Subscript</Data></Cell><Cell ss:Index="1016" ss:StyleID="ce13"/></Row><Row ss:Index="24" ss:Height="12.8409"><Cell ss:StyleID="ce15"><Data ss:Type="String">Underline 2</Data></Cell><Cell ss:StyleID="ce13"><Data ss:Type="String">Superscript</Data></Cell><Cell ss:Index="1016" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:StyleID="ce14"><Data ss:Type="String">Underline 3</Data></Cell><Cell ss:Index="1016" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:StyleID="ce15"><Data ss:Type="String">Underline 4</Data></Cell><Cell ss:Index="1016" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="49.2378"><Cell ss:MergeAcross="2" ss:StyleID="ce16"><ss:Data xmlns="http://www.w3.org/TR/REC-html40" ss:Type="String">I don't know if Gnumeric supports <B><Font html:Face="Sans" html:Color="#000000" html:Size="10">Rich Text</Font></B> in the same way as <B><Font html:Face="Sans" html:Color="#000000" html:Size="10">Excel</Font></B>, And this row should be autofit height with text wrap</ss:Data></Cell><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/></Row><Row ss:Height="13.4079"><Cell ss:MergeAcross="2" ss:HRef="http://www.phpexcel.net/" ss:StyleID="ce17"><Data ss:Type="String">PHPExcel</Data></Cell><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Index="65536" ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row></Table><x:WorksheetOptions/></ss:Worksheet><ss:Worksheet ss:Name="Report Data"><Table ss:StyleID="ta1"><Column ss:Span="2" ss:Width="56.2394"/><Column ss:Index="4" ss:Width="78.7465"/><Column ss:Width="58.5071"/><Column ss:Width="27.4961"/><Column ss:Width="78.7465"/><Column ss:Width="68.5984"/><Column ss:Span="1015" ss:Width="48.3874"/><Column ss:Index="1025"/><Column ss:Span="1"/><Row ss:AutoFitHeight="0" ss:Height="31.4929"><Cell ss:StyleID="ce66"/><Cell ss:StyleID="ce66"/><Cell ss:StyleID="ce66"/><Cell ss:StyleID="ce66"/><Cell ss:StyleID="ce66"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce66"/><Cell ss:StyleID="ce66"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:AutoFitHeight="0" ss:Height="31.4929"><Cell ss:StyleID="ce66"><Data ss:Type="String">Heading 1</Data></Cell><Cell ss:StyleID="ce66"><Data ss:Type="String">Heading 2</Data></Cell><Cell ss:StyleID="ce66"><Data ss:Type="String">Third Heading</Data></Cell><Cell ss:StyleID="ce66"><Data ss:Type="String">Date Heading</Data></Cell><Cell ss:StyleID="ce66"><Data ss:Type="String">Time Heading</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce66"><Data ss:Type="String">Adjusted Date</Data></Cell><Cell ss:StyleID="ce66"><Data ss:Type="String">Adjusted Number</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce13"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row><Cell ss:StyleID="ce13"><Data ss:Type="String"/></Cell><Cell ss:StyleID="ce13"><Data ss:Type="String">Adjusted Number</Data></Cell><Cell ss:StyleID="ce13"><Data ss:Type="String">Third Heading</Data></Cell></Row><Row><Cell ss:StyleID="ce13"><Data ss:Type="String">1</Data></Cell><Cell ss:StyleID="ce13"><Data ss:Type="Number">1.11</Data></Cell><Cell ss:StyleID="ce13"><Data ss:Type="Number">1.11</Data></Cell></Row><Row><Cell ss:StyleID="ce13"><Data ss:Type="String">2</Data></Cell><Cell ss:StyleID="ce13"><Data ss:Type="Number">4.44</Data></Cell><Cell ss:StyleID="ce13"><Data ss:Type="Number">2.22</Data></Cell></Row><Row><Cell ss:StyleID="ce13"><Data ss:Type="String">3</Data></Cell><Cell ss:StyleID="ce13"><Data ss:Type="Number">9.99</Data></Cell><Cell ss:StyleID="ce13"><Data ss:Type="Number">3.33</Data></Cell></Row><Row><Cell ss:StyleID="ce13"><Data ss:Type="String">4</Data></Cell><Cell ss:StyleID="ce13"><Data ss:Type="Number">17.76</Data></Cell><Cell ss:StyleID="ce13"><Data ss:Type="Number">4.44</Data></Cell></Row><Row ss:Index="8"><Cell ss:StyleID="ce13"><Data ss:Type="String">5</Data></Cell><Cell ss:StyleID="ce13"><Data ss:Type="Number">27.75</Data></Cell><Cell ss:StyleID="ce13"><Data ss:Type="Number">5.55</Data></Cell></Row><Row><Cell ss:StyleID="ce13"><Data ss:Type="String">6</Data></Cell><Cell ss:StyleID="ce13"><Data ss:Type="Number">39.96</Data></Cell><Cell ss:StyleID="ce13"><Data ss:Type="Number">6.66</Data></Cell></Row><Row><Cell ss:StyleID="ce13"><Data ss:Type="String">7</Data></Cell><Cell ss:StyleID="ce13"><Data ss:Type="Number">54.39</Data></Cell><Cell ss:StyleID="ce13"><Data ss:Type="Number">7.77</Data></Cell></Row><Row><Cell ss:StyleID="ce13"><Data ss:Type="String">8</Data></Cell><Cell ss:StyleID="ce13"><Data ss:Type="Number">71.04</Data></Cell><Cell ss:StyleID="ce13"><Data ss:Type="Number">8.88</Data></Cell></Row><Row><Cell ss:StyleID="ce13"><Data ss:Type="String">9</Data></Cell><Cell ss:StyleID="ce13"><Data ss:Type="Number">89.91</Data></Cell><Cell ss:StyleID="ce13"><Data ss:Type="Number">9.99</Data></Cell></Row><Row><Cell ss:StyleID="ce13"><Data ss:Type="String">10</Data></Cell><Cell ss:StyleID="ce13"><Data ss:Type="Number">111</Data></Cell><Cell ss:StyleID="ce13"><Data ss:Type="Number">11.1</Data></Cell></Row><Row><Cell ss:StyleID="ce13"><Data ss:Type="String">11</Data></Cell><Cell ss:StyleID="ce13"><Data ss:Type="Number">134.31</Data></Cell><Cell ss:StyleID="ce13"><Data ss:Type="Number">12.21</Data></Cell></Row><Row><Cell ss:StyleID="ce13"><Data ss:Type="String">12</Data></Cell><Cell ss:StyleID="ce13"><Data ss:Type="Number">159.84</Data></Cell><Cell ss:StyleID="ce13"><Data ss:Type="Number">13.32</Data></Cell></Row><Row ss:Index="16"><Cell ss:StyleID="ce13"><Data ss:Type="String">13</Data></Cell><Cell ss:StyleID="ce13"><Data ss:Type="Number">1.11</Data></Cell><Cell ss:StyleID="ce13"><Data ss:Type="Number">-1.11</Data></Cell></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:StyleID="ce5"><Data ss:Type="String">ABC</Data></Cell><Cell ss:StyleID="ce5"><Data ss:Type="Number">1</Data></Cell><Cell ss:StyleID="ce67"><Data ss:Type="Number">1.11</Data></Cell><Cell ss:StyleID="ce68"><Data ss:Type="DateTime">2001-01-01T00:00:00.000</Data></Cell><Cell ss:StyleID="ce69"><Data ss:Type="DateTime">1899-12-31T01:00:00.000</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce68" ss:Formula="of:=[.D3]-[.B3]"><Data ss:Type="DateTime">2000-12-31T00:00:00.000</Data></Cell><Cell ss:StyleID="ce67" ss:Formula="of:=[.B3]*[.C3]"><Data ss:Type="Number">1.11</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"><Data ss:Type="String">A</Data></Cell><Cell ss:StyleID="ce5" ss:Formula="of:=[.B3]&amp;[.J3]"><Data ss:Type="String">1A</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:StyleID="ce5"><Data ss:Type="String">BCD</Data></Cell><Cell ss:StyleID="ce5"><Data ss:Type="Number">2</Data></Cell><Cell ss:StyleID="ce67"><Data ss:Type="Number">2.22</Data></Cell><Cell ss:StyleID="ce68"><Data ss:Type="DateTime">2002-02-02T00:00:00.000</Data></Cell><Cell ss:StyleID="ce69"><Data ss:Type="DateTime">1899-12-31T02:00:00.000</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce68" ss:Formula="of:=[.D4]-[.B4]"><Data ss:Type="DateTime">2002-01-31T00:00:00.000</Data></Cell><Cell ss:StyleID="ce67" ss:Formula="of:=[.B4]*[.C4]"><Data ss:Type="Number">4.44</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"><Data ss:Type="String">B</Data></Cell><Cell ss:StyleID="ce5" ss:Formula="of:=[.B4]&amp;[.J4]"><Data ss:Type="String">2B</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:StyleID="ce5"><Data ss:Type="String">CDE</Data></Cell><Cell ss:StyleID="ce5"><Data ss:Type="Number">3</Data></Cell><Cell ss:StyleID="ce67"><Data ss:Type="Number">3.33</Data></Cell><Cell ss:StyleID="ce68"><Data ss:Type="DateTime">2003-03-03T00:00:00.000</Data></Cell><Cell ss:StyleID="ce69"><Data ss:Type="DateTime">1899-12-31T03:00:00.000</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce68" ss:Formula="of:=[.D5]-[.B5]"><Data ss:Type="DateTime">2003-02-28T00:00:00.000</Data></Cell><Cell ss:StyleID="ce67" ss:Formula="of:=[.B5]*[.C5]"><Data ss:Type="Number">9.99</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"><Data ss:Type="String">C</Data></Cell><Cell ss:StyleID="ce5" ss:Formula="of:=[.B5]&amp;[.J5]"><Data ss:Type="String">3C</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:StyleID="ce5"><Data ss:Type="String">DEF</Data></Cell><Cell ss:StyleID="ce5"><Data ss:Type="Number">4</Data></Cell><Cell ss:StyleID="ce67"><Data ss:Type="Number">4.44</Data></Cell><Cell ss:StyleID="ce68"><Data ss:Type="DateTime">2004-04-03T23:00:00.000</Data></Cell><Cell ss:StyleID="ce69"><Data ss:Type="DateTime">1899-12-31T04:00:00.000</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce68" ss:Formula="of:=[.D6]-[.B6]"><Data ss:Type="DateTime">2004-03-30T23:00:00.000</Data></Cell><Cell ss:StyleID="ce67" ss:Formula="of:=[.B6]*[.C6]"><Data ss:Type="Number">17.76</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"><Data ss:Type="String">D</Data></Cell><Cell ss:StyleID="ce5" ss:Formula="of:=[.B6]&amp;[.J6]"><Data ss:Type="String">4D</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:StyleID="ce5"><Data ss:Type="String">EFG</Data></Cell><Cell ss:StyleID="ce5"><Data ss:Type="Number">5</Data></Cell><Cell ss:StyleID="ce67"><Data ss:Type="Number">5.55</Data></Cell><Cell ss:StyleID="ce68"><Data ss:Type="DateTime">2005-05-04T23:00:00.000</Data></Cell><Cell ss:StyleID="ce69"><Data ss:Type="DateTime">1899-12-31T05:00:00.000</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce68" ss:Formula="of:=[.D7]-[.B7]"><Data ss:Type="DateTime">2005-04-29T23:00:00.000</Data></Cell><Cell ss:StyleID="ce67" ss:Formula="of:=[.B7]*[.C7]"><Data ss:Type="Number">27.75</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"><Data ss:Type="String">E</Data></Cell><Cell ss:StyleID="ce5" ss:Formula="of:=[.B7]&amp;[.J7]"><Data ss:Type="String">5E</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:StyleID="ce5"><Data ss:Type="String">FGH</Data></Cell><Cell ss:StyleID="ce5"><Data ss:Type="Number">6</Data></Cell><Cell ss:StyleID="ce67"><Data ss:Type="Number">6.66</Data></Cell><Cell ss:StyleID="ce68"><Data ss:Type="DateTime">2006-06-05T23:00:00.000</Data></Cell><Cell ss:StyleID="ce69"><Data ss:Type="DateTime">1899-12-31T06:00:00.000</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce68" ss:Formula="of:=[.D8]-[.B8]"><Data ss:Type="DateTime">2006-05-30T23:00:00.000</Data></Cell><Cell ss:StyleID="ce67" ss:Formula="of:=[.B8]*[.C8]"><Data ss:Type="Number">39.96</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"><Data ss:Type="String">F</Data></Cell><Cell ss:StyleID="ce5" ss:Formula="of:=[.B8]&amp;[.J8]"><Data ss:Type="String">6F</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:StyleID="ce5"><Data ss:Type="String">GHI</Data></Cell><Cell ss:StyleID="ce5"><Data ss:Type="Number">7</Data></Cell><Cell ss:StyleID="ce67"><Data ss:Type="Number">7.77</Data></Cell><Cell ss:StyleID="ce68"><Data ss:Type="DateTime">2007-07-06T23:00:00.000</Data></Cell><Cell ss:StyleID="ce69"><Data ss:Type="DateTime">1899-12-31T07:00:00.000</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce68" ss:Formula="of:=[.D9]-[.B9]"><Data ss:Type="DateTime">2007-06-29T23:00:00.000</Data></Cell><Cell ss:StyleID="ce67" ss:Formula="of:=[.B9]*[.C9]"><Data ss:Type="Number">54.39</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"><Data ss:Type="String">G</Data></Cell><Cell ss:StyleID="ce5" ss:Formula="of:=[.B9]&amp;[.J9]"><Data ss:Type="String">7G</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:Index="24" ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:StyleID="ce5"><Data ss:Type="String">HIJ</Data></Cell><Cell ss:StyleID="ce5"><Data ss:Type="Number">8</Data></Cell><Cell ss:StyleID="ce67"><Data ss:Type="Number">8.88</Data></Cell><Cell ss:StyleID="ce68"><Data ss:Type="DateTime">2008-08-07T23:00:00.000</Data></Cell><Cell ss:StyleID="ce69"><Data ss:Type="DateTime">1899-12-31T08:00:00.000</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce68" ss:Formula="of:=[.D10]-[.B10]"><Data ss:Type="DateTime">2008-07-30T23:00:00.000</Data></Cell><Cell ss:StyleID="ce67" ss:Formula="of:=[.B10]*[.C10]"><Data ss:Type="Number">71.04</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"><Data ss:Type="String">H</Data></Cell><Cell ss:StyleID="ce5" ss:Formula="of:=[.B10]&amp;[.J10]"><Data ss:Type="String">8H</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:StyleID="ce5"><Data ss:Type="String">IJK</Data></Cell><Cell ss:StyleID="ce5"><Data ss:Type="Number">9</Data></Cell><Cell ss:StyleID="ce67"><Data ss:Type="Number">9.99</Data></Cell><Cell ss:StyleID="ce68"><Data ss:Type="DateTime">2009-09-08T23:00:00.000</Data></Cell><Cell ss:StyleID="ce69"><Data ss:Type="DateTime">1899-12-31T09:00:00.000</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce68" ss:Formula="of:=[.D11]-[.B11]"><Data ss:Type="DateTime">2009-08-30T23:00:00.000</Data></Cell><Cell ss:StyleID="ce67" ss:Formula="of:=[.B11]*[.C11]"><Data ss:Type="Number">89.91</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"><Data ss:Type="String">I</Data></Cell><Cell ss:StyleID="ce5" ss:Formula="of:=[.B11]&amp;[.J11]"><Data ss:Type="String">9I</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:StyleID="ce5"><Data ss:Type="String">JKL</Data></Cell><Cell ss:StyleID="ce5"><Data ss:Type="Number">10</Data></Cell><Cell ss:StyleID="ce67"><Data ss:Type="Number">11.1</Data></Cell><Cell ss:StyleID="ce68"><Data ss:Type="DateTime">2010-10-09T23:00:00.000</Data></Cell><Cell ss:StyleID="ce69"><Data ss:Type="DateTime">1899-12-31T10:00:00.000</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce68" ss:Formula="of:=[.D12]-[.B12]"><Data ss:Type="DateTime">2010-09-29T23:00:00.000</Data></Cell><Cell ss:StyleID="ce67" ss:Formula="of:=[.B12]*[.C12]"><Data ss:Type="Number">111</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"><Data ss:Type="String">J</Data></Cell><Cell ss:StyleID="ce5" ss:Formula="of:=[.B12]&amp;[.J12]"><Data ss:Type="String">10J</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:StyleID="ce5"><Data ss:Type="String">KLM</Data></Cell><Cell ss:StyleID="ce5"><Data ss:Type="Number">11</Data></Cell><Cell ss:StyleID="ce67"><Data ss:Type="Number">12.21</Data></Cell><Cell ss:StyleID="ce68"><Data ss:Type="DateTime">2011-11-11T00:00:00.000</Data></Cell><Cell ss:StyleID="ce69"><Data ss:Type="DateTime">1899-12-31T11:00:00.000</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce68" ss:Formula="of:=[.D13]-[.B13]"><Data ss:Type="DateTime">2011-10-31T00:00:00.000</Data></Cell><Cell ss:StyleID="ce67" ss:Formula="of:=[.B13]*[.C13]"><Data ss:Type="Number">134.31</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"><Data ss:Type="String">K</Data></Cell><Cell ss:StyleID="ce5" ss:Formula="of:=[.B13]&amp;[.J13]"><Data ss:Type="String">11K</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:StyleID="ce5"><Data ss:Type="String">LMN</Data></Cell><Cell ss:StyleID="ce5"><Data ss:Type="Number">12</Data></Cell><Cell ss:StyleID="ce67"><Data ss:Type="Number">13.32</Data></Cell><Cell ss:StyleID="ce68"><Data ss:Type="DateTime">2012-12-12T00:00:00.000</Data></Cell><Cell ss:StyleID="ce69"><Data ss:Type="DateTime">1899-12-31T288:00:00.000</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce68" ss:Formula="of:=[.D14]-[.B14]"><Data ss:Type="DateTime">2012-11-30T00:00:00.000</Data></Cell><Cell ss:StyleID="ce67" ss:Formula="of:=[.B14]*[.C14]"><Data ss:Type="Number">159.84</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"><Data ss:Type="String">L</Data></Cell><Cell ss:StyleID="ce5" ss:Formula="of:=[.B14]&amp;[.J14]"><Data ss:Type="String">12L</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:StyleID="ce5"><Data ss:Type="String">ZYX</Data></Cell><Cell ss:StyleID="ce5"><Data ss:Type="Number">-1</Data></Cell><Cell ss:StyleID="ce67"><Data ss:Type="Number">-1.11</Data></Cell><Cell ss:StyleID="ce68"><Data ss:Type="DateTime">1999-12-01T00:00:00.000</Data></Cell><Cell ss:StyleID="ce69"><Data ss:Type="DateTime">1899-12-31T23:00:00.000</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce68" ss:Formula="of:=[.D15]-[.B15]"><Data ss:Type="DateTime">1999-12-02T00:00:00.000</Data></Cell><Cell ss:StyleID="ce67" ss:Formula="of:=[.B15]*[.C15]"><Data ss:Type="Number">1.11</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"><Data ss:Type="String">M</Data></Cell><Cell ss:StyleID="ce5" ss:Formula="of:=[.B15]&amp;[.J15]"><Data ss:Type="String">-1M</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Index="65550" ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row></Table><x:WorksheetOptions/></ss:Worksheet></Workbook>
\ No newline at end of file
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/GnumericReader.php b/htdocs/includes/phpoffice/phpexcel/Examples/GnumericReader.php
deleted file mode 100644
index 5ea2c4f7a0a..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/GnumericReader.php
+++ /dev/null
@@ -1,60 +0,0 @@
-<?php
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** Error reporting */
-error_reporting(E_ALL);
-
-date_default_timezone_set('Europe/London');
-
-/** PHPExcel_IOFactory */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel/IOFactory.php';
-
-echo date('H:i:s') , " Load from Gnumeric file" , PHP_EOL;
-$callStartTime = microtime(true);
-
-$objReader = PHPExcel_IOFactory::createReader('Gnumeric');
-$objPHPExcel = $objReader->load("GnumericTest.gnumeric");
-
-
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-echo 'Call time to read Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , PHP_EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , PHP_EOL;
-
-
-echo date('H:i:s') , " Write to Excel2007 format" , PHP_EOL;
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
-$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', __FILE__) , PHP_EOL;
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , PHP_EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing file" , PHP_EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/GnumericTest.gnumeric b/htdocs/includes/phpoffice/phpexcel/Examples/GnumericTest.gnumeric
deleted file mode 100644
index ea2fac379e51e707060c8c8d5314899c60bad287..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 7823
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
VLZ^G*{(bnLF?gxMdc{IU1^^XSQ?392

diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/OOCalcReader.php b/htdocs/includes/phpoffice/phpexcel/Examples/OOCalcReader.php
deleted file mode 100644
index e278aae4d7b..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/OOCalcReader.php
+++ /dev/null
@@ -1,61 +0,0 @@
-<?php
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** Error reporting */
-error_reporting(E_ALL);
-
-date_default_timezone_set('Europe/London');
-
-/** PHPExcel_IOFactory */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel/IOFactory.php';
-
-echo date('H:i:s') , " Load from OOCalc file" , PHP_EOL;
-$callStartTime = microtime(true);
-
-$objReader = PHPExcel_IOFactory::createReader('OOCalc');
-$objPHPExcel = $objReader->load("OOCalcTest.ods");
-
-
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-echo 'Call time to read Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , PHP_EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , PHP_EOL;
-
-
-echo date('H:i:s') , " Write to Excel2007 format" , PHP_EOL;
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
-$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', __FILE__) , PHP_EOL;
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , PHP_EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing file" , PHP_EOL;
-
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/OOCalcReaderPCLZip.php b/htdocs/includes/phpoffice/phpexcel/Examples/OOCalcReaderPCLZip.php
deleted file mode 100644
index 45a5cdacbd2..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/OOCalcReaderPCLZip.php
+++ /dev/null
@@ -1,64 +0,0 @@
-<?php
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** Error reporting */
-error_reporting(E_ALL);
-
-date_default_timezone_set('Europe/London');
-
-/** PHPExcel_IOFactory */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel/IOFactory.php';
-
-// Use PCLZip rather than ZipArchive to read the Excel2007 OfficeOpenXML file
-PHPExcel_Settings::setZipClass(PHPExcel_Settings::PCLZIP);
-
-echo date('H:i:s') , " Load from OOCalc file" , PHP_EOL;
-$callStartTime = microtime(true);
-
-$objReader = PHPExcel_IOFactory::createReader('OOCalc');
-$objPHPExcel = $objReader->load("OOCalcTest.ods");
-
-
-$callEndTime = microtime(true);
-$callTime = $callEndTime - $callStartTime;
-echo 'Call time to read Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , PHP_EOL;
-// Echo memory usage
-echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , PHP_EOL;
-
-
-echo date('H:i:s') , " Write to Excel2007 format" , PHP_EOL;
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
-$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', __FILE__) , PHP_EOL;
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , PHP_EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing file" , PHP_EOL;
-
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/OOCalcTest.ods b/htdocs/includes/phpoffice/phpexcel/Examples/OOCalcTest.ods
deleted file mode 100644
index b29db7663dbdbba6f8bb42145b7a0cd9590c7f05..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 17931
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

diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/Quadratic.php b/htdocs/includes/phpoffice/phpexcel/Examples/Quadratic.php
deleted file mode 100644
index 8440c5546bd..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/Quadratic.php
+++ /dev/null
@@ -1,68 +0,0 @@
-<html>
-<head>
-<title>Quadratic Equation Solver</title>
-</head>
-<body>
-<?php
-
-/**	Error reporting		**/
-error_reporting(E_ALL);
-
-/**	Include path		**/
-set_include_path(get_include_path() . PATH_SEPARATOR . dirname(__FILE__) . '/../Classes/');
-
-?>
-<h1>Quadratic Equation Solver</h1>
-<form action="Quadratic.php" method="POST">
-Enter the coefficients for the Ax<sup>2</sup> + Bx + C = 0
-<table border="0" cellpadding="0" cellspacing="0">
-	<tr><td><b>A&nbsp;</b></td>
-		<td><input name="A" type="text" size="8" value="<?php echo (isset($_POST['A'])) ? htmlentities($_POST['A']) : ''; ?>"></td>
-	</tr>
-	<tr><td><b>B&nbsp;</b></td>
-		<td><input name="B" type="text" size="8" value="<?php echo (isset($_POST['B'])) ? htmlentities($_POST['B']) : ''; ?>"></td>
-	</tr>
-	<tr><td><b>C&nbsp;</b></td>
-		<td><input name="C" type="text" size="8" value="<?php echo (isset($_POST['C'])) ? htmlentities($_POST['C']) : ''; ?>"></td>
-	</tr>
-</table>
-<input name="submit" type="submit" value="calculate"><br />
-If A=0, the equation is not quadratic.
-</form>
-
-<?php
-/**	If the user has submitted the form, then we need to execute a calculation **/
-if (isset($_POST['submit'])) {
-	if ($_POST['A'] == 0) {
-		echo 'The equation is not quadratic';
-	} else {
-		/**	So we include PHPExcel to perform the calculations	**/
-		include 'PHPExcel/IOFactory.php';
-
-		/**	Load the quadratic equation solver worksheet into memory			**/
-		$objPHPExcel = PHPExcel_IOFactory::load('./Quadratic.xlsx');
-
-		/**	Set our A, B and C values			**/
-		$objPHPExcel->getActiveSheet()->setCellValue('A1', $_POST['A']);
-		$objPHPExcel->getActiveSheet()->setCellValue('B1', $_POST['B']);
-		$objPHPExcel->getActiveSheet()->setCellValue('C1', $_POST['C']);
-
-
-		/**	Calculate and Display the results			**/
-		echo '<hr /><b>Roots:</b><br />';
-
-		$callStartTime = microtime(true);
-		echo $objPHPExcel->getActiveSheet()->getCell('B5')->getCalculatedValue().'<br />';
-		echo $objPHPExcel->getActiveSheet()->getCell('B6')->getCalculatedValue().'<br />';
-		$callEndTime = microtime(true);
-		$callTime = $callEndTime - $callStartTime;
-
-		echo '<hr />Call time for Quadratic Equation Solution was '.sprintf('%.4f',$callTime).' seconds<br /><hr />';
-		echo ' Peak memory usage: '.(memory_get_peak_usage(true) / 1024 / 1024).' MB<br />';
-	}
-}
-
-?>
-
-</body>
-<html>
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/Quadratic2.php b/htdocs/includes/phpoffice/phpexcel/Examples/Quadratic2.php
deleted file mode 100644
index 05cd5c17372..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/Quadratic2.php
+++ /dev/null
@@ -1,65 +0,0 @@
-<html>
-<head>
-<title>Quadratic Equation Solver</title>
-</head>
-<body>
-<?php
-
-/**	Error reporting		**/
-error_reporting(E_ALL);
-
-/**	Include path		**/
-set_include_path(get_include_path() . PATH_SEPARATOR . dirname(__FILE__) . '/../Classes/');
-
-?>
-<h1>Quadratic Equation Solver</h1>
-<form action="Quadratic2.php" method="POST">
-Enter the coefficients for the Ax<sup>2</sup> + Bx + C = 0
-<table border="0" cellpadding="0" cellspacing="0">
-	<tr><td><b>A&nbsp;</b></td>
-		<td><input name="A" type="text" size="8" value="<?php echo (isset($_POST['A'])) ? htmlentities($_POST['A']) : ''; ?>"></td>
-	</tr>
-	<tr><td><b>B&nbsp;</b></td>
-		<td><input name="B" type="text" size="8" value="<?php echo (isset($_POST['B'])) ? htmlentities($_POST['B']) : ''; ?>"></td>
-	</tr>
-	<tr><td><b>C&nbsp;</b></td>
-		<td><input name="C" type="text" size="8" value="<?php echo (isset($_POST['C'])) ? htmlentities($_POST['C']) : ''; ?>"></td>
-	</tr>
-</table>
-<input name="submit" type="submit" value="calculate"><br />
-If A=0, the equation is not quadratic.
-</form>
-
-<?php
-/**	If the user has submitted the form, then we need to execute a calculation **/
-if (isset($_POST['submit'])) {
-	if ($_POST['A'] == 0) {
-		echo 'The equation is not quadratic';
-	} else {
-		/**	So we include PHPExcel to perform the calculations	**/
-		include 'PHPExcel/Calculation.php';
-
-		/**	Calculate and Display the results			**/
-		echo '<hr /><b>Roots:</b><br />';
-
-		$callStartTime = microtime(true);
-		$discriminantFormula = '=POWER('.$_POST['B'].',2) - (4 * '.$_POST['A'].' * '.$_POST['C'].')';
-		$discriminant = PHPExcel_Calculation::getInstance()->calculateFormula($discriminantFormula);
-
-		$r1Formula = '=IMDIV(IMSUM(-'.$_POST['B'].',IMSQRT('.$discriminant.')),2 * '.$_POST['A'].')';
-		$r2Formula = '=IF('.$discriminant.'=0,"Only one root",IMDIV(IMSUB(-'.$_POST['B'].',IMSQRT('.$discriminant.')),2 * '.$_POST['A'].'))';
-
-		echo PHPExcel_Calculation::getInstance()->calculateFormula($r1Formula).'<br />';
-		echo PHPExcel_Calculation::getInstance()->calculateFormula($r2Formula).'<br />';
-		$callEndTime = microtime(true);
-		$callTime = $callEndTime - $callStartTime;
-
-		echo '<hr />Call time for Quadratic Equation Solution was '.sprintf('%.4f',$callTime).' seconds<br /><hr />';
-		echo ' Peak memory usage: '.(memory_get_peak_usage(true) / 1024 / 1024).' MB<br />';
-	}
-}
-
-?>
-
-</body>
-<html>
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/SylkReader.php b/htdocs/includes/phpoffice/phpexcel/Examples/SylkReader.php
deleted file mode 100644
index 8049ff0bf46..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/SylkReader.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** Error reporting */
-error_reporting(E_ALL);
-
-date_default_timezone_set('Europe/London');
-
-/** PHPExcel_IOFactory */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel/IOFactory.php';
-
-
-echo date('H:i:s') , " Load from SYLK file" , PHP_EOL;
-$objPHPExcel = PHPExcel_IOFactory::load("SylkTest.slk");
-
-echo date('H:i:s') , " Write to Excel2007 format" , PHP_EOL;
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
-$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', __FILE__) , PHP_EOL;
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , PHP_EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing file" , PHP_EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/SylkTest.slk b/htdocs/includes/phpoffice/phpexcel/Examples/SylkTest.slk
deleted file mode 100644
index 329abe26f7e..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/SylkTest.slk
+++ /dev/null
@@ -1,152 +0,0 @@
-ID;PWXL;N;E
-P;PGeneral
-P;P0
-P;P0.00
-P;P#,##0
-P;P#,##0.00
-P;P#,##0;;\-#,##0
-P;P#,##0;;[Red]\-#,##0
-P;P#,##0.00;;\-#,##0.00
-P;P#,##0.00;;[Red]\-#,##0.00
-P;P"$"#,##0;;\-"$"#,##0
-P;P"$"#,##0;;[Red]\-"$"#,##0
-P;P"$"#,##0.00;;\-"$"#,##0.00
-P;P"$"#,##0.00;;[Red]\-"$"#,##0.00
-P;P0%
-P;P0.00%
-P;P0.00E+00
-P;P##0.0E+0
-P;P#\ ?/?
-P;P#\ ??/??
-P;Pdd/mm/yyyy
-P;Pdd\-mmm\-yy
-P;Pdd\-mmm
-P;Pmmm\-yy
-P;Ph:mm\ AM/PM
-P;Ph:mm:ss\ AM/PM
-P;Phh:mm
-P;Phh:mm:ss
-P;Pdd/mm/yyyy\ hh:mm
-P;Pmm:ss
-P;Pmm:ss.0
-P;P@
-P;P[h]:mm:ss
-P;P_-"$"* #,##0_-;;\-"$"* #,##0_-;;_-"$"* "-"_-;;_-@_-
-P;P_-* #,##0_-;;\-* #,##0_-;;_-* "-"_-;;_-@_-
-P;P_-"$"* #,##0.00_-;;\-"$"* #,##0.00_-;;_-"$"* "-"??_-;;_-@_-
-P;P_-* #,##0.00_-;;\-* #,##0.00_-;;_-* "-"??_-;;_-@_-
-P;FArial;M200
-P;FArial;M200
-P;FArial;M200
-P;FArial;M200
-P;EArial;M200
-P;EArial;M200
-P;EArial;M200
-P;EArial;M200;SB
-P;EArial;M200;SBI
-P;EArial;M200;SI
-P;EArial;M200;SU
-P;EArial;M200;L11
-P;EArial;M200;SB
-P;EArial;M200
-P;EArial;M200;SI
-P;EArial;M200;SBI
-P;EArial;M200;SBU
-P;EArial;M200;SBIU
-P;EArial;M200
-P;EArial;M200;SI
-F;P0;DG0G8;M255
-B;Y18;X10;D0 0 17 9
-O;L;D;V0;K47;G100 0.001
-F;W1 1 17
-F;W4 6 6
-F;M270;R9
-F;M270;R12
-F;M270;R17
-F;M270;R18
-F;SM12;Y1;X1
-C;K"Test String 1"
-F;SM19;X2
-C;K1
-F;SM19;X3
-C;K5
-F;SIDM18;X5
-C;K"A"
-F;SDM17;X6
-C;K"E"
-C;X8;K6;ERC[-6]+RC[-5]
-C;X10;K"AE";ERC[-5]&RC[-4]
-F;SSM0;Y2;X1
-C;K"Test - String 2"
-C;X2;K2
-F;SM19;X3
-C;K6
-C;X5;K"B"
-C;X6;K"F"
-C;X8;K8;ERC[-6]+RC[-5]
-C;X10;K"BF";ERC[-5]&RC[-4]
-C;Y3;X1;K"Test #3"
-F;SM19;X2
-C;K3
-F;SM19;X3
-C;K7
-F;SDM13;X5
-C;K"C"
-F;SIDM16;X6
-C;K"G"
-C;X8;K10;ERC[-6]+RC[-5]
-C;X10;K"CG";ERC[-5]&RC[-4]
-F;SM11;Y4;X1
-C;K"Test with (;;) in string"
-C;X2;K4
-F;SM19;X3
-C;K8
-F;SIM15;X5
-C;K"D"
-C;X6;K"H"
-C;X8;K12;ERC[-6]+RC[-5]
-C;X10;K"DH";ERC[-5]&RC[-4]
-C;Y5;X8;K10;ESUM(R[-4]C[-6]:R[-1]C[-6])
-C;X9;K26;ESUM(R[-4]C[-6]:R[-1]C[-6])
-C;X10;K36;ESUM(R[-4]C[-8]:R[-1]C[-7])
-C;Y6;X2;K1.23
-C;X3;KTRUE
-F;P19;FG0G;X4
-C;Y7;X2;K2.34
-C;X3;KFALSE
-C;Y8;X2;K3.45
-F;Y9;X1
-F;X2
-F;X3
-F;X4
-F;X5
-F;X6
-F;X7
-F;X8
-F;X9
-F;X10
-F;P19;FG0G;Y10;X1
-C;K22269
-F;STM0;X3
-C;K"TOP"
-F;P17;FG0G;Y11;X1
-C;K1.5
-F;Y12
-F;X2
-F;SBM0;X3
-C;K"BOTTOM"
-F;X4
-F;X5
-F;X6
-F;X7
-F;X8
-F;X9
-F;X10
-F;SLM0;Y14;X3
-C;K"LEFT"
-F;SRM0;Y16
-C;K"RIGHT"
-F;Y17
-F;SLRTBM0;Y18
-C;K"BOX"
-E
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/XMLReader.php b/htdocs/includes/phpoffice/phpexcel/Examples/XMLReader.php
deleted file mode 100644
index 1aa0f95f773..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/XMLReader.php
+++ /dev/null
@@ -1,60 +0,0 @@
-<?php
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** Error reporting */
-error_reporting(E_ALL);
-
-date_default_timezone_set('Europe/London');
-
-/** PHPExcel_IOFactory */
-require_once dirname(__FILE__) . '/../Classes/PHPExcel/IOFactory.php';
-
-
-echo date('H:i:s') , " Load from XML file" , PHP_EOL;
-$inputFileName = "XMLTest.xml";
-
-/**  Identify the type of $inputFileName  **/
-$inputFileType = PHPExcel_IOFactory::identify($inputFileName);
-echo 'Loading ' , $inputFileName , ' using ' , $inputFileType , " Reader" , PHP_EOL;
-
-/**  Create a new Reader of the type that has been identified  **/
-$objReader = PHPExcel_IOFactory::createReader($inputFileType);
-/**  Load $inputFileName to a PHPExcel Object  **/
-$objPHPExcel = $objReader->load($inputFileName);
-
-
-echo date('H:i:s') , " Write to Excel2007 format" , PHP_EOL;
-$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
-$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
-echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', __FILE__) , PHP_EOL;
-
-
-// Echo memory peak usage
-echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , PHP_EOL;
-
-// Echo done
-echo date('H:i:s') , " Done writing file" , PHP_EOL;
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/XMLTest.xml b/htdocs/includes/phpoffice/phpexcel/Examples/XMLTest.xml
deleted file mode 100644
index 4159a94c88c..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/XMLTest.xml
+++ /dev/null
@@ -1,450 +0,0 @@
-<?xml version="1.0"?>
-<?mso-application progid="Excel.Sheet"?>
-<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
- xmlns:o="urn:schemas-microsoft-com:office:office"
- xmlns:x="urn:schemas-microsoft-com:office:excel"
- xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
- xmlns:html="http://www.w3.org/TR/REC-html40">
- <DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">
-  <Title>Excel 2003 XML Test Workbook</Title>
-  <Subject>This is a test workbook saved as Excel 2003 XML</Subject>
-  <Author>Mark Baker</Author>
-  <Keywords>PHPExcel Excel 2003 XML Reader</Keywords>
-  <Description>This is a test for the PHPExcel Reader for workbooks saved using Excel 2003's XML Format</Description>
-  <LastAuthor>Mark Baker</LastAuthor>
-  <Created>2009-09-11T08:26:08Z</Created>
-  <LastSaved>2009-09-17T22:53:09Z</LastSaved>
-  <Category>Reader</Category>
-  <Company>PHPExcel</Company>
-  <Version>14.00</Version>
- </DocumentProperties>
- <OfficeDocumentSettings xmlns="urn:schemas-microsoft-com:office:office">
-  <AllowPNG/>
- </OfficeDocumentSettings>
- <ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel">
-  <WindowHeight>13176</WindowHeight>
-  <WindowWidth>28452</WindowWidth>
-  <WindowTopX>240</WindowTopX>
-  <WindowTopY>516</WindowTopY>
-  <ProtectStructure>False</ProtectStructure>
-  <ProtectWindows>False</ProtectWindows>
- </ExcelWorkbook>
- <Styles>
-  <Style ss:ID="Default" ss:Name="Normal">
-   <Alignment ss:Vertical="Bottom"/>
-   <Borders/>
-   <Font ss:FontName="Calibri" ss:Size="11" ss:Color="#000000"/>
-   <Interior/>
-   <NumberFormat/>
-   <Protection/>
-  </Style>
-  <Style ss:ID="m42221568">
-   <Alignment ss:Horizontal="Center" ss:Vertical="Center"/>
-   <Borders>
-    <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="3"
-     ss:Color="#00B050"/>
-    <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="3"
-     ss:Color="#0070C0"/>
-    <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="3"
-     ss:Color="#FFFF00"/>
-    <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="3"
-     ss:Color="#FF0000"/>
-   </Borders>
-   <Font ss:FontName="Arial" ss:Size="11" ss:Color="#000000"/>
-  </Style>
-  <Style ss:ID="s62">
-   <Font ss:FontName="Arial" ss:Size="11" ss:Color="#FF0000" ss:Bold="1"/>
-  </Style>
-  <Style ss:ID="s63">
-   <Font ss:FontName="Arial" ss:Size="11" ss:Color="#000000"/>
-  </Style>
-  <Style ss:ID="s64">
-   <Font ss:FontName="Arial" ss:Size="11" ss:Color="#000000" ss:Bold="1"
-    ss:Italic="1" ss:Underline="Single"/>
-  </Style>
-  <Style ss:ID="s65">
-   <Font ss:FontName="Arial" ss:Size="11" ss:Color="#000000" ss:Bold="1"
-    ss:Underline="Single"/>
-  </Style>
-  <Style ss:ID="s66">
-   <Font ss:FontName="Arial" ss:Size="11" ss:Color="#000000" ss:Bold="1"/>
-   <Interior/>
-  </Style>
-  <Style ss:ID="s67">
-   <Font ss:FontName="Arial" ss:Size="11" ss:Color="#000000"/>
-   <Interior/>
-  </Style>
-  <Style ss:ID="s68">
-   <Font ss:FontName="Arial" ss:Size="11" ss:Color="#000000" ss:Bold="1"/>
-  </Style>
-  <Style ss:ID="s69">
-   <Font ss:FontName="Arial" ss:Size="11" ss:Color="#000000" ss:Bold="1"
-    ss:Italic="1"/>
-  </Style>
-  <Style ss:ID="s70">
-   <Font ss:FontName="Arial" ss:Size="11" ss:Color="#000000" ss:Underline="Single"/>
-  </Style>
-  <Style ss:ID="s71">
-   <Font ss:FontName="Arial" ss:Size="11" ss:Color="#000000" ss:Italic="1"/>
-  </Style>
-  <Style ss:ID="s72">
-   <Font ss:FontName="Arial" ss:Size="11" ss:Color="#000000"/>
-   <NumberFormat ss:Format="Short Date"/>
-  </Style>
-  <Style ss:ID="s73">
-   <Borders>
-    <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="2"
-     ss:Color="#000000"/>
-   </Borders>
-   <Font ss:FontName="Arial" ss:Size="11" ss:Color="#000000"/>
-  </Style>
-  <Style ss:ID="s74">
-   <Font ss:FontName="Arial" ss:Size="11" ss:Color="#000000"/>
-   <NumberFormat ss:Format="#\ ?/?"/>
-  </Style>
-  <Style ss:ID="s75">
-   <Borders>
-    <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="2"
-     ss:Color="#000000"/>
-   </Borders>
-   <Font ss:FontName="Arial" ss:Size="11" ss:Color="#000000"/>
-  </Style>
-  <Style ss:ID="s76">
-   <Borders>
-    <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="2"
-     ss:Color="#000000"/>
-   </Borders>
-   <Font ss:FontName="Arial" ss:Size="11" ss:Color="#000000"/>
-  </Style>
-  <Style ss:ID="s77">
-   <Borders>
-    <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="2"
-     ss:Color="#000000"/>
-   </Borders>
-   <Font ss:FontName="Arial" ss:Size="11" ss:Color="#000000"/>
-  </Style>
-  <Style ss:ID="s85">
-   <Borders>
-    <Border ss:Position="DiagonalLeft" ss:LineStyle="Double" ss:Weight="3"
-     ss:Color="#FF0000"/>
-    <Border ss:Position="DiagonalRight" ss:LineStyle="Double" ss:Weight="3"
-     ss:Color="#FF0000"/>
-   </Borders>
-  </Style>
-  <Style ss:ID="s86">
-   <Alignment ss:Horizontal="Center" ss:Vertical="Bottom" ss:WrapText="1"/>
-   <Font ss:FontName="Arial" ss:Size="12" ss:Color="#000000" ss:Bold="1"
-    ss:Underline="Single"/>
-  </Style>
-  <Style ss:ID="s87">
-   <Font ss:FontName="Arial" ss:Size="11" ss:Color="#000000"/>
-   <NumberFormat ss:Format="0.00;[Red]0.00"/>
-  </Style>
-  <Style ss:ID="s88">
-   <Font ss:FontName="Arial" ss:Size="11" ss:Color="#000000"/>
-   <NumberFormat ss:Format="dd\-mmm\-yyyy"/>
-  </Style>
- </Styles>
- <Worksheet ss:Name="Sample Data">
-  <Table ss:ExpandedColumnCount="10" ss:ExpandedRowCount="20" x:FullColumns="1"
-   x:FullRows="1" ss:DefaultRowHeight="15">
-   <Column ss:AutoFitWidth="0" ss:Width="90.6"/>
-   <Column ss:Index="4" ss:AutoFitWidth="0" ss:Width="33.6"/>
-   <Row ss:AutoFitHeight="0">
-    <Cell ss:StyleID="s62"><Data ss:Type="String">Test String 1</Data></Cell>
-    <Cell ss:StyleID="s63"><Data ss:Type="Number">1</Data></Cell>
-    <Cell ss:StyleID="s63"><Data ss:Type="Number">5</Data></Cell>
-    <Cell ss:Index="5" ss:StyleID="s64"><Data ss:Type="String">A</Data></Cell>
-    <Cell ss:StyleID="s65"><Data ss:Type="String">E</Data></Cell>
-    <Cell ss:Index="8" ss:Formula="=RC[-6]+RC[-5]"><Data ss:Type="Number">6</Data></Cell>
-    <Cell ss:Index="10" ss:Formula="=RC[-5]&amp;RC[-4]"><Data ss:Type="String">AE</Data></Cell>
-   </Row>
-   <Row ss:AutoFitHeight="0">
-    <Cell ss:StyleID="s66"><Data ss:Type="String">Test - String 2</Data></Cell>
-    <Cell><Data ss:Type="Number">2</Data></Cell>
-    <Cell ss:StyleID="s63"><Data ss:Type="Number">6</Data></Cell>
-    <Cell ss:Index="5"><Data ss:Type="String">B</Data></Cell>
-    <Cell><Data ss:Type="String">F</Data></Cell>
-    <Cell ss:Index="8" ss:Formula="=RC[-6]+RC[-5]"><Data ss:Type="Number">8</Data></Cell>
-    <Cell ss:Index="10" ss:Formula="=RC[-5]&amp;RC[-4]"><Data ss:Type="String">BF</Data></Cell>
-   </Row>
-   <Row ss:AutoFitHeight="0">
-    <Cell ss:StyleID="s67"><Data ss:Type="String">Test #3</Data></Cell>
-    <Cell ss:StyleID="s63"><Data ss:Type="Number">3</Data></Cell>
-    <Cell ss:StyleID="s63"><Data ss:Type="Number">7</Data></Cell>
-    <Cell ss:Index="5" ss:StyleID="s68"><Data ss:Type="String">C</Data></Cell>
-    <Cell ss:StyleID="s69"><Data ss:Type="String">G</Data></Cell>
-    <Cell ss:Index="8" ss:Formula="=RC[-6]+RC[-5]"><Data ss:Type="Number">10</Data></Cell>
-    <Cell ss:Index="10" ss:Formula="=RC[-5]&amp;RC[-4]"><Data ss:Type="String">CG</Data></Cell>
-   </Row>
-   <Row ss:AutoFitHeight="0">
-    <Cell ss:StyleID="s70"><Data ss:Type="String">Test with (&quot;) in string</Data></Cell>
-    <Cell><Data ss:Type="Number">4</Data></Cell>
-    <Cell ss:StyleID="s63"><Data ss:Type="Number">8</Data></Cell>
-    <Cell ss:Index="5" ss:StyleID="s71"><Data ss:Type="String">D</Data></Cell>
-    <Cell><Data ss:Type="String">H</Data></Cell>
-    <Cell ss:Index="8" ss:Formula="=RC[-6]+RC[-5]"><Data ss:Type="Number">12</Data></Cell>
-    <Cell ss:Index="10" ss:Formula="=RC[-5]&amp;RC[-4]"><Data ss:Type="String">DH</Data></Cell>
-   </Row>
-   <Row ss:AutoFitHeight="0">
-    <Cell ss:Index="8" ss:Formula="=SUM(R[-4]C[-6]:R[-1]C[-6])"><Data
-      ss:Type="Number">10</Data></Cell>
-    <Cell ss:Formula="=SUM(R[-4]C[-6]:R[-1]C[-6])"><Data ss:Type="Number">26</Data></Cell>
-    <Cell ss:Formula="=SUM(R[-4]C[-8]:R[-1]C[-7])"><Data ss:Type="Number">36</Data></Cell>
-   </Row>
-   <Row ss:AutoFitHeight="0">
-    <Cell ss:Index="2"><Data ss:Type="Number">1.23</Data></Cell>
-    <Cell><Data ss:Type="Boolean">1</Data></Cell>
-    <Cell ss:StyleID="s72"/>
-   </Row>
-   <Row ss:AutoFitHeight="0">
-    <Cell ss:Index="2"><Data ss:Type="Number">2.34</Data></Cell>
-    <Cell><Data ss:Type="Boolean">0</Data></Cell>
-   </Row>
-   <Row ss:AutoFitHeight="0">
-    <Cell ss:Index="2"><Data ss:Type="Number">3.45</Data></Cell>
-   </Row>
-   <Row ss:AutoFitHeight="0" ss:Height="13.5"/>
-   <Row ss:AutoFitHeight="0">
-    <Cell ss:StyleID="s72"><Data ss:Type="DateTime">1960-12-19T00:00:00.000</Data></Cell>
-    <Cell ss:Index="3" ss:StyleID="s73"><Data ss:Type="String">TOP</Data></Cell>
-    <Cell ss:Index="7" ss:Formula="=#N/A"><Data ss:Type="Error">#N/A</Data></Cell>
-   </Row>
-   <Row ss:AutoFitHeight="0">
-    <Cell ss:StyleID="s74"><Data ss:Type="Number">1.5</Data></Cell>
-    <Cell ss:Index="7" ss:Formula="=12/0"><Data ss:Type="Error">#DIV/0!</Data></Cell>
-   </Row>
-   <Row ss:AutoFitHeight="0" ss:Height="13.5">
-    <Cell ss:Index="3" ss:StyleID="s75"><Data ss:Type="String">BOTTOM</Data></Cell>
-   </Row>
-   <Row ss:Index="14" ss:AutoFitHeight="0">
-    <Cell ss:Index="3" ss:StyleID="s76"><Data ss:Type="String">LEFT</Data></Cell>
-   </Row>
-   <Row ss:Index="16" ss:AutoFitHeight="0">
-    <Cell ss:Index="3" ss:StyleID="s77"><Data ss:Type="String">RIGHT</Data></Cell>
-   </Row>
-   <Row ss:AutoFitHeight="0" ss:Height="13.5"/>
-   <Row ss:AutoFitHeight="0" ss:Height="13.5">
-    <Cell ss:Index="2" ss:MergeAcross="1" ss:MergeDown="1" ss:StyleID="m42221568"><Data
-      ss:Type="String">BOX</Data></Cell>
-    <Cell ss:Index="5" ss:StyleID="s85"/>
-    <Cell ss:Index="7"><Data ss:Type="String">Test Column 1</Data></Cell>
-   </Row>
-   <Row ss:AutoFitHeight="0">
-    <Cell ss:Index="8"><Data ss:Type="String">Test Column 2</Data></Cell>
-   </Row>
-   <Row ss:AutoFitHeight="0">
-    <Cell ss:Index="9"><Data ss:Type="String">Test Column 3</Data></Cell>
-   </Row>
-  </Table>
-  <WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
-   <PageSetup>
-    <Header x:Margin="0.3"/>
-    <Footer x:Margin="0.3"/>
-    <PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75"/>
-   </PageSetup>
-   <Unsynced/>
-   <Print>
-    <ValidPrinterInfo/>
-    <HorizontalResolution>600</HorizontalResolution>
-    <VerticalResolution>600</VerticalResolution>
-   </Print>
-   <Selected/>
-   <Panes>
-    <Pane>
-     <Number>3</Number>
-     <ActiveRow>17</ActiveRow>
-     <ActiveCol>4</ActiveCol>
-    </Pane>
-   </Panes>
-   <ProtectObjects>False</ProtectObjects>
-   <ProtectScenarios>False</ProtectScenarios>
-   <AllowFormatCells/>
-   <AllowSizeCols/>
-   <AllowSizeRows/>
-   <AllowInsertCols/>
-   <AllowInsertRows/>
-   <AllowInsertHyperlinks/>
-   <AllowDeleteCols/>
-   <AllowDeleteRows/>
-   <AllowSort/>
-   <AllowFilter/>
-   <AllowUsePivotTables/>
-  </WorksheetOptions>
- </Worksheet>
- <Worksheet ss:Name="Report Data">
-  <Table ss:ExpandedColumnCount="7" ss:ExpandedRowCount="14" x:FullColumns="1"
-   x:FullRows="1" ss:DefaultRowHeight="15">
-   <Column ss:AutoFitWidth="0" ss:Width="66.600000000000009"/>
-   <Column ss:AutoFitWidth="0" ss:Width="68.399999999999991"/>
-   <Column ss:AutoFitWidth="0" ss:Width="62.400000000000006"/>
-   <Column ss:Width="69.599999999999994"/>
-   <Column ss:Index="6" ss:Width="69.599999999999994"/>
-   <Column ss:AutoFitWidth="0" ss:Width="64.8"/>
-   <Row ss:AutoFitHeight="0" ss:Height="31.5">
-    <Cell ss:StyleID="s86"><Data ss:Type="String">Heading 1</Data></Cell>
-    <Cell ss:StyleID="s86"><Data ss:Type="String">Heading 2</Data></Cell>
-    <Cell ss:StyleID="s86"><Data ss:Type="String">Third Heading</Data></Cell>
-    <Cell ss:StyleID="s86"><Data ss:Type="String">Date Heading</Data></Cell>
-    <Cell ss:Index="6" ss:StyleID="s86"><Data ss:Type="String">Adjusted Date</Data></Cell>
-    <Cell ss:StyleID="s86"><Data ss:Type="String">Adjusted Number</Data></Cell>
-   </Row>
-   <Row ss:AutoFitHeight="0">
-    <Cell><Data ss:Type="String">ABC</Data></Cell>
-    <Cell><Data ss:Type="Number">1</Data></Cell>
-    <Cell ss:StyleID="s87"><Data ss:Type="Number">1.1100000000000001</Data></Cell>
-    <Cell ss:StyleID="s88"><Data ss:Type="DateTime">2001-01-01T00:00:00.000</Data></Cell>
-    <Cell ss:Index="6" ss:StyleID="s88" ss:Formula="=RC[-2]-RC[-4]"><Data
-      ss:Type="DateTime">2000-12-31T00:00:00.000</Data></Cell>
-    <Cell ss:StyleID="s87" ss:Formula="=RC[-5]*RC[-4]"><Data ss:Type="Number">1.1100000000000001</Data></Cell>
-   </Row>
-   <Row ss:AutoFitHeight="0">
-    <Cell><Data ss:Type="String">BCD</Data></Cell>
-    <Cell><Data ss:Type="Number">2</Data></Cell>
-    <Cell ss:StyleID="s87"><Data ss:Type="Number">2.2200000000000002</Data></Cell>
-    <Cell ss:StyleID="s88"><Data ss:Type="DateTime">2002-02-02T00:00:00.000</Data></Cell>
-    <Cell ss:Index="6" ss:StyleID="s88" ss:Formula="=RC[-2]-RC[-4]"><Data
-      ss:Type="DateTime">2002-01-31T00:00:00.000</Data></Cell>
-    <Cell ss:StyleID="s87" ss:Formula="=RC[-5]*RC[-4]"><Data ss:Type="Number">4.4400000000000004</Data></Cell>
-   </Row>
-   <Row ss:AutoFitHeight="0">
-    <Cell><Data ss:Type="String">CDE</Data></Cell>
-    <Cell><Data ss:Type="Number">3</Data></Cell>
-    <Cell ss:StyleID="s87"><Data ss:Type="Number">3.33</Data></Cell>
-    <Cell ss:StyleID="s88"><Data ss:Type="DateTime">2003-03-03T00:00:00.000</Data></Cell>
-    <Cell ss:Index="6" ss:StyleID="s88" ss:Formula="=RC[-2]-RC[-4]"><Data
-      ss:Type="DateTime">2003-02-28T00:00:00.000</Data></Cell>
-    <Cell ss:StyleID="s87" ss:Formula="=RC[-5]*RC[-4]"><Data ss:Type="Number">9.99</Data></Cell>
-   </Row>
-   <Row ss:AutoFitHeight="0">
-    <Cell><Data ss:Type="String">DEF</Data></Cell>
-    <Cell><Data ss:Type="Number">4</Data></Cell>
-    <Cell ss:StyleID="s87"><Data ss:Type="Number">4.4400000000000004</Data></Cell>
-    <Cell ss:StyleID="s88"><Data ss:Type="DateTime">2004-04-03T23:00:00.000</Data></Cell>
-    <Cell ss:Index="6" ss:StyleID="s88" ss:Formula="=RC[-2]-RC[-4]"><Data
-      ss:Type="DateTime">2004-03-30T23:00:00.000</Data></Cell>
-    <Cell ss:StyleID="s87" ss:Formula="=RC[-5]*RC[-4]"><Data ss:Type="Number">17.760000000000002</Data></Cell>
-   </Row>
-   <Row ss:AutoFitHeight="0">
-    <Cell><Data ss:Type="String">EFG</Data></Cell>
-    <Cell><Data ss:Type="Number">5</Data></Cell>
-    <Cell ss:StyleID="s87"><Data ss:Type="Number">5.55</Data></Cell>
-    <Cell ss:StyleID="s88"><Data ss:Type="DateTime">2005-05-04T23:00:00.000</Data></Cell>
-    <Cell ss:Index="6" ss:StyleID="s88" ss:Formula="=RC[-2]-RC[-4]"><Data
-      ss:Type="DateTime">2005-04-29T23:00:00.000</Data></Cell>
-    <Cell ss:StyleID="s87" ss:Formula="=RC[-5]*RC[-4]"><Data ss:Type="Number">27.75</Data></Cell>
-   </Row>
-   <Row ss:AutoFitHeight="0">
-    <Cell><Data ss:Type="String">FGH</Data></Cell>
-    <Cell><Data ss:Type="Number">6</Data></Cell>
-    <Cell ss:StyleID="s87"><Data ss:Type="Number">6.66</Data></Cell>
-    <Cell ss:StyleID="s88"><Data ss:Type="DateTime">2006-06-05T23:00:00.000</Data></Cell>
-    <Cell ss:Index="6" ss:StyleID="s88" ss:Formula="=RC[-2]-RC[-4]"><Data
-      ss:Type="DateTime">2006-05-30T23:00:00.000</Data></Cell>
-    <Cell ss:StyleID="s87" ss:Formula="=RC[-5]*RC[-4]"><Data ss:Type="Number">39.96</Data></Cell>
-   </Row>
-   <Row ss:AutoFitHeight="0">
-    <Cell><Data ss:Type="String">GHI</Data></Cell>
-    <Cell><Data ss:Type="Number">7</Data></Cell>
-    <Cell ss:StyleID="s87"><Data ss:Type="Number">7.77</Data></Cell>
-    <Cell ss:StyleID="s88"><Data ss:Type="DateTime">2007-07-06T23:00:00.000</Data></Cell>
-    <Cell ss:Index="6" ss:StyleID="s88" ss:Formula="=RC[-2]-RC[-4]"><Data
-      ss:Type="DateTime">2007-06-29T23:00:00.000</Data></Cell>
-    <Cell ss:StyleID="s87" ss:Formula="=RC[-5]*RC[-4]"><Data ss:Type="Number">54.39</Data></Cell>
-   </Row>
-   <Row ss:AutoFitHeight="0">
-    <Cell><Data ss:Type="String">HIJ</Data></Cell>
-    <Cell><Data ss:Type="Number">8</Data></Cell>
-    <Cell ss:StyleID="s87"><Data ss:Type="Number">8.8800000000000008</Data></Cell>
-    <Cell ss:StyleID="s88"><Data ss:Type="DateTime">2008-08-07T23:00:00.000</Data></Cell>
-    <Cell ss:Index="6" ss:StyleID="s88" ss:Formula="=RC[-2]-RC[-4]"><Data
-      ss:Type="DateTime">2008-07-30T23:00:00.000</Data></Cell>
-    <Cell ss:StyleID="s87" ss:Formula="=RC[-5]*RC[-4]"><Data ss:Type="Number">71.040000000000006</Data></Cell>
-   </Row>
-   <Row ss:AutoFitHeight="0">
-    <Cell><Data ss:Type="String">IJK</Data></Cell>
-    <Cell><Data ss:Type="Number">9</Data></Cell>
-    <Cell ss:StyleID="s87"><Data ss:Type="Number">9.99</Data></Cell>
-    <Cell ss:StyleID="s88"><Data ss:Type="DateTime">2009-09-08T23:00:00.000</Data></Cell>
-    <Cell ss:Index="6" ss:StyleID="s88" ss:Formula="=RC[-2]-RC[-4]"><Data
-      ss:Type="DateTime">2009-08-30T23:00:00.000</Data></Cell>
-    <Cell ss:StyleID="s87" ss:Formula="=RC[-5]*RC[-4]"><Data ss:Type="Number">89.91</Data></Cell>
-   </Row>
-   <Row ss:AutoFitHeight="0">
-    <Cell><Data ss:Type="String">JKL</Data></Cell>
-    <Cell><Data ss:Type="Number">10</Data></Cell>
-    <Cell ss:StyleID="s87"><Data ss:Type="Number">11.1</Data></Cell>
-    <Cell ss:StyleID="s88"><Data ss:Type="DateTime">2010-10-09T23:00:00.000</Data></Cell>
-    <Cell ss:Index="6" ss:StyleID="s88" ss:Formula="=RC[-2]-RC[-4]"><Data
-      ss:Type="DateTime">2010-09-29T23:00:00.000</Data></Cell>
-    <Cell ss:StyleID="s87" ss:Formula="=RC[-5]*RC[-4]"><Data ss:Type="Number">111</Data></Cell>
-   </Row>
-   <Row ss:AutoFitHeight="0">
-    <Cell><Data ss:Type="String">KLM</Data></Cell>
-    <Cell><Data ss:Type="Number">11</Data></Cell>
-    <Cell ss:StyleID="s87"><Data ss:Type="Number">12.21</Data></Cell>
-    <Cell ss:StyleID="s88"><Data ss:Type="DateTime">2011-11-11T00:00:00.000</Data></Cell>
-    <Cell ss:Index="6" ss:StyleID="s88" ss:Formula="=RC[-2]-RC[-4]"><Data
-      ss:Type="DateTime">2011-10-31T00:00:00.000</Data></Cell>
-    <Cell ss:StyleID="s87" ss:Formula="=RC[-5]*RC[-4]"><Data ss:Type="Number">134.31</Data></Cell>
-   </Row>
-   <Row ss:AutoFitHeight="0">
-    <Cell><Data ss:Type="String">LMN</Data></Cell>
-    <Cell><Data ss:Type="Number">12</Data></Cell>
-    <Cell ss:StyleID="s87"><Data ss:Type="Number">13.32</Data></Cell>
-    <Cell ss:StyleID="s88"><Data ss:Type="DateTime">2012-12-12T00:00:00.000</Data></Cell>
-    <Cell ss:Index="6" ss:StyleID="s88" ss:Formula="=RC[-2]-RC[-4]"><Data
-      ss:Type="DateTime">2012-11-30T00:00:00.000</Data></Cell>
-    <Cell ss:StyleID="s87" ss:Formula="=RC[-5]*RC[-4]"><Data ss:Type="Number">159.84</Data></Cell>
-   </Row>
-   <Row ss:AutoFitHeight="0">
-    <Cell><Data ss:Type="String">ZYX</Data></Cell>
-    <Cell><Data ss:Type="Number">-1</Data></Cell>
-    <Cell ss:StyleID="s87"><Data ss:Type="Number">-1.1100000000000001</Data></Cell>
-    <Cell ss:StyleID="s88"><Data ss:Type="DateTime">1999-12-01T00:00:00.000</Data></Cell>
-    <Cell ss:Index="6" ss:StyleID="s88" ss:Formula="=RC[-2]-RC[-4]"><Data
-      ss:Type="DateTime">1999-12-02T00:00:00.000</Data></Cell>
-    <Cell ss:StyleID="s87" ss:Formula="=RC[-5]*RC[-4]"><Data ss:Type="Number">1.1100000000000001</Data></Cell>
-   </Row>
-  </Table>
-  <WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
-   <PageSetup>
-    <Header x:Margin="0.3"/>
-    <Footer x:Margin="0.3"/>
-    <PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75"/>
-   </PageSetup>
-   <Unsynced/>
-   <Print>
-    <ValidPrinterInfo/>
-    <HorizontalResolution>600</HorizontalResolution>
-    <VerticalResolution>600</VerticalResolution>
-   </Print>
-   <ProtectObjects>False</ProtectObjects>
-   <ProtectScenarios>False</ProtectScenarios>
-   <AllowFormatCells/>
-   <AllowSizeCols/>
-   <AllowSizeRows/>
-   <AllowInsertCols/>
-   <AllowInsertRows/>
-   <AllowInsertHyperlinks/>
-   <AllowDeleteCols/>
-   <AllowDeleteRows/>
-   <AllowSort/>
-   <AllowFilter/>
-   <AllowUsePivotTables/>
-  </WorksheetOptions>
-  <ConditionalFormatting xmlns="urn:schemas-microsoft-com:office:excel">
-   <Range>R2C3:R14C3</Range>
-   <Condition>
-    <Qualifier>Greater</Qualifier>
-    <Value1>0</Value1>
-    <Format Style='color:#006100;background:#C6EFCE'/>
-   </Condition>
-   <Condition>
-    <Qualifier>Less</Qualifier>
-    <Value1>0</Value1>
-    <Format Style='color:#9C0006;background:#FFC7CE'/>
-   </Condition>
-  </ConditionalFormatting>
- </Worksheet>
-</Workbook>
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/data/continents/Africa.txt b/htdocs/includes/phpoffice/phpexcel/Examples/data/continents/Africa.txt
deleted file mode 100644
index 407fa769aa3..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/data/continents/Africa.txt
+++ /dev/null
@@ -1,54 +0,0 @@
-Algeria
-Angola
-Benin
-Botswana
-Burkina
-Burundi
-Cameroon
-Cape Verde
-Central African Republic
-Chad
-Comoros
-Congo
-Congo, Democratic Republic of
-Djibouti
-Egypt
-Equatorial Guinea
-Eritrea
-Ethiopia
-Gabon
-Gambia
-Ghana
-Guinea
-Guinea-Bissau
-Ivory Coast
-Kenya
-Lesotho
-Liberia
-Libya
-Madagascar
-Malawi
-Mali
-Mauritania
-Mauritius
-Morocco
-Mozambique
-Namibia
-Niger
-Nigeria
-Rwanda
-Sao Tome and Principe 
-Senegal
-Seychelles
-Sierra Leone
-Somalia
-South Africa
-South Sudan
-Sudan
-Swaziland
-Tanzania
-Togo
-Tunisia
-Uganda
-Zambia
-Zimbabwe
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/data/continents/Asia.txt b/htdocs/includes/phpoffice/phpexcel/Examples/data/continents/Asia.txt
deleted file mode 100644
index 9ce006c53c8..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/data/continents/Asia.txt
+++ /dev/null
@@ -1,44 +0,0 @@
-Afghanistan
-Bahrain
-Bangladesh
-Bhutan
-Brunei
-Burma (Myanmar)
-Cambodia
-China
-East Timor
-India
-Indonesia
-Iran
-Iraq
-Israel
-Japan
-Jordan
-Kazakhstan
-Korea, North
-Korea, South
-Kuwait
-Kyrgyzstan
-Laos
-Lebanon
-Malaysia
-Maldives
-Mongolia
-Nepal
-Oman
-Pakistan
-Philippines
-Qatar
-Russian Federation
-Saudi Arabia
-Singapore
-Sri Lanka
-Syria
-Tajikistan
-Thailand
-Turkey
-Turkmenistan
-United Arab Emirates
-Uzbekistan
-Vietnam
-Yemen
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/data/continents/Europe.txt b/htdocs/includes/phpoffice/phpexcel/Examples/data/continents/Europe.txt
deleted file mode 100644
index 70c11607ab9..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/data/continents/Europe.txt
+++ /dev/null
@@ -1,47 +0,0 @@
-Albania
-Andorra
-Armenia
-Austria
-Azerbaijan
-Belarus
-Belgium
-Bosnia and Herzegovina
-Bulgaria
-Croatia
-Cyprus
-Czech Republic
-Denmark
-Estonia
-Finland
-France
-Georgia
-Germany
-Greece
-Hungary
-Iceland
-Ireland
-Italy
-Latvia
-Liechtenstein
-Lithuania
-Luxembourg
-Macedonia
-Malta
-Moldova
-Monaco
-Montenegro
-Netherlands
-Norway
-Poland
-Portugal
-Romania
-San Marino
-Serbia
-Slovakia
-Slovenia
-Spain
-Sweden
-Switzerland
-Ukraine
-United Kingdom
-Vatican City
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/data/continents/North America.txt b/htdocs/includes/phpoffice/phpexcel/Examples/data/continents/North America.txt
deleted file mode 100644
index 5881ae132ab..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/data/continents/North America.txt	
+++ /dev/null
@@ -1,23 +0,0 @@
-Antigua and Barbuda
-Bahamas
-Barbados
-Belize
-Canada
-Costa Rica
-Cuba
-Dominica
-Dominican Republic
-El Salvador
-Grenada
-Guatemala
-Haiti
-Honduras
-Jamaica
-Mexico
-Nicaragua
-Panama
-Saint Kitts and Nevis
-Saint Lucia
-Saint Vincent and the Grenadines
-Trinidad and Tobago
-United States
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/data/continents/Oceania.txt b/htdocs/includes/phpoffice/phpexcel/Examples/data/continents/Oceania.txt
deleted file mode 100644
index cbdc896c1ca..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/data/continents/Oceania.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-Australia
-Fiji
-Kiribati
-Marshall Islands
-Micronesia
-Nauru
-New Zealand
-Palau
-Papua New Guinea
-Samoa
-Solomon Islands
-Tonga
-Tuvalu
-Vanuatu
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/data/continents/South America.txt b/htdocs/includes/phpoffice/phpexcel/Examples/data/continents/South America.txt
deleted file mode 100644
index 777ffbfb94b..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/data/continents/South America.txt	
+++ /dev/null
@@ -1,12 +0,0 @@
-Argentina
-Bolivia
-Brazil
-Chile
-Colombia
-Ecuador
-Guyana
-Paraguay
-Peru
-Suriname
-Uruguay
-Venezuela
diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/images/officelogo.jpg b/htdocs/includes/phpoffice/phpexcel/Examples/images/officelogo.jpg
deleted file mode 100644
index 7e0133d13462f2aa206ac0463c3bdbb5e04e66e5..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 5597
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

diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/images/paid.png b/htdocs/includes/phpoffice/phpexcel/Examples/images/paid.png
deleted file mode 100644
index a4355bd6de59bcba25c7092654086f7e3898745c..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 1605
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
Y3yQf?WLoz#FfcH9y85}Sb4q9e01c1p*Z=?k

diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/images/phpexcel_logo.gif b/htdocs/includes/phpoffice/phpexcel/Examples/images/phpexcel_logo.gif
deleted file mode 100644
index 6e1b5ee45266afddac77bc2b71b3e65f0a3e4037..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 6104
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
WT4eugN&K&6^}km9S7c;lum%8W1uvEW

diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/images/termsconditions.jpg b/htdocs/includes/phpoffice/phpexcel/Examples/images/termsconditions.jpg
deleted file mode 100644
index 1f21302e4265ddae9dde9cac249634da1008ddef..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 528
zcmex=<NpH&0WUXCHwH#V1_nk3Mh1rew;7xnxY*e_*x9%^I5@buxVZTw1o(J)`D8`K
z1SOQ^RaKPal@!&q&GpqZO*9pi3>*zjEUoSA>{Rt!Je_Sk%x&$gL547LadY$W^2rDY
z$XIJAX;_mC{vTiv<X{kE5MyRkVqg+vWEN!ne}q92<Wy!x1|-1B#LUj}{|JM&00R>v
zGcyx2Crp}=iJ5^#kd@6)NKr&7kX_iwF|n|5;=&LAk1$9uGB7bC8N$H8%*wz7GDc32
zfr*I;S(1^7L6Dh6$XHRS@c%6a9%e=cCP8LF2788=({{H>FISXPvys?*=~b=uH~UkQ
zcj)H{X{LQB=j%9rE@s911I%y#nPz>@d1?N6%comkPW@*PK6cdeZwPPdY>&&&wnVB`
zC{JiD|6HaZlm2p+`yMmHN8hu>Kb)=DA@)IicFL=$V+$+G0*|-#GJFrVOj_fgQ&o0W
z+kdl~@GGe$5Bfw44?g*`(&wv{*n{FS$%|TY+qcJuzBY(InU!)p>Px$uO*(sXS5VK7
u%L<Pk9g*4?oRqw+Z0WY!k+Ur4RX#r+(_{F9Y0A<FhD9wclXA}gzX<@cmYv1`

diff --git a/htdocs/includes/phpoffice/phpexcel/Examples/runall.php b/htdocs/includes/phpoffice/phpexcel/Examples/runall.php
deleted file mode 100644
index b2af1ccd0be..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/Examples/runall.php
+++ /dev/null
@@ -1,130 +0,0 @@
-<?php
-/**
- * PHPExcel
- *
- * Copyright (C) 2006 - 2014 PHPExcel
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * @category   PHPExcel
- * @package    PHPExcel
- * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
- * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
- * @version    ##VERSION##, ##DATE##
- */
-
-/** Error reporting */
-error_reporting(E_ALL);
-
-if (PHP_SAPI != 'cli') {
-	die ('This script executes all tests, and should only be run from the command line');
-}
-
-// List of tests
-$aTests = array(
-	  '01simple.php'
-	, '01simplePCLZip.php'
-	, '02types.php'
-	, '02types-xls.php'
-	, '03formulas.php'
-	, '04printing.php'
-	, '05featuredemo.php'
-	, '06largescale.php'
-	, '06largescale-with-cellcaching.php'
-	, '06largescale-with-cellcaching-sqlite.php'
-	, '06largescale-with-cellcaching-sqlite3.php'
-	, '06largescale-xls.php'
-	, '07reader.php'
-	, '07readerPCLZip.php'
-	, '08conditionalformatting.php'
-	, '08conditionalformatting2.php'
-	, '09pagebreaks.php'
-	, '10autofilter.php'
-	, '10autofilter-selection-1.php'
-	, '10autofilter-selection-2.php'
-	, '10autofilter-selection-display.php'
-	, '11documentsecurity.php'
-	, '11documentsecurity-xls.php'
-	, '12cellProtection.php'
-	, '13calculation.php'
-    , '13calculationCyclicFormulae.php'
-	, '14excel5.php'
-	, '15datavalidation.php'
-	, '15datavalidation-xls.php'
-	, '16csv.php'
-	, '17html.php'
-	, '18extendedcalculation.php'
-	, '19namedrange.php'
-	, '20readexcel5.php'
-	, '21pdf.php'
-	, '22heavilyformatted.php'
-	, '23sharedstyles.php'
-	, '24readfilter.php'
-	, '25inmemoryimage.php'
-	, '26utf8.php'
-	, '27imagesexcel5.php'
-	, '28iterator.php'
-	, '29advancedvaluebinder.php'
-	, '30template.php'
-	, '31docproperties_write.php'
-	, '31docproperties_write-xls.php'
-	, '32chartreadwrite.php'
-	, '33chartcreate-area.php'
-	, '33chartcreate-bar.php'
-	, '33chartcreate-bar-stacked.php'
-	, '33chartcreate-column.php'
-	, '33chartcreate-column-2.php'
-	, '33chartcreate-line.php'
-	, '33chartcreate-pie.php'
-	, '33chartcreate-radar.php'
-	, '33chartcreate-stock.php'
-	, '33chartcreate-multiple-charts.php'
-	, '33chartcreate-composite.php'
-	, '34chartupdate.php'
-	, '35chartrender.php'
-	, '36chartreadwriteHTML.php'
-	, '36chartreadwritePDF.php'
-	, '37page_layout_view.php'
-	, '38cloneWorksheet.php'
-    , '39dropdown.php'
-	, '40duplicateStyle.php'
-	, '41password.php'
-	, '42richText.php'
-	, 'OOCalcReader.php'
-	, 'OOCalcReaderPCLZip.php'
-	, 'SylkReader.php'
-	, 'Excel2003XMLReader.php'
-	, 'XMLReader.php'
-	, 'GnumericReader.php'
-);
-
-// First, clear all previous run results
-foreach ($aTests as $sTest) {
-	@unlink( str_replace('.php', '.xls', 	$sTest) );
-	@unlink( str_replace('.php', '.xlsx', 	$sTest) );
-	@unlink( str_replace('.php', '.csv',	$sTest) );
-	@unlink( str_replace('.php', '.htm',	$sTest) );
-	@unlink( str_replace('.php', '.pdf',	$sTest) );
-}
-
-// Run all tests
-foreach ($aTests as $sTest) {
-	echo '============== TEST ==============' . "\r\n";
-	echo 'Test name: ' . $sTest . "\r\n";
-	echo "\r\n";
-	echo shell_exec('php ' . $sTest);
-	echo "\r\n";
-	echo "\r\n";
-}
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/AutoloaderTest.php b/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/AutoloaderTest.php
deleted file mode 100644
index 286ef627c88..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/AutoloaderTest.php
+++ /dev/null
@@ -1,56 +0,0 @@
-<?php
-
-
-class AutoloaderTest extends PHPUnit_Framework_TestCase
-{
-
-    public function setUp()
-    {
-        if (!defined('PHPEXCEL_ROOT'))
-        {
-            define('PHPEXCEL_ROOT', APPLICATION_PATH . '/');
-        }
-        require_once(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php');
-    }
-
-    public function testAutoloaderNonPHPExcelClass()
-    {
-        $className = 'InvalidClass';
-
-        $result = PHPExcel_Autoloader::Load($className);
-        //    Must return a boolean...
-        $this->assertTrue(is_bool($result));
-        //    ... indicating failure
-        $this->assertFalse($result);
-    }
-
-    public function testAutoloaderInvalidPHPExcelClass()
-    {
-        $className = 'PHPExcel_Invalid_Class';
-
-        $result = PHPExcel_Autoloader::Load($className);
-        //    Must return a boolean...
-        $this->assertTrue(is_bool($result));
-        //    ... indicating failure
-        $this->assertFalse($result);
-    }
-
-    public function testAutoloadValidPHPExcelClass()
-    {
-        $className = 'PHPExcel_IOFactory';
-
-        $result = PHPExcel_Autoloader::Load($className);
-        //    Check that class has been loaded
-        $this->assertTrue(class_exists($className));
-    }
-
-    public function testAutoloadInstantiateSuccess()
-    {
-        $result = new PHPExcel_Calculation_Function(1,2,3);
-        //    Must return an object...
-        $this->assertTrue(is_object($result));
-        //    ... of the correct type
-        $this->assertTrue(is_a($result,'PHPExcel_Calculation_Function'));
-    }
-
-}
\ No newline at end of file
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Calculation/DateTimeTest.php b/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Calculation/DateTimeTest.php
deleted file mode 100644
index d4bdc5abff2..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Calculation/DateTimeTest.php
+++ /dev/null
@@ -1,466 +0,0 @@
-<?php
-
-
-require_once 'testDataFileIterator.php';
-
-class DateTimeTest extends PHPUnit_Framework_TestCase
-{
-
-    public function setUp()
-    {
-        if (!defined('PHPEXCEL_ROOT'))
-        {
-            define('PHPEXCEL_ROOT', APPLICATION_PATH . '/');
-        }
-        require_once(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php');
-
-        PHPExcel_Calculation_Functions::setCompatibilityMode(PHPExcel_Calculation_Functions::COMPATIBILITY_EXCEL);
-	}
-
-    /**
-     * @dataProvider providerDATE
-     */
-	public function testDATE()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_DateTime','DATE'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerDATE()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/DateTime/DATE.data');
-	}
-
-	public function testDATEtoPHP()
-	{
-		PHPExcel_Calculation_Functions::setReturnDateType(PHPExcel_Calculation_Functions::RETURNDATE_PHP_NUMERIC);
-		$result = PHPExcel_Calculation_DateTime::DATE(2012,1,31);
-		PHPExcel_Calculation_Functions::setReturnDateType(PHPExcel_Calculation_Functions::RETURNDATE_EXCEL);
-		$this->assertEquals(1327968000, $result, NULL, 1E-8);
-	}
-
-	public function testDATEtoPHPObject()
-	{
-		PHPExcel_Calculation_Functions::setReturnDateType(PHPExcel_Calculation_Functions::RETURNDATE_PHP_OBJECT);
-		$result = PHPExcel_Calculation_DateTime::DATE(2012,1,31);
-		PHPExcel_Calculation_Functions::setReturnDateType(PHPExcel_Calculation_Functions::RETURNDATE_EXCEL);
-        //    Must return an object...
-        $this->assertTrue(is_object($result));
-        //    ... of the correct type
-        $this->assertTrue(is_a($result,'DateTime'));
-        //    ... with the correct value
-        $this->assertEquals($result->format('d-M-Y'),'31-Jan-2012');
-	}
-
-	public function testDATEwith1904Calendar()
-	{
-		PHPExcel_Shared_Date::setExcelCalendar(PHPExcel_Shared_Date::CALENDAR_MAC_1904);
-		$result = PHPExcel_Calculation_DateTime::DATE(1918,11,11);
-		PHPExcel_Shared_Date::setExcelCalendar(PHPExcel_Shared_Date::CALENDAR_WINDOWS_1900);
-        $this->assertEquals($result,5428);
-	}
-
-	public function testDATEwith1904CalendarError()
-	{
-		PHPExcel_Shared_Date::setExcelCalendar(PHPExcel_Shared_Date::CALENDAR_MAC_1904);
-		$result = PHPExcel_Calculation_DateTime::DATE(1901,1,31);
-		PHPExcel_Shared_Date::setExcelCalendar(PHPExcel_Shared_Date::CALENDAR_WINDOWS_1900);
-        $this->assertEquals($result,'#NUM!');
-	}
-
-    /**
-     * @dataProvider providerDATEVALUE
-     */
-	public function testDATEVALUE()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_DateTime','DATEVALUE'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerDATEVALUE()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/DateTime/DATEVALUE.data');
-	}
-
-	public function testDATEVALUEtoPHP()
-	{
-		PHPExcel_Calculation_Functions::setReturnDateType(PHPExcel_Calculation_Functions::RETURNDATE_PHP_NUMERIC);
-		$result = PHPExcel_Calculation_DateTime::DATEVALUE('2012-1-31');
-		PHPExcel_Calculation_Functions::setReturnDateType(PHPExcel_Calculation_Functions::RETURNDATE_EXCEL);
-		$this->assertEquals(1327968000, $result, NULL, 1E-8);
-	}
-
-	public function testDATEVALUEtoPHPObject()
-	{
-		PHPExcel_Calculation_Functions::setReturnDateType(PHPExcel_Calculation_Functions::RETURNDATE_PHP_OBJECT);
-		$result = PHPExcel_Calculation_DateTime::DATEVALUE('2012-1-31');
-		PHPExcel_Calculation_Functions::setReturnDateType(PHPExcel_Calculation_Functions::RETURNDATE_EXCEL);
-        //    Must return an object...
-        $this->assertTrue(is_object($result));
-        //    ... of the correct type
-        $this->assertTrue(is_a($result,'DateTime'));
-        //    ... with the correct value
-        $this->assertEquals($result->format('d-M-Y'),'31-Jan-2012');
-	}
-
-    /**
-     * @dataProvider providerYEAR
-     */
-	public function testYEAR()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_DateTime','YEAR'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerYEAR()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/DateTime/YEAR.data');
-	}
-
-    /**
-     * @dataProvider providerMONTH
-     */
-	public function testMONTH()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_DateTime','MONTHOFYEAR'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerMONTH()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/DateTime/MONTH.data');
-	}
-
-    /**
-     * @dataProvider providerWEEKNUM
-     */
-	public function testWEEKNUM()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_DateTime','WEEKOFYEAR'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerWEEKNUM()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/DateTime/WEEKNUM.data');
-	}
-
-    /**
-     * @dataProvider providerWEEKDAY
-     */
-	public function testWEEKDAY()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_DateTime','DAYOFWEEK'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerWEEKDAY()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/DateTime/WEEKDAY.data');
-	}
-
-    /**
-     * @dataProvider providerDAY
-     */
-	public function testDAY()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_DateTime','DAYOFMONTH'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerDAY()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/DateTime/DAY.data');
-	}
-
-    /**
-     * @dataProvider providerTIME
-     */
-	public function testTIME()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_DateTime','TIME'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerTIME()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/DateTime/TIME.data');
-	}
-
-	public function testTIMEtoPHP()
-	{
-		PHPExcel_Calculation_Functions::setReturnDateType(PHPExcel_Calculation_Functions::RETURNDATE_PHP_NUMERIC);
-		$result = PHPExcel_Calculation_DateTime::TIME(7,30,20);
-		PHPExcel_Calculation_Functions::setReturnDateType(PHPExcel_Calculation_Functions::RETURNDATE_EXCEL);
-		$this->assertEquals(27020, $result, NULL, 1E-8);
-	}
-
-	public function testTIMEtoPHPObject()
-	{
-		PHPExcel_Calculation_Functions::setReturnDateType(PHPExcel_Calculation_Functions::RETURNDATE_PHP_OBJECT);
-		$result = PHPExcel_Calculation_DateTime::TIME(7,30,20);
-		PHPExcel_Calculation_Functions::setReturnDateType(PHPExcel_Calculation_Functions::RETURNDATE_EXCEL);
-        //    Must return an object...
-        $this->assertTrue(is_object($result));
-        //    ... of the correct type
-        $this->assertTrue(is_a($result,'DateTime'));
-        //    ... with the correct value
-        $this->assertEquals($result->format('H:i:s'),'07:30:20');
-	}
-
-    /**
-     * @dataProvider providerTIMEVALUE
-     */
-	public function testTIMEVALUE()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_DateTime','TIMEVALUE'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerTIMEVALUE()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/DateTime/TIMEVALUE.data');
-	}
-
-	public function testTIMEVALUEtoPHP()
-	{
-		PHPExcel_Calculation_Functions::setReturnDateType(PHPExcel_Calculation_Functions::RETURNDATE_PHP_NUMERIC);
-		$result = PHPExcel_Calculation_DateTime::TIMEVALUE('7:30:20');
-		PHPExcel_Calculation_Functions::setReturnDateType(PHPExcel_Calculation_Functions::RETURNDATE_EXCEL);
-		$this->assertEquals(23420, $result, NULL, 1E-8);
-	}
-
-	public function testTIMEVALUEtoPHPObject()
-	{
-		PHPExcel_Calculation_Functions::setReturnDateType(PHPExcel_Calculation_Functions::RETURNDATE_PHP_OBJECT);
-		$result = PHPExcel_Calculation_DateTime::TIMEVALUE('7:30:20');
-		PHPExcel_Calculation_Functions::setReturnDateType(PHPExcel_Calculation_Functions::RETURNDATE_EXCEL);
-        //    Must return an object...
-        $this->assertTrue(is_object($result));
-        //    ... of the correct type
-        $this->assertTrue(is_a($result,'DateTime'));
-        //    ... with the correct value
-        $this->assertEquals($result->format('H:i:s'),'07:30:20');
-	}
-
-    /**
-     * @dataProvider providerHOUR
-     */
-	public function testHOUR()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_DateTime','HOUROFDAY'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerHOUR()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/DateTime/HOUR.data');
-	}
-
-    /**
-     * @dataProvider providerMINUTE
-     */
-	public function testMINUTE()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_DateTime','MINUTEOFHOUR'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerMINUTE()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/DateTime/MINUTE.data');
-	}
-
-    /**
-     * @dataProvider providerSECOND
-     */
-	public function testSECOND()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_DateTime','SECONDOFMINUTE'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerSECOND()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/DateTime/SECOND.data');
-	}
-
-    /**
-     * @dataProvider providerNETWORKDAYS
-     */
-	public function testNETWORKDAYS()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_DateTime','NETWORKDAYS'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerNETWORKDAYS()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/DateTime/NETWORKDAYS.data');
-	}
-
-    /**
-     * @dataProvider providerWORKDAY
-     */
-	public function testWORKDAY()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_DateTime','WORKDAY'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerWORKDAY()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/DateTime/WORKDAY.data');
-	}
-
-    /**
-     * @dataProvider providerEDATE
-     */
-	public function testEDATE()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_DateTime','EDATE'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerEDATE()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/DateTime/EDATE.data');
-	}
-
-	public function testEDATEtoPHP()
-	{
-		PHPExcel_Calculation_Functions::setReturnDateType(PHPExcel_Calculation_Functions::RETURNDATE_PHP_NUMERIC);
-		$result = PHPExcel_Calculation_DateTime::EDATE('2012-1-26',-1);
-		PHPExcel_Calculation_Functions::setReturnDateType(PHPExcel_Calculation_Functions::RETURNDATE_EXCEL);
-		$this->assertEquals(1324857600, $result, NULL, 1E-8);
-	}
-
-	public function testEDATEtoPHPObject()
-	{
-		PHPExcel_Calculation_Functions::setReturnDateType(PHPExcel_Calculation_Functions::RETURNDATE_PHP_OBJECT);
-		$result = PHPExcel_Calculation_DateTime::EDATE('2012-1-26',-1);
-		PHPExcel_Calculation_Functions::setReturnDateType(PHPExcel_Calculation_Functions::RETURNDATE_EXCEL);
-        //    Must return an object...
-        $this->assertTrue(is_object($result));
-        //    ... of the correct type
-        $this->assertTrue(is_a($result,'DateTime'));
-        //    ... with the correct value
-        $this->assertEquals($result->format('d-M-Y'),'26-Dec-2011');
-	}
-
-    /**
-     * @dataProvider providerEOMONTH
-     */
-	public function testEOMONTH()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_DateTime','EOMONTH'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerEOMONTH()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/DateTime/EOMONTH.data');
-	}
-
-	public function testEOMONTHtoPHP()
-	{
-		PHPExcel_Calculation_Functions::setReturnDateType(PHPExcel_Calculation_Functions::RETURNDATE_PHP_NUMERIC);
-		$result = PHPExcel_Calculation_DateTime::EOMONTH('2012-1-26',-1);
-		PHPExcel_Calculation_Functions::setReturnDateType(PHPExcel_Calculation_Functions::RETURNDATE_EXCEL);
-		$this->assertEquals(1325289600, $result, NULL, 1E-8);
-	}
-
-	public function testEOMONTHtoPHPObject()
-	{
-		PHPExcel_Calculation_Functions::setReturnDateType(PHPExcel_Calculation_Functions::RETURNDATE_PHP_OBJECT);
-		$result = PHPExcel_Calculation_DateTime::EOMONTH('2012-1-26',-1);
-		PHPExcel_Calculation_Functions::setReturnDateType(PHPExcel_Calculation_Functions::RETURNDATE_EXCEL);
-        //    Must return an object...
-        $this->assertTrue(is_object($result));
-        //    ... of the correct type
-        $this->assertTrue(is_a($result,'DateTime'));
-        //    ... with the correct value
-        $this->assertEquals($result->format('d-M-Y'),'31-Dec-2011');
-	}
-
-    /**
-     * @dataProvider providerDATEDIF
-     */
-	public function testDATEDIF()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_DateTime','DATEDIF'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerDATEDIF()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/DateTime/DATEDIF.data');
-	}
-
-    /**
-     * @dataProvider providerDAYS360
-     */
-	public function testDAYS360()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_DateTime','DAYS360'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerDAYS360()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/DateTime/DAYS360.data');
-	}
-
-    /**
-     * @dataProvider providerYEARFRAC
-     */
-	public function testYEARFRAC()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_DateTime','YEARFRAC'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerYEARFRAC()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/DateTime/YEARFRAC.data');
-	}
-
-}
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Calculation/EngineeringTest.php b/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Calculation/EngineeringTest.php
deleted file mode 100644
index 1f511ffacc0..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Calculation/EngineeringTest.php
+++ /dev/null
@@ -1,698 +0,0 @@
-<?php
-
-//  Custom assertion class for handling precision of Complex numbers
-require_once 'custom/complexAssert.php';
-
-//  Data Provider handler
-require_once 'testDataFileIterator.php';
-
-
-class EngineeringTest extends PHPUnit_Framework_TestCase
-{
-
-    public function setUp()
-    {
-        if (!defined('PHPEXCEL_ROOT'))
-        {
-            define('PHPEXCEL_ROOT', APPLICATION_PATH . '/');
-        }
-        require_once(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php');
-
-        PHPExcel_Calculation_Functions::setCompatibilityMode(PHPExcel_Calculation_Functions::COMPATIBILITY_EXCEL);
-	}
-
-    /**
-     * @dataProvider providerBESSELI
-     */
-	public function testBESSELI()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Engineering','BESSELI'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerBESSELI()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Engineering/BESSELI.data');
-	}
-
-    /**
-     * @dataProvider providerBESSELJ
-     */
-	public function testBESSELJ()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Engineering','BESSELJ'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerBESSELJ()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Engineering/BESSELJ.data');
-	}
-
-    /**
-     * @dataProvider providerBESSELK
-     */
-	public function testBESSELK()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Engineering','BESSELK'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerBESSELK()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Engineering/BESSELK.data');
-	}
-
-    /**
-     * @dataProvider providerBESSELY
-     */
-	public function testBESSELY()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Engineering','BESSELY'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerBESSELY()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Engineering/BESSELY.data');
-	}
-
-    /**
-     * @dataProvider providerCOMPLEX
-     */
-	public function testCOMPLEX()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Engineering','COMPLEX'),$args);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-    public function providerCOMPLEX()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Engineering/COMPLEX.data');
-	}
-
-    /**
-     * @dataProvider providerIMAGINARY
-     */
-	public function testIMAGINARY()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Engineering','IMAGINARY'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerIMAGINARY()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Engineering/IMAGINARY.data');
-	}
-
-    /**
-     * @dataProvider providerIMREAL
-     */
-	public function testIMREAL()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Engineering','IMREAL'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerIMREAL()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Engineering/IMREAL.data');
-	}
-
-    /**
-     * @dataProvider providerIMABS
-     */
-	public function testIMABS()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Engineering','IMABS'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerIMABS()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Engineering/IMABS.data');
-	}
-
-    /**
-     * @dataProvider providerIMARGUMENT
-     */
-	public function testIMARGUMENT()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Engineering','IMARGUMENT'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerIMARGUMENT()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Engineering/IMARGUMENT.data');
-	}
-
-    /**
-     * @dataProvider providerIMCONJUGATE
-     */
-	public function testIMCONJUGATE()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Engineering','IMCONJUGATE'),$args);
-		$complexAssert = new complexAssert();
-		$this->assertTrue($complexAssert->assertComplexEquals($expectedResult, $result, 1E-8),
-						  $complexAssert->getErrorMessage());
-	}
-
-    public function providerIMCONJUGATE()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Engineering/IMCONJUGATE.data');
-	}
-
-    /**
-     * @dataProvider providerIMCOS
-     */
-	public function testIMCOS()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Engineering','IMCOS'),$args);
-		$complexAssert = new complexAssert();
-		$this->assertTrue($complexAssert->assertComplexEquals($expectedResult, $result, 1E-8),
-						  $complexAssert->getErrorMessage());
-	}
-
-    public function providerIMCOS()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Engineering/IMCOS.data');
-	}
-
-    /**
-     * @dataProvider providerIMDIV
-     */
-	public function testIMDIV()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Engineering','IMDIV'),$args);
-		$complexAssert = new complexAssert();
-		$this->assertTrue($complexAssert->assertComplexEquals($expectedResult, $result, 1E-8),
-						  $complexAssert->getErrorMessage());
-	}
-
-    public function providerIMDIV()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Engineering/IMDIV.data');
-	}
-
-    /**
-     * @dataProvider providerIMEXP
-     */
-	public function testIMEXP()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Engineering','IMEXP'),$args);
-		$complexAssert = new complexAssert();
-		$this->assertTrue($complexAssert->assertComplexEquals($expectedResult, $result, 1E-8),
-						  $complexAssert->getErrorMessage());
-	}
-
-    public function providerIMEXP()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Engineering/IMEXP.data');
-	}
-
-    /**
-     * @dataProvider providerIMLN
-     */
-	public function testIMLN()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Engineering','IMLN'),$args);
-		$complexAssert = new complexAssert();
-		$this->assertTrue($complexAssert->assertComplexEquals($expectedResult, $result, 1E-8),
-						  $complexAssert->getErrorMessage());
-	}
-
-    public function providerIMLN()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Engineering/IMLN.data');
-	}
-
-    /**
-     * @dataProvider providerIMLOG2
-     */
-	public function testIMLOG2()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Engineering','IMLOG2'),$args);
-		$complexAssert = new complexAssert();
-		$this->assertTrue($complexAssert->assertComplexEquals($expectedResult, $result, 1E-8),
-						  $complexAssert->getErrorMessage());
-	}
-
-    public function providerIMLOG2()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Engineering/IMLOG2.data');
-	}
-
-    /**
-     * @dataProvider providerIMLOG10
-     */
-	public function testIMLOG10()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Engineering','IMLOG10'),$args);
-		$complexAssert = new complexAssert();
-		$this->assertTrue($complexAssert->assertComplexEquals($expectedResult, $result, 1E-8),
-						  $complexAssert->getErrorMessage());
-	}
-
-    public function providerIMLOG10()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Engineering/IMLOG10.data');
-	}
-
-    /**
-     * @dataProvider providerIMPOWER
-     */
-	public function testIMPOWER()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Engineering','IMPOWER'),$args);
-		$complexAssert = new complexAssert();
-		$this->assertTrue($complexAssert->assertComplexEquals($expectedResult, $result, 1E-8),
-						  $complexAssert->getErrorMessage());
-	}
-
-    public function providerIMPOWER()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Engineering/IMPOWER.data');
-	}
-
-    /**
-     * @dataProvider providerIMPRODUCT
-     */
-	public function testIMPRODUCT()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Engineering','IMPRODUCT'),$args);
-		$complexAssert = new complexAssert();
-		$this->assertTrue($complexAssert->assertComplexEquals($expectedResult, $result, 1E-8),
-						  $complexAssert->getErrorMessage());
-	}
-
-    public function providerIMPRODUCT()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Engineering/IMPRODUCT.data');
-	}
-
-    /**
-     * @dataProvider providerIMSIN
-     */
-	public function testIMSIN()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Engineering','IMSIN'),$args);
-		$complexAssert = new complexAssert();
-		$this->assertTrue($complexAssert->assertComplexEquals($expectedResult, $result, 1E-8),
-						  $complexAssert->getErrorMessage());
-	}
-
-    public function providerIMSIN()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Engineering/IMSIN.data');
-	}
-
-    /**
-     * @dataProvider providerIMSQRT
-     */
-	public function testIMSQRT()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Engineering','IMSQRT'),$args);
-		$complexAssert = new complexAssert();
-		$this->assertTrue($complexAssert->assertComplexEquals($expectedResult, $result, 1E-8),
-						  $complexAssert->getErrorMessage());
-	}
-
-    public function providerIMSQRT()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Engineering/IMSQRT.data');
-	}
-
-    /**
-     * @dataProvider providerIMSUB
-     */
-	public function testIMSUB()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Engineering','IMSUB'),$args);
-		$complexAssert = new complexAssert();
-		$this->assertTrue($complexAssert->assertComplexEquals($expectedResult, $result, 1E-8),
-						  $complexAssert->getErrorMessage());
-	}
-
-    public function providerIMSUB()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Engineering/IMSUB.data');
-	}
-
-    /**
-     * @dataProvider providerIMSUM
-     */
-	public function testIMSUM()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Engineering','IMSUM'),$args);
-		$complexAssert = new complexAssert();
-		$this->assertTrue($complexAssert->assertComplexEquals($expectedResult, $result, 1E-8),
-						  $complexAssert->getErrorMessage());
-	}
-
-    public function providerIMSUM()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Engineering/IMSUM.data');
-	}
-
-    /**
-     * @dataProvider providerERF
-     */
-	public function testERF()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Engineering','ERF'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-12);
-	}
-
-    public function providerERF()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Engineering/ERF.data');
-	}
-
-    /**
-     * @dataProvider providerERFC
-     */
-	public function testERFC()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Engineering','ERFC'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-12);
-	}
-
-    public function providerERFC()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Engineering/ERFC.data');
-	}
-
-    /**
-     * @dataProvider providerBIN2DEC
-     */
-	public function testBIN2DEC()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Engineering','BINTODEC'),$args);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-    public function providerBIN2DEC()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Engineering/BIN2DEC.data');
-	}
-
-    /**
-     * @dataProvider providerBIN2HEX
-     */
-	public function testBIN2HEX()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Engineering','BINTOHEX'),$args);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-    public function providerBIN2HEX()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Engineering/BIN2HEX.data');
-	}
-
-    /**
-     * @dataProvider providerBIN2OCT
-     */
-	public function testBIN2OCT()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Engineering','BINTOOCT'),$args);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-    public function providerBIN2OCT()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Engineering/BIN2OCT.data');
-	}
-
-    /**
-     * @dataProvider providerDEC2BIN
-     */
-	public function testDEC2BIN()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Engineering','DECTOBIN'),$args);
-		$this->assertEquals($expectedResult, $result, NULL);
-	}
-
-    public function providerDEC2BIN()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Engineering/DEC2BIN.data');
-	}
-
-    /**
-     * @dataProvider providerDEC2HEX
-     */
-	public function testDEC2HEX()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Engineering','DECTOHEX'),$args);
-		$this->assertEquals($expectedResult, $result, NULL);
-	}
-
-    public function providerDEC2HEX()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Engineering/DEC2HEX.data');
-	}
-
-    /**
-     * @dataProvider providerDEC2OCT
-     */
-	public function testDEC2OCT()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Engineering','DECTOOCT'),$args);
-		$this->assertEquals($expectedResult, $result, NULL);
-	}
-
-    public function providerDEC2OCT()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Engineering/DEC2OCT.data');
-	}
-
-    /**
-     * @dataProvider providerHEX2BIN
-     */
-	public function testHEX2BIN()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Engineering','HEXTOBIN'),$args);
-		$this->assertEquals($expectedResult, $result, NULL);
-	}
-
-    public function providerHEX2BIN()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Engineering/HEX2BIN.data');
-	}
-
-    /**
-     * @dataProvider providerHEX2DEC
-     */
-	public function testHEX2DEC()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Engineering','HEXTODEC'),$args);
-		$this->assertEquals($expectedResult, $result, NULL);
-	}
-
-    public function providerHEX2DEC()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Engineering/HEX2DEC.data');
-	}
-
-    /**
-     * @dataProvider providerHEX2OCT
-     */
-	public function testHEX2OCT()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Engineering','HEXTOOCT'),$args);
-		$this->assertEquals($expectedResult, $result, NULL);
-	}
-
-    public function providerHEX2OCT()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Engineering/HEX2OCT.data');
-	}
-
-    /**
-     * @dataProvider providerOCT2BIN
-     */
-	public function testOCT2BIN()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Engineering','OCTTOBIN'),$args);
-		$this->assertEquals($expectedResult, $result, NULL);
-	}
-
-    public function providerOCT2BIN()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Engineering/OCT2BIN.data');
-	}
-
-    /**
-     * @dataProvider providerOCT2DEC
-     */
-	public function testOCT2DEC()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Engineering','OCTTODEC'),$args);
-		$this->assertEquals($expectedResult, $result, NULL);
-	}
-
-    public function providerOCT2DEC()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Engineering/OCT2DEC.data');
-	}
-
-    /**
-     * @dataProvider providerOCT2HEX
-     */
-	public function testOCT2HEX()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Engineering','OCTTOHEX'),$args);
-		$this->assertEquals($expectedResult, $result, NULL);
-	}
-
-    public function providerOCT2HEX()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Engineering/OCT2HEX.data');
-	}
-
-    /**
-     * @dataProvider providerDELTA
-     */
-	public function testDELTA()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Engineering','DELTA'),$args);
-		$this->assertEquals($expectedResult, $result, NULL);
-	}
-
-    public function providerDELTA()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Engineering/DELTA.data');
-	}
-
-    /**
-     * @dataProvider providerGESTEP
-     */
-	public function testGESTEP()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Engineering','GESTEP'),$args);
-		$this->assertEquals($expectedResult, $result, NULL);
-	}
-
-    public function providerGESTEP()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Engineering/GESTEP.data');
-	}
-
-	public function testGetConversionGroups()
-	{
-		$result = PHPExcel_Calculation_Engineering::getConversionGroups();
-		$this->assertInternalType('array', $result);
-	}
-
-	public function testGetConversionGroupUnits()
-	{
-		$result = PHPExcel_Calculation_Engineering::getConversionGroupUnits();
-		$this->assertInternalType('array', $result);
-	}
-
-	public function testGetConversionGroupUnitDetails()
-	{
-		$result = PHPExcel_Calculation_Engineering::getConversionGroupUnitDetails();
-		$this->assertInternalType('array', $result);
-	}
-
-	public function testGetConversionMultipliers()
-	{
-		$result = PHPExcel_Calculation_Engineering::getConversionMultipliers();
-		$this->assertInternalType('array', $result);
-	}
-
-    /**
-     * @dataProvider providerCONVERTUOM
-     */
-	public function testCONVERTUOM()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Engineering','CONVERTUOM'),$args);
-		$this->assertEquals($expectedResult, $result, NULL);
-	}
-
-    public function providerCONVERTUOM()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Engineering/CONVERTUOM.data');
-	}
-
-}
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Calculation/FinancialTest.php b/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Calculation/FinancialTest.php
deleted file mode 100644
index f5689c95048..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Calculation/FinancialTest.php
+++ /dev/null
@@ -1,516 +0,0 @@
-<?php
-
-
-require_once 'testDataFileIterator.php';
-
-class FinancialTest extends PHPUnit_Framework_TestCase
-{
-
-    public function setUp()
-    {
-        if (!defined('PHPEXCEL_ROOT'))
-        {
-            define('PHPEXCEL_ROOT', APPLICATION_PATH . '/');
-        }
-        require_once(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php');
-
-        PHPExcel_Calculation_Functions::setCompatibilityMode(PHPExcel_Calculation_Functions::COMPATIBILITY_EXCEL);
-	}
-
-    /**
-     * @dataProvider providerACCRINT
-     */
-	public function testACCRINT()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Financial','ACCRINT'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerACCRINT()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Financial/ACCRINT.data');
-	}
-
-    /**
-     * @dataProvider providerACCRINTM
-     */
-	public function testACCRINTM()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Financial','ACCRINTM'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerACCRINTM()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Financial/ACCRINTM.data');
-	}
-
-    /**
-     * @dataProvider providerAMORDEGRC
-     */
-	public function testAMORDEGRC()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Financial','AMORDEGRC'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerAMORDEGRC()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Financial/AMORDEGRC.data');
-	}
-
-    /**
-     * @dataProvider providerAMORLINC
-     */
-	public function testAMORLINC()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Financial','AMORLINC'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerAMORLINC()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Financial/AMORLINC.data');
-	}
-
-    /**
-     * @dataProvider providerCOUPDAYBS
-     */
-	public function testCOUPDAYBS()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Financial','COUPDAYBS'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerCOUPDAYBS()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Financial/COUPDAYBS.data');
-	}
-
-    /**
-     * @dataProvider providerCOUPDAYS
-     */
-	public function testCOUPDAYS()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Financial','COUPDAYS'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerCOUPDAYS()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Financial/COUPDAYS.data');
-	}
-
-    /**
-     * @dataProvider providerCOUPDAYSNC
-     */
-	public function testCOUPDAYSNC()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Financial','COUPDAYSNC'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerCOUPDAYSNC()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Financial/COUPDAYSNC.data');
-	}
-
-    /**
-     * @dataProvider providerCOUPNCD
-     */
-	public function testCOUPNCD()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Financial','COUPNCD'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerCOUPNCD()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Financial/COUPNCD.data');
-	}
-
-    /**
-     * @dataProvider providerCOUPNUM
-     */
-	public function testCOUPNUM()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Financial','COUPNUM'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerCOUPNUM()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Financial/COUPNUM.data');
-	}
-
-    /**
-     * @dataProvider providerCOUPPCD
-     */
-	public function testCOUPPCD()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Financial','COUPPCD'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerCOUPPCD()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Financial/COUPPCD.data');
-	}
-
-    /**
-     * @dataProvider providerCUMIPMT
-     */
-	public function testCUMIPMT()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Financial','CUMIPMT'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerCUMIPMT()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Financial/CUMIPMT.data');
-	}
-
-    /**
-     * @dataProvider providerCUMPRINC
-     */
-	public function testCUMPRINC()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Financial','CUMPRINC'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerCUMPRINC()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Financial/CUMPRINC.data');
-	}
-
-    /**
-     * @dataProvider providerDB
-     */
-	public function testDB()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Financial','DB'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerDB()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Financial/DB.data');
-	}
-
-    /**
-     * @dataProvider providerDDB
-     */
-	public function testDDB()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Financial','DDB'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerDDB()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Financial/DDB.data');
-	}
-
-    /**
-     * @dataProvider providerDISC
-     */
-	public function testDISC()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Financial','DISC'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerDISC()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Financial/DISC.data');
-	}
-
-    /**
-     * @dataProvider providerDOLLARDE
-     */
-	public function testDOLLARDE()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Financial','DOLLARDE'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerDOLLARDE()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Financial/DOLLARDE.data');
-	}
-
-    /**
-     * @dataProvider providerDOLLARFR
-     */
-	public function testDOLLARFR()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Financial','DOLLARFR'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerDOLLARFR()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Financial/DOLLARFR.data');
-	}
-
-    /**
-     * @dataProvider providerEFFECT
-     */
-	public function testEFFECT()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Financial','EFFECT'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerEFFECT()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Financial/EFFECT.data');
-	}
-
-    /**
-     * @dataProvider providerFV
-     */
-	public function testFV()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Financial','FV'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerFV()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Financial/FV.data');
-	}
-
-    /**
-     * @dataProvider providerFVSCHEDULE
-     */
-	public function testFVSCHEDULE()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Financial','FVSCHEDULE'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerFVSCHEDULE()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Financial/FVSCHEDULE.data');
-	}
-
-    /**
-     * @dataProvider providerINTRATE
-     */
-	public function testINTRATE()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Financial','INTRATE'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerINTRATE()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Financial/INTRATE.data');
-	}
-
-    /**
-     * @dataProvider providerIPMT
-     */
-	public function testIPMT()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Financial','IPMT'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerIPMT()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Financial/IPMT.data');
-	}
-
-    /**
-     * @dataProvider providerIRR
-     */
-	public function testIRR()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Financial','IRR'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerIRR()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Financial/IRR.data');
-	}
-
-    /**
-     * @dataProvider providerISPMT
-     */
-	public function testISPMT()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Financial','ISPMT'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerISPMT()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Financial/ISPMT.data');
-	}
-
-    /**
-     * @dataProvider providerMIRR
-     */
-	public function testMIRR()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Financial','MIRR'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerMIRR()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Financial/MIRR.data');
-	}
-
-    /**
-     * @dataProvider providerNOMINAL
-     */
-	public function testNOMINAL()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Financial','NOMINAL'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerNOMINAL()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Financial/NOMINAL.data');
-	}
-
-    /**
-     * @dataProvider providerNPER
-     */
-	public function testNPER()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Financial','NPER'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerNPER()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Financial/NPER.data');
-	}
-
-    /**
-     * @dataProvider providerNPV
-     */
-	public function testNPV()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Financial','NPV'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerNPV()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Financial/NPV.data');
-	}
-
-    /**
-     * @dataProvider providerPRICE
-     */
-	public function testPRICE()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Financial','PRICE'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerPRICE()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Financial/PRICE.data');
-	}
-
-    /**
-     * @dataProvider providerRATE
-     */
-	public function testRATE()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Financial','RATE'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerRATE()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Financial/RATE.data');
-	}
-
-    /**
-     * @dataProvider providerXIRR
-     */
-	public function testXIRR()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Financial','XIRR'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerXIRR()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Financial/XIRR.data');
-	}
-
-}
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Calculation/FunctionsTest.php b/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Calculation/FunctionsTest.php
deleted file mode 100644
index 013332940ff..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Calculation/FunctionsTest.php
+++ /dev/null
@@ -1,276 +0,0 @@
-<?php
-
-
-require_once 'testDataFileIterator.php';
-
-class FunctionsTest extends PHPUnit_Framework_TestCase
-{
-
-    public function setUp()
-    {
-        if (!defined('PHPEXCEL_ROOT'))
-        {
-            define('PHPEXCEL_ROOT', APPLICATION_PATH . '/');
-        }
-        require_once(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php');
-
-        PHPExcel_Calculation_Functions::setCompatibilityMode(PHPExcel_Calculation_Functions::COMPATIBILITY_EXCEL);
-	}
-
-	public function testDUMMY()
-	{
-		$result = PHPExcel_Calculation_Functions::DUMMY();
-		$this->assertEquals('#Not Yet Implemented', $result);
-	}
-
-	public function testDIV0()
-	{
-		$result = PHPExcel_Calculation_Functions::DIV0();
-		$this->assertEquals('#DIV/0!', $result);
-	}
-
-	public function testNA()
-	{
-		$result = PHPExcel_Calculation_Functions::NA();
-		$this->assertEquals('#N/A', $result);
-	}
-
-	public function testNaN()
-	{
-		$result = PHPExcel_Calculation_Functions::NaN();
-		$this->assertEquals('#NUM!', $result);
-	}
-
-	public function testNAME()
-	{
-		$result = PHPExcel_Calculation_Functions::NAME();
-		$this->assertEquals('#NAME?', $result);
-	}
-
-	public function testREF()
-	{
-		$result = PHPExcel_Calculation_Functions::REF();
-		$this->assertEquals('#REF!', $result);
-	}
-
-	public function testNULL()
-	{
-		$result = PHPExcel_Calculation_Functions::NULL();
-		$this->assertEquals('#NULL!', $result);
-	}
-
-	public function testVALUE()
-	{
-		$result = PHPExcel_Calculation_Functions::VALUE();
-		$this->assertEquals('#VALUE!', $result);
-	}
-
-    /**
-     * @dataProvider providerIS_BLANK
-     */
-	public function testIS_BLANK()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Functions','IS_BLANK'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerIS_BLANK()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Functions/IS_BLANK.data');
-	}
-
-    /**
-     * @dataProvider providerIS_ERR
-     */
-	public function testIS_ERR()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Functions','IS_ERR'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerIS_ERR()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Functions/IS_ERR.data');
-	}
-
-    /**
-     * @dataProvider providerIS_ERROR
-     */
-	public function testIS_ERROR()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Functions','IS_ERROR'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerIS_ERROR()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Functions/IS_ERROR.data');
-	}
-
-    /**
-     * @dataProvider providerERROR_TYPE
-     */
-	public function testERROR_TYPE()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Functions','ERROR_TYPE'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerERROR_TYPE()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Functions/ERROR_TYPE.data');
-	}
-
-    /**
-     * @dataProvider providerIS_LOGICAL
-     */
-	public function testIS_LOGICAL()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Functions','IS_LOGICAL'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerIS_LOGICAL()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Functions/IS_LOGICAL.data');
-	}
-
-    /**
-     * @dataProvider providerIS_NA
-     */
-	public function testIS_NA()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Functions','IS_NA'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerIS_NA()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Functions/IS_NA.data');
-	}
-
-    /**
-     * @dataProvider providerIS_NUMBER
-     */
-	public function testIS_NUMBER()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Functions','IS_NUMBER'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerIS_NUMBER()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Functions/IS_NUMBER.data');
-	}
-
-    /**
-     * @dataProvider providerIS_TEXT
-     */
-	public function testIS_TEXT()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Functions','IS_TEXT'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerIS_TEXT()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Functions/IS_TEXT.data');
-	}
-
-    /**
-     * @dataProvider providerIS_NONTEXT
-     */
-	public function testIS_NONTEXT()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Functions','IS_NONTEXT'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerIS_NONTEXT()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Functions/IS_NONTEXT.data');
-	}
-
-    /**
-     * @dataProvider providerIS_EVEN
-     */
-	public function testIS_EVEN()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Functions','IS_EVEN'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerIS_EVEN()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Functions/IS_EVEN.data');
-	}
-
-    /**
-     * @dataProvider providerIS_ODD
-     */
-	public function testIS_ODD()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Functions','IS_ODD'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerIS_ODD()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Functions/IS_ODD.data');
-	}
-
-    /**
-     * @dataProvider providerTYPE
-     */
-	public function testTYPE()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Functions','TYPE'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerTYPE()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Functions/TYPE.data');
-	}
-
-    /**
-     * @dataProvider providerN
-     */
-	public function testN()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Functions','N'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerN()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Functions/N.data');
-	}
-
-}
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Calculation/LogicalTest.php b/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Calculation/LogicalTest.php
deleted file mode 100644
index cc8f8b33383..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Calculation/LogicalTest.php
+++ /dev/null
@@ -1,112 +0,0 @@
-<?php
-
-
-require_once 'testDataFileIterator.php';
-
-class LogicalTest extends PHPUnit_Framework_TestCase
-{
-
-    public function setUp()
-    {
-        if (!defined('PHPEXCEL_ROOT'))
-        {
-            define('PHPEXCEL_ROOT', APPLICATION_PATH . '/');
-        }
-        require_once(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php');
-
-        PHPExcel_Calculation_Functions::setCompatibilityMode(PHPExcel_Calculation_Functions::COMPATIBILITY_EXCEL);
-	}
-
-	public function testTRUE()
-	{
-		$result = PHPExcel_Calculation_Logical::TRUE();
-		$this->assertEquals(TRUE, $result);
-	}
-
-	public function testFALSE()
-	{
-		$result = PHPExcel_Calculation_Logical::FALSE();
-		$this->assertEquals(FALSE, $result);
-	}
-
-    /**
-     * @dataProvider providerAND
-     */
-	public function testAND()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Logical','LOGICAL_AND'),$args);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-    public function providerAND()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Logical/AND.data');
-	}
-
-    /**
-     * @dataProvider providerOR
-     */
-	public function testOR()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Logical','LOGICAL_OR'),$args);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-    public function providerOR()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Logical/OR.data');
-	}
-
-    /**
-     * @dataProvider providerNOT
-     */
-    public function testNOT()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Logical','NOT'),$args);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-    public function providerNOT()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Logical/NOT.data');
-    }
-
-    /**
-     * @dataProvider providerIF
-     */
-    public function testIF()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Logical','STATEMENT_IF'),$args);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-    public function providerIF()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/Logical/IF.data');
-	}
-
-    /**
-     * @dataProvider providerIFERROR
-     */
-    public function testIFERROR()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_Logical','IFERROR'),$args);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-    public function providerIFERROR()
-    {
-        return new testDataFileIterator('rawTestData/Calculation/Logical/IFERROR.data');
-	}
-
-}
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Calculation/LookupRefTest.php b/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Calculation/LookupRefTest.php
deleted file mode 100644
index 6450b082244..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Calculation/LookupRefTest.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-
-
-require_once 'testDataFileIterator.php';
-
-class LookupRefTest extends PHPUnit_Framework_TestCase
-{
-
-    public function setUp()
-    {
-        if (!defined('PHPEXCEL_ROOT'))
-        {
-            define('PHPEXCEL_ROOT', APPLICATION_PATH . '/');
-        }
-        require_once(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php');
-
-        PHPExcel_Calculation_Functions::setCompatibilityMode(PHPExcel_Calculation_Functions::COMPATIBILITY_EXCEL);
-	}
-
-    /**
-     * @dataProvider providerHLOOKUP
-     */
-	public function testHLOOKUP()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_LookupRef','HLOOKUP'),$args);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-    public function providerHLOOKUP()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/LookupRef/HLOOKUP.data');
-	}
-
-    /**
-     * @dataProvider providerVLOOKUP
-     */
-	public function testVLOOKUP()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_LookupRef','VLOOKUP'),$args);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-    public function providerVLOOKUP()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/LookupRef/VLOOKUP.data');
-	}
-
-}
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Calculation/MathTrigTest.php b/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Calculation/MathTrigTest.php
deleted file mode 100644
index 0059ed08e6c..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Calculation/MathTrigTest.php
+++ /dev/null
@@ -1,560 +0,0 @@
-<?php
-
-
-require_once 'testDataFileIterator.php';
-
-class MathTrigTest extends PHPUnit_Framework_TestCase
-{
-
-    public function setUp()
-    {
-        if (!defined('PHPEXCEL_ROOT'))
-        {
-            define('PHPEXCEL_ROOT', APPLICATION_PATH . '/');
-        }
-        require_once(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php');
-
-        PHPExcel_Calculation_Functions::setCompatibilityMode(PHPExcel_Calculation_Functions::COMPATIBILITY_EXCEL);
-	}
-
-    /**
-     * @dataProvider providerATAN2
-     */
-	public function testATAN2()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_MathTrig','ATAN2'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-12);
-	}
-
-    public function providerATAN2()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/MathTrig/ATAN2.data');
-	}
-
-    /**
-     * @dataProvider providerCEILING
-     */
-	public function testCEILING()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_MathTrig','CEILING'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-12);
-	}
-
-    public function providerCEILING()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/MathTrig/CEILING.data');
-	}
-
-    /**
-     * @dataProvider providerCOMBIN
-     */
-	public function testCOMBIN()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_MathTrig','COMBIN'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-12);
-	}
-
-    public function providerCOMBIN()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/MathTrig/COMBIN.data');
-	}
-
-    /**
-     * @dataProvider providerEVEN
-     */
-	public function testEVEN()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_MathTrig','EVEN'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-12);
-	}
-
-    public function providerEVEN()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/MathTrig/EVEN.data');
-	}
-
-    /**
-     * @dataProvider providerODD
-     */
-	public function testODD()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_MathTrig','ODD'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-12);
-	}
-
-    public function providerODD()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/MathTrig/ODD.data');
-	}
-
-    /**
-     * @dataProvider providerFACT
-     */
-	public function testFACT()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_MathTrig','FACT'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-12);
-	}
-
-    public function providerFACT()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/MathTrig/FACT.data');
-	}
-
-    /**
-     * @dataProvider providerFACTDOUBLE
-     */
-	public function testFACTDOUBLE()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_MathTrig','FACTDOUBLE'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-12);
-	}
-
-    public function providerFACTDOUBLE()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/MathTrig/FACTDOUBLE.data');
-	}
-
-    /**
-     * @dataProvider providerFLOOR
-     */
-	public function testFLOOR()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_MathTrig','FLOOR'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-12);
-	}
-
-    public function providerFLOOR()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/MathTrig/FLOOR.data');
-	}
-
-    /**
-     * @dataProvider providerGCD
-     */
-	public function testGCD()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_MathTrig','GCD'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-12);
-	}
-
-    public function providerGCD()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/MathTrig/GCD.data');
-	}
-
-    /**
-     * @dataProvider providerLCM
-     */
-	public function testLCM()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_MathTrig','LCM'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-12);
-	}
-
-    public function providerLCM()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/MathTrig/LCM.data');
-	}
-
-    /**
-     * @dataProvider providerINT
-     */
-	public function testINT()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_MathTrig','INT'),$args);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-    public function providerINT()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/MathTrig/INT.data');
-	}
-
-    /**
-     * @dataProvider providerSIGN
-     */
-	public function testSIGN()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_MathTrig','SIGN'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-12);
-	}
-
-    public function providerSIGN()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/MathTrig/SIGN.data');
-	}
-
-    /**
-     * @dataProvider providerPOWER
-     */
-	public function testPOWER()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_MathTrig','POWER'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-12);
-	}
-
-    public function providerPOWER()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/MathTrig/POWER.data');
-	}
-
-    /**
-     * @dataProvider providerLOG
-     */
-	public function testLOG()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_MathTrig','LOG_BASE'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-12);
-	}
-
-    public function providerLOG()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/MathTrig/LOG.data');
-	}
-
-    /**
-     * @dataProvider providerMOD
-     */
-	public function testMOD()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_MathTrig','MOD'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-12);
-	}
-
-    public function providerMOD()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/MathTrig/MOD.data');
-	}
-
-    /**
-     * @dataProvider providerMDETERM
-     */
-	public function testMDETERM()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_MathTrig','MDETERM'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-12);
-	}
-
-    public function providerMDETERM()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/MathTrig/MDETERM.data');
-	}
-
-    /**
-     * @dataProvider providerMINVERSE
-     */
-	public function testMINVERSE()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_MathTrig','MINVERSE'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-12);
-	}
-
-    public function providerMINVERSE()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/MathTrig/MINVERSE.data');
-	}
-
-    /**
-     * @dataProvider providerMMULT
-     */
-	public function testMMULT()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_MathTrig','MMULT'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-12);
-	}
-
-    public function providerMMULT()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/MathTrig/MMULT.data');
-	}
-
-    /**
-     * @dataProvider providerMULTINOMIAL
-     */
-	public function testMULTINOMIAL()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_MathTrig','MULTINOMIAL'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-12);
-	}
-
-    public function providerMULTINOMIAL()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/MathTrig/MULTINOMIAL.data');
-	}
-
-    /**
-     * @dataProvider providerMROUND
-     */
-	public function testMROUND()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		PHPExcel_Calculation::setArrayReturnType(PHPExcel_Calculation::RETURN_ARRAY_AS_VALUE);
-		$result = call_user_func_array(array('PHPExcel_Calculation_MathTrig','MROUND'),$args);
-		PHPExcel_Calculation::setArrayReturnType(PHPExcel_Calculation::RETURN_ARRAY_AS_ARRAY);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-12);
-	}
-
-    public function providerMROUND()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/MathTrig/MROUND.data');
-	}
-
-    /**
-     * @dataProvider providerPRODUCT
-     */
-	public function testPRODUCT()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_MathTrig','PRODUCT'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-12);
-	}
-
-    public function providerPRODUCT()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/MathTrig/PRODUCT.data');
-	}
-
-    /**
-     * @dataProvider providerQUOTIENT
-     */
-	public function testQUOTIENT()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_MathTrig','QUOTIENT'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-12);
-	}
-
-    public function providerQUOTIENT()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/MathTrig/QUOTIENT.data');
-	}
-
-    /**
-     * @dataProvider providerROUNDUP
-     */
-	public function testROUNDUP()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_MathTrig','ROUNDUP'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-12);
-	}
-
-    public function providerROUNDUP()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/MathTrig/ROUNDUP.data');
-	}
-
-    /**
-     * @dataProvider providerROUNDDOWN
-     */
-	public function testROUNDDOWN()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_MathTrig','ROUNDDOWN'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-12);
-	}
-
-    public function providerROUNDDOWN()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/MathTrig/ROUNDDOWN.data');
-	}
-
-    /**
-     * @dataProvider providerSERIESSUM
-     */
-	public function testSERIESSUM()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_MathTrig','SERIESSUM'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-12);
-	}
-
-    public function providerSERIESSUM()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/MathTrig/SERIESSUM.data');
-	}
-
-    /**
-     * @dataProvider providerSUMSQ
-     */
-	public function testSUMSQ()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_MathTrig','SUMSQ'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-12);
-	}
-
-    public function providerSUMSQ()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/MathTrig/SUMSQ.data');
-	}
-
-    /**
-     * @dataProvider providerTRUNC
-     */
-	public function testTRUNC()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_MathTrig','TRUNC'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-12);
-	}
-
-    public function providerTRUNC()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/MathTrig/TRUNC.data');
-	}
-
-    /**
-     * @dataProvider providerROMAN
-     */
-	public function testROMAN()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_MathTrig','ROMAN'),$args);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-    public function providerROMAN()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/MathTrig/ROMAN.data');
-	}
-
-    /**
-     * @dataProvider providerSQRTPI
-     */
-	public function testSQRTPI()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_MathTrig','SQRTPI'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-12);
-	}
-
-    public function providerSQRTPI()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/MathTrig/SQRTPI.data');
-    }
-
-    /**
-     * @dataProvider providerSUMIF
-     */
-    public function testSUMIF()
-    {
-        $args = func_get_args();
-        $expectedResult = array_pop($args);
-        $result = call_user_func_array(array('PHPExcel_Calculation_MathTrig', 'SUMIF'), $args);
-        $this->assertEquals($expectedResult, $result, NULL, 1E-12);
-    }
-
-    public function providerSUMIF()
-    {
-        return array(
-            array(
-                array(
-                    array(1),
-                    array(5),
-                    array(10),
-                ),
-                '>=5',
-                15,
-            ),
-            array(
-                array(
-                    array('text'),
-                    array(2),
-                ),
-                '=text',
-                array(
-                    array(10),
-                    array(100),
-                ),
-                10,
-            ),
-            array(
-                array(
-                    array('"text with quotes"'),
-                    array(2),
-                ),
-                '="text with quotes"',
-                array(
-                    array(10),
-                    array(100),
-                ),
-                10,
-            ),
-            array(
-                array(
-                    array('"text with quotes"'),
-                    array(''),
-                ),
-                '>"', // Compare to the single characater " (double quote)
-                array(
-                    array(10),
-                    array(100),
-                ),
-                10
-            ),
-            array(
-                array(
-                    array(''),
-                    array('anything'),
-                ),
-                '>"', // Compare to the single characater " (double quote)
-                array(
-                    array(10),
-                    array(100),
-                ),
-                100
-            ),
-        );
-	}
-
-}
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Calculation/TextDataTest.php b/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Calculation/TextDataTest.php
deleted file mode 100644
index 4b1caf5179d..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Calculation/TextDataTest.php
+++ /dev/null
@@ -1,365 +0,0 @@
-<?php
-
-
-require_once 'testDataFileIterator.php';
-
-class TextDataTest extends PHPUnit_Framework_TestCase
-{
-
-    public function setUp()
-    {
-        if (!defined('PHPEXCEL_ROOT'))
-        {
-            define('PHPEXCEL_ROOT', APPLICATION_PATH . '/');
-        }
-        require_once(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php');
-
-        PHPExcel_Calculation_Functions::setCompatibilityMode(PHPExcel_Calculation_Functions::COMPATIBILITY_EXCEL);
-	}
-
-    /**
-     * @dataProvider providerCHAR
-     */
-	public function testCHAR()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_TextData','CHARACTER'),$args);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-    public function providerCHAR()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/TextData/CHAR.data');
-	}
-
-    /**
-     * @dataProvider providerCODE
-     */
-	public function testCODE()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_TextData','ASCIICODE'),$args);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-    public function providerCODE()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/TextData/CODE.data');
-	}
-
-    /**
-     * @dataProvider providerCONCATENATE
-     */
-	public function testCONCATENATE()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_TextData','CONCATENATE'),$args);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-    public function providerCONCATENATE()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/TextData/CONCATENATE.data');
-	}
-
-    /**
-     * @dataProvider providerLEFT
-     */
-	public function testLEFT()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_TextData','LEFT'),$args);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-    public function providerLEFT()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/TextData/LEFT.data');
-	}
-
-    /**
-     * @dataProvider providerMID
-     */
-	public function testMID()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_TextData','MID'),$args);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-    public function providerMID()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/TextData/MID.data');
-	}
-
-    /**
-     * @dataProvider providerRIGHT
-     */
-	public function testRIGHT()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_TextData','RIGHT'),$args);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-    public function providerRIGHT()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/TextData/RIGHT.data');
-	}
-
-    /**
-     * @dataProvider providerLOWER
-     */
-	public function testLOWER()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_TextData','LOWERCASE'),$args);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-    public function providerLOWER()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/TextData/LOWER.data');
-	}
-
-    /**
-     * @dataProvider providerUPPER
-     */
-	public function testUPPER()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_TextData','UPPERCASE'),$args);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-    public function providerUPPER()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/TextData/UPPER.data');
-	}
-
-    /**
-     * @dataProvider providerPROPER
-     */
-	public function testPROPER()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_TextData','PROPERCASE'),$args);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-    public function providerPROPER()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/TextData/PROPER.data');
-	}
-
-    /**
-     * @dataProvider providerLEN
-     */
-	public function testLEN()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_TextData','STRINGLENGTH'),$args);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-    public function providerLEN()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/TextData/LEN.data');
-	}
-
-    /**
-     * @dataProvider providerSEARCH
-     */
-	public function testSEARCH()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_TextData','SEARCHINSENSITIVE'),$args);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-    public function providerSEARCH()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/TextData/SEARCH.data');
-	}
-
-    /**
-     * @dataProvider providerFIND
-     */
-	public function testFIND()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_TextData','SEARCHSENSITIVE'),$args);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-    public function providerFIND()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/TextData/FIND.data');
-	}
-
-    /**
-     * @dataProvider providerREPLACE
-     */
-	public function testREPLACE()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_TextData','REPLACE'),$args);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-    public function providerREPLACE()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/TextData/REPLACE.data');
-	}
-
-    /**
-     * @dataProvider providerSUBSTITUTE
-     */
-	public function testSUBSTITUTE()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_TextData','SUBSTITUTE'),$args);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-    public function providerSUBSTITUTE()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/TextData/SUBSTITUTE.data');
-	}
-
-    /**
-     * @dataProvider providerTRIM
-     */
-	public function testTRIM()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_TextData','TRIMSPACES'),$args);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-    public function providerTRIM()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/TextData/TRIM.data');
-	}
-
-    /**
-     * @dataProvider providerCLEAN
-     */
-	public function testCLEAN()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_TextData','TRIMNONPRINTABLE'),$args);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-    public function providerCLEAN()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/TextData/CLEAN.data');
-	}
-
-    /**
-     * @dataProvider providerDOLLAR
-     */
-	public function testDOLLAR()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_TextData','DOLLAR'),$args);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-    public function providerDOLLAR()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/TextData/DOLLAR.data');
-	}
-
-    /**
-     * @dataProvider providerFIXED
-     */
-	public function testFIXED()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_TextData','FIXEDFORMAT'),$args);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-    public function providerFIXED()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/TextData/FIXED.data');
-	}
-
-    /**
-     * @dataProvider providerT
-     */
-	public function testT()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_TextData','RETURNSTRING'),$args);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-    public function providerT()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/TextData/T.data');
-	}
-
-    /**
-     * @dataProvider providerTEXT
-     */
-	public function testTEXT()
-	{
-		//	Enforce decimal and thousands separator values to UK/US, and currency code to USD
-		call_user_func(array('PHPExcel_Shared_String','setDecimalSeparator'),'.');
-		call_user_func(array('PHPExcel_Shared_String','setThousandsSeparator'),',');
-		call_user_func(array('PHPExcel_Shared_String','setCurrencyCode'),'$');
-
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_TextData','TEXTFORMAT'),$args);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-    public function providerTEXT()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/TextData/TEXT.data');
-	}
-
-    /**
-     * @dataProvider providerVALUE
-     */
-	public function testVALUE()
-	{
-		call_user_func(array('PHPExcel_Shared_String','setDecimalSeparator'),'.');
-		call_user_func(array('PHPExcel_Shared_String','setThousandsSeparator'),' ');
-		call_user_func(array('PHPExcel_Shared_String','setCurrencyCode'),'$');
-
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Calculation_TextData','VALUE'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-8);
-	}
-
-    public function providerVALUE()
-    {
-    	return new testDataFileIterator('rawTestData/Calculation/TextData/VALUE.data');
-	}
-
-}
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/CalculationTest.php b/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/CalculationTest.php
deleted file mode 100644
index 1de827ca815..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/CalculationTest.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-
-require_once 'testDataFileIterator.php';
-
-class CalculationTest extends PHPUnit_Framework_TestCase
-{
-
-    public function setUp()
-    {
-        if (!defined('PHPEXCEL_ROOT')) {
-            define('PHPEXCEL_ROOT', APPLICATION_PATH . '/');
-        }
-        require_once(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php');
-
-        PHPExcel_Calculation_Functions::setCompatibilityMode(PHPExcel_Calculation_Functions::COMPATIBILITY_EXCEL);
-    }
-
-    /**
-     * @dataProvider providerBinaryComparisonOperation
-     */
-    public function testBinaryComparisonOperation($formula, $expectedResultExcel, $expectedResultOpenOffice)
-    {
-        PHPExcel_Calculation_Functions::setCompatibilityMode(PHPExcel_Calculation_Functions::COMPATIBILITY_EXCEL);
-        $resultExcel = \PHPExcel_Calculation::getInstance()->_calculateFormulaValue($formula);
-        $this->assertEquals($expectedResultExcel, $resultExcel, 'should be Excel compatible');
-
-        PHPExcel_Calculation_Functions::setCompatibilityMode(PHPExcel_Calculation_Functions::COMPATIBILITY_OPENOFFICE);
-        $resultOpenOffice = \PHPExcel_Calculation::getInstance()->_calculateFormulaValue($formula);
-        $this->assertEquals($expectedResultOpenOffice, $resultOpenOffice, 'should be OpenOffice compatible');
-    }
-
-    public function providerBinaryComparisonOperation()
-    {
-        return new testDataFileIterator('rawTestData/CalculationBinaryComparisonOperation.data');
-    }
-
-}
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Cell/AdvancedValueBinderTest.php b/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Cell/AdvancedValueBinderTest.php
deleted file mode 100644
index 0a6ca54da8a..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Cell/AdvancedValueBinderTest.php
+++ /dev/null
@@ -1,73 +0,0 @@
-<?php
-
-class AdvancedValueBinderTest extends PHPUnit_Framework_TestCase
-{
-    public function setUp()
-    {
-        if (!defined('PHPEXCEL_ROOT')) {
-            define('PHPEXCEL_ROOT', APPLICATION_PATH . '/');
-        }
-        require_once(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php');
-    }
-
-    public function provider()
-    {
-        if (!class_exists('PHPExcel_Style_NumberFormat')) {
-          $this->setUp();
-        }
-        $currencyUSD = PHPExcel_Style_NumberFormat::FORMAT_CURRENCY_USD_SIMPLE;
-        $currencyEURO = str_replace('$', '€', PHPExcel_Style_NumberFormat::FORMAT_CURRENCY_USD_SIMPLE);
-
-        return array(
-          array('10%', 0.1, PHPExcel_Style_NumberFormat::FORMAT_PERCENTAGE_00, ',', '.', '$'),
-          array('$10.11', 10.11, $currencyUSD, ',', '.', '$'),
-          array('$1,010.12', 1010.12, $currencyUSD, ',', '.', '$'),
-          array('$20,20', 20.2, $currencyUSD, '.', ',', '$'),
-          array('$2.020,20', 2020.2, $currencyUSD, '.', ',', '$'),
-          array('€2.020,20', 2020.2, $currencyEURO, '.', ',', '€'),
-          array('€ 2.020,20', 2020.2, $currencyEURO, '.', ',', '€'),
-          array('€2,020.22', 2020.22, $currencyEURO, ',', '.', '€'),
-        );
-    }
-
-    /**
-     * @dataProvider provider
-     */
-    public function testCurrency($value, $valueBinded, $format, $thousandsSeparator, $decimalSeparator, $currencyCode)
-    {
-        $sheet = $this->getMock(
-			'PHPExcel_Worksheet', 
-			array('getStyle', 'getNumberFormat', 'setFormatCode','getCellCacheController')
-		);
-        $cache = $this->getMockBuilder('PHPExcel_CachedObjectStorage_Memory')
-        	->disableOriginalConstructor()
-        	->getMock();
-        $cache->expects($this->any())
-                 ->method('getParent')
-                 ->will($this->returnValue($sheet));
-
-        $sheet->expects($this->once())
-                 ->method('getStyle')
-                 ->will($this->returnSelf());
-        $sheet->expects($this->once())
-                 ->method('getNumberFormat')
-                 ->will($this->returnSelf());
-        $sheet->expects($this->once())
-                 ->method('setFormatCode')
-                 ->with($format)
-                 ->will($this->returnSelf());
-        $sheet->expects($this->any())
-                 ->method('getCellCacheController')
-                 ->will($this->returnValue($cache));
-
-        PHPExcel_Shared_String::setCurrencyCode($currencyCode);
-        PHPExcel_Shared_String::setDecimalSeparator($decimalSeparator);
-        PHPExcel_Shared_String::setThousandsSeparator($thousandsSeparator);
-
-        $cell = new PHPExcel_Cell(NULL, PHPExcel_Cell_DataType::TYPE_STRING, $sheet);
-
-        $binder = new PHPExcel_Cell_AdvancedValueBinder();
-        $binder->bindValue($cell, $value);
-        $this->assertEquals($valueBinded, $cell->getValue());
-    }
-}
\ No newline at end of file
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Cell/DataTypeTest.php b/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Cell/DataTypeTest.php
deleted file mode 100644
index c17c5d0fcc3..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Cell/DataTypeTest.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-
-class DataTypeTest extends PHPUnit_Framework_TestCase
-{
-
-    public function setUp()
-    {
-        if (!defined('PHPEXCEL_ROOT'))
-        {
-            define('PHPEXCEL_ROOT', APPLICATION_PATH . '/');
-        }
-        require_once(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php');
-	}
-
-	public function testGetErrorCodes()
-	{
-		$result = call_user_func(array('PHPExcel_Cell_DataType','getErrorCodes'));
-		$this->assertInternalType('array', $result);
-		$this->assertGreaterThan(0, count($result));
-		$this->assertArrayHasKey('#NULL!', $result);
-	}
-
-}
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Cell/DefaultValueBinderTest.php b/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Cell/DefaultValueBinderTest.php
deleted file mode 100644
index 1c74d96f6f8..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Cell/DefaultValueBinderTest.php
+++ /dev/null
@@ -1,85 +0,0 @@
-<?php
-
-require_once 'testDataFileIterator.php';
-
-class DefaultValueBinderTest extends PHPUnit_Framework_TestCase
-{
-    protected $cellStub;
-
-    public function setUp()
-    {
-        if (!defined('PHPEXCEL_ROOT'))
-        {
-            define('PHPEXCEL_ROOT', APPLICATION_PATH . '/');
-        }
-        require_once(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php');
-	}
-
-    protected function createCellStub()
-    {
-        // Create a stub for the Cell class.
-        $this->cellStub = $this->getMockBuilder('PHPExcel_Cell')
-            ->disableOriginalConstructor()
-            ->getMock();
-        // Configure the stub.
-        $this->cellStub->expects($this->any())
-             ->method('setValueExplicit')
-             ->will($this->returnValue(true));
-
-    }
-
-    /**
-     * @dataProvider binderProvider
-     */
-    public function testBindValue($value)
-	{
-		$this->createCellStub();
-        $binder = new PHPExcel_Cell_DefaultValueBinder();
-		$result = $binder->bindValue($this->cellStub, $value);
-		$this->assertTrue($result);
-	}
-
-    public function binderProvider()
-    {
-        return array(
-            array(null),
-            array(''),
-            array('ABC'),
-            array('=SUM(A1:B2)'),
-            array(true),
-            array(false),
-            array(123),
-            array(-123.456),
-            array('123'),
-            array('-123.456'),
-            array('#REF!'),
-            array(new DateTime()),
-        );
-    }
-
-    /**
-     * @dataProvider providerDataTypeForValue
-     */
-	public function testDataTypeForValue()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Cell_DefaultValueBinder','dataTypeForValue'), $args);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-    public function providerDataTypeForValue()
-    {
-    	return new testDataFileIterator('rawTestData/Cell/DefaultValueBinder.data');
-	}
-
-	public function testDataTypeForRichTextObject()
-	{
-        $objRichText = new PHPExcel_RichText();
-        $objRichText->createText('Hello World');
-
-        $expectedResult = PHPExcel_Cell_DataType::TYPE_INLINE;
-		$result = call_user_func(array('PHPExcel_Cell_DefaultValueBinder','dataTypeForValue'), $objRichText);
-		$this->assertEquals($expectedResult, $result);
-	}
-}
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Cell/HyperlinkTest.php b/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Cell/HyperlinkTest.php
deleted file mode 100644
index 54910cfd565..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Cell/HyperlinkTest.php
+++ /dev/null
@@ -1,88 +0,0 @@
-<?php
-
-
-class HyperlinkTest extends PHPUnit_Framework_TestCase
-{
-
-    public function setUp()
-    {
-        if (!defined('PHPEXCEL_ROOT'))
-        {
-            define('PHPEXCEL_ROOT', APPLICATION_PATH . '/');
-        }
-        require_once(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php');
-	}
-
-	public function testGetUrl()
-	{
-		$urlValue = 'http://www.phpexcel.net';
-
-		$testInstance = new PHPExcel_Cell_Hyperlink($urlValue);
-
-		$result = $testInstance->getUrl();
-		$this->assertEquals($urlValue,$result);
-	}
-
-	public function testSetUrl()
-	{
-		$initialUrlValue = 'http://www.phpexcel.net';
-		$newUrlValue = 'http://github.com/PHPOffice/PHPExcel';
-
-		$testInstance = new PHPExcel_Cell_Hyperlink($initialUrlValue);
-		$result = $testInstance->setUrl($newUrlValue);
-		$this->assertTrue($result instanceof PHPExcel_Cell_Hyperlink);
-
-		$result = $testInstance->getUrl();
-		$this->assertEquals($newUrlValue,$result);
-	}
-
-	public function testGetTooltip()
-	{
-		$tooltipValue = 'PHPExcel Web Site';
-
-		$testInstance = new PHPExcel_Cell_Hyperlink(NULL, $tooltipValue);
-
-		$result = $testInstance->getTooltip();
-		$this->assertEquals($tooltipValue,$result);
-	}
-
-	public function testSetTooltip()
-	{
-		$initialTooltipValue = 'PHPExcel Web Site';
-		$newTooltipValue = 'PHPExcel Repository on Github';
-
-		$testInstance = new PHPExcel_Cell_Hyperlink(NULL, $initialTooltipValue);
-		$result = $testInstance->setTooltip($newTooltipValue);
-		$this->assertTrue($result instanceof PHPExcel_Cell_Hyperlink);
-
-		$result = $testInstance->getTooltip();
-		$this->assertEquals($newTooltipValue,$result);
-	}
-
-	public function testIsInternal()
-	{
-		$initialUrlValue = 'http://www.phpexcel.net';
-		$newUrlValue = 'sheet://Worksheet1!A1';
-
-		$testInstance = new PHPExcel_Cell_Hyperlink($initialUrlValue);
-		$result = $testInstance->isInternal();
-		$this->assertFalse($result);
-
-		$testInstance->setUrl($newUrlValue);
-		$result = $testInstance->isInternal();
-		$this->assertTrue($result);
-	}
-
-	public function testGetHashCode()
-	{
-		$urlValue = 'http://www.phpexcel.net';
-		$tooltipValue = 'PHPExcel Web Site';
-		$initialExpectedHash = 'd84d713aed1dbbc8a7c5af183d6c7dbb';
-
-		$testInstance = new PHPExcel_Cell_Hyperlink($urlValue, $tooltipValue);
-
-		$result = $testInstance->getHashCode();
-		$this->assertEquals($initialExpectedHash,$result);
-	}
-
-}
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/CellTest.php b/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/CellTest.php
deleted file mode 100644
index 11df404ce5d..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/CellTest.php
+++ /dev/null
@@ -1,295 +0,0 @@
-<?php
-
-
-require_once 'testDataFileIterator.php';
-
-class CellTest extends PHPUnit_Framework_TestCase
-{
-
-    public function setUp()
-    {
-        if (!defined('PHPEXCEL_ROOT')) {
-            define('PHPEXCEL_ROOT', APPLICATION_PATH . '/');
-        }
-        require_once(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php');
-	}
-
-    /**
-     * @dataProvider providerColumnString
-     */
-	public function testColumnIndexFromString()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Cell','columnIndexFromString'),$args);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-    public function providerColumnString()
-    {
-    	return new testDataFileIterator('rawTestData/ColumnString.data');
-	}
-
-    public function testColumnIndexFromStringTooLong()
-	{
-		$cellAddress = 'ABCD';
-		try {
-			$result = call_user_func(array('PHPExcel_Cell','columnIndexFromString'),$cellAddress);
-		} catch (PHPExcel_Exception $e) {
-			$this->assertEquals($e->getMessage(), 'Column string index can not be longer than 3 characters');
-			return;
-		}
-		$this->fail('An expected exception has not been raised.');
-	}
-
-    public function testColumnIndexFromStringTooShort()
-	{
-		$cellAddress = '';
-		try {
-			$result = call_user_func(array('PHPExcel_Cell','columnIndexFromString'),$cellAddress);
-		} catch (PHPExcel_Exception $e) {
-			$this->assertEquals($e->getMessage(), 'Column string index can not be empty');
-			return;
-		}
-		$this->fail('An expected exception has not been raised.');
-	}
-
-    /**
-     * @dataProvider providerColumnIndex
-     */
-	public function testStringFromColumnIndex()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Cell','stringFromColumnIndex'),$args);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-    public function providerColumnIndex()
-    {
-    	return new testDataFileIterator('rawTestData/ColumnIndex.data');
-	}
-
-    /**
-     * @dataProvider providerCoordinates
-     */
-	public function testCoordinateFromString()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Cell','coordinateFromString'),$args);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-    public function providerCoordinates()
-    {
-    	return new testDataFileIterator('rawTestData/CellCoordinates.data');
-	}
-
-    public function testCoordinateFromStringWithRangeAddress()
-	{
-		$cellAddress = 'A1:AI2012';
-		try {
-			$result = call_user_func(array('PHPExcel_Cell','coordinateFromString'),$cellAddress);
-		} catch (PHPExcel_Exception $e) {
-			$this->assertEquals($e->getMessage(), 'Cell coordinate string can not be a range of cells');
-			return;
-		}
-		$this->fail('An expected exception has not been raised.');
-	}
-
-    public function testCoordinateFromStringWithEmptyAddress()
-	{
-		$cellAddress = '';
-		try {
-			$result = call_user_func(array('PHPExcel_Cell','coordinateFromString'),$cellAddress);
-		} catch (PHPExcel_Exception $e) {
-			$this->assertEquals($e->getMessage(), 'Cell coordinate can not be zero-length string');
-			return;
-		}
-		$this->fail('An expected exception has not been raised.');
-	}
-
-    public function testCoordinateFromStringWithInvalidAddress()
-	{
-		$cellAddress = 'AI';
-		try {
-			$result = call_user_func(array('PHPExcel_Cell','coordinateFromString'),$cellAddress);
-		} catch (PHPExcel_Exception $e) {
-			$this->assertEquals($e->getMessage(), 'Invalid cell coordinate '.$cellAddress);
-			return;
-		}
-		$this->fail('An expected exception has not been raised.');
-	}
-
-    /**
-     * @dataProvider providerAbsoluteCoordinates
-     */
-	public function testAbsoluteCoordinateFromString()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Cell','absoluteCoordinate'),$args);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-    public function providerAbsoluteCoordinates()
-    {
-    	return new testDataFileIterator('rawTestData/CellAbsoluteCoordinate.data');
-	}
-
-    public function testAbsoluteCoordinateFromStringWithRangeAddress()
-	{
-		$cellAddress = 'A1:AI2012';
-		try {
-			$result = call_user_func(array('PHPExcel_Cell','absoluteCoordinate'),$cellAddress);
-		} catch (PHPExcel_Exception $e) {
-			$this->assertEquals($e->getMessage(), 'Cell coordinate string can not be a range of cells');
-			return;
-		}
-		$this->fail('An expected exception has not been raised.');
-	}
-
-    /**
-     * @dataProvider providerAbsoluteReferences
-     */
-	public function testAbsoluteReferenceFromString()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Cell','absoluteReference'),$args);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-    public function providerAbsoluteReferences()
-    {
-    	return new testDataFileIterator('rawTestData/CellAbsoluteReference.data');
-	}
-
-    public function testAbsoluteReferenceFromStringWithRangeAddress()
-	{
-		$cellAddress = 'A1:AI2012';
-		try {
-			$result = call_user_func(array('PHPExcel_Cell','absoluteReference'),$cellAddress);
-		} catch (PHPExcel_Exception $e) {
-			$this->assertEquals($e->getMessage(), 'Cell coordinate string can not be a range of cells');
-			return;
-		}
-		$this->fail('An expected exception has not been raised.');
-	}
-
-    /**
-     * @dataProvider providerSplitRange
-     */
-	public function testSplitRange()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Cell','splitRange'),$args);
-		foreach($result as $key => $split) {
-			if (!is_array($expectedResult[$key])) {
-				$this->assertEquals($expectedResult[$key], $split[0]);
-			} else {
-				$this->assertEquals($expectedResult[$key], $split);
-			}
-		}
-	}
-
-    public function providerSplitRange()
-    {
-    	return new testDataFileIterator('rawTestData/CellSplitRange.data');
-	}
-
-    /**
-     * @dataProvider providerBuildRange
-     */
-	public function testBuildRange()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Cell','buildRange'),$args);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-    public function providerBuildRange()
-    {
-    	return new testDataFileIterator('rawTestData/CellBuildRange.data');
-	}
-
-    public function testBuildRangeInvalid()
-	{
-		$cellRange = '';
-		try {
-			$result = call_user_func(array('PHPExcel_Cell','buildRange'),$cellRange);
-		} catch (PHPExcel_Exception $e) {
-			$this->assertEquals($e->getMessage(), 'Range does not contain any information');
-			return;
-		}
-		$this->fail('An expected exception has not been raised.');
-	}
-
-    /**
-     * @dataProvider providerRangeBoundaries
-     */
-	public function testRangeBoundaries()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Cell','rangeBoundaries'),$args);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-    public function providerRangeBoundaries()
-    {
-    	return new testDataFileIterator('rawTestData/CellRangeBoundaries.data');
-	}
-
-    /**
-     * @dataProvider providerRangeDimension
-     */
-	public function testRangeDimension()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Cell','rangeDimension'),$args);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-    public function providerRangeDimension()
-    {
-    	return new testDataFileIterator('rawTestData/CellRangeDimension.data');
-	}
-
-    /**
-     * @dataProvider providerGetRangeBoundaries
-     */
-	public function testGetRangeBoundaries()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Cell','getRangeBoundaries'),$args);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-    public function providerGetRangeBoundaries()
-    {
-    	return new testDataFileIterator('rawTestData/CellGetRangeBoundaries.data');
-	}
-
-    /**
-     * @dataProvider providerExtractAllCellReferencesInRange
-     */
-	public function testExtractAllCellReferencesInRange()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Cell','extractAllCellReferencesInRange'),$args);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-    public function providerExtractAllCellReferencesInRange()
-    {
-    	return new testDataFileIterator('rawTestData/CellExtractAllCellReferencesInRange.data');
-	}
-
-}
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Chart/DataSeriesValuesTest.php b/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Chart/DataSeriesValuesTest.php
deleted file mode 100644
index 38284de9a94..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Chart/DataSeriesValuesTest.php
+++ /dev/null
@@ -1,55 +0,0 @@
-<?php
-
-
-class DataSeriesValuesTest extends PHPUnit_Framework_TestCase
-{
-
-    public function setUp()
-    {
-        if (!defined('PHPEXCEL_ROOT'))
-        {
-            define('PHPEXCEL_ROOT', APPLICATION_PATH . '/');
-        }
-        require_once(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php');
-	}
-
-	public function testSetDataType()
-	{
-		$dataTypeValues = array(
-			'Number',
-			'String'
-		);
-
-		$testInstance = new PHPExcel_Chart_DataSeriesValues;
-
-		foreach($dataTypeValues as $dataTypeValue) {
-			$result = $testInstance->setDataType($dataTypeValue);
-			$this->assertTrue($result instanceof PHPExcel_Chart_DataSeriesValues);
-		}
-	}
-
-	public function testSetInvalidDataTypeThrowsException()
-	{
-		$testInstance = new PHPExcel_Chart_DataSeriesValues;
-
-		try {
-			$result = $testInstance->setDataType('BOOLEAN');
-		} catch (Exception $e) {
-			$this->assertEquals($e->getMessage(), 'Invalid datatype for chart data series values');
-			return;
-		}
-		$this->fail('An expected exception has not been raised.');
-	}
-
-	public function testGetDataType()
-	{
-		$dataTypeValue = 'String';
-
-		$testInstance = new PHPExcel_Chart_DataSeriesValues;
-		$setValue = $testInstance->setDataType($dataTypeValue);
-
-		$result = $testInstance->getDataType();
-		$this->assertEquals($dataTypeValue,$result);
-	}
-
-}
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Chart/LayoutTest.php b/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Chart/LayoutTest.php
deleted file mode 100644
index f24e01c3131..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Chart/LayoutTest.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-
-
-class LayoutTest extends PHPUnit_Framework_TestCase
-{
-
-    public function setUp()
-    {
-        if (!defined('PHPEXCEL_ROOT'))
-        {
-            define('PHPEXCEL_ROOT', APPLICATION_PATH . '/');
-        }
-        require_once(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php');
-	}
-
-	public function testSetLayoutTarget()
-	{
-		$LayoutTargetValue = 'String';
-
-		$testInstance = new PHPExcel_Chart_Layout;
-
-		$result = $testInstance->setLayoutTarget($LayoutTargetValue);
-		$this->assertTrue($result instanceof PHPExcel_Chart_Layout);
-	}
-
-	public function testGetLayoutTarget()
-	{
-		$LayoutTargetValue = 'String';
-
-		$testInstance = new PHPExcel_Chart_Layout;
-		$setValue = $testInstance->setLayoutTarget($LayoutTargetValue);
-
-		$result = $testInstance->getLayoutTarget();
-		$this->assertEquals($LayoutTargetValue,$result);
-	}
-
-}
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Chart/LegendTest.php b/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Chart/LegendTest.php
deleted file mode 100644
index 4c4f8df81f2..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Chart/LegendTest.php
+++ /dev/null
@@ -1,134 +0,0 @@
-<?php
-
-
-class LegendTest extends PHPUnit_Framework_TestCase
-{
-
-    public function setUp()
-    {
-        if (!defined('PHPEXCEL_ROOT'))
-        {
-            define('PHPEXCEL_ROOT', APPLICATION_PATH . '/');
-        }
-        require_once(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php');
-	}
-
-	public function testSetPosition()
-	{
-		$positionValues = array(
-			PHPExcel_Chart_Legend::POSITION_RIGHT,
-			PHPExcel_Chart_Legend::POSITION_LEFT,
-			PHPExcel_Chart_Legend::POSITION_TOP,
-			PHPExcel_Chart_Legend::POSITION_BOTTOM,
-			PHPExcel_Chart_Legend::POSITION_TOPRIGHT,
-		);
-
-		$testInstance = new PHPExcel_Chart_Legend;
-
-		foreach($positionValues as $positionValue) {
-			$result = $testInstance->setPosition($positionValue);
-			$this->assertTrue($result);
-		}
-	}
-
-	public function testSetInvalidPositionReturnsFalse()
-	{
-		$testInstance = new PHPExcel_Chart_Legend;
-
-		$result = $testInstance->setPosition('BottomLeft');
-		$this->assertFalse($result);
-		//	Ensure that value is unchanged
-		$result = $testInstance->getPosition();
-		$this->assertEquals(PHPExcel_Chart_Legend::POSITION_RIGHT,$result);
-	}
-
-	public function testGetPosition()
-	{
-		$PositionValue = PHPExcel_Chart_Legend::POSITION_BOTTOM;
-
-		$testInstance = new PHPExcel_Chart_Legend;
-		$setValue = $testInstance->setPosition($PositionValue);
-
-		$result = $testInstance->getPosition();
-		$this->assertEquals($PositionValue,$result);
-	}
-
-	public function testSetPositionXL()
-	{
-		$positionValues = array(
-			PHPExcel_Chart_Legend::xlLegendPositionBottom,
-			PHPExcel_Chart_Legend::xlLegendPositionCorner,
-			PHPExcel_Chart_Legend::xlLegendPositionCustom,
-			PHPExcel_Chart_Legend::xlLegendPositionLeft,
-			PHPExcel_Chart_Legend::xlLegendPositionRight,
-			PHPExcel_Chart_Legend::xlLegendPositionTop,
-		);
-
-		$testInstance = new PHPExcel_Chart_Legend;
-
-		foreach($positionValues as $positionValue) {
-			$result = $testInstance->setPositionXL($positionValue);
-			$this->assertTrue($result);
-		}
-	}
-
-	public function testSetInvalidXLPositionReturnsFalse()
-	{
-		$testInstance = new PHPExcel_Chart_Legend;
-
-		$result = $testInstance->setPositionXL(999);
-		$this->assertFalse($result);
-		//	Ensure that value is unchanged
-		$result = $testInstance->getPositionXL();
-		$this->assertEquals(PHPExcel_Chart_Legend::xlLegendPositionRight,$result);
-	}
-
-	public function testGetPositionXL()
-	{
-		$PositionValue = PHPExcel_Chart_Legend::xlLegendPositionCorner;
-
-		$testInstance = new PHPExcel_Chart_Legend;
-		$setValue = $testInstance->setPositionXL($PositionValue);
-
-		$result = $testInstance->getPositionXL();
-		$this->assertEquals($PositionValue,$result);
-	}
-
-	public function testSetOverlay()
-	{
-		$overlayValues = array(
-			TRUE,
-			FALSE,
-		);
-
-		$testInstance = new PHPExcel_Chart_Legend;
-
-		foreach($overlayValues as $overlayValue) {
-			$result = $testInstance->setOverlay($overlayValue);
-			$this->assertTrue($result);
-		}
-	}
-
-	public function testSetInvalidOverlayReturnsFalse()
-	{
-		$testInstance = new PHPExcel_Chart_Legend;
-
-		$result = $testInstance->setOverlay('INVALID');
-		$this->assertFalse($result);
-
-		$result = $testInstance->getOverlay();
-		$this->assertFalse($result);
-	}
-
-	public function testGetOverlay()
-	{
-		$OverlayValue = TRUE;
-
-		$testInstance = new PHPExcel_Chart_Legend;
-		$setValue = $testInstance->setOverlay($OverlayValue);
-
-		$result = $testInstance->getOverlay();
-		$this->assertEquals($OverlayValue,$result);
-	}
-
-}
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Reader/XEEValidatorTest.php b/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Reader/XEEValidatorTest.php
deleted file mode 100644
index f635dbb8764..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Reader/XEEValidatorTest.php
+++ /dev/null
@@ -1,55 +0,0 @@
-<?php
-
-
-class XEEValidatorTest extends PHPUnit_Framework_TestCase
-{
-
-    public function setUp()
-    {
-        if (!defined('PHPEXCEL_ROOT')) {
-            define('PHPEXCEL_ROOT', APPLICATION_PATH . '/');
-        }
-        require_once(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php');
-	}
-
-    /**
-     * @dataProvider providerInvalidXML
-     * @expectedException PHPExcel_Reader_Exception
-     */
-	public function testInvalidXML($filename)
-	{
-        $reader = $this->getMockForAbstractClass('PHPExcel_Reader_Abstract');
-        $expectedResult = 'FAILURE: Should throw an Exception rather than return a value';
-		$result = $reader->securityScanFile($filename);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-    public function providerInvalidXML()
-    {
-        $tests = [];
-        foreach(glob('rawTestData/Reader/XEETestInvalid*.xml') as $file) {
-            $tests[] = [realpath($file), true];
-        }
-        return $tests;
-	}
-
-    /**
-     * @dataProvider providerValidXML
-     */
-	public function testValidXML($filename, $expectedResult)
-	{
-        $reader = $this->getMockForAbstractClass('PHPExcel_Reader_Abstract');
-		$result = $reader->securityScanFile($filename);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-    public function providerValidXML()
-    {
-        $tests = [];
-        foreach(glob('rawTestData/Reader/XEETestValid*.xml') as $file) {
-            $tests[] = [realpath($file), file_get_contents($file)];
-        }
-        return $tests;
-	}
-
-}
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/ReferenceHelperTest.php b/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/ReferenceHelperTest.php
deleted file mode 100644
index f37db692e03..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/ReferenceHelperTest.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-
-
-class ReferenceHelperTest extends PHPUnit_Framework_TestCase
-{
-
-    public function setUp()
-    {
-        if (!defined('PHPEXCEL_ROOT')) {
-            define('PHPEXCEL_ROOT', APPLICATION_PATH . '/');
-        }
-        require_once(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php');
-	}
-
-	public function testColumnSort()
-	{
-		$columnBase = $columnExpectedResult = array(
-			'A','B','Z',
-			'AA','AB','AZ',
-			'BA','BB','BZ',
-			'ZA','ZB','ZZ',
-			'AAA','AAB','AAZ',
-			'ABA','ABB','ABZ',
-			'AZA','AZB','AZZ',
-			'BAA','BAB','BAZ',
-			'BBA','BBB','BBZ',
-			'BZA','BZB','BZZ'
-		);
-		shuffle($columnBase);
-		usort($columnBase, array('PHPExcel_ReferenceHelper','columnSort'));
-		foreach($columnBase as $key => $value) {
-			$this->assertEquals($columnExpectedResult[$key], $value);
-		}
-	}
-
-	public function testColumnReverseSort()
-	{
-		$columnBase = $columnExpectedResult = array(
-			'A','B','Z',
-			'AA','AB','AZ',
-			'BA','BB','BZ',
-			'ZA','ZB','ZZ',
-			'AAA','AAB','AAZ',
-			'ABA','ABB','ABZ',
-			'AZA','AZB','AZZ',
-			'BAA','BAB','BAZ',
-			'BBA','BBB','BBZ',
-			'BZA','BZB','BZZ'
-		);
-		shuffle($columnBase);
-		$columnExpectedResult = array_reverse($columnExpectedResult);
-		usort($columnBase, array('PHPExcel_ReferenceHelper','columnReverseSort'));
-		foreach($columnBase as $key => $value) {
-			$this->assertEquals($columnExpectedResult[$key], $value);
-		}
-	}
-
-}
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Shared/CodePageTest.php b/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Shared/CodePageTest.php
deleted file mode 100644
index ae4aeecc5cd..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Shared/CodePageTest.php
+++ /dev/null
@@ -1,57 +0,0 @@
-<?php
-
-
-require_once 'testDataFileIterator.php';
-
-class CodePageTest extends PHPUnit_Framework_TestCase
-{
-
-    public function setUp()
-    {
-        if (!defined('PHPEXCEL_ROOT')) {
-            define('PHPEXCEL_ROOT', APPLICATION_PATH . '/');
-        }
-        require_once(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php');
-	}
-
-    /**
-     * @dataProvider providerCodePage
-     */
-	public function testCodePageNumberToName()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Shared_CodePage','NumberToName'),$args);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-    public function providerCodePage()
-    {
-    	return new testDataFileIterator('rawTestData/Shared/CodePage.data');
-	}
-
-    public function testNumberToNameWithInvalidCodePage()
-	{
-		$invalidCodePage = 12345;
-		try {
-			$result = call_user_func(array('PHPExcel_Shared_CodePage','NumberToName'),$invalidCodePage);
-		} catch (Exception $e) {
-			$this->assertEquals($e->getMessage(), 'Unknown codepage: 12345');
-			return;
-		}
-		$this->fail('An expected exception has not been raised.');
-	}
-
-    public function testNumberToNameWithUnsupportedCodePage()
-	{
-		$unsupportedCodePage = 720;
-		try {
-			$result = call_user_func(array('PHPExcel_Shared_CodePage','NumberToName'),$unsupportedCodePage);
-		} catch (Exception $e) {
-			$this->assertEquals($e->getMessage(), 'Code page 720 not supported.');
-			return;
-		}
-		$this->fail('An expected exception has not been raised.');
-	}
-
-}
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Shared/DateTest.php b/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Shared/DateTest.php
deleted file mode 100644
index 80b77d3c691..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Shared/DateTest.php
+++ /dev/null
@@ -1,188 +0,0 @@
-<?php
-
-
-require_once 'testDataFileIterator.php';
-
-class DateTest extends PHPUnit_Framework_TestCase
-{
-
-    public function setUp()
-    {
-        if (!defined('PHPEXCEL_ROOT')) {
-            define('PHPEXCEL_ROOT', APPLICATION_PATH . '/');
-        }
-        require_once(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php');
-	}
-
-	public function testSetExcelCalendar()
-	{
-		$calendarValues = array(
-			PHPExcel_Shared_Date::CALENDAR_MAC_1904,
-			PHPExcel_Shared_Date::CALENDAR_WINDOWS_1900,
-		);
-
-		foreach($calendarValues as $calendarValue) {
-			$result = call_user_func(array('PHPExcel_Shared_Date','setExcelCalendar'),$calendarValue);
-			$this->assertTrue($result);
-		}
-	}
-
-    public function testSetExcelCalendarWithInvalidValue()
-	{
-		$unsupportedCalendar = '2012';
-		$result = call_user_func(array('PHPExcel_Shared_Date','setExcelCalendar'),$unsupportedCalendar);
-		$this->assertFalse($result);
-	}
-
-    /**
-     * @dataProvider providerDateTimeExcelToPHP1900
-     */
-	public function testDateTimeExcelToPHP1900()
-	{
-		$result = call_user_func(
-			array('PHPExcel_Shared_Date','setExcelCalendar'),
-			PHPExcel_Shared_Date::CALENDAR_WINDOWS_1900
-		);
-
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		if ($args[0] < 1) {
-			$expectedResult += gmmktime(0,0,0);
-		}
-		$result = call_user_func_array(array('PHPExcel_Shared_Date','ExcelToPHP'),$args);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-    public function providerDateTimeExcelToPHP1900()
-    {
-    	return new testDataFileIterator('rawTestData/Shared/DateTimeExcelToPHP1900.data');
-	}
-
-    /**
-     * @dataProvider providerDateTimePHPToExcel1900
-     */
-	public function testDateTimePHPToExcel1900()
-	{
-		$result = call_user_func(
-			array('PHPExcel_Shared_Date','setExcelCalendar'),
-			PHPExcel_Shared_Date::CALENDAR_WINDOWS_1900
-		);
-
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Shared_Date','PHPToExcel'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-5);
-	}
-
-    public function providerDateTimePHPToExcel1900()
-    {
-    	return new testDataFileIterator('rawTestData/Shared/DateTimePHPToExcel1900.data');
-	}
-
-    /**
-     * @dataProvider providerDateTimeFormattedPHPToExcel1900
-     */
-	public function testDateTimeFormattedPHPToExcel1900()
-	{
-		$result = call_user_func(
-			array('PHPExcel_Shared_Date','setExcelCalendar'),
-			PHPExcel_Shared_Date::CALENDAR_WINDOWS_1900
-		);
-
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Shared_Date','FormattedPHPToExcel'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-5);
-	}
-
-    public function providerDateTimeFormattedPHPToExcel1900()
-    {
-    	return new testDataFileIterator('rawTestData/Shared/DateTimeFormattedPHPToExcel1900.data');
-	}
-
-    /**
-     * @dataProvider providerDateTimeExcelToPHP1904
-     */
-	public function testDateTimeExcelToPHP1904()
-	{
-		$result = call_user_func(
-			array('PHPExcel_Shared_Date','setExcelCalendar'),
-			PHPExcel_Shared_Date::CALENDAR_MAC_1904
-		);
-
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		if ($args[0] < 1) {
-			$expectedResult += gmmktime(0,0,0);
-		}
-		$result = call_user_func_array(array('PHPExcel_Shared_Date','ExcelToPHP'),$args);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-    public function providerDateTimeExcelToPHP1904()
-    {
-    	return new testDataFileIterator('rawTestData/Shared/DateTimeExcelToPHP1904.data');
-	}
-
-    /**
-     * @dataProvider providerDateTimePHPToExcel1904
-     */
-	public function testDateTimePHPToExcel1904()
-	{
-		$result = call_user_func(
-			array('PHPExcel_Shared_Date','setExcelCalendar'),
-			PHPExcel_Shared_Date::CALENDAR_MAC_1904
-		);
-
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Shared_Date','PHPToExcel'),$args);
-		$this->assertEquals($expectedResult, $result, NULL, 1E-5);
-	}
-
-    public function providerDateTimePHPToExcel1904()
-    {
-    	return new testDataFileIterator('rawTestData/Shared/DateTimePHPToExcel1904.data');
-	}
-
-    /**
-     * @dataProvider providerIsDateTimeFormatCode
-     */
-	public function testIsDateTimeFormatCode()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Shared_Date','isDateTimeFormatCode'),$args);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-    public function providerIsDateTimeFormatCode()
-    {
-    	return new testDataFileIterator('rawTestData/Shared/DateTimeFormatCodes.data');
-	}
-
-    /**
-     * @dataProvider providerDateTimeExcelToPHP1900Timezone
-     */
-	public function testDateTimeExcelToPHP1900Timezone()
-	{
-		$result = call_user_func(
-			array('PHPExcel_Shared_Date','setExcelCalendar'),
-			PHPExcel_Shared_Date::CALENDAR_WINDOWS_1900
-		);
-
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		if ($args[0] < 1) {
-			$expectedResult += gmmktime(0,0,0);
-		}
-		$result = call_user_func_array(array('PHPExcel_Shared_Date','ExcelToPHP'),$args);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-    public function providerDateTimeExcelToPHP1900Timezone()
-    {
-    	return new testDataFileIterator('rawTestData/Shared/DateTimeExcelToPHP1900Timezone.data');
-	}
-
-}
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Shared/FileTest.php b/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Shared/FileTest.php
deleted file mode 100644
index 9deb401d91b..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Shared/FileTest.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-
-require_once 'testDataFileIterator.php';
-
-class FileTest extends PHPUnit_Framework_TestCase
-{
-
-    public function setUp()
-    {
-        if (!defined('PHPEXCEL_ROOT')) {
-            define('PHPEXCEL_ROOT', APPLICATION_PATH . '/');
-        }
-        require_once(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php');
-	}
-
-	public function testGetUseUploadTempDirectory()
-	{
-		$expectedResult = FALSE;
-
-		$result = call_user_func(array('PHPExcel_Shared_File','getUseUploadTempDirectory'));
-		$this->assertEquals($expectedResult, $result);
-	}
-
-	public function testSetUseUploadTempDirectory()
-	{
-		$useUploadTempDirectoryValues = array(
-			TRUE,
-			FALSE,
-		);
-
-		foreach($useUploadTempDirectoryValues as $useUploadTempDirectoryValue) {
-			call_user_func(array('PHPExcel_Shared_File','setUseUploadTempDirectory'),$useUploadTempDirectoryValue);
-
-			$result = call_user_func(array('PHPExcel_Shared_File','getUseUploadTempDirectory'));
-			$this->assertEquals($useUploadTempDirectoryValue, $result);
-		}
-	}
-}
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Shared/FontTest.php b/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Shared/FontTest.php
deleted file mode 100644
index 6ce5a0261f3..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Shared/FontTest.php
+++ /dev/null
@@ -1,94 +0,0 @@
-<?php
-
-
-require_once 'testDataFileIterator.php';
-
-class FontTest extends PHPUnit_Framework_TestCase
-{
-
-    public function setUp()
-    {
-        if (!defined('PHPEXCEL_ROOT')) {
-            define('PHPEXCEL_ROOT', APPLICATION_PATH . '/');
-        }
-        require_once(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php');
-	}
-
-	public function testGetAutoSizeMethod()
-	{
-		$expectedResult = PHPExcel_Shared_Font::AUTOSIZE_METHOD_APPROX;
-
-		$result = call_user_func(array('PHPExcel_Shared_Font','getAutoSizeMethod'));
-		$this->assertEquals($expectedResult, $result);
-	}
-
-	public function testSetAutoSizeMethod()
-	{
-		$autosizeMethodValues = array(
-			PHPExcel_Shared_Font::AUTOSIZE_METHOD_EXACT,
-			PHPExcel_Shared_Font::AUTOSIZE_METHOD_APPROX,
-		);
-
-		foreach($autosizeMethodValues as $autosizeMethodValue) {
-			$result = call_user_func(array('PHPExcel_Shared_Font','setAutoSizeMethod'),$autosizeMethodValue);
-			$this->assertTrue($result);
-		}
-	}
-
-    public function testSetAutoSizeMethodWithInvalidValue()
-	{
-		$unsupportedAutosizeMethod = 'guess';
-
-		$result = call_user_func(array('PHPExcel_Shared_Font','setAutoSizeMethod'),$unsupportedAutosizeMethod);
-		$this->assertFalse($result);
-	}
-
-    /**
-     * @dataProvider providerFontSizeToPixels
-     */
-	public function testFontSizeToPixels()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Shared_Font','fontSizeToPixels'),$args);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-    public function providerFontSizeToPixels()
-    {
-    	return new testDataFileIterator('rawTestData/Shared/FontSizeToPixels.data');
-	}
-
-    /**
-     * @dataProvider providerInchSizeToPixels
-     */
-	public function testInchSizeToPixels()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Shared_Font','inchSizeToPixels'),$args);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-    public function providerInchSizeToPixels()
-    {
-    	return new testDataFileIterator('rawTestData/Shared/InchSizeToPixels.data');
-	}
-
-    /**
-     * @dataProvider providerCentimeterSizeToPixels
-     */
-	public function testCentimeterSizeToPixels()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Shared_Font','centimeterSizeToPixels'),$args);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-    public function providerCentimeterSizeToPixels()
-    {
-    	return new testDataFileIterator('rawTestData/Shared/CentimeterSizeToPixels.data');
-	}
-
-}
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Shared/PasswordHasherTest.php b/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Shared/PasswordHasherTest.php
deleted file mode 100644
index 24a26178a10..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Shared/PasswordHasherTest.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-
-
-require_once 'testDataFileIterator.php';
-
-class PasswordHasherTest extends PHPUnit_Framework_TestCase
-{
-
-    public function setUp()
-    {
-        if (!defined('PHPEXCEL_ROOT')) {
-            define('PHPEXCEL_ROOT', APPLICATION_PATH . '/');
-        }
-        require_once(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php');
-	}
-
-    /**
-     * @dataProvider providerHashPassword
-     */
-	public function testHashPassword()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Shared_PasswordHasher','hashPassword'),$args);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-    public function providerHashPassword()
-    {
-    	return new testDataFileIterator('rawTestData/Shared/PasswordHashes.data');
-	}
-
-}
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Shared/StringTest.php b/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Shared/StringTest.php
deleted file mode 100644
index 9a34729d6cf..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Shared/StringTest.php
+++ /dev/null
@@ -1,83 +0,0 @@
-<?php
-
-
-require_once 'testDataFileIterator.php';
-
-class StringTest extends PHPUnit_Framework_TestCase
-{
-
-    public function setUp()
-    {
-        if (!defined('PHPEXCEL_ROOT')) {
-            define('PHPEXCEL_ROOT', APPLICATION_PATH . '/');
-        }
-        require_once(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php');
-	}
-
-	public function testGetIsMbStringEnabled()
-	{
-		$result = call_user_func(array('PHPExcel_Shared_String','getIsMbstringEnabled'));
-		$this->assertTrue($result);
-	}
-
-	public function testGetIsIconvEnabled()
-	{
-		$result = call_user_func(array('PHPExcel_Shared_String','getIsIconvEnabled'));
-		$this->assertTrue($result);
-	}
-
-	public function testGetDecimalSeparator()
-	{
-		$localeconv = localeconv();
-
-		$expectedResult = (!empty($localeconv['decimal_point'])) ? $localeconv['decimal_point'] : ',';
-		$result = call_user_func(array('PHPExcel_Shared_String','getDecimalSeparator'));
-		$this->assertEquals($expectedResult, $result);
-	}
-
-	public function testSetDecimalSeparator()
-	{
-		$expectedResult = ',';
-		$result = call_user_func(array('PHPExcel_Shared_String','setDecimalSeparator'),$expectedResult);
-
-		$result = call_user_func(array('PHPExcel_Shared_String','getDecimalSeparator'));
-		$this->assertEquals($expectedResult, $result);
-	}
-
-	public function testGetThousandsSeparator()
-	{
-		$localeconv = localeconv();
-
-		$expectedResult = (!empty($localeconv['thousands_sep'])) ? $localeconv['thousands_sep'] : ',';
-		$result = call_user_func(array('PHPExcel_Shared_String','getThousandsSeparator'));
-		$this->assertEquals($expectedResult, $result);
-	}
-
-	public function testSetThousandsSeparator()
-	{
-		$expectedResult = ' ';
-		$result = call_user_func(array('PHPExcel_Shared_String','setThousandsSeparator'),$expectedResult);
-
-		$result = call_user_func(array('PHPExcel_Shared_String','getThousandsSeparator'));
-		$this->assertEquals($expectedResult, $result);
-	}
-
-	public function testGetCurrencyCode()
-	{
-		$localeconv = localeconv();
-
-		$expectedResult = (!empty($localeconv['currency_symbol'])) ? $localeconv['currency_symbol'] : '$';
-		$result = call_user_func(array('PHPExcel_Shared_String','getCurrencyCode'));
-		$this->assertEquals($expectedResult, $result);
-	}
-
-	public function testSetCurrencyCode()
-	{
-		$expectedResult = '£';
-		$result = call_user_func(array('PHPExcel_Shared_String','setCurrencyCode'),$expectedResult);
-
-		$result = call_user_func(array('PHPExcel_Shared_String','getCurrencyCode'));
-		$this->assertEquals($expectedResult, $result);
-	}
-
-}
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Shared/TimeZoneTest.php b/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Shared/TimeZoneTest.php
deleted file mode 100644
index 0e44ceb628a..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Shared/TimeZoneTest.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-
-class TimeZoneTest extends PHPUnit_Framework_TestCase
-{
-
-    public function setUp()
-    {
-        if (!defined('PHPEXCEL_ROOT')) {
-            define('PHPEXCEL_ROOT', APPLICATION_PATH . '/');
-        }
-        require_once(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php');
-	}
-
-	public function testSetTimezone()
-	{
-		$timezoneValues = array(
-			'Europe/Prague',
-			'Asia/Tokyo',
-			'America/Indiana/Indianapolis',
-			'Pacific/Honolulu',
-			'Atlantic/St_Helena',
-		);
-
-		foreach($timezoneValues as $timezoneValue) {
-			$result = call_user_func(array('PHPExcel_Shared_TimeZone','setTimezone'),$timezoneValue);
-			$this->assertTrue($result);
-		}
-
-	}
-
-    public function testSetTimezoneWithInvalidValue()
-	{
-		$unsupportedTimezone = 'Etc/GMT+10';
-		$result = call_user_func(array('PHPExcel_Shared_TimeZone','setTimezone'),$unsupportedTimezone);
-		$this->assertFalse($result);
-	}
-
-}
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Style/ColorTest.php b/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Style/ColorTest.php
deleted file mode 100644
index f157b1a34b5..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Style/ColorTest.php
+++ /dev/null
@@ -1,81 +0,0 @@
-<?php
-
-
-require_once 'testDataFileIterator.php';
-
-class ColorTest extends PHPUnit_Framework_TestCase
-{
-
-    public function setUp()
-    {
-        if (!defined('PHPEXCEL_ROOT')) {
-            define('PHPEXCEL_ROOT', APPLICATION_PATH . '/');
-        }
-        require_once(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php');
-	}
-
-    /**
-     * @dataProvider providerColorGetRed
-     */
-	public function testGetRed()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Style_Color','getRed'),$args);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-    public function providerColorGetRed()
-    {
-    	return new testDataFileIterator('rawTestData/Style/ColorGetRed.data');
-	}
-
-    /**
-     * @dataProvider providerColorGetGreen
-     */
-	public function testGetGreen()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Style_Color','getGreen'),$args);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-    public function providerColorGetGreen()
-    {
-    	return new testDataFileIterator('rawTestData/Style/ColorGetGreen.data');
-	}
-
-    /**
-     * @dataProvider providerColorGetBlue
-     */
-	public function testGetBlue()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Style_Color','getBlue'),$args);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-    public function providerColorGetBlue()
-    {
-    	return new testDataFileIterator('rawTestData/Style/ColorGetBlue.data');
-	}
-
-    /**
-     * @dataProvider providerColorChangeBrightness
-     */
-	public function testChangeBrightness()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Style_Color','changeBrightness'),$args);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-    public function providerColorChangeBrightness()
-    {
-    	return new testDataFileIterator('rawTestData/Style/ColorChangeBrightness.data');
-	}
-
-}
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Style/NumberFormatTest.php b/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Style/NumberFormatTest.php
deleted file mode 100644
index 13fc3ede3a6..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Style/NumberFormatTest.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-
-
-require_once 'testDataFileIterator.php';
-
-class NumberFormatTest extends PHPUnit_Framework_TestCase
-{
-
-    public function setUp()
-    {
-        if (!defined('PHPEXCEL_ROOT')) {
-            define('PHPEXCEL_ROOT', APPLICATION_PATH . '/');
-        }
-        require_once(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php');
-
-		PHPExcel_Shared_String::setDecimalSeparator('.');
-		PHPExcel_Shared_String::setThousandsSeparator(',');
-	}
-
-    /**
-     * @dataProvider providerNumberFormat
-     */
-	public function testFormatValueWithMask()
-	{
-		$args = func_get_args();
-		$expectedResult = array_pop($args);
-		$result = call_user_func_array(array('PHPExcel_Style_NumberFormat','toFormattedString'),$args);
-		$this->assertEquals($expectedResult, $result);
-	}
-
-    public function providerNumberFormat()
-    {
-    	return new testDataFileIterator('rawTestData/Style/NumberFormat.data');
-	}
-
-}
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Worksheet/AutoFilter/Column/RuleTest.php b/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Worksheet/AutoFilter/Column/RuleTest.php
deleted file mode 100644
index 65d0a85c651..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Worksheet/AutoFilter/Column/RuleTest.php
+++ /dev/null
@@ -1,109 +0,0 @@
-<?php
-
-
-class RuleTest extends PHPUnit_Framework_TestCase
-{
-	private $_testAutoFilterRuleObject;
-
-	private $_mockAutoFilterColumnObject;
-
-    public function setUp()
-    {
-        if (!defined('PHPEXCEL_ROOT')) {
-            define('PHPEXCEL_ROOT', APPLICATION_PATH . '/');
-        }
-        require_once(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php');
-
-        $this->_mockAutoFilterColumnObject = $this->getMockBuilder('PHPExcel_Worksheet_AutoFilter_Column')
-        	->disableOriginalConstructor()
-        	->getMock();
-
-        $this->_mockAutoFilterColumnObject->expects($this->any())
-        	->method('testColumnInRange')
-        	->will($this->returnValue(3));
-
-		$this->_testAutoFilterRuleObject = new PHPExcel_Worksheet_AutoFilter_Column_Rule(
-			$this->_mockAutoFilterColumnObject
-		);
-    }
-
-	public function testGetRuleType()
-	{
-		$result = $this->_testAutoFilterRuleObject->getRuleType();
-		$this->assertEquals(PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_FILTER, $result);
-	}
-
-	public function testSetRuleType()
-	{
-		$expectedResult = PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP;
-
-		//	Setters return the instance to implement the fluent interface
-		$result = $this->_testAutoFilterRuleObject->setRuleType($expectedResult);
-		$this->assertInstanceOf('PHPExcel_Worksheet_AutoFilter_Column_Rule', $result);
-
-		$result = $this->_testAutoFilterRuleObject->getRuleType();
-		$this->assertEquals($expectedResult, $result);
-	}
-
-	public function testSetValue()
-	{
-		$expectedResult = 100;
-
-		//	Setters return the instance to implement the fluent interface
-		$result = $this->_testAutoFilterRuleObject->setValue($expectedResult);
-		$this->assertInstanceOf('PHPExcel_Worksheet_AutoFilter_Column_Rule', $result);
-
-		$result = $this->_testAutoFilterRuleObject->getValue();
-		$this->assertEquals($expectedResult, $result);
-	}
-
-	public function testGetOperator()
-	{
-		$result = $this->_testAutoFilterRuleObject->getOperator();
-		$this->assertEquals(PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_EQUAL, $result);
-	}
-
-	public function testSetOperator()
-	{
-		$expectedResult = PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_LESSTHAN;
-
-		//	Setters return the instance to implement the fluent interface
-		$result = $this->_testAutoFilterRuleObject->setOperator($expectedResult);
-		$this->assertInstanceOf('PHPExcel_Worksheet_AutoFilter_Column_Rule', $result);
-
-		$result = $this->_testAutoFilterRuleObject->getOperator();
-		$this->assertEquals($expectedResult, $result);
-	}
-
-	public function testSetGrouping()
-	{
-		$expectedResult = PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP_MONTH;
-
-		//	Setters return the instance to implement the fluent interface
-		$result = $this->_testAutoFilterRuleObject->setGrouping($expectedResult);
-		$this->assertInstanceOf('PHPExcel_Worksheet_AutoFilter_Column_Rule', $result);
-
-		$result = $this->_testAutoFilterRuleObject->getGrouping();
-		$this->assertEquals($expectedResult, $result);
-	}
-
-	public function testGetParent()
-	{
-		$result = $this->_testAutoFilterRuleObject->getParent();
-		$this->assertInstanceOf('PHPExcel_Worksheet_AutoFilter_Column', $result);
-	}
-
-	public function testSetParent()
-	{
-		//	Setters return the instance to implement the fluent interface
-		$result = $this->_testAutoFilterRuleObject->setParent($this->_mockAutoFilterColumnObject);
-		$this->assertInstanceOf('PHPExcel_Worksheet_AutoFilter_Column_Rule', $result);
-	}
-
-	public function testClone()
-	{
-		$result = clone $this->_testAutoFilterRuleObject;
-		$this->assertInstanceOf('PHPExcel_Worksheet_AutoFilter_Column_Rule', $result);
-	}
-
-}
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Worksheet/AutoFilter/ColumnTest.php b/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Worksheet/AutoFilter/ColumnTest.php
deleted file mode 100644
index 3c1821bad9b..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Worksheet/AutoFilter/ColumnTest.php
+++ /dev/null
@@ -1,173 +0,0 @@
-<?php
-
-
-class AutofilterColumnTest extends PHPUnit_Framework_TestCase
-{
-	private $_testInitialColumn = 'H';
-
-	private $_testAutoFilterColumnObject;
-
-	private $_mockAutoFilterObject;
-
-    public function setUp()
-    {
-        if (!defined('PHPEXCEL_ROOT')) {
-            define('PHPEXCEL_ROOT', APPLICATION_PATH . '/');
-        }
-        require_once(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php');
-
-        $this->_mockAutoFilterObject = $this->getMockBuilder('PHPExcel_Worksheet_AutoFilter')
-        	->disableOriginalConstructor()
-        	->getMock();
-
-        $this->_mockAutoFilterObject->expects($this->any())
-        	->method('testColumnInRange')
-        	->will($this->returnValue(3));
-
-		$this->_testAutoFilterColumnObject = new PHPExcel_Worksheet_AutoFilter_Column(
-			$this->_testInitialColumn,
-			$this->_mockAutoFilterObject
-		);
-    }
-
-	public function testGetColumnIndex()
-	{
-		$result = $this->_testAutoFilterColumnObject->getColumnIndex();
-		$this->assertEquals($this->_testInitialColumn, $result);
-	}
-
-	public function testSetColumnIndex()
-	{
-		$expectedResult = 'L';
-
-		//	Setters return the instance to implement the fluent interface
-		$result = $this->_testAutoFilterColumnObject->setColumnIndex($expectedResult);
-		$this->assertInstanceOf('PHPExcel_Worksheet_AutoFilter_Column', $result);
-
-		$result = $this->_testAutoFilterColumnObject->getColumnIndex();
-		$this->assertEquals($expectedResult, $result);
-	}
-
-	public function testGetParent()
-	{
-		$result = $this->_testAutoFilterColumnObject->getParent();
-		$this->assertInstanceOf('PHPExcel_Worksheet_AutoFilter', $result);
-	}
-
-	public function testSetParent()
-	{
-		//	Setters return the instance to implement the fluent interface
-		$result = $this->_testAutoFilterColumnObject->setParent($this->_mockAutoFilterObject);
-		$this->assertInstanceOf('PHPExcel_Worksheet_AutoFilter_Column', $result);
-	}
-
-	public function testGetFilterType()
-	{
-		$result = $this->_testAutoFilterColumnObject->getFilterType();
-		$this->assertEquals(PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_FILTERTYPE_FILTER, $result);
-	}
-
-	public function testSetFilterType()
-	{
-		$result = $this->_testAutoFilterColumnObject->setFilterType(PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_FILTERTYPE_DYNAMICFILTER);
-		$this->assertInstanceOf('PHPExcel_Worksheet_AutoFilter_Column', $result);
-
-		$result = $this->_testAutoFilterColumnObject->getFilterType();
-		$this->assertEquals(PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_FILTERTYPE_DYNAMICFILTER, $result);
-	}
-
-    /**
-     * @expectedException PHPExcel_Exception
-     */
-	public function testSetInvalidFilterTypeThrowsException()
-	{
-		$expectedResult = 'Unfiltered';
-
-		$result = $this->_testAutoFilterColumnObject->setFilterType($expectedResult);
-	}
-
-	public function testGetJoin()
-	{
-		$result = $this->_testAutoFilterColumnObject->getJoin();
-		$this->assertEquals(PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_COLUMN_JOIN_OR, $result);
-	}
-
-	public function testSetJoin()
-	{
-		$result = $this->_testAutoFilterColumnObject->setJoin(PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_COLUMN_JOIN_AND);
-		$this->assertInstanceOf('PHPExcel_Worksheet_AutoFilter_Column', $result);
-
-		$result = $this->_testAutoFilterColumnObject->getJoin();
-		$this->assertEquals(PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_COLUMN_JOIN_AND, $result);
-	}
-
-    /**
-     * @expectedException PHPExcel_Exception
-     */
-	public function testSetInvalidJoinThrowsException()
-	{
-		$expectedResult = 'Neither';
-
-		$result = $this->_testAutoFilterColumnObject->setJoin($expectedResult);
-	}
-
-	public function testSetAttributes()
-	{
-		$attributeSet = array(	'val' => 100,
-								'maxVal' => 200
-							 );
-
-		//	Setters return the instance to implement the fluent interface
-		$result = $this->_testAutoFilterColumnObject->setAttributes($attributeSet);
-		$this->assertInstanceOf('PHPExcel_Worksheet_AutoFilter_Column', $result);
-	}
-
-	public function testGetAttributes()
-	{
-		$attributeSet = array(	'val' => 100,
-								'maxVal' => 200
-							 );
-
-		$this->_testAutoFilterColumnObject->setAttributes($attributeSet);
-
-		$result = $this->_testAutoFilterColumnObject->getAttributes();
-		$this->assertTrue(is_array($result));
-		$this->assertEquals(count($attributeSet), count($result));
-	}
-
-	public function testSetAttribute()
-	{
-		$attributeSet = array(	'val' => 100,
-								'maxVal' => 200
-							 );
-
-		foreach($attributeSet as $attributeName => $attributeValue) {
-			//	Setters return the instance to implement the fluent interface
-			$result = $this->_testAutoFilterColumnObject->setAttribute($attributeName,$attributeValue);
-			$this->assertInstanceOf('PHPExcel_Worksheet_AutoFilter_Column', $result);
-		}
-	}
-
-	public function testGetAttribute()
-	{
-		$attributeSet = array(	'val' => 100,
-								'maxVal' => 200
-							 );
-
-		$this->_testAutoFilterColumnObject->setAttributes($attributeSet);
-
-		foreach($attributeSet as $attributeName => $attributeValue) {
-			$result = $this->_testAutoFilterColumnObject->getAttribute($attributeName);
-			$this->assertEquals($attributeValue, $result);
-		}
-		$result = $this->_testAutoFilterColumnObject->getAttribute('nonExistentAttribute');
-		$this->assertNull($result);
-	}
-
-	public function testClone()
-	{
-		$result = clone $this->_testAutoFilterColumnObject;
-		$this->assertInstanceOf('PHPExcel_Worksheet_AutoFilter_Column', $result);
-	}
-
-}
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Worksheet/AutoFilterTest.php b/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Worksheet/AutoFilterTest.php
deleted file mode 100644
index 9907eabc50a..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Worksheet/AutoFilterTest.php
+++ /dev/null
@@ -1,340 +0,0 @@
-<?php
-
-
-class AutoFilterTest extends PHPUnit_Framework_TestCase
-{
-	private $_testInitialRange = 'H2:O256';
-
-	private $_testAutoFilterObject;
-
-
-    public function setUp()
-    {
-        if (!defined('PHPEXCEL_ROOT')) {
-            define('PHPEXCEL_ROOT', APPLICATION_PATH . '/');
-        }
-        require_once(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php');
-
-        $this->_mockWorksheetObject = $this->getMockBuilder('PHPExcel_Worksheet')
-        	->disableOriginalConstructor()
-        	->getMock();
-        $this->_mockCacheController = $this->getMockBuilder('PHPExcel_CachedObjectStorage_Memory')
-        	->disableOriginalConstructor()
-        	->getMock();
-        $this->_mockWorksheetObject->expects($this->any())
-            ->method('getCellCacheController')
-            ->will($this->returnValue($this->_mockCacheController));
-
-		$this->_testAutoFilterObject = new PHPExcel_Worksheet_AutoFilter(
-			$this->_testInitialRange,
-			$this->_mockWorksheetObject
-		);
-    }
-
-	public function testToString()
-	{
-		$expectedResult = $this->_testInitialRange;
-
-		//	magic __toString should return the active autofilter range
-		$result = $this->_testAutoFilterObject;
-		$this->assertEquals($expectedResult, $result);
-	}
-
-	public function testGetParent()
-	{
-		$result = $this->_testAutoFilterObject->getParent();
-		$this->assertInstanceOf('PHPExcel_Worksheet', $result);
-	}
-
-	public function testSetParent()
-	{
-		//	Setters return the instance to implement the fluent interface
-		$result = $this->_testAutoFilterObject->setParent($this->_mockWorksheetObject);
-		$this->assertInstanceOf('PHPExcel_Worksheet_AutoFilter', $result);
-	}
-
-	public function testGetRange()
-	{
-		$expectedResult = $this->_testInitialRange;
-
-		//	Result should be the active autofilter range
-		$result = $this->_testAutoFilterObject->getRange();
-		$this->assertEquals($expectedResult, $result);
-	}
-
-	public function testSetRange()
-	{
-		$ranges = array('G1:J512' => 'Worksheet1!G1:J512',
-						'K1:N20' => 'K1:N20'
-					   );
-
-		foreach($ranges as $actualRange => $fullRange) {
-			//	Setters return the instance to implement the fluent interface
-			$result = $this->_testAutoFilterObject->setRange($fullRange);
-			$this->assertInstanceOf('PHPExcel_Worksheet_AutoFilter', $result);
-
-			//	Result should be the new autofilter range
-			$result = $this->_testAutoFilterObject->getRange();
-			$this->assertEquals($actualRange, $result);
-		}
-	}
-
-	public function testClearRange()
-	{
-		$expectedResult = '';
-
-		//	Setters return the instance to implement the fluent interface
-		$result = $this->_testAutoFilterObject->setRange();
-		$this->assertInstanceOf('PHPExcel_Worksheet_AutoFilter', $result);
-
-		//	Result should be a clear range
-		$result = $this->_testAutoFilterObject->getRange();
-		$this->assertEquals($expectedResult, $result);
-	}
-
-    /**
-     * @expectedException PHPExcel_Exception
-     */
-	public function testSetRangeInvalidRange()
-	{
-		$expectedResult = 'A1';
-
-		$result = $this->_testAutoFilterObject->setRange($expectedResult);
-	}
-
-	public function testGetColumnsEmpty()
-	{
-		//	There should be no columns yet defined
-		$result = $this->_testAutoFilterObject->getColumns();
-		$this->assertInternalType('array', $result);
-		$this->assertEquals(0, count($result));
-	}
-
-	public function testGetColumnOffset()
-	{
-		$columnIndexes = array(	'H' => 0,
-								'K' => 3,
-								'M' => 5
-							  );
-
-		//	If we request a specific column by its column ID, we should get an
-		//	integer returned representing the column offset within the range
-		foreach($columnIndexes as $columnIndex => $columnOffset) {
-			$result = $this->_testAutoFilterObject->getColumnOffset($columnIndex);
-			$this->assertEquals($columnOffset, $result);
-		}
-	}
-
-    /**
-     * @expectedException PHPExcel_Exception
-     */
-    public function testGetInvalidColumnOffset()
-	{
-		$invalidColumn = 'G';
-
-		$result = $this->_testAutoFilterObject->getColumnOffset($invalidColumn);
-	}
-
-	public function testSetColumnWithString()
-	{
-		$expectedResult = 'L';
-
-		//	Setters return the instance to implement the fluent interface
-		$result = $this->_testAutoFilterObject->setColumn($expectedResult);
-		$this->assertInstanceOf('PHPExcel_Worksheet_AutoFilter', $result);
-
-		$result = $this->_testAutoFilterObject->getColumns();
-		//	Result should be an array of PHPExcel_Worksheet_AutoFilter_Column
-		//	objects for each column we set indexed by the column ID
-		$this->assertInternalType('array', $result);
-		$this->assertEquals(1, count($result));
-		$this->assertArrayHasKey($expectedResult,$result);
-		$this->assertInstanceOf('PHPExcel_Worksheet_AutoFilter_Column', $result[$expectedResult]);
-	}
-
-    /**
-     * @expectedException PHPExcel_Exception
-     */
-    public function testSetInvalidColumnWithString()
-	{
-		$invalidColumn = 'A';
-
-		$result = $this->_testAutoFilterObject->setColumn($invalidColumn);
-	}
-
-	public function testSetColumnWithColumnObject()
-	{
-		$expectedResult = 'M';
-		$columnObject = new PHPExcel_Worksheet_AutoFilter_Column($expectedResult);
-
-		//	Setters return the instance to implement the fluent interface
-		$result = $this->_testAutoFilterObject->setColumn($columnObject);
-		$this->assertInstanceOf('PHPExcel_Worksheet_AutoFilter', $result);
-
-		$result = $this->_testAutoFilterObject->getColumns();
-		//	Result should be an array of PHPExcel_Worksheet_AutoFilter_Column
-		//	objects for each column we set indexed by the column ID
-		$this->assertInternalType('array', $result);
-		$this->assertEquals(1, count($result));
-		$this->assertArrayHasKey($expectedResult,$result);
-		$this->assertInstanceOf('PHPExcel_Worksheet_AutoFilter_Column', $result[$expectedResult]);
-	}
-
-    /**
-     * @expectedException PHPExcel_Exception
-     */
-    public function testSetInvalidColumnWithObject()
-	{
-		$invalidColumn = 'E';
-		$columnObject = new PHPExcel_Worksheet_AutoFilter_Column($invalidColumn);
-
-		$result = $this->_testAutoFilterObject->setColumn($invalidColumn);
-	}
-
-    /**
-     * @expectedException PHPExcel_Exception
-     */
-    public function testSetColumnWithInvalidDataType()
-	{
-		$invalidColumn = 123.456;
-		$columnObject = new PHPExcel_Worksheet_AutoFilter_Column($invalidColumn);
-
-		$result = $this->_testAutoFilterObject->setColumn($invalidColumn);
-	}
-
-	public function testGetColumns()
-	{
-		$columnIndexes = array('L','M');
-
-		foreach($columnIndexes as $columnIndex) {
-			$this->_testAutoFilterObject->setColumn($columnIndex);
-		}
-
-		$result = $this->_testAutoFilterObject->getColumns();
-		//	Result should be an array of PHPExcel_Worksheet_AutoFilter_Column
-		//	objects for each column we set indexed by the column ID
-		$this->assertInternalType('array', $result);
-		$this->assertEquals(count($columnIndexes), count($result));
-		foreach($columnIndexes as $columnIndex) {
-			$this->assertArrayHasKey($columnIndex,$result);
-			$this->assertInstanceOf('PHPExcel_Worksheet_AutoFilter_Column', $result[$columnIndex]);
-		}
-	}
-
-	public function testGetColumn()
-	{
-		$columnIndexes = array('L','M');
-
-		foreach($columnIndexes as $columnIndex) {
-			$this->_testAutoFilterObject->setColumn($columnIndex);
-		}
-
-		//	If we request a specific column by its column ID, we should
-		//	get a PHPExcel_Worksheet_AutoFilter_Column object returned
-		foreach($columnIndexes as $columnIndex) {
-			$result = $this->_testAutoFilterObject->getColumn($columnIndex);
-			$this->assertInstanceOf('PHPExcel_Worksheet_AutoFilter_Column', $result);
-		}
-	}
-
-	public function testGetColumnByOffset()
-	{
-		$columnIndexes = array(	0 => 'H',
-								3 => 'K',
-								5 => 'M'
-							  );
-
-		//	If we request a specific column by its offset, we should
-		//	get a PHPExcel_Worksheet_AutoFilter_Column object returned
-		foreach($columnIndexes as $columnIndex => $columnID) {
-			$result = $this->_testAutoFilterObject->getColumnByOffset($columnIndex);
-			$this->assertInstanceOf('PHPExcel_Worksheet_AutoFilter_Column', $result);
-			$this->assertEquals($result->getColumnIndex(),$columnID);
-		}
-	}
-
-	public function testGetColumnIfNotSet()
-	{
-		//	If we request a specific column by its column ID, we should
-		//	get a PHPExcel_Worksheet_AutoFilter_Column object returned
-		$result = $this->_testAutoFilterObject->getColumn('K');
-		$this->assertInstanceOf('PHPExcel_Worksheet_AutoFilter_Column', $result);
-	}
-
-    /**
-     * @expectedException PHPExcel_Exception
-     */
-	public function testGetColumnWithoutRangeSet()
-	{
-		//	Clear the range
-		$result = $this->_testAutoFilterObject->setRange();
-
-		$result = $this->_testAutoFilterObject->getColumn('A');
-	}
-
-	public function testClearRangeWithExistingColumns()
-	{
-		$expectedResult = '';
-
-		$columnIndexes = array('L','M','N');
-		foreach($columnIndexes as $columnIndex) {
-			$this->_testAutoFilterObject->setColumn($columnIndex);
-		}
-
-		//	Setters return the instance to implement the fluent interface
-		$result = $this->_testAutoFilterObject->setRange();
-		$this->assertInstanceOf('PHPExcel_Worksheet_AutoFilter', $result);
-
-		//	Range should be cleared
-		$result = $this->_testAutoFilterObject->getRange();
-		$this->assertEquals($expectedResult, $result);
-
-		//	Column array should be cleared
-		$result = $this->_testAutoFilterObject->getColumns();
-		$this->assertInternalType('array', $result);
-		$this->assertEquals(0, count($result));
-	}
-
-	public function testSetRangeWithExistingColumns()
-	{
-		$expectedResult = 'G1:J512';
-
-		//	These columns should be retained
-		$columnIndexes1 = array('I','J');
-		foreach($columnIndexes1 as $columnIndex) {
-			$this->_testAutoFilterObject->setColumn($columnIndex);
-		}
-		//	These columns should be discarded
-		$columnIndexes2 = array('K','L','M');
-		foreach($columnIndexes2 as $columnIndex) {
-			$this->_testAutoFilterObject->setColumn($columnIndex);
-		}
-
-		//	Setters return the instance to implement the fluent interface
-		$result = $this->_testAutoFilterObject->setRange($expectedResult);
-		$this->assertInstanceOf('PHPExcel_Worksheet_AutoFilter', $result);
-
-		//	Range should be correctly set
-		$result = $this->_testAutoFilterObject->getRange();
-		$this->assertEquals($expectedResult, $result);
-
-		//	Only columns that existed in the original range and that
-		//		still fall within the new range should be retained
-		$result = $this->_testAutoFilterObject->getColumns();
-		$this->assertInternalType('array', $result);
-		$this->assertEquals(count($columnIndexes1), count($result));
-	}
-
-	public function testClone()
-	{
-		$columnIndexes = array('L','M');
-
-		foreach($columnIndexes as $columnIndex) {
-			$this->_testAutoFilterObject->setColumn($columnIndex);
-		}
-
-		$result = clone $this->_testAutoFilterObject;
-		$this->assertInstanceOf('PHPExcel_Worksheet_AutoFilter', $result);
-	}
-
-}
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Worksheet/CellCollectionTest.php b/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Worksheet/CellCollectionTest.php
deleted file mode 100644
index c2c130d7a3a..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Worksheet/CellCollectionTest.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-
-class CellCollectionTest extends PHPUnit_Framework_TestCase
-{
-
-	public function setUp()
-	{
-		if (!defined('PHPEXCEL_ROOT'))
-		{
-			define('PHPEXCEL_ROOT', APPLICATION_PATH . '/');
-		}
-		require_once(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php');
-	}
-
-
-	public function testCacheLastCell()
-	{
-		$methods = PHPExcel_CachedObjectStorageFactory::getCacheStorageMethods();
-		foreach ($methods as $method) {
-			PHPExcel_CachedObjectStorageFactory::initialize($method);
-			$workbook = new PHPExcel();
-			$cells = array('A1', 'A2');
-			$worksheet = $workbook->getActiveSheet();
-			$worksheet->setCellValue('A1', 1);
-			$worksheet->setCellValue('A2', 2);
-			$this->assertEquals($cells, $worksheet->getCellCollection(), "Cache method \"$method\".");
-			PHPExcel_CachedObjectStorageFactory::finalize();
-		}
-	}
-
-}
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Worksheet/ColumnCellIteratorTest.php b/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Worksheet/ColumnCellIteratorTest.php
deleted file mode 100644
index bef500ca82a..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Worksheet/ColumnCellIteratorTest.php
+++ /dev/null
@@ -1,87 +0,0 @@
-<?php
-
-class ColumnCellIteratorTest extends PHPUnit_Framework_TestCase
-{
-    public $mockWorksheet;
-    public $mockColumnCell;
-
-	public function setUp()
-	{
-		if (!defined('PHPEXCEL_ROOT')) {
-			define('PHPEXCEL_ROOT', APPLICATION_PATH . '/');
-		}
-		require_once(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php');
-        
-        $this->mockCell = $this->getMockBuilder('PHPExcel_Cell')
-            ->disableOriginalConstructor()
-            ->getMock();
-
-        $this->mockWorksheet = $this->getMockBuilder('PHPExcel_Worksheet')
-            ->disableOriginalConstructor()
-            ->getMock();
-
-        $this->mockWorksheet->expects($this->any())
-                 ->method('getHighestRow')
-                 ->will($this->returnValue(5));
-        $this->mockWorksheet->expects($this->any())
-                 ->method('getCellByColumnAndRow')
-                 ->will($this->returnValue($this->mockCell));
-    }
-
-
-	public function testIteratorFullRange()
-	{
-        $iterator = new PHPExcel_Worksheet_ColumnCellIterator($this->mockWorksheet, 'A');
-        $ColumnCellIndexResult = 1;
-        $this->assertEquals($ColumnCellIndexResult, $iterator->key());
-        
-        foreach($iterator as $key => $ColumnCell) {
-            $this->assertEquals($ColumnCellIndexResult++, $key);
-            $this->assertInstanceOf('PHPExcel_Cell', $ColumnCell);
-        }
-	}
-
-	public function testIteratorStartEndRange()
-	{
-        $iterator = new PHPExcel_Worksheet_ColumnCellIterator($this->mockWorksheet, 'A', 2, 4);
-        $ColumnCellIndexResult = 2;
-        $this->assertEquals($ColumnCellIndexResult, $iterator->key());
-        
-        foreach($iterator as $key => $ColumnCell) {
-            $this->assertEquals($ColumnCellIndexResult++, $key);
-            $this->assertInstanceOf('PHPExcel_Cell', $ColumnCell);
-        }
-	}
-
-	public function testIteratorSeekAndPrev()
-	{
-        $iterator = new PHPExcel_Worksheet_ColumnCellIterator($this->mockWorksheet, 'A', 2, 4);
-        $columnIndexResult = 4;
-        $iterator->seek(4);
-        $this->assertEquals($columnIndexResult, $iterator->key());
-
-        for($i = 1; $i < $columnIndexResult-1; $i++) {
-            $iterator->prev();
-            $this->assertEquals($columnIndexResult - $i, $iterator->key());
-        }
-	}
-
-    /**
-     * @expectedException PHPExcel_Exception
-     */
-    public function testSeekOutOfRange()
-    {
-        $iterator = new PHPExcel_Worksheet_ColumnCellIterator($this->mockWorksheet, 'A', 2, 4);
-        $iterator->seek(1);
-    }
-
-    /**
-     * @expectedException PHPExcel_Exception
-     */
-    public function testPrevOutOfRange()
-    {
-        $iterator = new PHPExcel_Worksheet_ColumnCellIterator($this->mockWorksheet, 'A', 2, 4);
-        $iterator->prev();
-    }
-
-}
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Worksheet/ColumnIteratorTest.php b/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Worksheet/ColumnIteratorTest.php
deleted file mode 100644
index 7d78b61791d..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Worksheet/ColumnIteratorTest.php
+++ /dev/null
@@ -1,89 +0,0 @@
-<?php
-
-class ColumnIteratorTest extends PHPUnit_Framework_TestCase
-{
-    public $mockWorksheet;
-    public $mockColumn;
-
-	public function setUp()
-	{
-		if (!defined('PHPEXCEL_ROOT')) {
-			define('PHPEXCEL_ROOT', APPLICATION_PATH . '/');
-		}
-		require_once(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php');
-        
-        $this->mockColumn = $this->getMockBuilder('PHPExcel_Worksheet_Column')
-            ->disableOriginalConstructor()
-            ->getMock();
-
-        $this->mockWorksheet = $this->getMockBuilder('PHPExcel_Worksheet')
-            ->disableOriginalConstructor()
-            ->getMock();
-
-        $this->mockWorksheet->expects($this->any())
-                 ->method('getHighestColumn')
-                 ->will($this->returnValue('E'));
-        $this->mockWorksheet->expects($this->any())
-                 ->method('current')
-                 ->will($this->returnValue($this->mockColumn));
-    }
-
-
-	public function testIteratorFullRange()
-	{
-        $iterator = new PHPExcel_Worksheet_ColumnIterator($this->mockWorksheet);
-        $columnIndexResult = 'A';
-        $this->assertEquals($columnIndexResult, $iterator->key());
-        
-        foreach($iterator as $key => $column) {
-            $this->assertEquals($columnIndexResult++, $key);
-            $this->assertInstanceOf('PHPExcel_Worksheet_Column', $column);
-        }
-	}
-
-	public function testIteratorStartEndRange()
-	{
-        $iterator = new PHPExcel_Worksheet_ColumnIterator($this->mockWorksheet, 'B', 'D');
-        $columnIndexResult = 'B';
-        $this->assertEquals($columnIndexResult, $iterator->key());
-        
-        foreach($iterator as $key => $column) {
-            $this->assertEquals($columnIndexResult++, $key);
-            $this->assertInstanceOf('PHPExcel_Worksheet_Column', $column);
-        }
-	}
-
-	public function testIteratorSeekAndPrev()
-	{
-        $ranges = range('A','E');
-        $iterator = new PHPExcel_Worksheet_ColumnIterator($this->mockWorksheet, 'B', 'D');
-        $columnIndexResult = 'D';
-        $iterator->seek('D');
-        $this->assertEquals($columnIndexResult, $iterator->key());
-
-        for($i = 1; $i < array_search($columnIndexResult, $ranges); $i++) {
-            $iterator->prev();
-            $expectedResult = $ranges[array_search($columnIndexResult, $ranges) - $i];
-            $this->assertEquals($expectedResult, $iterator->key());
-        }
-	}
-
-    /**
-     * @expectedException PHPExcel_Exception
-     */
-    public function testSeekOutOfRange()
-    {
-        $iterator = new PHPExcel_Worksheet_ColumnIterator($this->mockWorksheet, 'B', 'D');
-        $iterator->seek('A');
-    }
-
-    /**
-     * @expectedException PHPExcel_Exception
-     */
-    public function testPrevOutOfRange()
-    {
-        $iterator = new PHPExcel_Worksheet_ColumnIterator($this->mockWorksheet, 'B', 'D');
-        $iterator->prev();
-    }
-
-}
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Worksheet/RowCellIteratorTest.php b/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Worksheet/RowCellIteratorTest.php
deleted file mode 100644
index cdd3c84d4bd..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Worksheet/RowCellIteratorTest.php
+++ /dev/null
@@ -1,89 +0,0 @@
-<?php
-
-class RowCellIteratorTest extends PHPUnit_Framework_TestCase
-{
-    public $mockWorksheet;
-    public $mockRowCell;
-
-	public function setUp()
-	{
-		if (!defined('PHPEXCEL_ROOT')) {
-			define('PHPEXCEL_ROOT', APPLICATION_PATH . '/');
-		}
-		require_once(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php');
-        
-        $this->mockCell = $this->getMockBuilder('PHPExcel_Cell')
-            ->disableOriginalConstructor()
-            ->getMock();
-
-        $this->mockWorksheet = $this->getMockBuilder('PHPExcel_Worksheet')
-            ->disableOriginalConstructor()
-            ->getMock();
-
-        $this->mockWorksheet->expects($this->any())
-                 ->method('getHighestColumn')
-                 ->will($this->returnValue('E'));
-        $this->mockWorksheet->expects($this->any())
-                 ->method('getCellByColumnAndRow')
-                 ->will($this->returnValue($this->mockCell));
-    }
-
-
-	public function testIteratorFullRange()
-	{
-        $iterator = new PHPExcel_Worksheet_RowCellIterator($this->mockWorksheet);
-        $RowCellIndexResult = 'A';
-        $this->assertEquals($RowCellIndexResult, $iterator->key());
-        
-        foreach($iterator as $key => $RowCell) {
-            $this->assertEquals($RowCellIndexResult++, $key);
-            $this->assertInstanceOf('PHPExcel_Cell', $RowCell);
-        }
-	}
-
-	public function testIteratorStartEndRange()
-	{
-        $iterator = new PHPExcel_Worksheet_RowCellIterator($this->mockWorksheet, 2, 'B', 'D');
-        $RowCellIndexResult = 'B';
-        $this->assertEquals($RowCellIndexResult, $iterator->key());
-        
-        foreach($iterator as $key => $RowCell) {
-            $this->assertEquals($RowCellIndexResult++, $key);
-            $this->assertInstanceOf('PHPExcel_Cell', $RowCell);
-        }
-	}
-
-	public function testIteratorSeekAndPrev()
-	{
-        $ranges = range('A','E');
-        $iterator = new PHPExcel_Worksheet_RowCellIterator($this->mockWorksheet, 2, 'B', 'D');
-        $RowCellIndexResult = 'D';
-        $iterator->seek('D');
-        $this->assertEquals($RowCellIndexResult, $iterator->key());
-
-        for($i = 1; $i < array_search($RowCellIndexResult, $ranges); $i++) {
-            $iterator->prev();
-            $expectedResult = $ranges[array_search($RowCellIndexResult, $ranges) - $i];
-            $this->assertEquals($expectedResult, $iterator->key());
-        }
-	}
-
-    /**
-     * @expectedException PHPExcel_Exception
-     */
-    public function testSeekOutOfRange()
-    {
-        $iterator = new PHPExcel_Worksheet_RowCellIterator($this->mockWorksheet, 2, 'B', 'D');
-        $iterator->seek(1);
-    }
-
-    /**
-     * @expectedException PHPExcel_Exception
-     */
-    public function testPrevOutOfRange()
-    {
-        $iterator = new PHPExcel_Worksheet_RowCellIterator($this->mockWorksheet, 2, 'B', 'D');
-        $iterator->prev();
-    }
-
-}
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Worksheet/RowIteratorTest.php b/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Worksheet/RowIteratorTest.php
deleted file mode 100644
index 48d8b6bb1cf..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Worksheet/RowIteratorTest.php
+++ /dev/null
@@ -1,87 +0,0 @@
-<?php
-
-class RowIteratorTest extends PHPUnit_Framework_TestCase
-{
-    public $mockWorksheet;
-    public $mockRow;
-
-	public function setUp()
-	{
-		if (!defined('PHPEXCEL_ROOT')) {
-			define('PHPEXCEL_ROOT', APPLICATION_PATH . '/');
-		}
-		require_once(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php');
-        
-        $this->mockRow = $this->getMockBuilder('PHPExcel_Worksheet_Row')
-            ->disableOriginalConstructor()
-            ->getMock();
-
-        $this->mockWorksheet = $this->getMockBuilder('PHPExcel_Worksheet')
-            ->disableOriginalConstructor()
-            ->getMock();
-
-        $this->mockWorksheet->expects($this->any())
-                 ->method('getHighestRow')
-                 ->will($this->returnValue(5));
-        $this->mockWorksheet->expects($this->any())
-                 ->method('current')
-                 ->will($this->returnValue($this->mockRow));
-    }
-
-
-	public function testIteratorFullRange()
-	{
-        $iterator = new PHPExcel_Worksheet_RowIterator($this->mockWorksheet);
-        $rowIndexResult = 1;
-        $this->assertEquals($rowIndexResult, $iterator->key());
-        
-        foreach($iterator as $key => $row) {
-            $this->assertEquals($rowIndexResult++, $key);
-            $this->assertInstanceOf('PHPExcel_Worksheet_Row', $row);
-        }
-	}
-
-	public function testIteratorStartEndRange()
-	{
-        $iterator = new PHPExcel_Worksheet_RowIterator($this->mockWorksheet, 2, 4);
-        $rowIndexResult = 2;
-        $this->assertEquals($rowIndexResult, $iterator->key());
-        
-        foreach($iterator as $key => $row) {
-            $this->assertEquals($rowIndexResult++, $key);
-            $this->assertInstanceOf('PHPExcel_Worksheet_Row', $row);
-        }
-	}
-
-	public function testIteratorSeekAndPrev()
-	{
-        $iterator = new PHPExcel_Worksheet_RowIterator($this->mockWorksheet, 2, 4);
-        $columnIndexResult = 4;
-        $iterator->seek(4);
-        $this->assertEquals($columnIndexResult, $iterator->key());
-
-        for($i = 1; $i < $columnIndexResult-1; $i++) {
-            $iterator->prev();
-            $this->assertEquals($columnIndexResult - $i, $iterator->key());
-        }
-	}
-
-    /**
-     * @expectedException PHPExcel_Exception
-     */
-    public function testSeekOutOfRange()
-    {
-        $iterator = new PHPExcel_Worksheet_RowIterator($this->mockWorksheet, 2, 4);
-        $iterator->seek(1);
-    }
-
-    /**
-     * @expectedException PHPExcel_Exception
-     */
-    public function testPrevOutOfRange()
-    {
-        $iterator = new PHPExcel_Worksheet_RowIterator($this->mockWorksheet, 2, 4);
-        $iterator->prev();
-    }
-
-}
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Worksheet/WorksheetColumnTest.php b/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Worksheet/WorksheetColumnTest.php
deleted file mode 100644
index c70c38d364f..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Worksheet/WorksheetColumnTest.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-
-class WorksheetColumnTest extends PHPUnit_Framework_TestCase
-{
-    public $mockWorksheet;
-    public $mockColumn;
-
-	public function setUp()
-	{
-		if (!defined('PHPEXCEL_ROOT')) {
-			define('PHPEXCEL_ROOT', APPLICATION_PATH . '/');
-		}
-		require_once(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php');
-        
-        $this->mockWorksheet = $this->getMockBuilder('PHPExcel_Worksheet')
-            ->disableOriginalConstructor()
-            ->getMock();
-        $this->mockWorksheet->expects($this->any())
-                 ->method('getHighestRow')
-                 ->will($this->returnValue(5));
-    }
-
-
-	public function testInstantiateColumnDefault()
-	{
-        $column = new PHPExcel_Worksheet_Column($this->mockWorksheet);
-        $this->assertInstanceOf('PHPExcel_Worksheet_Column', $column);
-        $columnIndex = $column->getColumnIndex();
-        $this->assertEquals('A', $columnIndex);
-	}
-
-	public function testInstantiateColumnSpecified()
-	{
-        $column = new PHPExcel_Worksheet_Column($this->mockWorksheet, 'E');
-        $this->assertInstanceOf('PHPExcel_Worksheet_Column', $column);
-        $columnIndex = $column->getColumnIndex();
-        $this->assertEquals('E', $columnIndex);
-	}
-
-	public function testGetCellIterator()
-	{
-        $column = new PHPExcel_Worksheet_Column($this->mockWorksheet);
-        $cellIterator = $column->getCellIterator();
-        $this->assertInstanceOf('PHPExcel_Worksheet_ColumnCellIterator', $cellIterator);
-	}
-}
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Worksheet/WorksheetRowTest.php b/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Worksheet/WorksheetRowTest.php
deleted file mode 100644
index 2761b52be61..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/Classes/PHPExcel/Worksheet/WorksheetRowTest.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-
-class WorksheetRowTest extends PHPUnit_Framework_TestCase
-{
-    public $mockWorksheet;
-    public $mockRow;
-
-	public function setUp()
-	{
-		if (!defined('PHPEXCEL_ROOT')) {
-			define('PHPEXCEL_ROOT', APPLICATION_PATH . '/');
-		}
-		require_once(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php');
-        
-        $this->mockWorksheet = $this->getMockBuilder('PHPExcel_Worksheet')
-            ->disableOriginalConstructor()
-            ->getMock();
-        $this->mockWorksheet->expects($this->any())
-                 ->method('getHighestColumn')
-                 ->will($this->returnValue('E'));
-    }
-
-
-	public function testInstantiateRowDefault()
-	{
-        $row = new PHPExcel_Worksheet_Row($this->mockWorksheet);
-        $this->assertInstanceOf('PHPExcel_Worksheet_Row', $row);
-        $rowIndex = $row->getRowIndex();
-        $this->assertEquals(1, $rowIndex);
-	}
-
-	public function testInstantiateRowSpecified()
-	{
-        $row = new PHPExcel_Worksheet_Row($this->mockWorksheet, 5);
-        $this->assertInstanceOf('PHPExcel_Worksheet_Row', $row);
-        $rowIndex = $row->getRowIndex();
-        $this->assertEquals(5, $rowIndex);
-	}
-
-	public function testGetCellIterator()
-	{
-        $row = new PHPExcel_Worksheet_Row($this->mockWorksheet);
-        $cellIterator = $row->getCellIterator();
-        $this->assertInstanceOf('PHPExcel_Worksheet_RowCellIterator', $cellIterator);
-	}
-}
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/bootstrap.php b/htdocs/includes/phpoffice/phpexcel/unitTests/bootstrap.php
deleted file mode 100644
index 8e8cdb39a9c..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/bootstrap.php
+++ /dev/null
@@ -1,49 +0,0 @@
-<?php
-/**
- * $Id: bootstrap.php 2892 2011-08-14 15:11:50Z markbaker@phpexcel.net $
- *
- * @copyright   Copyright (C) 2011-2014 PHPExcel. All rights reserved.
- * @package     PHPExcel
- * @subpackage  PHPExcel Unit Tests
- * @author      Mark Baker
- */
-
-chdir(dirname(__FILE__));
-
-setlocale(LC_ALL, 'en_US.utf8');
-
-// PHP 5.3 Compat
-date_default_timezone_set('Europe/London');
-
-// Define path to application directory
-defined('APPLICATION_PATH')
-	|| define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../Classes'));
-
-// Define path to application tests directory
-defined('APPLICATION_TESTS_PATH')
-	|| define('APPLICATION_TESTS_PATH', realpath(dirname(__FILE__) ));
-
-// Define application environment
-defined('APPLICATION_ENV') || define('APPLICATION_ENV', 'ci');
-
-// Ensure library/ is on include_path
-set_include_path(implode(PATH_SEPARATOR, array(
-	realpath(APPLICATION_PATH . '/../Classes'),
-	'./',
-	dirname(__FILE__),
-	get_include_path(),
-)));
-
-
-/**
- * @todo Sort out xdebug in vagrant so that this works in all sandboxes
- * For now, it is safer to test for it rather then remove it.
- */
-echo "PHPExcel tests beginning\n";
-
-if(extension_loaded('xdebug')) {
-	echo "Xdebug extension loaded and running\n";
-	xdebug_enable();
-} else {
-	echo 'Xdebug not found, you should run the following at the command line: echo "zend_extension=/usr/lib64/php/modules/xdebug.so" > /etc/php.d/xdebug.ini' . "\n";
-}
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/custom/Complex.php b/htdocs/includes/phpoffice/phpexcel/unitTests/custom/Complex.php
deleted file mode 100644
index a0ac2d2c9d0..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/custom/Complex.php
+++ /dev/null
@@ -1,114 +0,0 @@
-<?php
-
-class Complex {
-
-	private $realPart = 0;
-	private $imaginaryPart = 0;
-	private $suffix = NULL;
-
-	public static function _parseComplex($complexNumber)
-	{
-		//	Test for real number, with no imaginary part
-		if (is_numeric($complexNumber))
-			return array( $complexNumber, 0, NULL );
-
-		//	Fix silly human errors
-		if (strpos($complexNumber,'+-') !== FALSE)
-			$complexNumber = str_replace('+-','-',$complexNumber);
-		if (strpos($complexNumber,'++') !== FALSE)
-			$complexNumber = str_replace('++','+',$complexNumber);
-		if (strpos($complexNumber,'--') !== FALSE)
-			$complexNumber = str_replace('--','-',$complexNumber);
-
-		//	Basic validation of string, to parse out real and imaginary parts, and any suffix
-		$validComplex = preg_match('/^([\-\+]?(\d+\.?\d*|\d*\.?\d+)([Ee][\-\+]?[0-2]?\d{1,3})?)([\-\+]?(\d+\.?\d*|\d*\.?\d+)([Ee][\-\+]?[0-2]?\d{1,3})?)?(([\-\+]?)([ij]?))$/ui',$complexNumber,$complexParts);
-
-		if (!$validComplex) {
-			//	Neither real nor imaginary part, so test to see if we actually have a suffix
-			$validComplex = preg_match('/^([\-\+]?)([ij])$/ui',$complexNumber,$complexParts);
-			if (!$validComplex) {
-				throw new Exception('COMPLEX: Invalid complex number');
-			}
-			//	We have a suffix, so set the real to 0, the imaginary to either 1 or -1 (as defined by the sign)
-			$imaginary = 1;
-			if ($complexParts[1] === '-') {
-				$imaginary = 0 - $imaginary;
-			}
-			return array(0, $imaginary, $complexParts[2]);
-		}
-
-		//	If we don't have an imaginary part, identify whether it should be +1 or -1...
-		if (($complexParts[4] === '') && ($complexParts[9] !== '')) {
-			if ($complexParts[7] !== $complexParts[9]) {
-				$complexParts[4] = 1;
-				if ($complexParts[8] === '-') {
-					$complexParts[4] = -1;
-				}
-			//	... or if we have only the real and no imaginary part (in which case our real should be the imaginary)
-			} else {
-				$complexParts[4] = $complexParts[1];
-				$complexParts[1] = 0;
-			}
-		}
-
-		//	Return real and imaginary parts and suffix as an array, and set a default suffix if user input lazily
-		return array( $complexParts[1],
-					  $complexParts[4],
-					  !empty($complexParts[9]) ? $complexParts[9] : 'i'
-					);
-	}	//	function _parseComplex()
-
-
-	public function __construct($realPart, $imaginaryPart = null, $suffix = 'i')
-	{
-		if ($imaginaryPart === null) {
-			if (is_array($realPart)) {
-				//	We have an array of (potentially) real and imaginary parts, and any suffix
-				list ($realPart, $imaginaryPart, $suffix) = array_values($realPart) + array(0.0, 0.0, 'i');
-			} elseif((is_string($realPart)) || (is_numeric($realPart))) {
-				//	We've been given a string to parse to extract the real and imaginary parts, and any suffix
-				list ($realPart, $imaginaryPart, $suffix) = self::_parseComplex($realPart);
-			}
-		}
-
-		//	Set parsed values in our properties
-		$this->realPart = (float) $realPart;
-		$this->imaginaryPart = (float) $imaginaryPart;
-		$this->suffix = strtolower($suffix);
-	}
-
-	public function getReal()
-	{
-		return $this->realPart;
-	}
-
-	public function getImaginary()
-	{
-		return $this->imaginaryPart;
-	}
-
-	public function getSuffix()
-	{
-		return $this->suffix;
-	}
-
-	public function __toString() {
-		$str = "";
-		if ($this->imaginaryPart != 0.0) {
-			if (abs($this->imaginaryPart) != 1.0) {
-				$str .= $this->imaginaryPart . $this->suffix;
-			} else {
-				$str .= (($this->imaginaryPart < 0.0) ? '-' : ''). $this->suffix;
-			}
-		}
-		if ($this->realPart != 0.0) {
-			if (($str) && ($this->imaginaryPart > 0.0))
-				$str = "+" . $str;
-			$str = $this->realPart . $str;
-		}
-		if (!$str)
-			$str = "0.0";
-		return $str;
-	}
-
-}
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/custom/complexAssert.php b/htdocs/includes/phpoffice/phpexcel/unitTests/custom/complexAssert.php
deleted file mode 100644
index 5b64e4ced51..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/custom/complexAssert.php
+++ /dev/null
@@ -1,62 +0,0 @@
-<?php
-
-include_once dirname(__FILE__).'/Complex.php';
-
-
-class complexAssert {
-
-	private $_errorMessage	= '';
-
-    public function assertComplexEquals($expected, $actual, $delta = 0)
-    {
-		if ($expected{0} === '#') {
-			//	Expecting an error, so we do a straight string comparison
-			if ($expected === $actual) {
-				return TRUE;
-			}
-			$this->_errorMessage = 'Expected Error: ' .
-			                       $actual . ' !== ' . $expected;
-            return FALSE;
-		}
-
-        $expectedComplex = new Complex($expected);
-        $actualComplex = new Complex($actual);
-
-		if (!is_numeric($actualComplex->getReal()) || !is_numeric($expectedComplex->getReal())) {
-			if ($actualComplex->getReal() !== $expectedComplex->getReal()) {
-				$this->_errorMessage = 'Mismatched String: ' .
-				                       $actualComplex->getReal() . ' !== ' . $expectedComplex->getReal();
-	            return FALSE;
-			}
-			return TRUE;
-		}
-
-        if ($actualComplex->getReal() < ($expectedComplex->getReal() - $delta) ||
-            $actualComplex->getReal() > ($expectedComplex->getReal() + $delta)) {
-			$this->_errorMessage = 'Mismatched Real part: ' .
-			                       $actualComplex->getReal() . ' != ' . $expectedComplex->getReal();
-            return FALSE;
-        }
-
-        if ($actualComplex->getImaginary() < ($expectedComplex->getImaginary() - $delta) ||
-            $actualComplex->getImaginary() > ($expectedComplex->getImaginary() + $delta)) {
-			$this->_errorMessage = 'Mismatched Imaginary part: ' .
-			                       $actualComplex->getImaginary() . ' != ' . $expectedComplex->getImaginary();
-            return FALSE;
-        }
-
-        if ($actualComplex->getSuffix() !== $actualComplex->getSuffix()) {
-			$this->_errorMessage = 'Mismatched Suffix: ' .
-			                       $actualComplex->getSuffix() . ' != ' . $expectedComplex->getSuffix();
-            return FALSE;
-		}
-
-        return TRUE;
-    }
-
-
-	public function getErrorMessage() {
-		return $this->_errorMessage;
-	}
-
-}
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/phpunit-cc.xml b/htdocs/includes/phpoffice/phpexcel/unitTests/phpunit-cc.xml
deleted file mode 100644
index 7e598cc9ab4..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/phpunit-cc.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?> 
-<phpunit bootstrap="./bootstrap.php"
-    backupGlobals="true"
-    colors="true" 
-    convertErrorsToExceptions="true" 
-    convertNoticesToExceptions="true" 
-    convertWarningsToExceptions="true" 
-    processIsolation="false" 
-    syntaxCheck="true" 
-    verbose="true" 
-    strict="true"
-    stopOnError="false"
-    stopOnFailure="false"
-    stopOnIncomplete="false"
-    stopOnSkipped="false">
-    <php>
-        <ini name="memory_limit" value="2048M"/>
-    </php>
-    <testsuite name="PHPExcel Unit Test Suite">
-        <directory suffix="Test.php">./Classes</directory>
-    </testsuite>
-    <filter>
-        <whitelist>
-            <directory suffix=".php">../Classes</directory>
-            <exclude>
-                <directory>../Classes/PHPExcel/Shared/PCLZip</directory>
-                <directory>../Classes/PHPExcel/Shared/JAMA</directory>
-                <directory>../Classes/PHPExcel/Writer/PDF</directory>
-            </exclude>
-        </whitelist>
-    </filter>
-    <logging>
-        <log type="coverage-html" target="./codeCoverage" charset="UTF-8"
-             yui="true" highlight="false"
-             lowUpperBound="35" highLowerBound="70"/>
-        <log type="coverage-clover" target="./codeCoverage/codeCoverage.xml"/>
-        <log type="metrics-xml" target="./metrics/metrics.xml"/>
-        <log type="test-xml" target="./testResults/logfile.xml" logIncompleteSkipped="false"/>
-    </logging>
-</phpunit> 
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/phpunit.xml b/htdocs/includes/phpoffice/phpexcel/unitTests/phpunit.xml
deleted file mode 100644
index 2c2ff360ae0..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/phpunit.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?> 
-<phpunit bootstrap="./bootstrap.php"
-    backupGlobals="true"
-    colors="true" 
-    convertErrorsToExceptions="true" 
-    convertNoticesToExceptions="true" 
-    convertWarningsToExceptions="true" 
-    processIsolation="false" 
-    syntaxCheck="true" 
-    verbose="true" 
-    strict="true"
-    stopOnError="false"
-    stopOnFailure="false"
-    stopOnIncomplete="false"
-    stopOnSkipped="false">
-    <php>
-        <ini name="memory_limit" value="2048M"/>
-    </php>
-    <testsuite name="PHPExcel Unit Test Suite">
-        <directory suffix="Test.php">./Classes</directory>
-    </testsuite>
-    <filter>
-        <whitelist>
-            <directory suffix=".php">../Classes</directory>
-            <exclude>
-                <directory>../Classes/PHPExcel/Shared/PCLZip</directory>
-                <directory>../Classes/PHPExcel/Shared/JAMA</directory>
-                <directory>../Classes/PHPExcel/Writer/PDF</directory>
-            </exclude>
-        </whitelist>
-    </filter>
-</phpunit> 
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/DATE.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/DATE.data
deleted file mode 100644
index cdcc776b044..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/DATE.data
+++ /dev/null
@@ -1,79 +0,0 @@
-# Year	Month	Day		Result		Comments
-18,	11,	11,		6890
-1900,	1,	1,		1		//	Excel 1900 Calendar Base Date
-1900,	2,	28,		59		//	Day before Excel mythical 1900 leap day
-1900,	2,	29,		60		//	Excel mythical 1900 leap day
-1900,	3,	1,		61		//	Day after Excel mythical 1900 leap day
-1901,	12,	13,		713		//	Day after Excel mythical 1900 leap day
-1901,	12,	14,		714		//	PHP 32-bit Earliest Date
-1903,	12,	31,		1461
-1904,	1,	1,		1462		//	Excel 1904 Calendar Base Date
-1904,	1,	2,		1463
-1960,	12,	19,		22269
-1970,	1,	1,		25569		//	PHP Base Date
-1982,	12,	7,		30292
-2008,	6,	12,		39611
-2038,	1,	19,		50424		//	PHP 32-bit Latest Date
-2038,	1,	20,		50425		//	Day after PHP 32-bit Latest Date
-2008,	1,	1,		39448
-2008,	1,	,		39447
-2008,	1,	-1,		39446
-2008,	1,	-30,		39417
-2008,	1,	-31,		39416
-2008,	1,	-365,		39082
-2008,	3,	1,		39508
-2008,	3,	,		39507
-2008,	3,	-1,		39506
-2008,	3,	-365,		39142
-2008,	,	1,		39417
-2008,	-1,	1,		39387
-2008,	-11,	1,		39083
-2008,	-12,	1,		39052
-2008,	-13,	1,		39022
-2008,	-13,	30,		39051
-2008,	-13,	,		39021
-2008,	-13,	-30,		38991
-2008,	-13,	-31,		38990
-2008,	13,	1,		39814
-2007,	15,	,		39507
-2008,	26,	1,		40210
-2008,	26,	-10,		40199
-2008,	-26,	61,		38686
-2010,	-15,	-50,		39641
-2010,	-15,	50,		39741
-2010,	15,	-50,		40552
-2010,	15,	50,		40652
-2010,	1.5,	1,		40179
-2010,	1.5,	0,		40178
-2010,	0,	1.5,		40148
-2010,	1,	1.5,		40179
-2012,	6,	15,		41075
-2012,	6,	,		41060
-2012,	,	15,		40892
-,	6,	15,		167
-10,	6,	15,		3819
-10,	,	,		3622
-,	10,	,		274
-,	,	10,		"#NUM!"
--20,	,	,		"#NUM!"
--20,	6,	15,		"#NUM!"
-9999,	12,	31,		2958465		//	Excel Maximum Date
-10000,	1,	1,		"#NUM!"		//	Exceeded Excel Maximum Date
-2008,	8,	10,		39670
-2008,	12,	31,		39813
-2008,	8,	32,		39692
-2008,	13,	31,		39844
-2009,	1,	0,		39813
-2009,	1,	-1,		39812
-2009,	0,	0,		39782
-2009,	0,	-1,		39781
-2009,	-1,	0,		39752
-2009,	-1,	-1,		39751
-2010,	0,	-1,		40146
-2010,	5,	31,		40329
-2010,	1,	'21st',		40199		//	MS Excel will fail with a #VALUE return, but PHPExcel can parse this date
-2010,	"March",'21st',		40258		//	MS Excel will fail with a #VALUE return, but PHPExcel can parse this date
-2010,	"March",21,		40258		//	MS Excel will fail with a #VALUE return, but PHPExcel can parse this date
-"ABC",	1,	21,		"#VALUE!"
-2010,	"DEF",	21,		"#VALUE!"
-2010,	3,	"GHI",		"#VALUE!"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/DATEDIF.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/DATEDIF.data
deleted file mode 100644
index e8d9e06bfac..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/DATEDIF.data
+++ /dev/null
@@ -1,96 +0,0 @@
-"ABC",		"2007-1-10",	"Y",	"#VALUE!"
-"2007-1-1",	"DEF",		"Y",	"#VALUE!"
-"2007-1-1",	"2007-1-10",	"XYZ",	"#VALUE!"
-"2007-1-10",	"2007-1-1",	"Y",	"#NUM!"
-"2007-12-31",	"2008-1-10",	"Y",	0
-"2007-1-1",	"2007-1-10",	"Y",	0
-"2007-1-1",	"2007-1-10",	"M",	0
-"2007-1-1",	"2007-1-10",	"D",	9
-"2007-1-1",	"2007-1-10",	"YM",	0
-"2007-1-1",	"2007-1-10",	"YD",	9
-"2007-1-1",	"2007-1-10",	"MD",	9
-"2007-1-1",	"2007-12-31",	"Y",	0
-"2007-1-1",	"2007-12-31",	"M",	11
-"2007-1-1",	"2007-12-31",	"D",	364
-"2007-1-1",	"2007-12-31",	"YM",	11
-"2007-1-1",	"2007-12-31",	"YD",	364
-"2007-1-1",	"2007-12-31",	"MD",	30
-"2007-1-1",	"2008-7-1",	"Y",	1
-"2007-1-1",	"2008-7-1",	"M",	18
-"2007-1-1",	"2008-7-1",	"D",	547
-"2007-1-1",	"2008-7-1",	"YM",	6
-"2007-1-1",	"2008-7-1",	"YD",	181
-"2007-1-1",	"2008-7-1",	"MD",	0
-"2007-1-1",	"2007-1-31",	"Y",	0
-"2007-1-1",	"2007-1-31",	"M",	0
-"2007-1-1",	"2007-1-31",	"D",	30
-"2007-1-1",	"2007-1-31",	"YM",	0
-"2007-1-1",	"2007-1-31",	"YD",	30
-"2007-1-1",	"2007-1-31",	"MD",	30
-"2007-1-1",	"2007-2-1",	"Y",	0
-"2007-1-1",	"2007-2-1",	"M",	1
-"2007-1-1",	"2007-2-1",	"D",	31
-"2007-1-1",	"2007-2-1",	"YM",	1
-"2007-1-1",	"2007-2-1",	"YD",	31
-"2007-1-1",	"2007-2-1",	"MD",	0
-"2007-1-1",	"2007-2-28",	"Y",	0
-"2007-1-1",	"2007-2-28",	"M",	1
-"2007-1-1",	"2007-2-28",	"D",	58
-"2007-1-1",	"2007-2-28",	"YM",	1
-"2007-1-1",	"2007-2-28",	"YD",	58
-"2007-1-1",	"2007-2-28",	"MD",	27
-"2007-1-31",	"2007-2-1",	"Y",	0
-"2007-1-31",	"2007-2-1",	"M",	0
-"2007-1-31",	"2007-2-1",	"D",	1
-"2007-1-31",	"2007-2-1",	"YM",	0
-"2007-1-31",	"2007-2-1",	"YD",	1
-"2007-1-31",	"2007-2-1",	"MD",	1
-"2007-1-31",	"2007-3-1",	"Y",	0
-"2007-1-31",	"2007-3-1",	"M",	1
-"2007-1-31",	"2007-3-1",	"D",	29
-"2007-1-31",	"2007-3-1",	"YM",	1
-"2007-1-31",	"2007-3-1",	"YD",	29
-"2007-1-31",	"2007-3-1",	"MD",	-2
-"2007-1-31",	"2007-3-31",	"Y",	0
-"2007-1-31",	"2007-3-31",	"M",	2
-"2007-1-31",	"2007-3-31",	"D",	59
-"2007-1-31",	"2007-3-31",	"YM",	2
-"2007-1-31",	"2007-3-31",	"YD",	59
-"2007-1-31",	"2007-3-31",	"MD",	0
-"2008-1-1",	"2008-9-1",	"Y",	0
-"2008-1-1",	"2008-9-1",	"M",	8
-"2008-1-1",	"2008-9-1",	"D",	244
-"2008-1-1",	"2008-9-1",	"YM",	8
-"2008-1-1",	"2008-9-1",	"YD",	244
-"2008-1-1",	"2008-9-1",	"MD",	0
-"2007-2-1",	"2008-4-1",	"Y",	1
-"2007-2-1",	"2008-4-1",	"M",	14
-"2007-2-1",	"2008-4-1",	"D",	425
-"2007-2-1",	"2008-4-1",	"YM",	2
-"2007-2-1",	"2008-4-1",	"YD",	59
-"2007-2-1",	"2008-4-1",	"MD",	0
-"1960-12-19",	"2008-6-28",	"Y",	47
-"1960-12-19",	"2008-6-28",	"M",	570
-"1960-12-19",	"2008-6-28",	"D",	17358
-"1960-12-19",	"2008-6-28",	"YM",	6
-"1960-12-19",	"2008-6-28",	"YD",	191
-"1960-12-19",	"2008-6-28",	"MD",	9
-"1982-12-7",	"2008-6-28",	"Y",	25
-"1982-12-7",	"2008-6-28",	"M",	306
-"1982-12-7",	"2008-6-28",	"D",	9335
-"1982-12-7",	"2008-6-28",	"YM",	6
-"1982-12-7",	"2008-6-28",	"YD",	203
-"1982-12-7",	"2008-6-28",	"MD",	21
-"2007-12-25",	"2010-3-17",	"Y",	2
-"2007-12-25",	"2010-3-17",	"M",	26
-"2007-12-25",	"2010-3-17",	"D",	813
-"2007-12-25",	"2010-3-17",	"YM",	2
-"2007-12-25",	"2010-3-17",	"YD",	82
-"2007-12-25",	"2010-3-17",	"MD",	20
-"19-12-1960",	"26-01-2012"	"Y",	51
-"19-12-1960",	"26-01-2012"	"M",	613
-"19-12-1960",	"26-01-2012"	"D",	18665
-"19-12-1960",	"26-01-2012"	"YM",	1
-"19-12-1960",	"26-01-2012"	"YD",	38
-"19-12-1960",	"26-01-2012"	"MD",	7
-"19-12-1960",	"12-12-2012"	"Y",	50
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/DATEVALUE.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/DATEVALUE.data
deleted file mode 100644
index f4b0f68e369..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/DATEVALUE.data
+++ /dev/null
@@ -1,66 +0,0 @@
-# Date String			Result
-"25-Dec-1899",			"#VALUE!"
-"31-Dec-1899",			"#VALUE!"
-"1-Jan-1900",			1
-"1900/2/28",			59
-"29-02-1900",			60
-"29th February 1900",		60		//	MS Excel will fail with a #VALUE return, but PHPExcel can parse this date
-"1900/3/1",			61
-"13-12-1901",			713
-"14-12-1901",			714
-"1903/12/31",			1461
-"1-Jan-1904",			1462
-"2nd-Jan-1904",			1463		//	MS Excel will fail with a #VALUE return, but PHPExcel can parse this date
-"19-12-1960",			22269
-"1st January 1970",		25569		//	MS Excel will fail with a #VALUE return, but PHPExcel can parse this date
-"7-Dec-1982",			30292
-"1-1-2008",			39448
-"2038-01-19",			50424
-"2-6-2008",			39601
-"December 25th 2008",		39807		//	MS Excel will fail with a #VALUE return, but PHPExcel can parse this date
-"1 Jan-2008",			39448
-"12-31-2008",			39813		//	MS Excel success or failure dependent on country settings
-"31-12-2008",			39813		//		PHPExcel tries to handle both US and UK formats, irrespective of country settings
-"8/22/2008",			39682		//	MS Excel success or failure dependent on country settings
-"22/8/2008",			39682		//		PHPExcel tries to handle both US and UK formats, irrespective of country settings
-"22/8/08",			39682
-"22-AUG-2008",			39682
-"2008/02/23",			39501
-"6-7-2008",			39635
-"28-2-2007",			39141		//	MS Excel success or failure dependent on country settings
-"2-28-2007",			39141		//		PHPExcel tries to handle both US and UK formats, irrespective of country settings
-"29-2-2007",			"#VALUE!"	//	Should fail because it's an invalid date, but PHPExcel currently adjusts to 1-3-2007 - FIX NEEDED
-"1/1/1999",			36161
-"1954-07-20",			19925
-"22 August 98",			36029
-"1st March 2007",		39142		//	MS Excel will fail with a #VALUE return, but PHPExcel can parse this date
-"The 1st day of March 2007",	"#VALUE!"
-"1 Jan",			41275
-"31/12",			41639
-"12/31",			11658		//	Excel reads as 1st December 1931, not 31st December in current year
-"5-JUL",			41460
-"5 Jul",			41460
-"12/2008",			39783
-"10/32",			11963
-11,				"#VALUE!"
-TRUE,				"#VALUE!"
-FALSE,				"#VALUE!"
-1,				"#VALUE!"
-12345,				"#VALUE!"
-12,				"#VALUE!"
-"12-Feb-2010",			40221
-"Feb-12-2010",			40221		//	MS Excel will fail with a #VALUE return, but PHPExcel can parse this date
-"February-12-2010",		40221		//	MS Excel will fail with a #VALUE return, but PHPExcel can parse this date
-"February 12 2010",		40221		//	MS Excel will fail with a #VALUE return, but PHPExcel can parse this date
-"18 Feb 2010",			40227
-"17th 3rd 2010",		40254		//	MS Excel will fail with a #VALUE return, but PHPExcel can parse this date
-"Feb 18th 2010",		40227		//	MS Excel will fail with a #VALUE return, but PHPExcel can parse this date
-"1st Feb 2010",			40210		//	MS Excel will fail with a #VALUE return, but PHPExcel can parse this date
-"1st-Feb-2010",			40210		//	MS Excel will fail with a #VALUE return, but PHPExcel can parse this date
-"1me Fev 2010",			"#VALUE!"
-"February 1st 2010",		40210		//	MS Excel will fail with a #VALUE return, but PHPExcel can parse this date
-"2nd Feb 2010",			40211		//	MS Excel will fail with a #VALUE return, but PHPExcel can parse this date
-"Second Feb 2010",		"#VALUE!"
-"First August 2010",		"#VALUE!"
-"1st August 2010",		40391		//	MS Excel will fail with a #VALUE return, but PHPExcel can parse this date
-"15:30:25",			0
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/DAY.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/DAY.data
deleted file mode 100644
index bde1e8b5e11..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/DAY.data
+++ /dev/null
@@ -1,8 +0,0 @@
-# Date Value	Result
-22269,		19
-30348,		1
-30843,		10
-"11-Nov-1918",	11
-"28-Feb-1904",	28
-"Invalid",	"#VALUE!"
--1,		"#NUM!"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/DAYS360.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/DAYS360.data
deleted file mode 100644
index c7abb61285b..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/DAYS360.data
+++ /dev/null
@@ -1,34 +0,0 @@
-"ABC",		"2007-1-10",	FALSE,	"#VALUE!"
-"2007-1-1",	"DEF",		TRUE,	"#VALUE!"
-"2007-1-1",	"2007-1-10",	"XYZ",	"#VALUE!"
-"2007-1-10",	"2007-1-1",	"Y",	"#VALUE!"
-"2007-1-1",	"2007-1-10",	FALSE,	9
-"2007-1-1",	"2007-1-10",	TRUE,	9
-"2007-1-1",	"2007-12-31",	FALSE,	360
-"2007-1-1",	"2007-12-31",	TRUE,	359
-"2007-1-1",	"2008-7-1",	FALSE,	540	
-"2007-1-1",	"2008-7-1",	TRUE,	540	
-"2007-1-1",	"2007-1-31",	FALSE,	30	
-"2007-1-1",	"2007-1-31",	TRUE,	29	
-"2007-1-1",	"2007-2-1",	FALSE,	30	
-"2007-1-1",	"2007-2-1",	TRUE,	30	
-"2007-1-1",	"2007-2-28",	FALSE,	57	
-"2007-1-1",	"2007-2-28",	TRUE,	57	
-"2007-1-31",	"2007-2-1",	FALSE,	1	
-"2007-1-31",	"2007-2-1",	TRUE,	1	
-"2007-1-31",	"2007-3-1",	FALSE,	31	
-"2007-1-31",	"2007-3-1",	TRUE,	31	
-"2007-1-31",	"2007-3-31",	FALSE,	60	
-"2007-1-31",	"2007-3-31",	TRUE,	60	
-"2008-1-1",	"2008-9-1",	FALSE,	240	
-"2008-1-1",	"2008-9-1",	TRUE,	240	
-"2007-2-1",	"2008-4-1",	FALSE,	420	
-"2007-2-1",	"2008-4-1",	TRUE,	420	
-"1960-12-19",	"2008-6-28",	FALSE,	17109
-"1960-12-19",	"2008-6-28",	TRUE,	17109
-"1982-12-7",	"2008-6-28",	FALSE,	9201
-"1982-12-7",	"2008-6-28",	TRUE,	9201
-"2000-2-28",	"2000-3-31",	FALSE,	33
-"2000-2-28",	"2000-3-31",	TRUE,	32
-"2000-2-29",	"2000-3-31",	FALSE,	30
-"2000-2-29",	"2000-3-31",	TRUE,	31
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/EDATE.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/EDATE.data
deleted file mode 100644
index b7b13e09e31..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/EDATE.data
+++ /dev/null
@@ -1,15 +0,0 @@
-"15-Jan-2008",	1,	39493
-"15-Jan-2008",	-1,	39431
-"15-Jan-2008",	2,	39522
-"31-Mar-2007",	1,	39202
-"31-Mar-2007",	-1,	39141
-"31-Mar-2008",	-1,	39507
-"31-Mar-2008",	-4,	39416
-"29-Feb-2008",	-12,	39141
-"15-Mar-2007",	3,	39248
-22269.0,	0,	22269
-22269.0,	2,	22331
-22269.0,	110,	25618
-22269.0,	-110,	18920
-"15-Mar-2007",	"ABC",	"#VALUE!"
-"Invalid",	12,	"#VALUE!"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/EOMONTH.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/EOMONTH.data
deleted file mode 100644
index 130a769c78d..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/EOMONTH.data
+++ /dev/null
@@ -1,17 +0,0 @@
-"15-Jan-2008",	1,	39507
-"15-Jan-2008",	-1,	39447
-"15-Jan-2008",	2,	39538
-"31-Mar-2007",	1,	39202
-"31-Mar-2007",	-1,	39141
-"31-Mar-2008",	-1,	39507
-"31-Mar-2008",	-4,	39416
-"29-Feb-2008",	-12,	39141
-"15-Mar-2007",	3,	39263
-22269.0,	0,	22281
-22269.0,	2,	22340
-22269.0,	110,	25627
-22269.0,	-110,	18932
-22269.0,	3,	22371
-22269.0,	3.75,	22371
-"15-Mar-2007",	"ABC",	"#VALUE!"
-"Invalid",	12,	"#VALUE!"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/HOUR.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/HOUR.data
deleted file mode 100644
index c07d0dccd1e..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/HOUR.data
+++ /dev/null
@@ -1,12 +0,0 @@
-0.25,			6
-0.75,			18
-0.5,			12
-0.6,			14
-"11-Nov-1918 11:11",	11
-"11:59 PM",		23
-"23:59:59",		23
-3600,			2
--3600,			0
-7200,			3
-65535,			19
-"1 O'Clock",		"#VALUE!"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/MINUTE.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/MINUTE.data
deleted file mode 100644
index 2931c750095..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/MINUTE.data
+++ /dev/null
@@ -1,12 +0,0 @@
-0.2,			48
-0.4,			36
-0.6,			24
-0.8,			12
-"11-Nov-1918 11:15",	15
-"11:59 PM",		59
-"23:59:59",		59
-3600,			0
--3600,			0
-12500,			28
-65535,			12
-"Half past 1 O'Clock",	"#VALUE!"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/MONTH.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/MONTH.data
deleted file mode 100644
index 6336ffdabb3..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/MONTH.data
+++ /dev/null
@@ -1,12 +0,0 @@
-,		1
-0,		1
-22269.0,	12
-30348.0,	2
-30843.0,	6
-"11-Nov-1918",	11
-"28-Feb-1904",	2
-"01 Jul 2003",	7
-38094,		4
-"Dec 2003",	12
--10,		"#NUM!"
-"ABCD",		"#VALUE!"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/NETWORKDAYS.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/NETWORKDAYS.data
deleted file mode 100644
index 70034bfd793..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/NETWORKDAYS.data
+++ /dev/null
@@ -1,18 +0,0 @@
-"1-Jan-2007", "10-Jan-2007",							8
-"18-Jun-2008", "20-Jun-2008",							3
-"16-Jun-2008", "20-Jun-2008",							5
-"14-Jun-2008", "20-Jun-2008",							5
-"20-Jun-2008", "20-Jun-2008",							1
-"21-Jun-2008", "21-Jun-2008",							0
-"20-Jun-2008", "20-Jun-2008", "20-Jun-2008",					0
-"20-Jun-2008", "20-Jun-2008", "20-Jun-2008", "20-Jun-2008",			0
-"14-Jun-2008", "25-Jun-2008",							8
-"19-Dec-1960", "10-Jan-1961",							17
-"10-Jan-1961", "19-Dec-1960",							-17
-"19-Dec-1960", "10-Jan-1961", "25-Dec-1960", "26-Dec-1960", "01-Jan-1961",	16
-"10-Jan-1961", "19-Dec-1960", "25-Dec-1960", "26-Dec-1960", "01-Jan-1961",	-16
-"1-Jan-2007", "31-Mar-2007",							65
-"1-Jan-2007", "31-Jan-2007",							23
-"1-Jan-2007", "1-Feb-2007",							24
-"1-Jan-2007", "28-Feb-2007",							43
-"31-Jan-2007", "1-Feb-2007",							2
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/SECOND.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/SECOND.data
deleted file mode 100644
index 14a8d3a5990..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/SECOND.data
+++ /dev/null
@@ -1,12 +0,0 @@
-0.2339930556,		57
-0.4202893519,		13
-0.6078935185,		22
-0.8022106481,		11
-"11-Nov-1918 11:15:35",	35
-"11:59 PM",		0
-"23:59:59",		59
-3600,			0
--3601,			59
-12500,			20
-65535,			15
-"Half past 1 O'Clock",	"#VALUE!"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/TIME.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/TIME.data
deleted file mode 100644
index 46d0b9ac07e..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/TIME.data
+++ /dev/null
@@ -1,22 +0,0 @@
-18,	11,	11,	0.757766203704
-6,	15,	5,	0.260474537037
-12,	30,	10,	0.520949074074
-18,	45,	25,	0.781539351852
-15,	32,	50,	0.647800925926
-12,	,	61,	0.500706018519
-11,	,	-1,	0.458321759259
-10,	,	-67,	0.415891203704
-13,	62,	5,	0.584780092593
-9,	-80,	17,	0.319641203704
-8,	-162,	,	0.220833333333
-2,	-120,	-1,	"#NUM!"
-2,	-120,	,	0.000000000000
-2,	-120,	1,	0.000011574074
-36,	1,	2,	0.500717592593
--1,	2,	3,	"#NUM!"
--1,	61,	29,	0.001030092593
--1,	61,	-60,	0.000000000000
-"A",	,	,	"#VALUE!"
-11,	59,	0,	0.499305555556
-12,	0,	0,	0.500000000000
-16,	48,	10,	0.700115740741
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/TIMEVALUE.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/TIMEVALUE.data
deleted file mode 100644
index 457de24e37c..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/TIMEVALUE.data
+++ /dev/null
@@ -1,13 +0,0 @@
-"12:00:00 am",		0
-"12:01:02 am",		0.000717593
-"12:03 pm",		0.502083333
-"12:7:11 pm",		0.504988426
-"4:13:39",		0.176145833
-"6:20:17 pm",		0.764085648
-"18:33:27",		0.773229167
-"31/12/2007 03:27:15",	0.143923611
-"9:44:55 pm",		0.90619213
-12,			"#VALUE!"
-"13:01",		0.542361111
-"33:45",		0.40625
-"13:01PM",		"#VALUE!"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/WEEKDAY.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/WEEKDAY.data
deleted file mode 100644
index ca2e11f7b32..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/WEEKDAY.data
+++ /dev/null
@@ -1,27 +0,0 @@
-"24-Oct-1968",		5
-"24-Oct-1968",	2,	4
-"24-Oct-1968",	3,	3
-"2000-06-14",		4
-"2000-06-14",	2,	3
-"2000-06-14",	3,	2
-"1996-07-24",		4
-"1996-07-24",	2,	3
-"1996-07-24",	3,	2
-"1996-07-27",		7
-"1996-07-27",	2,	6
-"1996-07-27",	3,	5
-"1977-7-31",		1
-"1977-7-31",	2,	7
-"1977-7-31",	3,	6
-"1977-8-1",		2
-"1977-8-1",	2,	1
-"1977-8-1",	3,	0
-"1900-2-5",	2,	7
-"1900-2-1",		1
-38093,			6
-38093,		2,	5
-38093,		3,	4
-"3/7/1977",	"A",	"#VALUE!"
-"3/7/1977",	0,	"#NUM!"
-"Invalid",	1,	"#VALUE!"
--1,			"#NUM!"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/WEEKNUM.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/WEEKNUM.data
deleted file mode 100644
index 22a01a74c52..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/WEEKNUM.data
+++ /dev/null
@@ -1,7 +0,0 @@
-"21-Dec-2000",	1,	52
-"1995-01-01",	1,	1
-"3/7/1977",		27
-"3/7/1977",	"A",	"#VALUE!"
-"3/7/1977",	0,	"#NUM!"
-"Invalid",	1,	"#VALUE!"
--1,			"#NUM!"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/WORKDAY.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/WORKDAY.data
deleted file mode 100644
index 1070898b248..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/WORKDAY.data
+++ /dev/null
@@ -1,13 +0,0 @@
-"1-Jan-2007",	"ABC",	"#VALUE!"
-"1-Jan-2007",	9,	39094
-"18-Jun-2008",	2,	39619
-"16-Jun-2008",	4,	39619
-"14-Jun-2008",	6,	39622
-"14-Jun-2008",	11,	39629
-"14-Jun-2008",	-2,	39611
-"14-Jun-2008",	-6,	39605
-"19-Dec-2008",	10,	39815
-"19-Dec-2008",	10,	"25-Dec-2008",	"26-Dec-2008",	"01-Jan-2009",	39820
-"19-Dec-2008",	10,	{"25-Dec-2008"|"26-Dec-2008"|"01-Jan-2009"},	39820
-39820,		-10,	{"25-Dec-2008"|"26-Dec-2008"|"01-Jan-2009"},	39801
-"5-Apr-2012",	3,	{"6-Apr-2012"|"9-Apr-2012"},			41010
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/YEAR.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/YEAR.data
deleted file mode 100644
index fe35f1b4a36..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/YEAR.data
+++ /dev/null
@@ -1,11 +0,0 @@
-,		1900
-1,		1900
-33333.33,	1991
-22269.0,	1960
-30348.0,	1983
-30843.0,	1984
-"01 Jan 2525",	2525
-"11-Nov-1918",	1918
-"28-Feb-1904",	1904
--10,		"#NUM!"
-"ABCD",		"#VALUE!"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/YEARFRAC.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/YEARFRAC.data
deleted file mode 100644
index 3fc5827728a..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/DateTime/YEARFRAC.data
+++ /dev/null
@@ -1,65 +0,0 @@
-"2007-1-1",	"2007-1-10",	0,	0.025
-"2007-1-1",	"2007-1-10",	1,	0.02465753424658
-"2007-1-1",	"2007-1-10",	2,	0.025
-"2007-1-1",	"2007-1-10",	3,	0.02465753424658
-"2007-1-1",	"2007-1-10",	4,	0.025
-"2007-1-1",	"2007-12-31",	0,	1.0
-"2007-1-1",	"2007-12-31",	1,	0.99726027397260
-"2007-1-1",	"2007-12-31",	2,	1.01111111111111
-"2007-1-1",	"2007-12-31",	3,	0.99726027397260
-"2007-1-1",	"2007-12-31",	4,	0.99722222222222
-"2007-1-1",	"2008-7-1",	0,	1.5
-"2007-1-1",	"2008-7-1",	1,	1.49658002735978
-"2007-1-1",	"2008-7-1",	2,	1.51944444444444
-"2007-1-1",	"2008-7-1",	3,	1.49863013698630
-"2007-1-1",	"2008-7-1",	4,	1.5
-"2007-1-1",	"2007-1-31",	0,	0.08333333333333
-"2007-1-1",	"2007-1-31",	1,	0.08219178082192
-"2007-1-1",	"2007-1-31",	2,	0.08333333333333
-"2007-1-1",	"2007-1-31",	3,	0.08219178082192
-"2007-1-1",	"2007-1-31",	4,	0.08055555555556
-"2007-1-1",	"2007-2-1",	0,	0.08333333333333
-"2007-1-1",	"2007-2-1",	1,	0.08493150684932
-"2007-1-1",	"2007-2-1",	2,	0.08611111111111
-"2007-1-1",	"2007-2-1",	3,	0.08493150684932
-"2007-1-1",	"2007-2-1",	4,	0.08333333333333
-"2007-1-1",	"2007-2-28",	0,	0.15833333333333
-"2007-1-1",	"2007-2-28",	1,	0.15890410958904
-"2007-1-1",	"2007-2-28",	2,	0.16111111111111
-"2007-1-1",	"2007-2-28",	3,	0.15890410958904
-"2007-1-1",	"2007-2-28",	4,	0.15833333333333
-"2007-1-31",	"2007-2-1",	0,	0.00277777777778
-"2007-1-31",	"2007-2-1",	1,	0.00273972602740
-"2007-1-31",	"2007-2-1",	2,	0.00277777777778
-"2007-1-31",	"2007-2-1",	3,	0.00273972602740
-"2007-1-31",	"2007-2-1",	4,	0.00277777777778
-"2007-1-31",	"2007-3-1",	0,	0.08611111111111
-"2007-1-31",	"2007-3-1",	1,	0.07945205479452
-"2007-1-31",	"2007-3-1",	2,	0.08055555555556
-"2007-1-31",	"2007-3-1",	3,	0.07945205479452
-"2007-1-31",	"2007-3-1",	4,	0.08611111111111
-"2007-1-31",	"2007-3-31",	0,	0.16666666666667
-"2007-1-31",	"2007-3-31",	1,	0.16164383561644
-"2007-1-31",	"2007-3-31",	2,	0.16388888888889
-"2007-1-31",	"2007-3-31",	3,	0.16164383561644
-"2007-1-31",	"2007-3-31",	4,	0.16666666666667
-"2008-1-1",	"2008-9-1",	0,	0.66666666666667
-"2008-1-1",	"2008-9-1",	1,	0.66666666666667
-"2008-1-1",	"2008-9-1",	2,	0.67777777777778
-"2008-1-1",	"2008-9-1",	3,	0.66849315068493
-"2008-1-1",	"2008-9-1",	4,	0.66666666666667
-"2007-2-1",	"2008-4-1",	0,	1.16666666666667
-"2007-2-1",	"2008-4-1",	1,	1.16279069767442
-"2007-2-1",	"2008-4-1",	2,	1.18055555555556
-"2007-2-1",	"2008-4-1",	3,	1.16438356164384
-"2007-2-1",	"2008-4-1",	4,	1.16666666666667
-"1960-12-19",	"2008-6-28",	0,	47.525
-"1960-12-19",	"2008-6-28",	1,	47.52162252765670
-"1960-12-19",	"2008-6-28",	2,	48.21666666666670
-"1960-12-19",	"2008-6-28",	3,	47.55616438356160
-"1960-12-19",	"2008-6-28",	4,	47.525
-"1982-12-7",	"2008-6-28",	0,	25.55833333333330
-"1982-12-7",	"2008-6-28",	1,	25.55718921111340
-"1982-12-7",	"2008-6-28",	2,	25.93055555555560
-"1982-12-7",	"2008-6-28",	3,	25.57534246575340
-"1982-12-7",	"2008-6-28",	4,	25.55833333333330
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/BESSELI.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/BESSELI.data
deleted file mode 100644
index bab50c698e5..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/BESSELI.data
+++ /dev/null
@@ -1,59 +0,0 @@
-1.5,	-1,	"#NUM!"
--1,	6,	2.2488660949282200E-05
-0,	3,	0.0
-3,	0,	4.8807925650332900
-1,	5,	2.7146314958504900E-04
-1.5,	1,	9.8166642847516600E-01
--1.5,	2.5,	3.3783462087443800E-01
--1.5,	14.99,	2.1218581758012900E-13
-1,	30,	3.5395005050254700E-42
-2.5,	1,	2.5167162420253600
-2.5,	1.5,	2.5167162420253600
--2.5,	1.5,	-2.5167162420253600
-3.5,	1,	6.2058349320630000
-0.7,	3,	7.3673733669342700E-03
-3.5,	2,	3.8320120716293600
-35,	2,	1.0129348967887200E+14
--35,	2,	1.0129348967887200E+14
--35,	3,	-9.4217724797020600E+13
--35,	4,	8.5141821583727800E+13
-1.5,	"XYZ",	"#VALUE!"
-"ABC",	3,	"#VALUE!"
--9,	1,	-1.0309147086534900E+03
--3.5,	1,	-6.2058349320630000
--0.735,	1,	-3.9288151661176300E-01
-0,	1,	0.0
-0.035,	1,	1.7502679823335300E-02
-1,	1,	5.6515909758194300E-01
-1.5,	1,	9.8166642847516600E-01
-2.5,	1,	2.5167162420253600
-3.5,	1,	6.2058349320630000
--9,	2,	8.6449622063929800E+02
--3.5,	2,	3.8320120716293600
--0.735,	2,	7.0619941066585700E-02
-0,	2,	0.0
-0.035,	2,	1.5314063208086000E-04
-0.9,	2,	1.0825972222234100E-01
-1,	2,	1.3574766658069900E-01
-1.9,	2,	6.0327243548745000E-01
-2.5,	2,	1.2764661588156100
-3.5,	2,	3.8320120716293600
-4,	2,	6.4221894991960900
-0.035,	3,	8.9329755645604500E-07
-0.7,	3,	7.3673733669342700E-03
-0.89,	3,	1.5428502532466100E-02
-4,	3,	3.3372758428109200
-4,	5,	5.0472437285149600E-01
-1.5,	7,	2.8406417355214300E-05
-3,	9,	1.3237298826652200E-04
--3.5,	0,	7.3782034775718600
--1.5,	0,	1.6467232021476800
-0,	0,	1.0
-1,	0,	1.2660658480342600
-1.5,	0,	1.6467232021476800
-2.5,	0,	3.2898391723912900
-3.5,	0,	7.3782034775718600
--3.5,	-1,	"#NUM!"
-TRUE,	1,	"#VALUE!"
-1,	TRUE,	"#VALUE!"
-21,	2,	1.0477785626593200E+08
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/BESSELJ.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/BESSELJ.data
deleted file mode 100644
index e84f16e6dfc..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/BESSELJ.data
+++ /dev/null
@@ -1,37 +0,0 @@
-1.5,	-1,	"#NUM!"
-0,	1,	0.0
-1,	1,	4.4005058567713000E-01
-1,	5,	2.4975773021123400E-04
-1.9,	2,	3.2992582866978500E-01
--2.5,	1.5,	-4.9709410250442200E-01
-3.5,	1,	1.3737752717818600E-01
-0.89,	3,	1.3974004027880800E-02
-3.5,	2,	4.5862918476829000E-01
-35,	2,	1.2935945082689100E-01
--35,	2,	1.2935945082689100E-01
--35,	3,	2.9207004782372000E-02
--35,	4,	-1.3436636593244100E-01
-1.5,	"XYZ",	"#VALUE!"
-"ABC",	3,	"#VALUE!"
--3.5,	1,	-1.3737752717818600E-01
--0.735,	1,	-3.4323577520309400E-01
-0,	1,	0.0
-0.035,	1,	1.7497320451918700E-02
-1.5,	1,	5.5793650789080400E-01
-2.5,	1,	4.9709410250442200E-01
-3.5,	1,	1.3737752717818600E-01
--9,	2,	1.4484636919412800E-01
--0.735,	2,	6.4538955636373900E-02
-0,	2,	0.0
-0.9,	2,	9.4586304292255000E-02
-1.9,	2,	3.2992582866978500E-01
-0.035,	2,	1.5310936908796500E-04
-3.5,	2,	4.5862918476829000E-01
-4,	2,	3.6412814319431200E-01
-0.035,	3,	8.9316078090293600E-07
-0.7,	3,	6.9296548267509400E-03
-0.89,	3,	1.3974004027880800E-02
-4,	3,	4.3017147115339600E-01
-4,	5,	1.3208665605594800E-01
-1.5,	7,	2.4679795788287900E-05
-3,	9,	8.4395021309091800E-05
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/BESSELK.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/BESSELK.data
deleted file mode 100644
index fce3a78d672..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/BESSELK.data
+++ /dev/null
@@ -1,38 +0,0 @@
-1.5,	-1,	"#NUM!"
-0,	2,	"#NUM!"
-0.1,	3,	7.9900124326586500E+03
-1,	0,	4.2102442108341800E-01
-1.5,	0,	2.1380556932365400E-01
--1.5,	2,	"#NUM!"
-1.5,	1,	2.7738780363225900E-01
-1.5,	2,	5.8365597416666600E-01
-2.3,	1.5,	9.4982447142959400E-02
-2.5,	1,	7.3890815650266900E-02
-3.5,	1,	2.2239393224640700E-02
-3.5,	3,	5.9161817991348200E-02
-3,	9,	3.9795880106238500E+02
-3.5,	2,	3.2307121670869000E-02
-1.5,	"XYZ",	"#VALUE!"
-"ABC",	3,	"#VALUE!"
--3.5,	1,	"#NUM!"
--0.735,	1,	"#NUM!"
-0,	1,	"#NUM!"
-0.035,	1,	2.8501970000186900E+01
-1.5,	1,	2.7738780363225900E-01
-2.5,	1,	7.3890815650266900E-02
-3.5,	1,	2.2239393224640700E-02
--9,	2,	"#NUM!"
--0.735,	2,	"#NUM!"
-0,	2,	"#NUM!"
-0.9,	2,	2.0790271301014400
-1.9,	2,	2.9690930137427500E-01
-0.035,	2,	1.6321537072931900E+03
-3.5,	2,	3.2307121670869000E-02
-4,	2,	1.7401425543547400E-02
-0.035,	3,	1.8656035423207900E+05
-0.7,	3,	2.1972168909566600E+01
-0.89,	3,	1.0317473075007600E+01
-4,	3,	2.9884924431707800E-02
-4,	5,	1.5434254881392600E-01
-1.5,	7,	2.4577004526116700E+03
-3,	9,	3.9795880106238500E+02
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/BESSELY.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/BESSELY.data
deleted file mode 100644
index 2247f4ecf42..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/BESSELY.data
+++ /dev/null
@@ -1,37 +0,0 @@
-1.5,	-1,	"#NUM!"
-1.23,	45.67,	-2.7027311261175000E+63
-2.5,	0,	4.9807035844668900E-01
-2.5,	1,	1.4591813750831300E-01
-2.5,	2,	-3.8133584844003800E-01
-3.5,	1,	4.1018841662769800E-01
-3.5,	3,	-3.5833534643622900E-01
-4,	2,	2.1590359910699000E-01
-3.5,	2,	4.5371436417535000E-02
-12.5,	0,	-1.7121430684466900E-01
-12.5,	1,	-1.5383825635163900E-01
-12.5,	2,	1.4660018586805400E-01
-12.5,	22,	-3.5760343503878700E+02
-1.5,	"XYZ",	"#VALUE!"
-"ABC",	3,	"#VALUE!"
--3.5,	1,	"#NUM!"
--0.735,	1,	"#NUM!"
-0,	1,	"#NUM!"
-0.035,	1,	-1.8233338940000000E+01
-1.5,	1,	-4.1230862700000000E-01
-2.5,	1,	1.4591813800000000E-01
-3.5,	1,	4.1018841700000000E-01
--9,	2,	"#NUM!"
--0.735,	2,	"#NUM!"
-0,	2,	"#NUM!"
-0.9,	2,	-1.9459096070000000
-1.9,	2,	-6.6987867400000000E-01
-0.035,	2,	-1.0396979410000000E+03
-3.5,	2,	4.5371436000000000E-02
-4,	2,	2.1590359900000000E-01
-0.035,	3,	-1.1880438840000000E+05
-0.7,	3,	-1.5819479070000000E+01
-0.89,	3,	-8.0204412520000000
-4,	3,	-1.8202211000000000E-01
-4,	5,	-7.9585141800000000E-01
-1.5,	7,	-1.8873970340000000E+03
-3,	9,	-4.4495950710000000E+02
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/BIN2DEC.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/BIN2DEC.data
deleted file mode 100644
index 04365fcae3f..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/BIN2DEC.data
+++ /dev/null
@@ -1,10 +0,0 @@
-"10110010",	"178"
-"1100100",	"100"
-"111001010101",	"#NUM!"		//	Too large
-"101",		"5"
-"10",		"2"
-"0",		"0"
-"21",		"#NUM!"		//	Invalid binary number
-TRUE,		"#VALUE!"	//	Non string
-"1110010101",	"-107"		//	2's Complement
-"1111111111",	"-1"		//	2's Complement
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/BIN2HEX.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/BIN2HEX.data
deleted file mode 100644
index 7f7198e6587..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/BIN2HEX.data
+++ /dev/null
@@ -1,14 +0,0 @@
-"10110010",		"B2"
-"111001010101",		"#NUM!"		//	Too large
-"11111011",	4,	"00FB"		//	Leading places
-"11111011",	3.75,	"0FB"		//	Leading places as a float
-"11111011",	-1,	"#NUM!"		//	Leading places negative
-"11111011",	"ABC",	"#VALUE!"	//	Leading places non-numeric
-"1110",			"E"
-"101",			"5"
-"10",			"2"
-"0",			"0"
-"21",			"#NUM!"		//	Invalid binary number
-TRUE,			"#VALUE!"	//	Non string
-"1110010101",		"FFFFFFFF95"	//	2's Complement
-"1111111111",		"FFFFFFFFFF"	//	2's Complement
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/BIN2OCT.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/BIN2OCT.data
deleted file mode 100644
index 3971654b368..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/BIN2OCT.data
+++ /dev/null
@@ -1,15 +0,0 @@
-"1100100",		"144"
-"10110010",		"262"
-"111001010101",		"#NUM!"		//	Too large
-"1001",		3,	"011"		//	Leading places
-"1001",		4.75,	"0011"		//	Leading places as a float
-"1001",		-1,	"#NUM!"		//	Leading places negative
-"1001",		"ABC",	"#VALUE!"	//	Leading places non-numeric
-"00000010",		"2"
-"00000101",		"5"
-"00001101",		"15"
-"0",			"0"
-"21",			"#NUM!"		//	Invalid binary number
-TRUE,			"#VALUE!"	//	Non string
-"1110010101",		"7777777625"	//	2's Complement
-"1111111111",		"7777777777"	//	2's Complement
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/COMPLEX.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/COMPLEX.data
deleted file mode 100644
index 980b53bf8a3..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/COMPLEX.data
+++ /dev/null
@@ -1,547 +0,0 @@
-3,		4,		"3+4i"
-3,		4,	"j",	"3+4j"
-12.34,		5.67,	"j",	"12.34+5.67j"
-3.5,		"A",		"#VALUE!"
-1.234E-5,	6.78E9,		"1.234E-5+6780000000i"
-1.234E5,	6.78E-9,	"123400+6.78E-9i"
-3.5,		2.5,		"3.5+2.5i"
-3.5,		1,		"3.5+i"
-3.5,		0,		3.5
-3.5,		-1,		"3.5-i"
-3.5,		-2.5,		"3.5-2.5i"
-1,		2.5,		"1+2.5i"
-1,		1,		"1+i"
-1,		0,		1
-1,		-1,		"1-i"
-1,		-2.5,		"1-2.5i"
-0,		2.5,		"2.5i"
-0,		1,		"i"
-0,		0,		0
-0,		-1,		"-i"
-0,		-2.5,		"-2.5i"
--1,		2.5,		"-1+2.5i"
--1,		1,		"-1+i"
--1,		0,		-1
--1,		-1,		"-1-i"
--1,		-2.5,		"-1-2.5i"
--3.5,		2.5,		"-3.5+2.5i"
--3.5,		1,		"-3.5+i"
--3.5,		0,		"-3.5"
--3.5,		-1,		"-3.5-i"
--3.5,		-2.5,		"-3.5-2.5i"
--2.5,		-2.5,		"-2.5-2.5i"
--2.5,		-2.5,		"-2.5-2.5i"
--1.5,		-2.5,		"-1.5-2.5i"
--1.5,		-2.5,		"-1.5-2.5i"
--0.5,		-2.5,		"-0.5-2.5i"
-0,		-2.5,		"-2.5i"
-0.5,		-2.5,		"0.5-2.5i"
-1,		-2.5,		"1-2.5i"
-1.5,		-2.5,		"1.5-2.5i"
-2,		-2.5,		"2-2.5i"
-2.5,		-2.5,		"2.5-2.5i"
-3,		-2.5,		"3-2.5i"
-3.5,		-2.5,		"3.5-2.5i"
--2.5,		-2.5,		"-2.5-2.5i"
--2.5,		-2.5,		"-2.5-2.5i"
--1.5,		-2.5,		"-1.5-2.5i"
--1.5,		-2.5,		"-1.5-2.5i"
--0.5,		-2.5,		"-0.5-2.5i"
-0,		-2.5,		"-2.5i"
-0.5,		-2.5,		"0.5-2.5i"
-1,		-2.5,		"1-2.5i"
-1.5,		-2.5,		"1.5-2.5i"
-2,		-2.5,		"2-2.5i"
-2.5,		-2.5,		"2.5-2.5i"
-3,		-2.5,		"3-2.5i"
-3.5,		-2.5,		"3.5-2.5i"
--2.5,		-1.5,		"-2.5-1.5i"
--2.5,		-1.5,		"-2.5-1.5i"
--1.5,		-1.5,		"-1.5-1.5i"
--1.5,		-1.5,		"-1.5-1.5i"
--0.5,		-1.5,		"-0.5-1.5i"
-0,		-1.5,		"-1.5i"
-0.5,		-1.5,		"0.5-1.5i"
-1,		-1.5,		"1-1.5i"
-1.5,		-1.5,		"1.5-1.5i"
-2,		-1.5,		"2-1.5i"
-2.5,		-1.5,		"2.5-1.5i"
-3,		-1.5,		"3-1.5i"
-3.5,		-1.5,		"3.5-1.5i"
--2.5,		-1.5,		"-2.5-1.5i"
--2.5,		-1.5,		"-2.5-1.5i"
--1.5,		-1.5,		"-1.5-1.5i"
--1.5,		-1.5,		"-1.5-1.5i"
--0.5,		-1.5,		"-0.5-1.5i"
-0,		-1.5,		"-1.5i"
-0.5,		-1.5,		"0.5-1.5i"
-1,		-1.5,		"1-1.5i"
-1.5,		-1.5,		"1.5-1.5i"
-2,		-1.5,		"2-1.5i"
-2.5,		-1.5,		"2.5-1.5i"
-3,		-1.5,		"3-1.5i"
-3.5,		-1.5,		"3.5-1.5i"
--2.5,		-0.5,		"-2.5-0.5i"
--2.5,		-0.5,		"-2.5-0.5i"
--1.5,		-0.5,		"-1.5-0.5i"
--1.5,		-0.5,		"-1.5-0.5i"
--0.5,		-0.5,		"-0.5-0.5i"
-0,		-0.5,		"-0.5i"
-0.5,		-0.5,		"0.5-0.5i"
-1,		-0.5,		"1-0.5i"
-1.5,		-0.5,		"1.5-0.5i"
-2,		-0.5,		"2-0.5i"
-2.5,		-0.5,		"2.5-0.5i"
-3,		-0.5,		"3-0.5i"
-3.5,		-0.5,		"3.5-0.5i"
--2.5,		0,		-2.5
--2.5,		0,		-2.5
--1.5,		0,		-1.5
--1.5,		0,		-1.5
--0.5,		0,		-0.5
-0,		0,		0
-0.5,		0,		0.5
-1,		0,		1
-1.5,		0,		1.5
-2,		0,		2
-2.5,		0,		2.5
-3,		0,		3
-3.5,		0,		3.5
--2.5,		0.5,		"-2.5+0.5i"
--2.5,		0.5,		"-2.5+0.5i"
--1.5,		0.5,		"-1.5+0.5i"
--1.5,		0.5,		"-1.5+0.5i"
--0.5,		0.5,		"-0.5+0.5i"
-0,		0.5,		"0.5i"
-0.5,		0.5,		"0.5+0.5i"
-1,		0.5,		"1+0.5i"
-1.5,		0.5,		"1.5+0.5i"
-2,		0.5,		"2+0.5i"
-2.5,		0.5,		"2.5+0.5i"
-3,		0.5,		"3+0.5i"
-3.5,		0.5,		"3.5+0.5i"
--2.5,		1,		"-2.5+i"
--2.5,		1,		"-2.5+i"
--1.5,		1,		"-1.5+i"
--1.5,		1,		"-1.5+i"
--0.5,		1,		"-0.5+i"
-0,		1,		"i"
-0.5,		1,		"0.5+i"
-1,		1,		"1+i"
-1.5,		1,		"1.5+i"
-2,		1,		"2+i"
-2.5,		1,		"2.5+i"
-3,		1,		"3+i"
-3.5,		1,		"3.5+i"
--2.5,		1.5,		"-2.5+1.5i"
--2.5,		1.5,		"-2.5+1.5i"
--1.5,		1.5,		"-1.5+1.5i"
--1.5,		1.5,		"-1.5+1.5i"
--0.5,		1.5,		"-0.5+1.5i"
-0,		1.5,		"1.5i"
-0.5,		1.5,		"0.5+1.5i"
-1,		1.5,		"1+1.5i"
-1.5,		1.5,		"1.5+1.5i"
-2,		1.5,		"2+1.5i"
-2.5,		1.5,		"2.5+1.5i"
-3,		1.5,		"3+1.5i"
-3.5,		1.5,		"3.5+1.5i"
--2.5,		2,		"-2.5+2i"
--2.5,		2,		"-2.5+2i"
--1.5,		2,		"-1.5+2i"
--1.5,		2,		"-1.5+2i"
--0.5,		2,		"-0.5+2i"
-0,		2,		"2i"
-0.5,		2,		"0.5+2i"
-1,		2,		"1+2i"
-1.5,		2,		"1.5+2i"
-2,		2,		"2+2i"
-2.5,		2,		"2.5+2i"
-3,		2,		"3+2i"
-3.5,		2,		"3.5+2i"
--2.5,		2.5,		"-2.5+2.5i"
--2.5,		2.5,		"-2.5+2.5i"
--1.5,		2.5,		"-1.5+2.5i"
--1.5,		2.5,		"-1.5+2.5i"
--0.5,		2.5,		"-0.5+2.5i"
-0,		2.5,		"2.5i"
-0.5,		2.5,		"0.5+2.5i"
-1,		2.5,		"1+2.5i"
-1.5,		2.5,		"1.5+2.5i"
-2,		2.5,		"2+2.5i"
-2.5,		2.5,		"2.5+2.5i"
-3,		2.5,		"3+2.5i"
-3.5,		2.5,		"3.5+2.5i"
--2.5,		3,		"-2.5+3i"
--2.5,		3,		"-2.5+3i"
--1.5,		3,		"-1.5+3i"
--1.5,		3,		"-1.5+3i"
--0.5,		3,		"-0.5+3i"
-0,		3,		"3i"
-0.5,		3,		"0.5+3i"
-1,		3,		"1+3i"
-1.5,		3,		"1.5+3i"
-2,		3,		"2+3i"
-2.5,		3,		"2.5+3i"
-3,		3,		"3+3i"
-3.5,		3,		"3.5+3i"
--2.5,		3.5,		"-2.5+3.5i"
--2.5,		3.5,		"-2.5+3.5i"
--1.5,		3.5,		"-1.5+3.5i"
--1.5,		3.5,		"-1.5+3.5i"
--0.5,		3.5,		"-0.5+3.5i"
-0,		3.5,		"3.5i"
-0.5,		3.5,		"0.5+3.5i"
-1,		3.5,		"1+3.5i"
-1.5,		3.5,		"1.5+3.5i"
-2,		3.5,		"2+3.5i"
-2.5,		3.5,		"2.5+3.5i"
-3,		3.5,		"3+3.5i"
-3.5,		3.5,		"3.5+3.5i"
--2.5,		-2.5,	"i",	"-2.5-2.5i"
--2.5,		-2.5,	"i",	"-2.5-2.5i"
--1.5,		-2.5,	"i",	"-1.5-2.5i"
--1.5,		-2.5,	"i",	"-1.5-2.5i"
--0.5,		-2.5,	"i",	"-0.5-2.5i"
-0,		-2.5,	"i",	"-2.5i"
-0.5,		-2.5,	"i",	"0.5-2.5i"
-1,		-2.5,	"i",	"1-2.5i"
-1.5,		-2.5,	"i",	"1.5-2.5i"
-2,		-2.5,	"i",	"2-2.5i"
-2.5,		-2.5,	"i",	"2.5-2.5i"
-3,		-2.5,	"i",	"3-2.5i"
-3.5,		-2.5,	"i",	"3.5-2.5i"
--2.5,		-2.5,	"i",	"-2.5-2.5i"
--2.5,		-2.5,	"i",	"-2.5-2.5i"
--1.5,		-2.5,	"i",	"-1.5-2.5i"
--1.5,		-2.5,	"i",	"-1.5-2.5i"
--0.5,		-2.5,	"i",	"-0.5-2.5i"
-0,		-2.5,	"i",	"-2.5i"
-0.5,		-2.5,	"i",	"0.5-2.5i"
-1,		-2.5,	"i",	"1-2.5i"
-1.5,		-2.5,	"i",	"1.5-2.5i"
-2,		-2.5,	"i",	"2-2.5i"
-2.5,		-2.5,	"i",	"2.5-2.5i"
-3,		-2.5,	"i",	"3-2.5i"
-3.5,		-2.5,	"i",	"3.5-2.5i"
--2.5,		-1.5,	"i",	"-2.5-1.5i"
--2.5,		-1.5,	"i",	"-2.5-1.5i"
--1.5,		-1.5,	"i",	"-1.5-1.5i"
--1.5,		-1.5,	"i",	"-1.5-1.5i"
--0.5,		-1.5,	"i",	"-0.5-1.5i"
-0,		-1.5,	"i",	"-1.5i"
-0.5,		-1.5,	"i",	"0.5-1.5i"
-1,		-1.5,	"i",	"1-1.5i"
-1.5,		-1.5,	"i",	"1.5-1.5i"
-2,		-1.5,	"i",	"2-1.5i"
-2.5,		-1.5,	"i",	"2.5-1.5i"
-3,		-1.5,	"i",	"3-1.5i"
-3.5,		-1.5,	"i",	"3.5-1.5i"
--2.5,		-1.5,	"i",	"-2.5-1.5i"
--2.5,		-1.5,	"i",	"-2.5-1.5i"
--1.5,		-1.5,	"i",	"-1.5-1.5i"
--1.5,		-1.5,	"i",	"-1.5-1.5i"
--0.5,		-1.5,	"i",	"-0.5-1.5i"
-0,		-1.5,	"i",	"-1.5i"
-0.5,		-1.5,	"i",	"0.5-1.5i"
-1,		-1.5,	"i",	"1-1.5i"
-1.5,		-1.5,	"i",	"1.5-1.5i"
-2,		-1.5,	"i",	"2-1.5i"
-2.5,		-1.5,	"i",	"2.5-1.5i"
-3,		-1.5,	"i",	"3-1.5i"
-3.5,		-1.5,	"i",	"3.5-1.5i"
--2.5,		-0.5,	"i",	"-2.5-0.5i"
--2.5,		-0.5,	"i",	"-2.5-0.5i"
--1.5,		-0.5,	"i",	"-1.5-0.5i"
--1.5,		-0.5,	"i",	"-1.5-0.5i"
--0.5,		-0.5,	"i",	"-0.5-0.5i"
-0,		-0.5,	"i",	"-0.5i"
-0.5,		-0.5,	"i",	"0.5-0.5i"
-1,		-0.5,	"i",	"1-0.5i"
-1.5,		-0.5,	"i",	"1.5-0.5i"
-2,		-0.5,	"i",	"2-0.5i"
-2.5,		-0.5,	"i",	"2.5-0.5i"
-3,		-0.5,	"i",	"3-0.5i"
-3.5,		-0.5,	"i",	"3.5-0.5i"
--2.5,		0,	"i",	-2.5
--2.5,		0,	"i",	-2.5
--1.5,		0,	"i",	-1.5
--1.5,		0,	"i",	-1.5
--0.5,		0,	"i",	-0.5
-0,		0,	"i",	0
-0.5,		0,	"i",	0.5
-1,		0,	"i",	1
-1.5,		0,	"i",	1.5
-2,		0,	"i",	2
-2.5,		0,	"i",	2.5
-3,		0,	"i",	3
-3.5,		0,	"i",	3.5
--2.5,		0.5,	"i",	"-2.5+0.5i"
--2.5,		0.5,	"i",	"-2.5+0.5i"
--1.5,		0.5,	"i",	"-1.5+0.5i"
--1.5,		0.5,	"i",	"-1.5+0.5i"
--0.5,		0.5,	"i",	"-0.5+0.5i"
-0,		0.5,	"i",	"0.5i"
-0.5,		0.5,	"i",	"0.5+0.5i"
-1,		0.5,	"i",	"1+0.5i"
-1.5,		0.5,	"i",	"1.5+0.5i"
-2,		0.5,	"i",	"2+0.5i"
-2.5,		0.5,	"i",	"2.5+0.5i"
-3,		0.5,	"i",	"3+0.5i"
-3.5,		0.5,	"i",	"3.5+0.5i"
--2.5,		1,	"i",	"-2.5+i"
--2.5,		1,	"i",	"-2.5+i"
--1.5,		1,	"i",	"-1.5+i"
--1.5,		1,	"i",	"-1.5+i"
--0.5,		1,	"i",	"-0.5+i"
-0,		1,	"i",	"i"
-0.5,		1,	"i",	"0.5+i"
-1,		1,	"i",	"1+i"
-1.5,		1,	"i",	"1.5+i"
-2,		1,	"i",	"2+i"
-2.5,		1,	"i",	"2.5+i"
-3,		1,	"i",	"3+i"
-3.5,		1,	"i",	"3.5+i"
--2.5,		1.5,	"i",	"-2.5+1.5i"
--2.5,		1.5,	"i",	"-2.5+1.5i"
--1.5,		1.5,	"i",	"-1.5+1.5i"
--1.5,		1.5,	"i",	"-1.5+1.5i"
--0.5,		1.5,	"i",	"-0.5+1.5i"
-0,		1.5,	"i",	"1.5i"
-0.5,		1.5,	"i",	"0.5+1.5i"
-1,		1.5,	"i",	"1+1.5i"
-1.5,		1.5,	"i",	"1.5+1.5i"
-2,		1.5,	"i",	"2+1.5i"
-2.5,		1.5,	"i",	"2.5+1.5i"
-3,		1.5,	"i",	"3+1.5i"
-3.5,		1.5,	"i",	"3.5+1.5i"
--2.5,		2,	"i",	"-2.5+2i"
--2.5,		2,	"i",	"-2.5+2i"
--1.5,		2,	"i",	"-1.5+2i"
--1.5,		2,	"i",	"-1.5+2i"
--0.5,		2,	"i",	"-0.5+2i"
-0,		2,	"i",	"2i"
-0.5,		2,	"i",	"0.5+2i"
-1,		2,	"i",	"1+2i"
-1.5,		2,	"i",	"1.5+2i"
-2,		2,	"i",	"2+2i"
-2.5,		2,	"i",	"2.5+2i"
-3,		2,	"i",	"3+2i"
-3.5,		2,	"i",	"3.5+2i"
--2.5,		2.5,	"i",	"-2.5+2.5i"
--2.5,		2.5,	"i",	"-2.5+2.5i"
--1.5,		2.5,	"i",	"-1.5+2.5i"
--1.5,		2.5,	"i",	"-1.5+2.5i"
--0.5,		2.5,	"i",	"-0.5+2.5i"
-0,		2.5,	"i",	"2.5i"
-0.5,		2.5,	"i",	"0.5+2.5i"
-1,		2.5,	"i",	"1+2.5i"
-1.5,		2.5,	"i",	"1.5+2.5i"
-2,		2.5,	"i",	"2+2.5i"
-2.5,		2.5,	"i",	"2.5+2.5i"
-3,		2.5,	"i",	"3+2.5i"
-3.5,		2.5,	"i",	"3.5+2.5i"
--2.5,		3,	"i",	"-2.5+3i"
--2.5,		3,	"i",	"-2.5+3i"
--1.5,		3,	"i",	"-1.5+3i"
--1.5,		3,	"i",	"-1.5+3i"
--0.5,		3,	"i",	"-0.5+3i"
-0,		3,	"i",	"3i"
-0.5,		3,	"i",	"0.5+3i"
-1,		3,	"i",	"1+3i"
-1.5,		3,	"i",	"1.5+3i"
-2,		3,	"i",	"2+3i"
-2.5,		3,	"i",	"2.5+3i"
-3,		3,	"i",	"3+3i"
-3.5,		3,	"i",	"3.5+3i"
--2.5,		3.5,	"i",	"-2.5+3.5i"
--2.5,		3.5,	"i",	"-2.5+3.5i"
--1.5,		3.5,	"i",	"-1.5+3.5i"
--1.5,		3.5,	"i",	"-1.5+3.5i"
--0.5,		3.5,	"i",	"-0.5+3.5i"
-0,		3.5,	"i",	"3.5i"
-0.5,		3.5,	"i",	"0.5+3.5i"
-1,		3.5,	"i",	"1+3.5i"
-1.5,		3.5,	"i",	"1.5+3.5i"
-2,		3.5,	"i",	"2+3.5i"
-2.5,		3.5,	"i",	"2.5+3.5i"
-3,		3.5,	"i",	"3+3.5i"
-3.5,		3.5,	"i",	"3.5+3.5i"
--2.5,		-2.5,	"j",	"-2.5-2.5j"
--2.5,		-2.5,	"j",	"-2.5-2.5j"
--1.5,		-2.5,	"j",	"-1.5-2.5j"
--1.5,		-2.5,	"j",	"-1.5-2.5j"
--0.5,		-2.5,	"j",	"-0.5-2.5j"
-0,		-2.5,	"j",	"-2.5j"
-0.5,		-2.5,	"j",	"0.5-2.5j"
-1,		-2.5,	"j",	"1-2.5j"
-1.5,		-2.5,	"j",	"1.5-2.5j"
-2,		-2.5,	"j",	"2-2.5j"
-2.5,		-2.5,	"j",	"2.5-2.5j"
-3,		-2.5,	"j",	"3-2.5j"
-3.5,		-2.5,	"j",	"3.5-2.5j"
--2.5,		-2.5,	"j",	"-2.5-2.5j"
--2.5,		-2.5,	"j",	"-2.5-2.5j"
--1.5,		-2.5,	"j",	"-1.5-2.5j"
--1.5,		-2.5,	"j",	"-1.5-2.5j"
--0.5,		-2.5,	"j",	"-0.5-2.5j"
-0,		-2.5,	"j",	"-2.5j"
-0.5,		-2.5,	"j",	"0.5-2.5j"
-1,		-2.5,	"j",	"1-2.5j"
-1.5,		-2.5,	"j",	"1.5-2.5j"
-2,		-2.5,	"j",	"2-2.5j"
-2.5,		-2.5,	"j",	"2.5-2.5j"
-3,		-2.5,	"j",	"3-2.5j"
-3.5,		-2.5,	"j",	"3.5-2.5j"
--2.5,		-1.5,	"j",	"-2.5-1.5j"
--2.5,		-1.5,	"j",	"-2.5-1.5j"
--1.5,		-1.5,	"j",	"-1.5-1.5j"
--1.5,		-1.5,	"j",	"-1.5-1.5j"
--0.5,		-1.5,	"j",	"-0.5-1.5j"
-0,		-1.5,	"j",	"-1.5j"
-0.5,		-1.5,	"j",	"0.5-1.5j"
-1,		-1.5,	"j",	"1-1.5j"
-1.5,		-1.5,	"j",	"1.5-1.5j"
-2,		-1.5,	"j",	"2-1.5j"
-2.5,		-1.5,	"j",	"2.5-1.5j"
-3,		-1.5,	"j",	"3-1.5j"
-3.5,		-1.5,	"j",	"3.5-1.5j"
--2.5,		-1.5,	"j",	"-2.5-1.5j"
--2.5,		-1.5,	"j",	"-2.5-1.5j"
--1.5,		-1.5,	"j",	"-1.5-1.5j"
--1.5,		-1.5,	"j",	"-1.5-1.5j"
--0.5,		-1.5,	"j",	"-0.5-1.5j"
-0,		-1.5,	"j",	"-1.5j"
-0.5,		-1.5,	"j",	"0.5-1.5j"
-1,		-1.5,	"j",	"1-1.5j"
-1.5,		-1.5,	"j",	"1.5-1.5j"
-2,		-1.5,	"j",	"2-1.5j"
-2.5,		-1.5,	"j",	"2.5-1.5j"
-3,		-1.5,	"j",	"3-1.5j"
-3.5,		-1.5,	"j",	"3.5-1.5j"
--2.5,		-0.5,	"j",	"-2.5-0.5j"
--2.5,		-0.5,	"j",	"-2.5-0.5j"
--1.5,		-0.5,	"j",	"-1.5-0.5j"
--1.5,		-0.5,	"j",	"-1.5-0.5j"
--0.5,		-0.5,	"j",	"-0.5-0.5j"
-0,		-0.5,	"j",	"-0.5j"
-0.5,		-0.5,	"j",	"0.5-0.5j"
-1,		-0.5,	"j",	"1-0.5j"
-1.5,		-0.5,	"j",	"1.5-0.5j"
-2,		-0.5,	"j",	"2-0.5j"
-2.5,		-0.5,	"j",	"2.5-0.5j"
-3,		-0.5,	"j",	"3-0.5j"
-3.5,		-0.5,	"j",	"3.5-0.5j"
--2.5,		0,	"j",	-2.5
--2.5,		0,	"j",	-2.5
--1.5,		0,	"j",	-1.5
--1.5,		0,	"j",	-1.5
--0.5,		0,	"j",	-0.5
-0,		0,	"j",	0
-0.5,		0,	"j",	0.5
-1,		0,	"j",	1
-1.5,		0,	"j",	1.5
-2,		0,	"j",	2
-2.5,		0,	"j",	2.5
-3,		0,	"j",	3
-3.5,		0,	"j",	3.5
--2.5,		0.5,	"j",	"-2.5+0.5j"
--2.5,		0.5,	"j",	"-2.5+0.5j"
--1.5,		0.5,	"j",	"-1.5+0.5j"
--1.5,		0.5,	"j",	"-1.5+0.5j"
--0.5,		0.5,	"j",	"-0.5+0.5j"
-0,		0.5,	"j",	"0.5j"
-0.5,		0.5,	"j",	"0.5+0.5j"
-1,		0.5,	"j",	"1+0.5j"
-1.5,		0.5,	"j",	"1.5+0.5j"
-2,		0.5,	"j",	"2+0.5j"
-2.5,		0.5,	"j",	"2.5+0.5j"
-3,		0.5,	"j",	"3+0.5j"
-3.5,		0.5,	"j",	"3.5+0.5j"
--2.5,		1,	"j",	"-2.5+j"
--2.5,		1,	"j",	"-2.5+j"
--1.5,		1,	"j",	"-1.5+j"
--1.5,		1,	"j",	"-1.5+j"
--0.5,		1,	"j",	"-0.5+j"
-0,		1,	"j",	"j"
-0.5,		1,	"j",	"0.5+j"
-1,		1,	"j",	"1+j"
-1.5,		1,	"j",	"1.5+j"
-2,		1,	"j",	"2+j"
-2.5,		1,	"j",	"2.5+j"
-3,		1,	"j",	"3+j"
-3.5,		1,	"j",	"3.5+j"
--2.5,		1.5,	"j",	"-2.5+1.5j"
--2.5,		1.5,	"j",	"-2.5+1.5j"
--1.5,		1.5,	"j",	"-1.5+1.5j"
--1.5,		1.5,	"j",	"-1.5+1.5j"
--0.5,		1.5,	"j",	"-0.5+1.5j"
-0,		1.5,	"j",	"1.5j"
-0.5,		1.5,	"j",	"0.5+1.5j"
-1,		1.5,	"j",	"1+1.5j"
-1.5,		1.5,	"j",	"1.5+1.5j"
-2,		1.5,	"j",	"2+1.5j"
-2.5,		1.5,	"j",	"2.5+1.5j"
-3,		1.5,	"j",	"3+1.5j"
-3.5,		1.5,	"j",	"3.5+1.5j"
--2.5,		2,	"j",	"-2.5+2j"
--2.5,		2,	"j",	"-2.5+2j"
--1.5,		2,	"j",	"-1.5+2j"
--1.5,		2,	"j",	"-1.5+2j"
--0.5,		2,	"j",	"-0.5+2j"
-0,		2,	"j",	"2j"
-0.5,		2,	"j",	"0.5+2j"
-1,		2,	"j",	"1+2j"
-1.5,		2,	"j",	"1.5+2j"
-2,		2,	"j",	"2+2j"
-2.5,		2,	"j",	"2.5+2j"
-3,		2,	"j",	"3+2j"
-3.5,		2,	"j",	"3.5+2j"
--2.5,		2.5,	"j",	"-2.5+2.5j"
--2.5,		2.5,	"j",	"-2.5+2.5j"
--1.5,		2.5,	"j",	"-1.5+2.5j"
--1.5,		2.5,	"j",	"-1.5+2.5j"
--0.5,		2.5,	"j",	"-0.5+2.5j"
-0,		2.5,	"j",	"2.5j"
-0.5,		2.5,	"j",	"0.5+2.5j"
-1,		2.5,	"j",	"1+2.5j"
-1.5,		2.5,	"j",	"1.5+2.5j"
-2,		2.5,	"j",	"2+2.5j"
-2.5,		2.5,	"j",	"2.5+2.5j"
-3,		2.5,	"j",	"3+2.5j"
-3.5,		2.5,	"j",	"3.5+2.5j"
--2.5,		3,	"j",	"-2.5+3j"
--2.5,		3,	"j",	"-2.5+3j"
--1.5,		3,	"j",	"-1.5+3j"
--1.5,		3,	"j",	"-1.5+3j"
--0.5,		3,	"j",	"-0.5+3j"
-0,		3,	"j",	"3j"
-0.5,		3,	"j",	"0.5+3j"
-1,		3,	"j",	"1+3j"
-1.5,		3,	"j",	"1.5+3j"
-2,		3,	"j",	"2+3j"
-2.5,		3,	"j",	"2.5+3j"
-3,		3,	"j",	"3+3j"
-3.5,		3,	"j",	"3.5+3j"
--2.5,		3.5,	"j",	"-2.5+3.5j"
--2.5,		3.5,	"j",	"-2.5+3.5j"
--1.5,		3.5,	"j",	"-1.5+3.5j"
--1.5,		3.5,	"j",	"-1.5+3.5j"
--0.5,		3.5,	"j",	"-0.5+3.5j"
-0,		3.5,	"j",	"3.5j"
-0.5,		3.5,	"j",	"0.5+3.5j"
-1,		3.5,	"j",	"1+3.5j"
-1.5,		3.5,	"j",	"1.5+3.5j"
-2,		3.5,	"j",	"2+3.5j"
-2.5,		3.5,	"j",	"2.5+3.5j"
-3,		3.5,	"j",	"3+3.5j"
-3.5,		3.5,	"j",	"3.5+3.5j"
--1.23,		-4.56,		"-1.23-4.56i"
-0,		-3.21,	"i",	"-3.21i"
-1.23,		-2.34,	"j",	"1.23-2.34j"
--1.23,		0,		-1.23
-0,		0,	"i",	0
-1.23,		0,	"j",	1.23
--1.23,		4.56,		"-1.23+4.56i"
-0,		3.21,	"i",	"3.21i"
-1.23,		2.34,	"j",	"1.23+2.34j"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/CONVERTUOM.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/CONVERTUOM.data
deleted file mode 100644
index dbcfb0119aa..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/CONVERTUOM.data
+++ /dev/null
@@ -1,24 +0,0 @@
-1.0,	"lbm",	"kg",	0.45359230974881
-123.45,	"kg",	"kg",	123.45
-68,	"F",	"C",	20
-20,	"C",	"F",	68
-68,	"F",	"K",	293.15
-293.15,	"K",	"F",	68
-22,	"C",	"K",	295.15
-295.65,	"K",	"C",	22.5
-2.5,	"ft",	"sec",	"#N/A"
-12345,	"m",	"km",	12.345
-12.345,	"km",	"m",	12345
-1,	"km",	"mi",	0.62137119223733
-"three","ft",	"yds",	"#VALUE!"
-123.45,	"K",	"kel",	123.45
-123.45,	"C",	"cel",	123.45
-123.45,	"F",	"fah",	123.45
-1,	"ft",	"day",	"#N/A"
-123.45,	"m",	"m",	123.45
-234.56,	"km",	"km",	234.56
-234.56,	"kpt",	"lt",	"#N/A"
-234.56,	"sm",	"m",	"#N/A"
-234.56,	"lt",	"kpt",	"#N/A"
-234.56,	"m",	"sm",	"#N/A"
-12.345,	"km",	"mm",	12345000
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/DEC2BIN.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/DEC2BIN.data
deleted file mode 100644
index 404adaba023..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/DEC2BIN.data
+++ /dev/null
@@ -1,16 +0,0 @@
-357,			"101100101"
-1357,			"#NUM!"		//	Too large
-9,		4,	"1001"
-9,		8,	"00001001"
-9,		6.75,	"001001"	//	Leading places as a float
-9,		-1,	"#NUM!"		//	Leading places negative
-9,		"ABC",	"#VALUE!"	//	Leading places non-numeric
-246,			"11110110"
-12345,			"#NUM!"
-123456789,		"#NUM!"
-123.45,			"1111011"
-0,			"0"
-"3579A",		"#VALUE!"	//	Invalid decimal
-TRUE,			"#VALUE!"	//	Non string
--100,			"1110011100"	//	2's Complement
--107,			"1110010101"	//	2's Complement
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/DEC2HEX.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/DEC2HEX.data
deleted file mode 100644
index 5210e91593f..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/DEC2HEX.data
+++ /dev/null
@@ -1,15 +0,0 @@
-"357",			"165"
-"1357",			"54D"
-"246",			"F6"
-"12345",		"3039"
-"123456789",		"75BCD15"
-"100",		4,	"0064"
-"100",		5.75,	"00064"		//	Leading places as a float
-"100",		-1,	"#NUM!"		//	Leading places negative
-"100",		"ABC",	"#VALUE!"	//	Leading places non-numeric
-"123.45",		"7B"
-"0",			"0"
-"3579A",		"#VALUE!"	//	Invalid decimal
-TRUE,			"#VALUE!"	//	Non string
-"-54",			"FFFFFFFFCA"	//	2's Complement
-"-107",			"FFFFFFFF95"	//	2's Complement
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/DEC2OCT.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/DEC2OCT.data
deleted file mode 100644
index 923532e2814..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/DEC2OCT.data
+++ /dev/null
@@ -1,12 +0,0 @@
-"357",			"545"
-"1357",			"2515"
-"246",			"366"
-"12345",		"30071"
-"123456789",		"726746425"
-"123.45",		"173"
-"58,		3,	"072"
-"0",			"0"
-"3579A",		"#VALUE!"	//	Invalid decimal
-TRUE,			"#VALUE!"	//	Non string
-"-100",			"7777777634"	//	2's Complement
-"-107",			"7777777625"	//	2's Complement
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/DELTA.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/DELTA.data
deleted file mode 100644
index e994277b28e..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/DELTA.data
+++ /dev/null
@@ -1,25 +0,0 @@
--1.5,	-1.5,	1
--0.75,	-1.5,	0
-0,	-1.5,	0
-0.75,	-1.5,	0
-1.5,	-1.5,	0
--1.5,	-0.75,	0
--0.75,	-0.75,	1
-0,	-0.75,	0
-0.75,	-0.75,	0
-1.5,	-0.75,	0
--1.5,	0,	0
--0.75,	0,	0
-0,	0,	1
-0.75,	0,	0
-1.5,	0,	0
--1.5,	0.75,	0
--0.75,	0.75,	0
-0,	0.75,	0
-0.75,	0.75,	1
-1.5,	0.75,	0
--1.5,	1.5,	0
--0.75,	1.5,	0
-0,	1.5,	0
-0.75,	1.5,	0
-1.5,	1.5,	1
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/ERF.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/ERF.data
deleted file mode 100644
index 5c4fc1e9f1b..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/ERF.data
+++ /dev/null
@@ -1,124 +0,0 @@
-# lower	bound	upper bound	Result
-0,				0.0
-0.01,				0.0112834155558496
-0.05,				0.0563719777970166
-0.1,				0.1124629160182850
-0.125,				0.1403162048013340
-0.15,				0.1679959714273630
-0.2,				0.2227025892104780
-0.25,				0.2763263901682370
-0.3,				0.3286267594591270
-0.35,				0.3793820535623100
-0.4,				0.4283923550466680
-0.45,				0.4754817197869240
-0.5,				0.5204998778130470
-0.6,				0.6038560908479260
-0.7,				0.6778011938374180
-0.8,				0.7421009647076610
-0.9,				0.7969082124228320
-1,				0.8427007929497150
-1.1,				0.8802050695740820
-1.2,				0.9103139782296350
-1.3,				0.9340079449406520
-1.4,				0.9522851197626490
-1.5,				0.9661051464753110
-1.75,				0.9866716712191820
-2,				0.9953222650189530
-2.5,				0.9995930479825550
-3,				0.9999779095030010
-3.5,				0.9999992569016280
-4,				0.9999999845827420
-4.5,				0.9999999998033840
-5,				0.9999999999984630
-5.5,				0.9999999999999930
-6,				1.0
-32,				1.0
--0.1,				-0.1124629160182850
--1,				-0.8427007929497150
-TRUE,				"#VALUE!"
-FALSE,				"#VALUE!"
-"2",				0.9953222650189530
-"TWO",				"#VALUE!"
--1.5,		-1.5,		0.0
--0.75,		-1.5,		-0.2549495128217960
-0,		-1.5,		-0.9661051464753110
-0.75,		-1.5,		-1.6772607801288300
-1.5,		-1.5,		-1.9322102929506200
-2.25,		-1.5,		-1.9646424298886300
-3,		-1.5,		-1.9660830559783100
-3.75,		-1.5,		-1.9661050327480500
-4.5,		-1.5,		-1.9661051462786900
--1.5,		-0.75,		0.2549495128217960
--0.75,		-0.75,		0.0
-0,		-0.75,		-0.7111556336535150
-0.75,		-0.75,		-1.4223112673070300
-1.5,		-0.75,		-1.6772607801288300
-2.25,		-0.75,		-1.7096929170668300
-3,		-0.75,		-1.7111335431565200
-3.75,		-0.75,		-1.7111555199262600
-4.5,		-0.75,		-1.7111556334569000
--1.5,		0,		0.9661051464753110
--0.75,		0,		0.7111556336535150
-0,		0,		0.0
-0.75,		0,		-0.7111556336535150
-1.5,		0,		-0.9661051464753110
-2.25,		0,		-0.9985372834133190
-3,		0,		-0.9999779095030010
-3.75,		0,		-0.9999998862727430
-4.5,		0,		-0.9999999998033840
--1.5,		0.75,		1.6772607801288300
--0.75,		0.75,		1.4223112673070300
-0,		0.75,		0.7111556336535150
-0.75,		0.75,		0.0
-1.5,		0.75,		-0.2549495128217960
-2.25,		0.75,		-0.2873816497598040
-3,		0.75,		-0.2888222758494860
-3.75,		0.75,		-0.2888442526192280
-4.5,		0.75,		-0.2888443661498690
--1.5,		1.5,		1.9322102929506200
--0.75,		1.5,		1.6772607801288300
-0,		1.5,		0.9661051464753110
-0.75,		1.5,		0.2549495128217960
-1.5,		1.5,		0.0
-2.25,		1.5,		-0.0324321369380081
-3,		1.5,		-0.0338727630276906
-3.75,		1.5,		-0.0338947397974326
-4.5,		1.5,		-0.0338948533280732
--1.5,		2.25,		1.9646424298886300
--0.75,		2.25,		1.7096929170668300
-0,		2.25,		0.9985372834133190
-0.75,		2.25,		0.2873816497598040
-1.5,		2.25,		0.0324321369380081
-2.25,		2.25,		0.0
-3,		2.25,		-0.0014406260896825
-3.75,		2.25,		-0.0014626028594246
-4.5,		2.25,		-0.0014627163900651
--1.5,		3,		1.9660830559783100
--0.75,		3,		1.7111335431565200
-0,		3,		0.9999779095030010
-0.75,		3,		0.2888222758494860
-1.5,		3,		0.0338727630276906
-2.25,		3,		0.0014406260896825
-3,		3,		0.0
-3.75,		3,		-0.0000219767697420
-4.5,		3,		-0.0000220903003826
--1.5,		3.75,		1.9661050327480500
--0.75,		3.75,		1.7111555199262600
-0,		3.75,		0.9999998862727430
-0.75,		3.75,		0.2888442526192280
-1.5,		3.75,		0.0338947397974326
-2.25,		3.75,		0.0014626028594246
-3,		3.75,		0.0000219767697420
-3.75,		3.75,		0.0
-4.5,		3.75,		-0.0000001135306406
--1.5,		4.5,		1.9661051462786900
--0.75,		4.5,		1.7111556334569000
-0,		4.5,		0.9999999998033840
-0.75,		4.5,		0.2888443661498690
-1.5,		4.5,		0.0338948533280732
-2.25,		4.5,		0.0014627163900651
-3,		4.5,		0.0000220903003826
-3.75,		4.5,		0.0000001135306406
-4.5,		4.5,		0.0
-5,		-1,		-1.8427007929481800
--5,		1,		1.8427007929481800
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/ERFC.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/ERFC.data
deleted file mode 100644
index df814893e2d..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/ERFC.data
+++ /dev/null
@@ -1,41 +0,0 @@
-# x value	Result
-0,		1.0
-0.01,		0.9887165844441500
-0.05,		0.9436280222029830
-0.1,		0.8875370839817150
-0.125,		0.8596837951986660
-0.15,		0.8320040285726360
-0.2,		0.7772974107895220
-0.25,		0.7236736098317630
-0.3,		0.6713732405408730
-0.35,		0.6206179464376900
-0.4,		0.5716076449533320
-0.45,		0.5245182802130760
-0.5,		0.4795001221869530
-0.6,		0.3961439091520740
-0.7,		0.3221988061625820
-0.8,		0.2578990352923390
-0.9,		0.2030917875771680
-1,		0.1572992070502850
-1.1,		0.1197949304259180
-1.2,		0.0896860217703646
-1.3,		0.0659920550593475
-1.4,		0.0477148802373512
-1.5,		0.0338948535246893
-1.75,		0.0133283287808176
-2,		0.0046777349810473
-2.5,		0.0004069520174450
-3,		0.0000220904969986
-3.5,		0.0000007430983723
-4,		0.0000000154172579
-4.5,		0.0000000001966160
-5,		0.0000000000015375
-5.5,		0.0000000000000074
-6,		0.0
-32,		0.0
--0.1,		1.1124629160182900
--1,		1.8427007929497100
-TRUE,		"#VALUE!"
-FALSE,		"#VALUE!"
-"2",		0.0046777349810473
-"TWO",		"#VALUE!"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/GESTEP.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/GESTEP.data
deleted file mode 100644
index f6bf40ea8f4..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/GESTEP.data
+++ /dev/null
@@ -1,81 +0,0 @@
--1.5,	-1.5,	1
--0.75,	-1.5,	1
-0,	-1.5,	1
-0.75,	-1.5,	1
-1.5,	-1.5,	1
-2.25,	-1.5,	1
-3,	-1.5,	1
-3.75,	-1.5,	1
-4.5,	-1.5,	1
--1.5,	-0.75,	0
--0.75,	-0.75,	1
-0,	-0.75,	1
-0.75,	-0.75,	1
-1.5,	-0.75,	1
-2.25,	-0.75,	1
-3,	-0.75,	1
-3.75,	-0.75,	1
-4.5,	-0.75,	1
--1.5,	0,	0
--0.75,	0,	0
-0,	0,	1
-0.75,	0,	1
-1.5,	0,	1
-2.25,	0,	1
-3,	0,	1
-3.75,	0,	1
-4.5,	0,	1
--1.5,	0.75,	0
--0.75,	0.75,	0
-0,	0.75,	0
-0.75,	0.75,	1
-1.5,	0.75,	1
-2.25,	0.75,	1
-3,	0.75,	1
-3.75,	0.75,	1
-4.5,	0.75,	1
--1.5,	1.5,	0
--0.75,	1.5,	0
-0,	1.5,	0
-0.75,	1.5,	0
-1.5,	1.5,	1
-2.25,	1.5,	1
-3,	1.5,	1
-3.75,	1.5,	1
-4.5,	1.5,	1
--1.5,	2.25,	0
--0.75,	2.25,	0
-0,	2.25,	0
-0.75,	2.25,	0
-1.5,	2.25,	0
-2.25,	2.25,	1
-3,	2.25,	1
-3.75,	2.25,	1
-4.5,	2.25,	1
--1.5,	3,	0
--0.75,	3,	0
-0,	3,	0
-0.75,	3,	0
-1.5,	3,	0
-2.25,	3,	0
-3,	3,	1
-3.75,	3,	1
-4.5,	3,	1
--1.5,	3.75,	0
--0.75,	3.75,	0
-0,	3.75,	0
-0.75,	3.75,	0
-1.5,	3.75,	0
-2.25,	3.75,	0
-3,	3.75,	0
-3.75,	3.75,	1
-4.5,	3.75,	1
--1.5,	4.5,	0
--0.75,	4.5,	0
-0,	4.5,	0
-0.75,	4.5,	0
-1.5,	4.5,	0
-2.25,	4.5,	0
-3,	4.5,	0
-3.75,	4.5,	0
-4.5,	4.5,	1
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/HEX2BIN.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/HEX2BIN.data
deleted file mode 100644
index 9e1aecb12df..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/HEX2BIN.data
+++ /dev/null
@@ -1,13 +0,0 @@
-"01AB",			"110101011"
-"ABCD",			"#NUM!"
-"F6",			"11110110"
-"F",		8,	"00001111"
-"B7",			"10110111"
-"12345",		"#NUM!"
-"123456789",		"#NUM!"
-"123.45",		"#NUM!"
-"0",			"0"
-"G3579A",		"#NUM!"
-TRUE,			"#VALUE!"
-"-107",			"#NUM!"
-"FFFFFFFFFF",		"1111111111"	//	2's Complement
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/HEX2DEC.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/HEX2DEC.data
deleted file mode 100644
index 17fc866710d..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/HEX2DEC.data
+++ /dev/null
@@ -1,13 +0,0 @@
-"01AB",		"427"
-"ABCD",		"43981"
-"F6",		"246"
-"12345",	"74565"
-"123456789",	"4886718345"
-"123.45",	"#NUM!"
-"0",		"0"
-"G3579A",	"#NUM!"
-TRUE,		"#VALUE!"
-"-107",		"#NUM!"
-"A5",		"165"
-"FFFFFFFF5B",	"-165"
-"3DA408B9",	"1034160313"	//	2's Complement
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/HEX2OCT.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/HEX2OCT.data
deleted file mode 100644
index 2ebd893ab53..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/HEX2OCT.data
+++ /dev/null
@@ -1,13 +0,0 @@
-"01AB",			"653"
-"ABCD",			"125715"
-"F6",			"366"
-"3B4E",			"35516"
-"F",		3,	"017"
-"12345",		"221505"
-"123456789",		"#NUM!"
-"123.45",		"#NUM!"
-"0",			"0"
-"G3579A",		"#NUM!"
-TRUE,			"#VALUE!"
-"-107",			"#NUM!"
-"FFFFFFFF00",		"7777777400"	//	2's Complement
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMABS.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMABS.data
deleted file mode 100644
index e92de41b664..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMABS.data
+++ /dev/null
@@ -1,27 +0,0 @@
-"12.34+5.67j",		13.580298229420
-"1.234E-5+6.78E9i",	6.78E9
-"3.5+2.5i",		4.301162633521
-"3.5+i",		3.640054944640
-"3.5",			3.5
-"3.5-i",		3.640054944640
-"3.5-2.5i",		4.301162633521
-"1+2.5i",		2.692582403567
-"1+i",			1.414213562373
-"1",			1
-"1-i",			1.414213562373
-"1-2.5i",		2.692582403567
-"2.5i",			2.5
-"i",			1
-"0",			0
-"-i",			1
-"-2.5i",		2.5
-"-1+2.5i",		2.692582403567
-"-1+i",			1.414213562373
-"-1",			1
-"-1-i",			1.414213562373
-"-1-2.5i",		2.692582403567
-"-3.5+2.5i",		4.301162633521
-"-3.5+i",		3.640054944640
-"-3.5",			3.5
-"-3.5-i",		3.640054944640
-"-3.5-2.5i",		4.301162633521
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMAGINARY.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMAGINARY.data
deleted file mode 100644
index ac888bae8e1..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMAGINARY.data
+++ /dev/null
@@ -1,30 +0,0 @@
-"12.34+5.67j",		5.67
-"1.234E-5+6.78E9i",	6.78E9
-"3.5+2.5i",		2.5
-"3.5+i",		1
-"3.5",			0
-"3.5-i",		-1
-"3.5-2.5i",		-2.5
-"1+2.5i",		2.5
-"1+i",			1
-"1",			0
-1,			0
-"1-i",			-1
-"1-2.5i",		-2.5
-"2.5i",			2.5
-"i",			1
-"0",			0
-0,			0
-0.0,			0
-"-i",			-1
-"-2.5i",		-2.5
-"-1+2.5i",		2.5
-"-1+i",			1
-"-1",			0
-"-1-i",			-1
-"-1-2.5i",		-2.5
-"-3.5+2.5i",		2.5
-"-3.5+i",		1
-"-3.5",			0
-"-3.5-i",		-1
-"-3.5-2.5i",		-2.5
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMARGUMENT.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMARGUMENT.data
deleted file mode 100644
index 4b11d998ac4..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMARGUMENT.data
+++ /dev/null
@@ -1,26 +0,0 @@
-"12.34+5.67j",	0.430710595550
-"3.5+2.5i",	0.620249485983
-"3.5+i",	0.278299659005
-"3.5",		0
-"3.5-i",	-0.278299659005
-"3.5-2.5i",	-0.620249485983
-"1+2.5i",	1.190289949683
-"1+i",		0.785398163397
-"1",		0
-"1-i",		-0.785398163397
-"1-2.5i",	-1.190289949683
-"2.5i",		1.570796326795
-"i",		1.570796326795
-"0",		"#DIV/0!"
-"-i",		-1.570796326795
-"-2.5i",	-1.570796326795
-"-1+2.5i",	1.951302703907
-"-1+i",		2.356194490192
-"-1",		3.141592653590
-"-1-i",		-2.356194490192
-"-1-2.5i",	-1.951302703907
-"-3.5+2.5i",	2.521343167607
-"-3.5+i",	2.863292994585
-"-3.5",		3.141592653590
-"-3.5-i",	-2.863292994585
-"-3.5-2.5i",	-2.521343167607
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMCONJUGATE.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMCONJUGATE.data
deleted file mode 100644
index 67eb96ff575..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMCONJUGATE.data
+++ /dev/null
@@ -1,26 +0,0 @@
-"12.34+5.67j",	"12.34-5.67j"
-"3.5+2.5i",	"3.5-2.5i"
-"3.5+i",	"3.5-i"
-"3.5",		"3.5"
-"3.5-i",	"3.5+i"
-"3.5-2.5i",	"3.5+2.5i"
-"1+2.5i",	"1-2.5i"
-"1+i",		"1-i"
-"1",		"1"
-"1-i",		"1+i"
-"1-2.5i",	"1+2.5i"
-"2.5i",		"-2.5i"
-"i",		"-i"
-"0",		"0"
-"-i",		"i"
-"-2.5i",	"2.5i"
-"-1+2.5i",	"-1-2.5i"
-"-1+i",		"-1-i"
-"-1",		"-1"
-"-1-i",		"-1+i"
-"-1-2.5i",	"-1+2.5i"
-"-3.5+2.5i",	"-3.5-2.5i"
-"-3.5+i",	"-3.5-i"
-"-3.5",		"-3.5"
-"-3.5-i",	"-3.5+i"
-"-3.5-2.5i",	"-3.5+2.5i"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMCOS.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMCOS.data
deleted file mode 100644
index 7ada86eaeaa..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMCOS.data
+++ /dev/null
@@ -1,27 +0,0 @@
-"12.34+5.67j",	"141.319179436356+32.547610312508j"
-"3.5+2.5i",	"-5.74262349163406+2.12231025604134i"
-"3.5+i",	"-1.44502817950166+0.412240867891067i"
-"3.5",		"-0.936456687290796"
-"3.5-i",	"-1.44502817950166-0.412240867891067i"
-"3.5-2.5i",	"-5.74262349163406-2.12231025604134i"
-"1+2.5i",	"3.31329014611322-5.0910715229497i"
-"1+i",		"0.833730025131149-0.988897705762865i"
-"1",		"0.54030230586814"
-"1-i",		"0.833730025131149+0.988897705762865i"
-"1-2.5i",	"3.31329014611322+5.0910715229497i"
-"2.5i",		"6.13228947966369"
-"i",		"1.54308063481524"
-"0",		"1"
-"-i",		"1.54308063481524"
-"-2.5i",	"6.13228947966369"
-"-1+2.5i",	"3.31329014611322+5.0910715229497i"
-"-1+i",		"0.833730025131149+0.988897705762865i"
-"-1",		"0.54030230586814"
-"-1-i",		"0.833730025131149-0.988897705762865i"
-"-1-2.5i",	"3.31329014611322-5.0910715229497i"
-"-3.5+2.5i",	"-5.74262349163406-2.12231025604134i"
-"-3.5+i",	"-1.44502817950166-0.412240867891067i"
-"-3.5",		"-0.936456687290796"
-"-3.5-i",	"-1.44502817950166+0.412240867891067i"
-"-3.5-2.5i",	"-5.74262349163406+2.12231025604134i"
-"3",		"-0.989992496600445"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMDIV.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMDIV.data
deleted file mode 100644
index 52d5cbb6e1a..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMDIV.data
+++ /dev/null
@@ -1,20 +0,0 @@
-"12.34+5.67j",	"123.45+67.89i",	"#NUM!"
-"12.34+5.67j",	"123.45+67.89j",	"0.0961415519586104-0.00694248653276682j"
-"-12.34+5.67i",	"-123.45+67.89i",	"0.0961415519586104+0.00694248653276682i"
-"-12.34-5.67i",	"-123.45+67.89i",	"0.0573549954111941+0.0774712890924744i"
-"-12.34+5.67i",	"-123.45-67.89i",	"0.0573549954111941-0.0774712890924744i"
-"-12.34-5.67i",	"-123.45-67.89i",	"0.0961415519586104-0.00694248653276682i"
-"12.34+5.67i",	"-123.45+67.89i",	"-0.0573549954111941-0.0774712890924744i"
-"12.34-5.67i",	"-123.45+67.89i",	"-0.0961415519586104-0.00694248653276682i"
-"12.34+5.67i",	"-123.45-67.89i",	"-0.0961415519586104+0.00694248653276682i"
-"12.34-5.67i",	"-123.45-67.89i",	"-0.0573549954111941+0.0774712890924744i"
-"-12.34+5.67i",	"123.45+67.89i",	"-0.0573549954111941+0.0774712890924744i"
-"-12.34-5.67i",	"123.45+67.89i",	"-0.0961415519586104+0.00694248653276682i"
-"-12.34+5.67i",	"123.45-67.89i",	"-0.0961415519586104-0.00694248653276682i"
-"-12.34-5.67i",	"123.45-67.89i",	"-0.0573549954111941-0.0774712890924744i"
-"-12.34-5.67i",	"123.45-67.89",		"#NUM!"
-"-12.34-5.67j",	"123.45-67.89",		"#NUM!"
-"-12.34-5.67",	"123.45-67.89j",	"#NUM!"
-"-12.34-5.67i",	"-12.34-5.67i",		"1"
-"-12.34",	"123.45-67.89i",	"-0.0767482736849023-0.0422068878126206i"
-"-12.34-5.67i",	"-12.34",		"1+0.459481361426256i"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMEXP.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMEXP.data
deleted file mode 100644
index 4c4d9b62b4e..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMEXP.data
+++ /dev/null
@@ -1,27 +0,0 @@
-"12.34+5.67j",		"187004.11273906-131589.323796073j"
-"-12.34E-5+6.78E9i",	"1.79747131321615E+308+1.79747131321615E+308i"
-"3.5+2.5i",		"-26.5302329126575+19.8186755366902i"
-"3.5+i",		"17.8923550531471+27.8656919720394i"
-"3.5",			"33.1154519586923"
-"3.5-i",		"17.8923550531471-27.8656919720394i"
-"3.5-2.5i",		"-26.5302329126575-19.8186755366902i"
-"1+2.5i",		"-2.17773413212721+1.62681595415671i"
-"1+i",			"1.46869393991589+2.28735528717884i"
-"1",			"2.71828182845905"
-"1-i",			"1.46869393991589-2.28735528717884i"
-"1-2.5i",		"-2.17773413212721-1.62681595415671i"
-"2.5i",			"-0.801143615546934+0.598472144103957i"
-"i",			"0.54030230586814+0.841470984807897i"
-"0",			"1"
-"-i",			"0.54030230586814-0.841470984807897i"
-"-2.5i",		"-0.801143615546934-0.598472144103957i"
-"-1+2.5i",		"-0.294724265585475+0.220165597929638i"
-"-1+i",			"0.198766110346413+0.309559875653112i"
-"-1",			"0.367879441171442"
-"-1-i",			"0.198766110346413-0.309559875653112i"
-"-1-2.5i",		"-0.294724265585475-0.220165597929638i"
-"-3.5+2.5i",		"-0.0241924409350133+0.0180722928030842i"
-"-3.5+i",		"0.016315715894263+0.025410221967i"
-"-3.5",			"0.0301973834223185"
-"-3.5-i",		"0.016315715894263-0.025410221967i"
-"-3.5-2.5i",		"-0.0241924409350133-0.0180722928030842i"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMLN.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMLN.data
deleted file mode 100644
index cb24be4ef7b..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMLN.data
+++ /dev/null
@@ -1,27 +0,0 @@
-"12.34+5.67j",		"2.60862008281875+0.430710595550204j"
-"-1.234E-5+6.78E9i",	"22.6372429388987+1.5707963267949i"
-"3.5+2.5i",		"1.45888536604214+0.620249485982821i"
-"3.5+i",			"1.29199877621612+0.278299659005111i"
-"3.5",			"1.25276296849537"
-"3.5-i",			"1.29199877621612-0.278299659005111i"
-"3.5-2.5i",		"1.45888536604214-0.620249485982821i"
-"1+2.5i",		"0.990500734433292+1.19028994968253i"
-"1+i",			"0.346573590279973+0.785398163397448i"
-"1",			"0"
-"1-i",			"0.346573590279973-0.785398163397448i"
-"1-2.5i",		"0.990500734433292-1.19028994968253i"
-"2.5i",			"0.916290731874155+1.5707963267949i"
-"i",			"1.5707963267949i"
-"0",			"#NUM!"
-"-i",			"-1.5707963267949i"
-"-2.5i",			"0.916290731874155-1.5707963267949i"
-"-1+2.5i",		"0.990500734433292+1.95130270390726i"
-"-1+i",			"0.346573590279973+2.35619449019234i"
-"-1",			"3.14159265358979i"
-"-1-i",			"0.346573590279973-2.35619449019234i"
-"-1-2.5i",		"0.990500734433292-1.95130270390726i"
-"-3.5+2.5i",		"1.45888536604214+2.52134316760697i"
-"-3.5+i",		"1.29199877621612+2.86329299458468i"
-"-3.5",			"1.25276296849537+3.14159265358979i"
-"-3.5-i",		"1.29199877621612-2.86329299458468i"
-"-3.5-2.5i",		"1.45888536604214-2.52134316760697i"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMLOG10.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMLOG10.data
deleted file mode 100644
index 8c57ff90cb2..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMLOG10.data
+++ /dev/null
@@ -1,27 +0,0 @@
-"12.34+5.67j",		"1.13290930735019+0.187055234944717j"
-"-12.34E-5+6.78E9i",	"9.83122969386706+0.682188176920927i"
-"3.5+2.5i",		"0.633585864201507+0.269370929165668i"
-"3.5+i",		"0.561107939136413+0.120864006221476i"
-"3.5",			"0.544068044350276"
-"3.5-i",		"0.561107939136413-0.120864006221476i"
-"3.5-2.5i",		"0.633585864201507-0.269370929165668i"
-"1+2.5i",		"0.430169003285497+0.516936357012023i"
-"1+i",			"0.150514997831991+0.34109408846046i"
-"1",			"0"
-"1-i",			"0.150514997831991-0.34109408846046i"
-"1-2.5i",		"0.430169003285497-0.516936357012023i"
-"2.5i",			"0.397940008672038+0.68218817692092i"
-"i",			"0.68218817692092i"
-"0",			"#NUM!"
-"-i",			"-0.68218817692092i"
-"-2.5i",		"0.397940008672038-0.68218817692092i"
-"-1+2.5i",		"0.430169003285497+0.847439996829817i"
-"-1+i",			"0.150514997831991+1.02328226538138i"
-"-1",			"1.36437635384184i"
-"-1-i",			"0.150514997831991-1.02328226538138i"
-"-1-2.5i",		"0.430169003285497-0.847439996829817i"
-"-3.5+2.5i",		"0.633585864201507+1.09500542467617i"
-"-3.5+i",		"0.561107939136413+1.24351234762036i"
-"-3.5",			"0.544068044350276+1.36437635384184i"
-"-3.5-i",		"0.561107939136413-1.24351234762036i"
-"-3.5-2.5i",		"0.633585864201507-1.09500542467617i"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMLOG2.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMLOG2.data
deleted file mode 100644
index a5a41367909..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMLOG2.data
+++ /dev/null
@@ -1,27 +0,0 @@
-"12.34+5.67j",		"3.76344325733562+0.621384040306436j"
-"-12.34E-5+6.78E9i",	"32.6586381298614+2.26618007108803i"
-"3.5+2.5i",		"2.10472668297646+0.894830857610216i"
-"3.5+i",		"1.86396022742506+0.401501537958665i"
-"3.5",			"1.80735492219671"
-"3.5-i",		"1.86396022742506-0.401501537958665i"
-"3.5-2.5i",		"2.10472668297646-0.894830857610216i"
-"1+2.5i",		"1.42899049767377+1.71722540775913i"
-"1+i",			"0.500000000038482+1.13309003554401i"
-"1",			"0"
-"1-i",			"0.500000000038482-1.13309003554401i"
-"1-2.5i",		"1.42899049767377-1.71722540775913i"
-"2.5i",			"1.3219280949891+2.26618007108801i"
-"i",			"2.26618007108801i"
-"0",			"#NUM!"
-"-i",			"-2.26618007108801i"
-"-2.5i",		"1.3219280949891-2.26618007108801i"
-"-1+2.5i",		"1.42899049767377+2.81513473441689i"
-"-1+i",			"0.500000000038482+3.39927010663201i"
-"-1",			"4.53236014217602i"
-"-1-i",			"0.500000000038482-3.39927010663201i"
-"-1-2.5i",		"1.42899049767377-2.81513473441689i"
-"-3.5+2.5i",		"2.10472668297646+3.63752928456581i"
-"-3.5+i",		"1.86396022742506+4.13085860421736i"
-"-3.5",			"1.80735492219671+4.53236014217602i"
-"-3.5-i",		"1.86396022742506-4.13085860421736i"
-"-3.5-2.5i",		"2.10472668297646-3.63752928456581i"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMPOWER.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMPOWER.data
deleted file mode 100644
index 8e753bc24fd..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMPOWER.data
+++ /dev/null
@@ -1,18 +0,0 @@
-"12.34+5.67j",	2,		"120.1267+139.9356j"
-"12.34+5.67j",	3,		"688.928626+2407.923693j"
-"12.34+5.67j",	-1,		"6.69108496973016E-002-3.07442883131037E-002j"
-"12.34+5.67j",	-2,		"3.53185054333564E-003-4.11425290873718E-003j"
-"12.34+5.67j",	0.5,		"3.60002071031685+0.787495469644252j"
-"12.34+5.67j",	-0.25,		"0.517904976730581-5.59833234375533E-002j"
-"12.34+5.67j",	0,		"1"
-"-i",		2,		"-1-1.34451369308841E-014i"
-"1-i",		2,		"1.22460635382238E-016-2i"
-"2.5i",		2,		"-6.25+8.40321058180257E-014i"
-"2.5i",		"2.5",		"-6.98771242968685-6.98771242968684i"
-"2.5i",		"2.5i",		"#VALUE!"
-"2.5",		"2.5",		9.88211768802619
-"2",		"2",		4
-"-12.34-5.67i",	"-12.34",	"-4.69972844488573E-15+9.35464904349343E-15i"
-"12.34-5.67i",	"-12.34",	"5.93343000067521E-15-8.62503997728057E-15i"
-"-12.34-5.67i",	"12.34",	"-42881944468901.9-85355046682682.3i"
-"12.34-5.67i",	"12.34",	"54138663282971.3+78697841733874.3i"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMPRODUCT.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMPRODUCT.data
deleted file mode 100644
index 81ab40b7ce0..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMPRODUCT.data
+++ /dev/null
@@ -1,15 +0,0 @@
-"12.34+5.67j",	"123.45+67.89i",			"#NUM!"
-"12.34+5.67j",						"12.34+5.67j"
-"12.34+5.67i",	"123.45+67.89i",	"5.67",		"6454.936089+8718.895647i"
-"12.34+5.67j",	"123.45+67.89j",	"5.67",		"6454.936089+8718.895647j"
-"12.34+5.67j",	"123.45+67.89j",			"1138.4367+1537.7241j"
-"12.34-5.67i",	"123.45+67.89i",			"1908.3093+137.8011i"
-"12.34+5.67i",	"123.45-67.89i",			"1908.3093-137.8011i"
-"12.34-5.67i",	"123.45-67.89i",			"1138.4367-1537.7241i"
-"-12.34+5.67i",	"123.45+67.89i",			"-1908.3093-137.8011i"
-"-12.34-5.67i",	"123.45+67.89i",			"-1138.4367-1537.7241i"
-"12.34+5.67i",	"-123.45+67.89i",			"-1908.3093+137.8011i"
-"-12.34+5.67i",	"-123.45+67.89i",			"1138.4367-1537.7241i"
-"-12.34-5.67i",	"-123.45-67.89i",			"1138.4367+1537.7241i"
-"-12.34",	"123.45-67.89i",			"-1523.373+837.7626i"
-"-12.34-5.67i",	"-12.34",				"152.2756+69.9678i"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMREAL.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMREAL.data
deleted file mode 100644
index ffa4382cbc2..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMREAL.data
+++ /dev/null
@@ -1,30 +0,0 @@
-12.34+5.67j",		12.34
-"-1.234E-5+6.78E9i",	-1.234E-5
-"3.5+2.5i",		3.5
-"3.5+i",		3.5
-"3.5",			3.5
-3.5,			3.5
-"3.5-i",		3.5
-"3.5-2.5i",		3.5
-"1+2.5i",		1
-"1+i",			1
-"1",			1
-1,			1
-"1-i",			1
-"1-2.5i",		1
-"2.5i",			0
-"i",			0
-"0",			0
-0,			0
-"-i",			0
-"-2.5i",		0
-"-1+2.5i",		-1
-"-1+i",			-1
-"-1",			-1
-"-1-i",			-1
-"-1-2.5i",		-1
-"-3.5+2.5i",		-3.5
-"-3.5+i",		-3.5
-"-3.5",			-3.5
-"-3.5-i",		-3.5
-"-3.5-2.5i",		-3.5
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMSIN.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMSIN.data
deleted file mode 100644
index 50ab20034bb..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMSIN.data
+++ /dev/null
@@ -1,27 +0,0 @@
-"12.34+5.67j",	"-32.5483841590412+141.315819535092j"
-"3.5+2.5i",	"-2.15110429680353-5.66575444574645i"
-"3.5+i",	"-0.541286805665839-1.10052501669986i"
-"3.5",		"-0.35078322768962"
-"3.5-i",	"-0.541286805665839+1.10052501669986i"
-"3.5-2.5i",	"-2.15110429680353+5.66575444574645i"
-"1+2.5i",	"5.16014366757971+3.26893943207955i"
-"1+i",		"1.29845758141598+0.634963914784736i"
-"1",		"0.841470984807897"
-"1-i",		"1.29845758141598-0.634963914784736i"
-"1-2.5i",	"5.16014366757971-3.26893943207955i"
-"2.5i",		"6.05020448103979i"
-"i",		"1.1752011936438i"
-"0",		"0"
-"-i",		"-1.1752011936438i"
-"-2.5i",	"-6.05020448103979i"
-"-1+2.5i",	"-5.16014366757971+3.26893943207955i"
-"-1+i",		"-1.29845758141598+0.634963914784736i"
-"-1",		"-0.841470984807897"
-"-1-i",		"-1.29845758141598-0.634963914784736i"
-"-1-2.5i",	"-5.16014366757971-3.26893943207955i"
-"-3.5+2.5i",	"2.15110429680353-5.66575444574645i"
-"-3.5+i",	"0.541286805665839-1.10052501669986i"
-"-3.5",		"0.35078322768962"
-"-3.5-i",	"0.541286805665839+1.10052501669986i"
-"-3.5-2.5i",	"2.15110429680353+5.66575444574645i"
-"3",		"0.141120008059867"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMSQRT.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMSQRT.data
deleted file mode 100644
index d35a4d752cf..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMSQRT.data
+++ /dev/null
@@ -1,28 +0,0 @@
-"12.34+5.67j",		"3.60002071031685+0.787495469644252j"
-"-1.234E-5+6.78E9i",	"58223.7065120385+58223.7065120386i"
-"3.5+2.5i",		"1.9749889409211+0.632914936433528i"
-"3.5+i",		"1.88945163270197+0.264627043818521i"
-"3.5",			"1.87082869338697"
-"3.5-i",		"1.88945163270197-0.264627043818521i"
-"3.5-2.5i",		"1.9749889409211-0.632914936433528i"
-"1+2.5i",		"1.35878298553655+0.919940868634298i"
-"1+i",			"1.09868411346781+0.455089860562227i"
-"1",			"1"
-"1-i",			"1.09868411346781-0.455089860562227i"
-"1-2.5i",		"1.35878298553655-0.919940868634298i"
-"2.5i",			"1.11803398874989+1.11803398874989i"
-"i",			"0.707106781186548+0.707106781186547i"
-"0",			"0"
-"-i",			"0.707106781186548-0.707106781186547i"
-"-2.5i",		"1.11803398874989-1.11803398874989i"
-"-1+2.5i",		"0.919940868634298+1.35878298553655i"
-"-1+i",			"0.455089860562227+1.09868411346781i"
-"-1",			"6.12303176911189E-017+i"
-"-1-i",			"0.455089860562227-1.09868411346781i"
-"-1-2.5i",		"0.919940868634298-1.35878298553655i"
-"-3.5+2.5i",		"0.632914936433528+1.9749889409211i"
-"-3.5+i",		"0.264627043818521+1.88945163270197i"
-"-3.5",			"1.14551435241745E-016+1.87082869338697i"
-"-3.5-i",		"0.264627043818521-1.88945163270197i"
-"-3.5-2.5i",		"0.632914936433528-1.9749889409211i"
-"9",			"3"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMSUB.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMSUB.data
deleted file mode 100644
index 024d35859fe..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMSUB.data
+++ /dev/null
@@ -1,10 +0,0 @@
-"12.34+5.67j",		"123.45+67.89i",				"#NUM!"
-"123.45+67.89j",	"12.34+5.67j",					"111.11+62.22j"
-"12.34+5.67j",		"123.45+67.89j",				"-111.11-62.22j"
-"12.34+5.67i",		"123.45+67.89i",	"123.45+67.89i",	"-111.11-62.22i"
-"-12.34-5.67i",		"123.45-67.89i",				"-135.79+62.22i"
-"12.34-5.67i",		"-123.45-67.89i",				"135.79+62.22i"
-"-12.34-5.67i",		"-123.45-67.89i",				"111.11+62.22i"
-"-12.34-5.67i",		"-123.45-67.89",				"#NUM!"
-"-12.34-5.67j",		"-123.45-67.89",				"#NUM!"
-"-12.34-5.67",		"-123.45-67.89j",				"#NUM!"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMSUM.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMSUM.data
deleted file mode 100644
index e63aed946ce..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/IMSUM.data
+++ /dev/null
@@ -1,10 +0,0 @@
-"12.34+5.67j",	"123.45+67.89i",				"#NUM!"
-"12.34+5.67j",	"123.45+67.89j",				"135.79+73.56j"
-"12.34-5.67i",	"123.45+67.89i",				"135.79+62.22i"
-"12.34+5.67i",	"123.45-67.89i",				"135.79-62.22i"
-"12.34-5.67i",	"123.45-67.89i",				"135.79-73.56i"
-"12.34+5.67i",	"123.45+67.89i",	"123.45+67.89i",	"259.24+141.45i"
-"12.34+5.67i",	"123.45+67.89i",	"123.45+67.89j",	"#NUM!"
-"-12.34-5.67i",	"123.45-67.89i",				"111.11-73.56i"
-"12.34-5.67i",	"-123.45-67.89i",				"-111.11-73.56i"
-"-12.34-5.67i",	"-123.45-67.89i",				"-135.79-73.56i"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/OCT2BIN.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/OCT2BIN.data
deleted file mode 100644
index 1f212fd9d4c..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/OCT2BIN.data
+++ /dev/null
@@ -1,9 +0,0 @@
-"1357",			"#NUM!"
-"246",			"10100110"
-"3",		3,	"011"
-"12345",		"#NUM!"
-"123.45",		"#NUM!"
-"0",			"0"
-TRUE,			"#VALUE!"
-"3579",			"#NUM!"
-"7777777000",		"1000000000"	//	2's Complement
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/OCT2DEC.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/OCT2DEC.data
deleted file mode 100644
index 19f6dbd69c8..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/OCT2DEC.data
+++ /dev/null
@@ -1,9 +0,0 @@
-"1357",		"751"
-"246",		"166"
-"12345",	"5349"
-"123.45",	"#NUM!"
-"0",		"0"
-TRUE,		"#VALUE!"
-"3579",		"#NUM!"
-"54",		"44"
-"7777777533",	"-165"	//	2's Complement
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/OCT2HEX.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/OCT2HEX.data
deleted file mode 100644
index c18e7fdb5c9..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Engineering/OCT2HEX.data
+++ /dev/null
@@ -1,9 +0,0 @@
-"1357",			"2EF"
-"246",			"A6"
-"12345",		"14E5"
-"100",		4,	"0040"
-"123.45",		"#NUM!"
-"0",			"0"
-TRUE,			"#VALUE!"
-"3579",			"#NUM!"
-"7777777533",		"FFFFFFFF5B"	//	2's Complement
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/ACCRINT.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/ACCRINT.data
deleted file mode 100644
index 5d92786fb5f..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/ACCRINT.data
+++ /dev/null
@@ -1,8 +0,0 @@
-#Issue date	1st Interest	Settlement	Rate	Par	Freq	Basis	Result
-"2008-03-01",	"2008-08-31",	"2008-05-01",	0.10,	1000,	2,	0,	16.666666666667
-"2008-03-05",	"2008-08-31",	"2008-05-01",	0.10,	1000,	2,	0,	15.555555555556
-"2010-01-01",	"2010-06-30",	"2010-04-01",	0.08,	10000,	4,		202.222222222222
-"2008-03-05",	"2008-08-31",	"2008-05-01",	-0.10,	1000,	2,	0,	"#NUM!"
-"Invalid Date",	"2008-08-31",	"2008-05-01",	0.10,	1000,	2,	0,	"#VALUE!"
-"2008-03-01",	"2008-08-31",	"2008-05-01",	"ABC",	1000,	2,	0,	"#VALUE!"
-"2008-03-01",	"2008-08-31",	"2008-05-01",	0.10,	1000,	2,	"ABC",	"#VALUE!"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/ACCRINTM.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/ACCRINTM.data
deleted file mode 100644
index e43e93bb6cb..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/ACCRINTM.data
+++ /dev/null
@@ -1,6 +0,0 @@
-#Issue date	Settlement	Rate	Par	Basis	Result
-"2008-04-01",	"2008-06-15",	0.10,	1000,	3,	20.547945205479
-"2010-01-01",	"2010-12-31",	0.08,	10000,		800
-"2008-03-05",	"2008-08-31",	-0.10,	1000,	2,	"#NUM!"
-"Invalid Date",	"2008-08-31",	0.10,	1000,	2,	"#VALUE!"
-"2008-03-01",	"2008-08-31",	"ABC",	1000,	2,	"#VALUE!"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/AMORDEGRC.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/AMORDEGRC.data
deleted file mode 100644
index d753a6d00db..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/AMORDEGRC.data
+++ /dev/null
@@ -1,3 +0,0 @@
-#Cost	Date purchased	End of the 1st period	Salvage	Period	Depreciation	Basis	Result
-2400,	"2008-08-19",	"2008-12-31",		300,	1,	0.15,		1,	776
-150,	"2011-01-01",	"2011-09-30",		20,	1,	0.2,		4,	42
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/AMORLINC.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/AMORLINC.data
deleted file mode 100644
index db6920ac20f..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/AMORLINC.data
+++ /dev/null
@@ -1,3 +0,0 @@
-#Cost	Date purchased	End of the 1st period	Salvage	Period	Depreciation	Basis	Result
-2400,	"2008-08-19",	"2008-12-31",		300,	1,	0.15,		1,	360
-150,	"2011-01-01",	"2011-09-30",		20,	1,	0.2,		4,	30
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/COUPDAYBS.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/COUPDAYBS.data
deleted file mode 100644
index 5905db94e4f..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/COUPDAYBS.data
+++ /dev/null
@@ -1,6 +0,0 @@
-#Settlement	Maturity	Frequency	Basis	Result
-"25-Jan-2007",	"15-Nov-2008",	2,		1,	71
-"2011-01-01",	"2012-10-25",	4,			66
-"Invalid Date",	"15-Nov-2008",	2,		1,	"#VALUE!"
-"25-Jan-2007",	"Invalid Date",	2,		1,	"#VALUE!"
-"25-Jan-2007",	"15-Nov-2008",	3,		1,	"#NUM!"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/COUPDAYS.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/COUPDAYS.data
deleted file mode 100644
index 26de7302155..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/COUPDAYS.data
+++ /dev/null
@@ -1,6 +0,0 @@
-#Settlement	Maturity	Frequency	Basis	Result
-"25-Jan-2007",	"15-Nov-2008",	2,		1,	181
-"2011-01-01",	"2012-10-25",	4,			90
-"Invalid Date",	"15-Nov-2008",	2,		1,	"#VALUE!"
-"25-Jan-2007",	"Invalid Date",	2,		1,	"#VALUE!"
-"25-Jan-2007",	"15-Nov-2008",	3,		1,	"#NUM!"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/COUPDAYSNC.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/COUPDAYSNC.data
deleted file mode 100644
index 91b9f73c4d9..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/COUPDAYSNC.data
+++ /dev/null
@@ -1,6 +0,0 @@
-#Settlement	Maturity	Frequency	Basis	Result
-"25-Jan-2007",	"15-Nov-2008",	2,		1,	110
-"2011-01-01",	"2012-10-25",	4,			24
-"Invalid Date",	"15-Nov-2008",	2,		1,	"#VALUE!"
-"25-Jan-2007",	"Invalid Date",	2,		1,	"#VALUE!"
-"25-Jan-2007",	"15-Nov-2008",	3,		1,	"#NUM!"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/COUPNCD.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/COUPNCD.data
deleted file mode 100644
index fe5bba5d1b5..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/COUPNCD.data
+++ /dev/null
@@ -1,6 +0,0 @@
-#Settlement	Maturity	Frequency	Basis	Result
-"25-Jan-2007",	"15-Nov-2008",	2,		1,	39217
-"2011-01-01",	"2012-10-25",	4,			40568
-"Invalid Date",	"15-Nov-2008",	2,		1,	"#VALUE!"
-"25-Jan-2007",	"Invalid Date",	2,		1,	"#VALUE!"
-"25-Jan-2007",	"15-Nov-2008",	3,		1,	"#NUM!"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/COUPNUM.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/COUPNUM.data
deleted file mode 100644
index 43f77cd735f..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/COUPNUM.data
+++ /dev/null
@@ -1,7 +0,0 @@
-#Settlement	Maturity	Frequency	Basis	Result
-"25-Jan-2007",	"15-Nov-2008",	2,		1,	4
-"2011-01-01",	"2012-10-25",	4,		0,	8
-"Invalid Date",	"15-Nov-2008",	2,		1,	"#VALUE!"
-"25-Jan-2007",	"Invalid Date",	2,		1,	"#VALUE!"
-"25-Jan-2007",	"15-Nov-2008",	3,		1,	"#NUM!"
-"01-Jan-2008",	"31-Dec-2012",	1,		1,	5
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/COUPPCD.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/COUPPCD.data
deleted file mode 100644
index 86212afa8da..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/COUPPCD.data
+++ /dev/null
@@ -1,6 +0,0 @@
-#Settlement	Maturity	Frequency	Basis	Result
-"25-Jan-2007",	"15-Nov-2008",	2,		1,	39036
-"2011-01-01",	"2012-10-25",	4,			40476
-"Invalid Date",	"15-Nov-2008",	2,		1,	"#VALUE!"
-"25-Jan-2007",	"Invalid Date",	2,		1,	"#VALUE!"
-"25-Jan-2007",	"15-Nov-2008",	3,		1,	"#NUM!"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/CUMIPMT.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/CUMIPMT.data
deleted file mode 100644
index 8427c465164..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/CUMIPMT.data
+++ /dev/null
@@ -1,10 +0,0 @@
-#rate		nper	pv	start_period	end_period	type	result
-0.0075,		360,	125000,	13,		24,		0,	-11135.232130751
-0.0075,		360,	125000,	1,		1,		0,	-937.50
-0.004166666667,	60,	50000,	1,		12,		0,	-2294.9775375121
-0.004166666667,	60,	50000,	13,		24,		0,	-1833.1000667254
-0.004166666667,	60,	50000,	25,		36,		0,	-1347.5920679425
-0.004166666667,	60,	50000,	37,		48,		0,	-837.24455850309
-0.004166666667,	60,	50000,	49,		60,		0,	-300.78670189939
-0.0075,		360,	125000,	24,		13,		0,	"#VALUE!"
-0.0075,		360,	125000,	24,		13,		2,	"#NUM!"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/CUMPRINC.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/CUMPRINC.data
deleted file mode 100644
index 65e6d6d14b8..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/CUMPRINC.data
+++ /dev/null
@@ -1,10 +0,0 @@
-#rate		nper	pv	start_period	end_period	type	result
-0.0075,		360,	125000,	13,		24,		0,	-934.10712342088
-0.0075,		360,	125000,	1,		1,		0,	-68.278271180977
-0.004166666667,	60,	50000,	1,		12,		0,	-9027.7626490046
-0.004166666667,	60,	50000,	13,		24,		0,	-9489.6401197913
-0.004166666667,	60,	50000,	25,		36,		0,	-9975.1481185741
-0.004166666667,	60,	50000,	37,		48,		0,	-10485.495628014
-0.004166666667,	60,	50000,	49,		60,		0,	-11021.953484617
-0.0075,		360,	125000,	24,		13,		0,	"#VALUE!"
-0.0075,		360,	125000,	24,		13,		2,	"#NUM!"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/DB.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/DB.data
deleted file mode 100644
index e8c5fcf7901..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/DB.data
+++ /dev/null
@@ -1,17 +0,0 @@
-#cost		salvage		life	period	month	result
-1000000,	100000,		6,	1,	7,	186083.33333333
-1000000,	100000,		6,	2,	7,	259639.41666667
-1000000,	100000,		6,	3,	7,	176814.44275
-1000000,	100000,		6,	4,	7,	120410.63551275
-1000000,	100000,		6,	5,	7,	81999.642784183
-1000000,	100000,		6,	6,	7,	55841.756736028
-1000000,	100000,		6,	7,	7,	15845.098473848
-10000,		1000,		5,	1,	6,	1845.00
-10000,		1000,		5,	2,	6,	3009.195
-10000,		1000,		5,	3,	6,	1898.802045
-10000,		1000,		5,	4,	6,	1198.144090395
-10000,		1000,		5,	5,	6,	756.02892103925
-10000,		1000,		5,	6,	6,	238.52712458788
-0,		0,		5,	6,	6,	0.0
--1000,		100,		5,	6,	6,	"#NUM!"
-"ABC",		100,		5,	6,	6,	"#VALUE!"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/DDB.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/DDB.data
deleted file mode 100644
index 2dfd5205641..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/DDB.data
+++ /dev/null
@@ -1,16 +0,0 @@
-#cost		salvage		life	period	month	result
-2400,		300,		36500,	1,		0.13150684931507
-2400,		300,		36500,	2,		0.13149964346031
-2400,		300,		36500,	7,		0.13146362010871
-2400,		300,		36500,	7,	14,	0.91843145432708
-2400,		300,		120,	1,	2,	40.00
-2400,		300,		10,	1,	2,	480.00
-2400,		300,		10,	2,	1.5,	306.00
-2400,		300,		10,	10,		22.12254720000030
-10000,		1000,		5,	1,		4000.00
-10000,		1000,		5,	2,		2400.00
-10000,		1000,		5,	3,		1440.00
-10000,		1000,		5,	4,		864.00
-10000,		1000,		5,	5,		296.00
--2400,		300,		36500,	1,		"#NUM!"
-"ABC",		300,		36500,	1,		"#VALUE!"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/DISC.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/DISC.data
deleted file mode 100644
index b5790c74c48..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/DISC.data
+++ /dev/null
@@ -1,6 +0,0 @@
-#settlement	maturity	price	redemption	basis	result
-"2007-01-25",	"2007-06-15",	97.975,	100,		1,	0.052420213
-"2010-04-01",	"2015-03-31",	95,	100,			0.01
-"2010-04-01",	"2015-03-31",	0,	100,			"#NUM!"
-"2010-04-01",	"2015-03-31",	"ABC",	100,			"#VALUE!"
-"Invalid Date",	"2007-06-15",	97.975,	100,		1,	"#VALUE!"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/DOLLARDE.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/DOLLARDE.data
deleted file mode 100644
index c41b51dc19a..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/DOLLARDE.data
+++ /dev/null
@@ -1,10 +0,0 @@
-#fractional_dollar	fraction	result
-1.02,			16,		1.125
-1.1,			32,		1.3125
-1.01,			16,		1.0625
-1.1,			16,		1.625
-1.03,			32,		1.09375
-1.3,			32,		1.9375
-1.12,			32,		1.375
-1.2345,			0,		"#DIV/0!"
-1.2345,			-2,		"#NUM!"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/DOLLARFR.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/DOLLARFR.data
deleted file mode 100644
index a83a7231f66..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/DOLLARFR.data
+++ /dev/null
@@ -1,10 +0,0 @@
-#decimal_dollar		fraction	result
-1.125,			16,		1.02
-1.125,			32,		1.04
-1.0625,			16,		1.01
-1.625,			16,		1.1
-1.09375,		32,		1.03
-1.9375,			32,		1.3
-1.375,			32,		1.12
-1.2345,			0,		"#DIV/0!"
-1.2345,			-2,		"#NUM!"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/EFFECT.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/EFFECT.data
deleted file mode 100644
index 34de2b2c6e0..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/EFFECT.data
+++ /dev/null
@@ -1,6 +0,0 @@
-#nominal_rate	npery	Result
-0.0525,		4,	0.053542667370758
-0.10,		4,	0.103812890625
-0.10,		2,	0.1025
-0.025,		2,	0.02515625
-1,		0,	"#NUM!"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/FV.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/FV.data
deleted file mode 100644
index 2955e9a23db..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/FV.data
+++ /dev/null
@@ -1,9 +0,0 @@
-#rate		nper	pmt	pv	type	Result
-0.005,		10,	-200,	-500,	1,	2581.4033740601
-0.01,		12,	-1000,			12682.503013197
-0.009166666667,	35,	-2000,	,	1,	82846.246372418
-0.005,		12,	-100,	-1000,	1,	2301.4018303409
-0.004166666667,	60,	-1000,			68006.082841536
-0.025,		16,	-2000,	0,	1,	39729.460894166
-0.1,		12,	-100,	0,	2,	"#NUM!"
-0.0,		12,	-100,	-100,		1300
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/FVSCHEDULE.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/FVSCHEDULE.data
deleted file mode 100644
index 0b5ad893e74..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/FVSCHEDULE.data
+++ /dev/null
@@ -1,4 +0,0 @@
-#principal	schedule			Result
-1,		{0.09|0.11|0.1},		1.33089
-10,		{0.09;0.11;0.1},		13.3089
-10000,		{0.05|0.05|0.035|0.035|0.035},	12223.614571875
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/INTRATE.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/INTRATE.data
deleted file mode 100644
index 38195a427f9..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/INTRATE.data
+++ /dev/null
@@ -1,6 +0,0 @@
-#Settlement	Maturity	Investment	Redemption	Basis	Result
-"2008-02-15",	"2008-05-15",	1000000,	1014420,	2,	0.05768
-"2005-04-01",	"2010-03-31",	1000,		2125,			0.225
-"2008-02-15",	"2008-05-15",	1000000,	1014420,	"ABC",	"#VALUE!"
-"2008-02-15",	"2008-05-15",	1000000,	-1014420,	2,	"#NUM!"
-"Invalid Date",	"2008-05-15",	1000000,	1014420,	2,	"#VALUE!"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/IPMT.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/IPMT.data
deleted file mode 100644
index 9d5dab00d56..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/IPMT.data
+++ /dev/null
@@ -1,9 +0,0 @@
-#rate		per	nper	pv		fv		type	Result
-0.008333333333,	3,	3,	8000,					-22.406893015021
-0.10,		3,	3,	8000,					-292.44712990937
-0.004166666667,	1,	60,	50000,					-208.33333335
-0.004166666667,	2,	60,	50000,					-205.26988189617
-0.00875,	1,	8,	10000,		5000,		1,	0.00
-0.00875,	2,	8,	10000,		5000,		1,	-70.968650395559
-0.005,		2,	8,	2500,		200,		6,	"#NUM!"
-0.005,		8,	2,	2500,		200,		1,	"#VALUE!"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/IRR.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/IRR.data
deleted file mode 100644
index 0d4458ff699..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/IRR.data
+++ /dev/null
@@ -1,6 +0,0 @@
-#values					guess	Result
-{-70000;12000;15000;18000;21000},		-0.021244848273410
-{-70000;12000;15000;18000;21000;26000},		0.08663094803652
-{-70000;12000;15000;18000},		0.10,	-0.18213746414550
-{-100;20|24|28.80},				-0.13618951095869
-{-100;20|24|28.80|34.56|41.47},			0.130575756371527
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/ISPMT.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/ISPMT.data
deleted file mode 100644
index eac8167d193..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/ISPMT.data
+++ /dev/null
@@ -1,5 +0,0 @@
-#rate		per	nper	pv		result
-0.008333333333,	1,	36,	8000000,	-64814.814812222
-0.10,		1,	3,	8000000,	-533333.33333333
-0.004166666667,	1,	60,	50000,		-204.8611111275
-0.004166666667,	2,	60,	50000,		-201.388888905
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/MIRR.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/MIRR.data
deleted file mode 100644
index f91b030bba1..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/MIRR.data
+++ /dev/null
@@ -1,6 +0,0 @@
-#values						finance_rate	reinvestment_rate	Result
-{-120000;39000|30000|21000|37000|46000},	0.10,		0.12,			0.12609413036591
-{-120000;39000|30000|21000},			0.10,		0.12,			-0.048044655249981
-{-120000;39000|30000|21000|37000|46000},	0.10,		0.14,			0.13475911082831
-{-100;12|14|11},				5.5,		5,			0.74021752686287
-{-100;12|14|11|13|16},				5.5,		5,			1.8579321744785
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/NOMINAL.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/NOMINAL.data
deleted file mode 100644
index df78c55343b..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/NOMINAL.data
+++ /dev/null
@@ -1,6 +0,0 @@
-#effect_rate	npery	result
-0.053543,	4,	0.052500319868356
-0.10,		4,	0.09645475633778
-0.10,		2,	0.097617696340303
-0.025,		12,	0.024718035238113
--0.025,		12,	"#NUM!"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/NPER.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/NPER.data
deleted file mode 100644
index 205d0aabfe2..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/NPER.data
+++ /dev/null
@@ -1,10 +0,0 @@
-#rate		pmt	pv	fv	type	result
-0.01,		-100,	-1000,	10000,	1,	59.673865674295
-0.01,		-100,	-1000,	10000,		60.082122853762
-0.01,		-100,	-1000,			-9.5785940398132
-0.003333333333,	-1000,	50000,			54.78757726
-0.015,		-1200,	9000,	5000,	1,	11.90373729
-0.015,		-1200,	9000,	5000,	2,	"#NUM!"
-0.015,		0.0,	0.0,	5000,	1,	"#NUM!"
-0.0,		0.0,	-500,	5000,	1,	"#NUM!"
-0.0,		-50,	-250,	150,	1,	-2.0
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/NPV.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/NPV.data
deleted file mode 100644
index c927fa5427d..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/NPV.data
+++ /dev/null
@@ -1,5 +0,0 @@
-#rate		values					result
-0.10,	-10000,	3000,	4200,	6800,			1188.4434123352
-0.08,	8000,	9200,	10000,	12000,	14500,		41922.061554932
-0.08,	8000,	9200,	10000,	12000,	14500,	-9000,	36250.534912984
-0.05,	2000,	2400,	2900,	3500,	4100,		12678.677633095
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/PRICE.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/PRICE.data
deleted file mode 100644
index c36be488b0e..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/PRICE.data
+++ /dev/null
@@ -1,10 +0,0 @@
-#Settlement	Maturity	Rate	Yield	Redemption	Frequency	Basis	Result
-"15-Feb-2008",	"15-Nov-2017",	0.0575,	0.065,	100,		2,		0,	94.6343616213221
-"15-Feb-2008",	"15-Nov-2017",	0.0575,	0.065,	100,		2,		1,	94.6354492078772
-"15-Feb-2008",	"15-Nov-2017",	0.0575,	0.065,	100,		2,		2,	94.6365640300251
-"15-Feb-2008",	"15-Nov-2017",	0.0575,	0.065,	100,		2,		3,	94.6351747967845
-"01-Apr-2012",	"31-Mar-2020",	0.12,	0.10,	100,		2,		NULL,	110.8344835932160
-"01-Apr-2012",	"31-Mar-2020",	0.12,	0.10,	100,		2,		1,	110.8345373958590
-"01-Apr-2012",	"31-Mar-2020",	0.12,	0.10,	100,		2,		2,	110.8344835932160
-"01-Apr-2012",	"31-Mar-2020",	0.12,	0.10,	100,		2,		3,	110.8345285514390
-"01-Apr-2012",	"31-Mar-2020",	0.12,	0.10,	100,		4,		3,	110.9217329631980
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/RATE.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/RATE.data
deleted file mode 100644
index 2dd8449ebd0..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/RATE.data
+++ /dev/null
@@ -1,11 +0,0 @@
-#Periods	Payment	Present Value	Future Value	Type	Guess	Result
-48,		-200,	8000,						0.0077014724882014
-60,		-6000,	120000,						0.0467819164224934
-60,		-1000,	120000,						-0.0204429522193565
-24,		-250,	5000,						0.0151308439023434
-24,		-250,	5000,		NULL,		1,		0.0165501190667120
-208,		-700,	8000,						0.0874999976840937
-10,		-1000,	6500,						0.0871137556058636
-6,		-1000,	100000,		-126068,			0.0484721272835728
-6,		1000,	100000,		-126068,			0.0302728738275435
-6,		-1000,	-100000,	126068,		0,		0.0302728738275437
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/XIRR.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/XIRR.data
deleted file mode 100644
index 36a8e23dd8a..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Financial/XIRR.data
+++ /dev/null
@@ -1,4 +0,0 @@
-#values					dates										guess	Result
-{-10000;2750|4250|3250|2750|46000},	{"2008-01-01";"2008-03-01"|"2008-10-30"|"2009-02-15"|"2009-04-01"},		0.10,	0.373362535
-{-100;20|40|25},			{"2010-01-01";"2010-04-01"|"2010-10-01"|"2011-02-01"},					-0.3024
-{-100;20|40|25|8|15},			{"2010-01-01";"2010-04-01"|"2010-10-01"|"2011-02-01"|"2011-03-01"|"2011-06-01"},	0.2095
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Functions/ERROR_TYPE.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Functions/ERROR_TYPE.data
deleted file mode 100644
index f2722937d6f..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Functions/ERROR_TYPE.data
+++ /dev/null
@@ -1,14 +0,0 @@
-		"#N/A"
-NULL,		"#N/A"
--1,		"#N/A"
-1.25,		"#N/A"
-"",		"#N/A"
-"2.5",		"#N/A"
-TRUE,		"#N/A"
-"#NULL!",	1
-"#DIV/0!",	2
-"#VALUE!",	3
-"#REF!",	4
-"#NAME?",	5
-"#NUM!",	6
-"#N/A",		7
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Functions/IS_BLANK.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Functions/IS_BLANK.data
deleted file mode 100644
index 1daa126dad5..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Functions/IS_BLANK.data
+++ /dev/null
@@ -1,16 +0,0 @@
-		TRUE
-NULL,		TRUE
--1,		FALSE
-0,		FALSE
-9,		FALSE
-1.5,		FALSE
-"",		FALSE
-"-1",		FALSE
-"2",		FALSE
-"-1.5",		FALSE
-"ABC",		FALSE
-"#VALUE!",	FALSE
-"#N/A",		FALSE
-"TRUE",		FALSE
-TRUE,		FALSE
-FALSE,		FALSE
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Functions/IS_ERR.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Functions/IS_ERR.data
deleted file mode 100644
index e6384d14f69..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Functions/IS_ERR.data
+++ /dev/null
@@ -1,16 +0,0 @@
-		FALSE
-NULL,		FALSE
--1,		FALSE
-0,		FALSE
-9,		FALSE
-1.5,		FALSE
-"",		FALSE
-"-1",		FALSE
-"2",		FALSE
-"-1.5",		FALSE
-"ABC",		FALSE
-"#VALUE!",	TRUE
-"#N/A",		FALSE
-"TRUE",		FALSE
-TRUE,		FALSE
-FALSE,		FALSE
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Functions/IS_ERROR.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Functions/IS_ERROR.data
deleted file mode 100644
index 244807a12ad..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Functions/IS_ERROR.data
+++ /dev/null
@@ -1,16 +0,0 @@
-		FALSE
-NULL,		FALSE
--1,		FALSE
-0,		FALSE
-9,		FALSE
-1.5,		FALSE
-"",		FALSE
-"-1",		FALSE
-"2",		FALSE
-"-1.5",		FALSE
-"ABC",		FALSE
-"#VALUE!",	TRUE
-"#N/A",		TRUE
-"TRUE",		FALSE
-TRUE,		FALSE
-FALSE,		FALSE
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Functions/IS_EVEN.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Functions/IS_EVEN.data
deleted file mode 100644
index 8f985df4097..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Functions/IS_EVEN.data
+++ /dev/null
@@ -1,20 +0,0 @@
-		"#NAME?"
-NULL,		"#NAME?"
--1,		FALSE
-0,		TRUE
-9,		FALSE
-1.25,		FALSE
-1.5,		FALSE
-2.25,		TRUE
-2.5,		TRUE
-"",		"#VALUE!"
-"-1",		FALSE
-"2",		TRUE
-"-1.5",		FALSE
-"2.5",		TRUE
-"ABC",		"#VALUE!"
-"#VALUE!",	"#VALUE!"
-"#N/A",		"#VALUE!"
-"TRUE",		"#VALUE!"
-TRUE,		"#VALUE!"
-FALSE,		"#VALUE!"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Functions/IS_LOGICAL.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Functions/IS_LOGICAL.data
deleted file mode 100644
index d977ba7b3ff..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Functions/IS_LOGICAL.data
+++ /dev/null
@@ -1,16 +0,0 @@
-		FALSE
-NULL,		FALSE
--1,		FALSE
-0,		FALSE
-9,		FALSE
-1.5,		FALSE
-"",		FALSE
-"-1",		FALSE
-"2",		FALSE
-"-1.5",		FALSE
-"ABC",		FALSE
-"#VALUE!",	FALSE
-"#N/A",		FALSE
-"TRUE",		FALSE
-TRUE,		TRUE
-FALSE,		TRUE
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Functions/IS_NA.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Functions/IS_NA.data
deleted file mode 100644
index be96e6bf2db..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Functions/IS_NA.data
+++ /dev/null
@@ -1,16 +0,0 @@
-		FALSE
-NULL,		FALSE
--1,		FALSE
-0,		FALSE
-9,		FALSE
-1.5,		FALSE
-"",		FALSE
-"-1",		FALSE
-"2",		FALSE
-"-1.5",		FALSE
-"ABC",		FALSE
-"#VALUE!",	FALSE
-"#N/A",		TRUE
-"TRUE",		FALSE
-TRUE,		FALSE
-FALSE,		FALSE
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Functions/IS_NONTEXT.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Functions/IS_NONTEXT.data
deleted file mode 100644
index 223053a256f..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Functions/IS_NONTEXT.data
+++ /dev/null
@@ -1,16 +0,0 @@
-		TRUE
-NULL,		TRUE
--1,		TRUE
-0,		TRUE
-9,		TRUE
-1.5,		TRUE
-"",		FALSE
-"-1",		FALSE
-"2",		FALSE
-"-1.5",		FALSE
-"ABC",		FALSE
-"#VALUE!",	TRUE
-"#N/A",		TRUE
-"TRUE",		FALSE
-TRUE,		TRUE
-FALSE,		TRUE
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Functions/IS_NUMBER.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Functions/IS_NUMBER.data
deleted file mode 100644
index 525d0fe7e2f..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Functions/IS_NUMBER.data
+++ /dev/null
@@ -1,16 +0,0 @@
-		FALSE
-NULL,		FALSE
--1,		TRUE
-0,		TRUE
-9,		TRUE
-1.5,		TRUE
-"",		FALSE
-"-1",		FALSE
-"2",		FALSE
-"-1.5",		FALSE
-"ABC",		FALSE
-"#VALUE!",	FALSE
-"#N/A",		FALSE
-"TRUE",		FALSE
-TRUE,		FALSE
-FALSE,		FALSE
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Functions/IS_ODD.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Functions/IS_ODD.data
deleted file mode 100644
index 0cf0741eafe..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Functions/IS_ODD.data
+++ /dev/null
@@ -1,20 +0,0 @@
-		"#NAME?"
-NULL,		"#NAME?"
--1,		TRUE
-0,		FALSE
-9,		TRUE
-1.25,		TRUE
-1.5,		TRUE
-2.25,		FALSE
-2.5,		FALSE
-"",		"#VALUE!"
-"-1",		TRUE
-"2",		FALSE
-"-1.5",		TRUE
-"2.5",		FALSE
-"ABC",		"#VALUE!"
-"#VALUE!",	"#VALUE!"
-"#N/A",		"#VALUE!"
-"TRUE",		"#VALUE!"
-TRUE,		"#VALUE!"
-FALSE,		"#VALUE!"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Functions/IS_TEXT.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Functions/IS_TEXT.data
deleted file mode 100644
index 3f3abf1b63b..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Functions/IS_TEXT.data
+++ /dev/null
@@ -1,16 +0,0 @@
-		FALSE
-NULL,		FALSE
--1,		FALSE
-0,		FALSE
-9,		FALSE
-1.5,		FALSE
-"",		TRUE
-"-1",		TRUE
-"2",		TRUE
-"-1.5",		TRUE
-"ABC",		TRUE
-"#VALUE!",	FALSE
-"#N/A",		FALSE
-"TRUE",		TRUE
-TRUE,		FALSE
-FALSE,		FALSE
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Functions/N.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Functions/N.data
deleted file mode 100644
index 9fc130e0a51..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Functions/N.data
+++ /dev/null
@@ -1,20 +0,0 @@
-			0
-NULL,			0
--1,			-1
-1.25,			1.25
-"",			0
-"2.5",			0
-"TRUE",			0
-"ABCDE",		0
-TRUE,			1
-"#DIV/0!",		"#DIV/0!"
-"#NUM!",		"#NUM!"
-{},			0
-{123},			123
-{123|456},		123
-{123|"A"},		123
-{"A"|123},		0
-{"A"|123;456|789},	0
-{123|"A";456|789},	123
-{123|456;"A"|789},	123
-{123|456;789|"A"},	123
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Functions/TYPE.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Functions/TYPE.data
deleted file mode 100644
index 52d168802b1..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Functions/TYPE.data
+++ /dev/null
@@ -1,16 +0,0 @@
-			1
-NULL,			1
--1,			1
-1.25,			1
-"",			2
-"2.5",			2
-"TRUE",			2
-"ABCDE",		2
-TRUE,			4
-"#DIV/0!",		16
-"#NUM!",		16
-{},			1
-{1},			1
-{1;2;3},		64
-{1|2|3;4|5|6;7|8|9},	64
-{|;|},			64
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Logical/AND.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Logical/AND.data
deleted file mode 100644
index 76870343e5d..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Logical/AND.data
+++ /dev/null
@@ -1,21 +0,0 @@
-"#VALUE!"					//	No arguments
-NULL,	TRUE					//	NULL
-TRUE,	NULL,	TRUE				//	Boolean TRUE and NULL
-FALSE,	NULL,	FALSE				//	Boolean FALSE and NULL
-TRUE,	TRUE,	TRUE				//	Both TRUE Booleans
-TRUE,	FALSE,	FALSE				//	Mixed Booleans
-FALSE,	TRUE,	FALSE				//	Mixed Booleans
-FALSE,	FALSE,	FALSE				//	Both FALSE Booleans
-TRUE,	TRUE,	FALSE,	FALSE			//	Multiple Mixed Booleans
-TRUE,	TRUE,	TRUE,	TRUE			//	Multiple TRUE Booleans
-FALSE,	FALSE,	FALSE,	FALSE,	FALSE		//	Multiple FALSE Booleans
--1,	-2,	TRUE
-0,	0,	FALSE
-0,	1,	FALSE
-1,	1,	TRUE
-"1",1,	"#VALUE!"
-"TRUE",	1,	TRUE				//	'TRUE' String
-"FALSE",TRUE,	FALSE				//	'FALSE' String
-"ABCD",	1,	"#VALUE!"			//	Non-numeric String
--2,	1,	TRUE
--2,	0,	FALSE
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Logical/IF.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Logical/IF.data
deleted file mode 100644
index 23017b5b396..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Logical/IF.data
+++ /dev/null
@@ -1,7 +0,0 @@
-0
-TRUE,	0
-FALSE,	FALSE
-TRUE,	"ABC",	"ABC"
-FALSE,	"ABC",	FALSE
-TRUE,	"ABC",	"XYZ",	"ABC"
-FALSE,	"ABC",	"XYZ",	"XYZ"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Logical/IFERROR.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Logical/IFERROR.data
deleted file mode 100644
index 2095481f0c3..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Logical/IFERROR.data
+++ /dev/null
@@ -1,8 +0,0 @@
-,		"Error",	NULL
-TRUE,		"Error",	TRUE
-42,		"Error",	42
-"",		"Error",	""
-"ABC",		"Error",	"ABC"
-"#VALUE!",	"Error",	"Error"
-"#NAME?",	"Error",	"Error"
-"#N/A",		"Error",	"Error"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Logical/NOT.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Logical/NOT.data
deleted file mode 100644
index adc515d8252..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Logical/NOT.data
+++ /dev/null
@@ -1,20 +0,0 @@
-TRUE
-NULL,	TRUE
--1,	FALSE
-0,	TRUE
-1,	FALSE
-2,	FALSE
--1.5,	FALSE
-1.5,	FALSE
-"-1",	"#VALUE!"
-"0",	"#VALUE!"
-"1",	"#VALUE!"
-"2",	"#VALUE!"
-"-1.5",	"#VALUE!"
-"1.5",	"#VALUE!"
-"",	"#VALUE!"
-"ABC",	"#VALUE!"
-"FALSE",TRUE
-"TRUE",	FALSE
-TRUE,	FALSE
-FALSE,	TRUE
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Logical/OR.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Logical/OR.data
deleted file mode 100644
index 738916ee25e..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/Logical/OR.data
+++ /dev/null
@@ -1,20 +0,0 @@
-"#VALUE!"				//	No arguments
-NULL,	FALSE				//	NULL
-TRUE,	NULL,	TRUE			//	Boolean TRUE and NULL
-FALSE,	NULL,	FALSE			//	Boolean FALSE and NULL
-TRUE,	TRUE,	TRUE			//	Both TRUE Booleans
-TRUE,	FALSE,	TRUE			//	Mixed Booleans
-FALSE,	TRUE,	TRUE			//	Mixed Booleans
-FALSE,	FALSE,	FALSE			//	Both FALSE Booleans
-TRUE,	TRUE,	FALSE,	TRUE		//	Multiple Mixed Booleans
-TRUE,	TRUE,	TRUE,	TRUE		//	Multiple TRUE Booleans
-FALSE,	FALSE,	FALSE,	FALSE,	FALSE	//	Multiple FALSE Booleans
--1,	-2,	TRUE
-0,	0,	FALSE
-0,	1,	TRUE
-1,	1,	TRUE
-"TRUE",	1,	TRUE			//	'TRUE' String
-"FALSE",TRUE,	TRUE			//	'FALSE' String
-"ABCD",	1,	"#VALUE!"		//	Non-numeric String
--2,	1,	TRUE
--2,	0,	TRUE
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/LookupRef/HLOOKUP.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/LookupRef/HLOOKUP.data
deleted file mode 100644
index c29fdc95ded..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/LookupRef/HLOOKUP.data
+++ /dev/null
@@ -1,9 +0,0 @@
-10251,		{"Order ID"|10247|10249|10250|10251|10252|10253;"Unit Price"|14.00|18.60|7.70|16.80|16.80|64.80;"Quantity"|12|9|10|6|20|40},	2,	FALSE,	16.8
-10251,		{"Order ID"|10247|10249|10250|10251|10252|10253;"Unit Price"|14.00|18.60|7.70|16.80|16.80|64.80;"Quantity"|12|9|10|6|20|40},	3,	FALSE,	6.0
-10248,		{"Order ID"|10247|10249|10250|10251|10252|10253;"Unit Price"|14.00|18.60|7.70|16.80|16.80|64.80;"Quantity"|12|9|10|6|20|40},	2,	FALSE,	"#N/A"
-10248,		{"Order ID"|10247|10249|10250|10251|10252|10253;"Unit Price"|14.00|18.60|7.70|16.80|16.80|64.80;"Quantity"|12|9|10|6|20|40},	2,	TRUE,	14.0
-"Axles",	{"Axles"|"Bearings"|"Bolts";4|4|9;5|7|10;6|8|11},																				2,	TRUE,	4
-"Bearings",	{"Axles"|"Bearings"|"Bolts";4|4|9;5|7|10;6|8|11},																				3,	FALSE,	7
-"B",		{"Axles"|"Bearings"|"Bolts";4|4|9;5|7|10;6|8|11},																				3,	TRUE,	5
-"Bolts",	{"Axles"|"Bearings"|"Bolts";4|4|9;5|7|10;6|8|11},																				4,			11
-3,			{1|2|3;"a"|"b"|"c";"d"|"e"|"f"},																								2,	TRUE,	"c"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/LookupRef/VLOOKUP.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/LookupRef/VLOOKUP.data
deleted file mode 100644
index 8fefc6cc0b3..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/LookupRef/VLOOKUP.data
+++ /dev/null
@@ -1,5 +0,0 @@
-1,		{"Density"|"Viscosity"|"Temperature";0.457|3.55|500;0.525|3.25|400;0.616|2.93|300;0.675|2.75|250;0.746|2.57|200;0.835|2.38|150;0.946|2.17|100;1.09|1.95|50;1.29|1.71|0},	2,	FALSE,	2.17
-1,		{"Density"|"Viscosity"|"Temperature";0.457|3.55|500;0.525|3.25|400;0.616|2.93|300;0.675|2.75|250;0.746|2.57|200;0.835|2.38|150;0.946|2.17|100;1.09|1.95|50;1.29|1.71|0},	3,	TRUE,	100
-.7,		{"Density"|"Viscosity"|"Temperature";0.457|3.55|500;0.525|3.25|400;0.616|2.93|300;0.675|2.75|250;0.746|2.57|200;0.835|2.38|150;0.946|2.17|100;1.09|1.95|50;1.29|1.71|0},	3,	FALSE,	"#N/A"
-0.1,		{"Density"|"Viscosity"|"Temperature";0.457|3.55|500;0.525|3.25|400;0.616|2.93|300;0.675|2.75|250;0.746|2.57|200;0.835|2.38|150;0.946|2.17|100;1.09|1.95|50;1.29|1.71|0},	2,	TRUE,	"#N/A"
-2,		{"Density"|"Viscosity"|"Temperature";0.457|3.55|500;0.525|3.25|400;0.616|2.93|300;0.675|2.75|250;0.746|2.57|200;0.835|2.38|150;0.946|2.17|100;1.09|1.95|50;1.29|1.71|0},	2,	TRUE,	1.71
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/ATAN2.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/ATAN2.data
deleted file mode 100644
index 47dade23884..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/ATAN2.data
+++ /dev/null
@@ -1,17 +0,0 @@
-#x_num	y_num	Result
-0,	0,	"#DIV/0!"
-1,	1,	0.785398163397
--1,	-1,	-2.356194490192
--1,	1,	2.356194490192
-1,	-1,	-0.785398163397
-0.5,	1,	1.107148717794
--0.5,	2,	1.815774989922
-1,	0.8,	0.674740942224
-0.8,	-0.6,	-0.643501108793
-1,	-9,	-1.460139105621
-0.2,	0,	0.0
-0.1,	0.2,	1.107148717794
-0,	0.2,	1.570796326795
-"A",	0.2,	"#VALUE!"
-TRUE,	1,	0.785398163397
-FALSE,	-2.5,	-1.570796326795
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/CEILING.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/CEILING.data
deleted file mode 100644
index ed46ca8bde1..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/CEILING.data
+++ /dev/null
@@ -1,21 +0,0 @@
-#number		significance	result
-2.5,		1,		3.0
--2.5,		-2,		-4.0
-1.5,		0.1,		1.5
-0.234,		0.01,		0.24
--2.341,		-0.1,		-2.4
-8,		0,		0.0
-8,		1.5,		9.0
-8,		-1.5,		"#NUM!"
--8,		1.5,		"#NUM!"
--8,		-1.5,		-9.0
-8.26,		0.05,		8.3
-2.341,		0.05,		2.35
-123.456,			"#VALUE!"
-"PHPExcel",			"#VALUE!"
-210.67,		1,		211.0
-210.67,		0.05,		210.70
-210.63,		0.05,		210.65
-2.98,		2,		4.0
--2.98,		2,		"#NUM!"
--4.5,		-1,		-5.0
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/COMBIN.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/COMBIN.data
deleted file mode 100644
index 568ad14da79..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/COMBIN.data
+++ /dev/null
@@ -1,25 +0,0 @@
-#NumObjs	NumInSet	Result
-7,		3,		35
-8,		2,		28
-8,		3,		56
-8,		4,		70
-100,		3,		161700
--7,		-10,		"#NUM!"
--7,		10,		"#NUM!"
-7,		-10,		"#NUM!"
-2,		3,		"#NUM!"
-2,		2,		1
-2,		1,		2
-2,		0,		1
-2.5,		2,		1
-"ABCD",		"EFGH",		"#VALUE!"
-10,		5,		252
-10,		3,		120
-21,		5,		20349
-6,		1,		6
-6,		2,		15
-6,		3,		20
-6,		4,		15
-6,		5,		6
-6,		6,		1
-6,		7,		"#NUM!"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/EVEN.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/EVEN.data
deleted file mode 100644
index 604533c23d0..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/EVEN.data
+++ /dev/null
@@ -1,17 +0,0 @@
-,	0
-5.4,	6
--5.4,	-6
-1.5,	2
-0.1,	2
-3,	4
-2,	2
--2,	-2
--1,	-2
-"ABC",	"#VALUE!"
-TRUE,	2
-FALSE,	0
-0,	0
-210.61,	212
-2.98,	4
--2.98,	-4
-6,	6
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/FACT.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/FACT.data
deleted file mode 100644
index 6340f6c1b9a..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/FACT.data
+++ /dev/null
@@ -1,10 +0,0 @@
-5,	120
-1.9,	1
-0,	1
--4,	"#NUM!"
-1,	1
-3,	6
-6,	720
-10,	3628800
-3.2,	6
-"ABC",	"#VALUE!"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/FACTDOUBLE.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/FACTDOUBLE.data
deleted file mode 100644
index 81ee2e94a71..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/FACTDOUBLE.data
+++ /dev/null
@@ -1,8 +0,0 @@
-0,	1
-6,	48
-7,	105
-5,	15
-8,	384
-13,	135135
--1,	"#NUM!"
-"ABC",	"#VALUE!"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/FLOOR.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/FLOOR.data
deleted file mode 100644
index 29785f72341..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/FLOOR.data
+++ /dev/null
@@ -1,11 +0,0 @@
-2.5,	1,	2
--2.5,	-2,	-2
--2.5,	2,	"#NUM!"
-2.5,	-2,	"#NUM!"
-123.456,0,	"#DIV/0!"
-1.5,	0.1,	1.5
-0.234,	0.01,	0.23
-123.456,	"#VALUE!"
-"ABC",		"#VALUE!"
-17,	3,	15
-19,	4,	16
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/GCD.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/GCD.data
deleted file mode 100644
index ca673481efa..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/GCD.data
+++ /dev/null
@@ -1,20 +0,0 @@
-5,	2,		1
-24,	36,		12
-7,	1,		1
-5,	0,		5
-30,	15,	10,	5
-42,	56,	140,	14
-24,	28,	40,	4
-27,	45,	54,	9
-84,	126,	196,	14
-3,	5,	7,	1
-3,	5,	0,	1
-3,	5,	-7,	"#NUM!"
-3,	6,	12,	3
-3,	6,	"12",	3
-3,	6,	"ABC",	"#VALUE!"
-3,			3
-15,	10,	25,	5
-0,	8,	12,	4
-7,	2,		1
-0,	0,		0
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/INT.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/INT.data
deleted file mode 100644
index b5d8cd5c89f..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/INT.data
+++ /dev/null
@@ -1,19 +0,0 @@
-,	0
-5.4,	5
--5.4,	-6
--3.2,	-4
-1.5,	1
-0.1,	0
--0.1,	-1
-3,	3
-2,	2
--2.01,	-3
--2,	-2
--1,	-1
-"ABC",	"#VALUE!"
-TRUE,	1
-FALSE,	0
-0,	0
-"-3.5",	-4
-8.9,	8
--8.9,	-9
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/LCM.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/LCM.data
deleted file mode 100644
index 8f402684110..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/LCM.data
+++ /dev/null
@@ -1,12 +0,0 @@
-5,	2,		10
-24,	36,		72
-3,	7,	12,	84
-24.9,	36.9,		72
-6,	22,	121,	726
-6,	"ABC",		"#VALUE!"
-24,	-12,		"#NUM!"
-3,	0,		0
-1,	5,		5
-15,	10,	25,	150
-1,	8,	12,	24
-7,	2,		14
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/LOG.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/LOG.data
deleted file mode 100644
index 219ac59e095..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/LOG.data
+++ /dev/null
@@ -1,70 +0,0 @@
-#number	base		result
-"ABC",			"#VALUE!"
-"123ABC",		"#VALUE!"
-1.2345,			0.0914910942679511
--1.5,	-0.75,		"#NUM!"
-0,	-0.75,		"#NUM!"
-3.75,	-0.75,		"#NUM!"
--1.5,	0,		"#NUM!"
-0,	0,		"#NUM!"
-3.75,	0,		"#NUM!"
--0.75,	0.75,		"#NUM!"
-0,	0.75,		"#NUM!"
-0.75,	0.75,		1.0
-1.5,	0.75,		-1.4094208396532100
-2.25,	0.75,		-2.8188416793064200
-3,	0.75,		-3.8188416793064200
-3.75,	0.75,		-4.5945019399978900
-4.5,	0.75,		-5.2282625189596300
--0.75,	1.5,		"#NUM!"
-0,	1.5,		"#NUM!"
-0.75,	1.5,		-0.7095112913514550
-1.5,	1.5,		1.0
-2.25,	1.5,		2.0
-3,	1.5,		2.7095112913514500
-3.75,	1.5,		3.2598510045646600
-4.5,	1.5,		3.7095112913514500
--0.75,	2.25,		"#NUM!"
-0,	2.25,		"#NUM!"
-0.75,	2.25,		-0.3547556456757270
-1.5,	2.25,		0.5
-2.25,	2.25,		1.0
-3,	2.25,		1.3547556456757300
-3.75,	2.25,		1.6299255022823300
-4.5,	2.25,		1.8547556456757300
--0.75,	3,		"#NUM!"
-0,	3,		"#NUM!"
-0.75,	3,		-0.2618595071429150
-1.5,	3,		0.3690702464285430
-2.25,	3,		0.7381404928570850
-3,	3,		1.0
-3.75,	3,		1.2031140135750100
-4.5,	3,		1.3690702464285400
--0.75,	3.75,		"#NUM!"
-0,	3.75,		"#NUM!"
-0.75,	3.75,		-0.2176514479827300
-1.5,	3.75,		0.3067624865675560
-2.25,	3.75,		0.6135249731351110
-3,	3.75,		0.8311764211178410
-3.75,	3.75,		1.0
-4.5,	3.75,		1.1379389076854000
--0.75,	4.5,		"#NUM!"
-0,	4.5,		"#NUM!"
-0.75,	4.5,		-0.1912681309275550
-1.5,	4.5,		0.2695772896908150
-2.25,	4.5,		0.5391545793816300
-3,	4.5,		0.7304227103091850
-3.75,	4.5,		0.8787817986064220
-4.5,	4.5,		1.0
-64,	2,		6
-100,			2
-4,	0.5,		-2
-500,			2.698970004336
-10,			1
-8,	2,		3
-86,	2.7182818,	4.454347342888
-20,			1.301029995664
-20,	10,		1.301029995664
-20,	25,		0.930676558073
-25,	5.1,		1.975690971574
-200,	3,		4.822736302150
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/MDETERM.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/MDETERM.data
deleted file mode 100644
index 970bec5383c..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/MDETERM.data
+++ /dev/null
@@ -1,14 +0,0 @@
-{1|2|3;4|5|6;7|8|9},			6.661338147750940E-16
-{1.1|2.2|3.3;4.4|5.5|6.6;7.7|8.8|9.9},	1.61204383175573E-15
-{10|20|30;40|50|60;70|80|90},		-4.26325641456060E-12
-{8|1|6;3|5|7;4|9|2},			-3.6E+02
-{5|2;7|1},				-9
-{6|4|2;3|5|3;2|3|4},			40
-{0.2|1;0.35|10.8},			1.81
-{0.2|1|-0.9;0.35|10.8|4;-3.15|5|},	"#VALUE!"
-{1|2;3|4},				-2
-{1|2|1;3|4|2;1|1|2},			-3
-{1|3|8|5;1|3|6|1;1|1|1|0;7|3|10|2},	88
-{3|6|1;1|1|0;3|10|2},			1
-{3|6;1|1},				-3
-{1|3|8|5;1|3|6|1},			"#VALUE!"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/MINVERSE.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/MINVERSE.data
deleted file mode 100644
index 8c9a962fa6d..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/MINVERSE.data
+++ /dev/null
@@ -1,15 +0,0 @@
-{1|2|3;4|5|6;7|8|9},    {-4.50359962737050E+15|9.00719925474099E+15|-4.50359962737050E+15;9.00719925474100E+15|-1.80143985094820E+16|9.00719925474099E+15;-4.50359962737050E+15|9.00719925474099E+15|-4.50359962737050E+15}
-{10|20|30;40|50|60;70|80|90},		{7.03687441776639E+13|-1.40737488355328E+14|7.03687441776640E+13;-1.40737488355328E+14|2.81474976710656E+14|-1.40737488355328E+14;7.03687441776641E+13|-1.40737488355328E+14|7.03687441776640E+13}
-{8|1|6;3|5|7;4|9|2},			{1.47222222222222E-01|-1.44444444444444E-01|6.38888888888889E-02;-6.11111111111111E-02|2.22222222222222E-02|1.05555555555556E-01;-1.94444444444444E-02|1.88888888888889E-01|-1.02777777777778E-01}
-{4|-1;2|0},				{0|0.5;-1|2}
-{1|2|1;3|4|-1;0|2|0},			{0.25|0.25|-0.75;0|0|0.5;0.75|-0.25|-0.25}
-{1|4|1|1;1|4|0|1;2|3|1|2;3|2|6|4},	{3.2|-4.8|2.8|-1;0.2|0.2|0.2|0;1|-1|0|0;-4|5|-2|1}
-{0.2|1;0.35|10.8},			{5.96685082872928|-0.55248618784530;-0.19337016574586|0.11049723756906}
-{0.2|1|-0.9;0.35|10.8|4;-3.15|5},	"#VALUE!"
-{1|2;3|4},				{-2|1;1.5|-0.5}
-{1|2|1;3|4|2;1|1|2},			{-2|1|0;1.33333333333333|-0.33333333333333|-0.33333333333333;0.33333333333333|-0.33333333333333|0.66666666666667}
-{2|3;4|5},   {-2.5|1.5;2|-1}
-{5|8;7|9},  {-0.818181818181818|0.727272727272727;0.636363636363636|-0.454545454545455}
-{45|78;17|50},  {0.054112554112554|-0.084415584415584;-0.018398268398268|0.048701298701299}
-{2|2;2|1},   {-0.5|1.0;1|-1}
-{1|4|6;7|4|10;15|16|20},    {-0.2941176470588230|0.0588235294117647|0.0588235294117647;0.0367647058823529|-0.2573529411764710|0.1176470588235290;0.1911764705882350|0.1617647058823530|-0.0882352941176471}
\ No newline at end of file
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/MMULT.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/MMULT.data
deleted file mode 100644
index 86c9bfdb416..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/MMULT.data
+++ /dev/null
@@ -1,12 +0,0 @@
-{1|2;3|4},		{1|2;3|4},		{7|10;15|22}
-{1|2|3;4|5|6;7|8|9},	{1|2|3;4|5|6;7|8|9},	{30|36|42;66|81|96;102|126|150}
-{1|2;3|4},		2,			"#VALUE!"   // Mismatched dimensions
-{1|2;3|4},		{2},			"#VALUE!"   // Mismatched dimensions
-{1.2;2.4},      {3.6|4.5},          {14.43|14.43;14.43|14.43}
-2,			{1|2;3|4},		"#VALUE!"   // Mismatched dimensions
-{2},			{1|2;3|4},		"#VALUE!"   // Mismatched dimensions
-{1|2;3|4},		{2|4},			"#VALUE!"
-{1|2;3|4},		{2;4},			{{10};{22}}
-{2|4},			{1|2;3|4},		{14|20}
-{2;4},			{1|2;3|4},		"#VALUE!"   // Mismatched dimensions
-{1|2;3|4;5|6},		{1|2|3;4|5|6},		{9|12|15;19|26|33;29|40|51}
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/MOD.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/MOD.data
deleted file mode 100644
index 7e0aee6f460..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/MOD.data
+++ /dev/null
@@ -1,9 +0,0 @@
-19,	17,	2
-19,	-13,	-7
-34,	17,	0
-34,	0,	"#DIV/0!"
-3,	2,	1
--3,	2,	1
-3,	-2,	-1
--3,	-2,	-1
-2.5,	1.3,	1.2
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/MROUND.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/MROUND.data
deleted file mode 100644
index fc68ed7bc48..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/MROUND.data
+++ /dev/null
@@ -1,11 +0,0 @@
-10,		3,	9
--10,		-3,	-9
-1.3,		0.2,	1.4
-5,		0,	0
-3.14159,	0.002,	3.142
--3.14159,	-.02,	-3.14
-31415.92654,	10,	31420
-31415.92654,	1,	31416
-5,		-2,	"#NUM!"
-"ABC",		1,	"#VALUE!"
-1.234,		"ABC",	"#VALUE!"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/MULTINOMIAL.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/MULTINOMIAL.data
deleted file mode 100644
index c943f20a24b..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/MULTINOMIAL.data
+++ /dev/null
@@ -1,2 +0,0 @@
-2,	3,	4,		1260
-3,	1,	2,	5,	27720
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/ODD.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/ODD.data
deleted file mode 100644
index 54898cc1cec..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/ODD.data
+++ /dev/null
@@ -1,13 +0,0 @@
-,	1
-5.4,	7
--5.4,	-7
-1.5,	3
-0.1,	1
-3,	3
-2,	3
--2,	-3
--1,	-1
-"ABC",	"#VALUE!"
-TRUE,	1
-FALSE,	1
-0,	1
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/POWER.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/POWER.data
deleted file mode 100644
index f00915e7282..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/POWER.data
+++ /dev/null
@@ -1,81 +0,0 @@
--1.5,	-1.5,	"#NUM!"
--0.75,	-1.5,	"#NUM!"
-0,	-1.5,	"#DIV/0!"
-0.75,	-1.5,	1.539600717839
-1.5,	-1.5,	0.54433105395182
-2.25,	-1.5,	0.2962962962963
-3,	-1.5,	0.19245008972988
-3.75,	-1.5,	0.13770607453182
-4.5,	-1.5,	0.10475656017579
--1.5,	-0.75,	"#NUM!"
--0.75,	-0.75,	"#NUM!"
-0,	-0.75,	"#DIV/0!"
-0.75,	-0.75,	1.2408064788028
-1.5,	-0.75,	0.73778794646688
-2.25,	-0.75,	0.54433105395182
-3,	-0.75,	0.43869133765083
-3.75,	-0.75,	0.37108769116183
-4.5,	-0.75,	0.32366118113822
--1.5,	0,	1
--0.75,	0,	1
-0,	0,	"#NUM!"
-0.75,	0,	1
-1.5,	0,	1
-2.25,	0,	1
-3,	0,	1
-3.75,	0,	1
-4.5,	0,	1
--1.5,	0.75,	"#NUM!"
--0.75,	0.75,	"#NUM!"
-0,	0.75,	0
-0.75,	0.75,	0.80592744886766
-1.5,	0.75,	1.35540300541477
-2.25,	0.75,	1.83711730708738
-3,	0.75,	2.27950705695478
-3.75,	0.75,	2.69478083972313
-4.5,	0.75,	3.08965071586068
--1.5,	1.5,	"#NUM!"
--0.75,	1.5,	"#NUM!"
-0,	1.5,	0
-0.75,	1.5,	0.64951905283833
-1.5,	1.5,	1.83711730708738
-2.25,	1.5,	3.375
-3,	1.5,	5.19615242270663
-3.75,	1.5,	7.26184377413891
-4.5,	1.5,	9.54594154601839
--1.5,	2.25,	"#NUM!"
--0.75,	2.25,	"#NUM!"
-0,	2.25,	0
-0.75,	2.25,	0.52346523324493
-1.5,	2.25,	2.49003431932572
-2.25,	2.25,	6.20027091141992
-3,	2.25,	11.8446661165724
-3.75,	2.25,	19.5690774636122
-4.5,	2.25,	29.4936251312199
--1.5,	3,	-3.375
--0.75,	3,	-0.421875
-0,	3,	0
-0.75,	3,	0.421875
-1.5,	3,	3.375
-2.25,	3,	11.390625
-3,	3,	27
-3.75,	3,	52.734375
-4.5,	3,	91.125
--1.5,	3.75,	"#NUM!"
--0.75,	3.75,	"#NUM!"
-0,	3.75,	0
-0.75,	3.75,	0.34000064249104
-1.5,	3.75,	4.57448514327484
-2.25,	3.75,	20.9259143260422
-3,	3.75,	61.546690537779
-3.75,	3.75,	142.107583344775
-4.5,	3.75,	281.544421482804
--1.5,	4.5,	"#NUM!"
--0.75,	4.5,	"#NUM!"
-0,	4.5,	0
-0.75,	4.5,	0.27401585041617
-1.5,	4.5,	6.20027091141992
-2.25,	4.5,	38.443359375
-3,	4.5,	140.296115413079
-3.75,	4.5,	382.948792776857
-4.5,	4.5,	869.873923380926
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/PRODUCT.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/PRODUCT.data
deleted file mode 100644
index 9ff8b20c471..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/PRODUCT.data
+++ /dev/null
@@ -1,7 +0,0 @@
-5,	15,	30,			2250
-5,	15,	30,	2,		4500
-3,	6,	2,	8,	5,	1440
-3,	4,				12
-3,	4,	4.5,			54
-3,	4,	4.5,	-6.78,		-366.12
-3,	4,	4.5,	-6.78,	-2,	732.24
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/QUOTIENT.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/QUOTIENT.data
deleted file mode 100644
index 16c3aa95821..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/QUOTIENT.data
+++ /dev/null
@@ -1,6 +0,0 @@
-5,	2,	2
-4.5,	3.1,	1
--10,	3,	-3
-10,	2.2,	4
-5.5,	2.667,	2
--7,	2,	-4
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/ROMAN.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/ROMAN.data
deleted file mode 100644
index 69085897b81..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/ROMAN.data
+++ /dev/null
@@ -1,5 +0,0 @@
-49,	"XLIX"
-50,	"L"
-2012,	"MMXII"
-999,	"CMXCIX"
-499,	"CDXCIX"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/ROUNDDOWN.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/ROUNDDOWN.data
deleted file mode 100644
index 7bb42c0c1ab..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/ROUNDDOWN.data
+++ /dev/null
@@ -1,14 +0,0 @@
-662.79,		0,	662
-662.79,		1,	662.7
-54.1,		-1,	50
-55.1,		-1,	50
--23.67,		1,	-23.6
-3.2,		0,	3
-3.2,		0.01,	3
-76.9,		0,	76
-3.14159,	3,	3.141
--3.14159,	1,	-3.1
-31415.92654,	-2,	31400
-31415.92654,	-1,	31410
-"ABC",		1,	"#VALUE!"
-1.234,		"ABC",	"#VALUE!"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/ROUNDUP.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/ROUNDUP.data
deleted file mode 100644
index ba81e3db1af..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/ROUNDUP.data
+++ /dev/null
@@ -1,14 +0,0 @@
-662.79,		0,	663
-662.79,		1,	662.8
-54.1,		-1,	60
-55.1,		-1,	60
--23.62,		1,	-23.7
-3.2,		0,	4
-3.2,		0.01,	4
-76.9,		0,	77
-3.14159,	3,	3.142
--3.14159,	1,	-3.2
-31415.92654,	-2,	31500
-31415.92654,	-1,	31420
-"ABC",		1,	"#VALUE!"
-1.234,		"ABC",	"#VALUE!"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/SERIESSUM.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/SERIESSUM.data
deleted file mode 100644
index eb47f6843f3..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/SERIESSUM.data
+++ /dev/null
@@ -1,2 +0,0 @@
-5,	1,	1,	{1|1|1|1|1},	3905
-2,	1,	2,	{1|2|3|4|5},	3186
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/SIGN.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/SIGN.data
deleted file mode 100644
index 8494da9e001..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/SIGN.data
+++ /dev/null
@@ -1,13 +0,0 @@
--1.5,	-1
--1,	-1
--0.5,	-1
-0,	0
-0.5,	1
-1,	1
-1.5,	1
-2,	1
-2.5,	1
-"ABC",	"#VALUE!"
-TRUE,	1
-FALSE,	0
-"-3.5",	-1
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/SQRTPI.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/SQRTPI.data
deleted file mode 100644
index fc1ea52533a..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/SQRTPI.data
+++ /dev/null
@@ -1,15 +0,0 @@
-"ABC",	"#VALUE!"
--1.5,	"#NUM!"
--1,	"#NUM!"
--0.5,	"#NUM!"
-0,	0.000000000000000000
-0.5,	1.253314137315500000
-1,	1.772453850905520000
-1.5,	2.170803763674800000
-2,	2.506628274631000000
-2.5,	2.802495608198960000
-3,	3.069980123839470000
-3.5,	3.315957521978270000
-4,	3.544907701811030000
-4.5,	3.759942411946500000
-5,	3.963327297606010000
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/SUMSQ.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/SUMSQ.data
deleted file mode 100644
index 557c5c05ef8..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/SUMSQ.data
+++ /dev/null
@@ -1,7 +0,0 @@
-3,	4,			25
-5,	2,	1,	3,	39
-5,	2,	1,	6,	66
-1,	3,			10
-1,	3,	2,	4,	30
-3,	5,	7,		83
-1,	2,	3,		14
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/TRUNC.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/TRUNC.data
deleted file mode 100644
index 8c85bddc50f..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/MathTrig/TRUNC.data
+++ /dev/null
@@ -1,19 +0,0 @@
-3.14159,	2,	3.14
-3.14159,	3,	3.141
--3.14159,	2,	-3.14
--3.14159,	3,	-3.141
-31415.92654,	10,	31415.92654
--31415.92654,	10,	-31415.92654
-31415.92654,	2,	31415.92
-31415.92654,	-2,	31400
-31415.92654,	-10,	0
--31415.92654,	-10,	0
-12345.6789,	-3,	12000
-12345.6789,	-2,	12300
-12345.6789,	-1,	12340
-12345.6789,	0,	12345
-12345.6789,	1,	12345.6
-12345.6789,	2,	12345.67
-12345.6789,	3,	12345.678
-"ABC",		2,	"#VALUE!"
-31415.92654,	"ABC",	"#VALUE!"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/CHAR.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/CHAR.data
deleted file mode 100644
index f4cbee5dbaa..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/CHAR.data
+++ /dev/null
@@ -1,5 +0,0 @@
-"ABC",	"#VALUE!"
--5,	"#VALUE!"
-65,	"A"
-123,	"{"
-126,	"~"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/CLEAN.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/CLEAN.data
deleted file mode 100644
index 21f0c0d13c4..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/CLEAN.data
+++ /dev/null
@@ -1,5 +0,0 @@
-"HELLO      ",	"HELLO      "
-"	HELLO",		"HELLO"
-"HELLO    WORLD",	"HELLO    WORLD"
-TRUE,			"TRUE"
-NULL,			NULL
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/CODE.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/CODE.data
deleted file mode 100644
index d251fb6eb4e..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/CODE.data
+++ /dev/null
@@ -1,12 +0,0 @@
-,		"#VALUE!"
-"",		"#VALUE!"
-"ABC",		65
-123,		49
-TRUE,		84
-"DEF",		68
-"PHPExcel",	80
-1.5,		49
-"Mark Baker",	77
-"mark baker",	109
-"£125.00",	163
-"Бензин",	1234
\ No newline at end of file
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/CONCATENATE.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/CONCATENATE.data
deleted file mode 100644
index 7b8984624e5..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/CONCATENATE.data
+++ /dev/null
@@ -1,3 +0,0 @@
-"ABCDE",	"FGHIJ",		"ABCDEFGHIJ"
-1,		2,		3,	"123"
-"Boolean",	"-",		TRUE,	"Boolean-TRUE"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/DOLLAR.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/DOLLAR.data
deleted file mode 100644
index aee1b006088..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/DOLLAR.data
+++ /dev/null
@@ -1,6 +0,0 @@
-123.456,	2,	'"$123.46"'
-123.321,	2,	'"$123.32"'
-1234567,	-3,	'"$1,235,000"'
-1234567,	-5,	'"$1,200,000"'
-"ABC",		2,	"#NUM!"
-123.456,	"ABC",	"#NUM!"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/FIND.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/FIND.data
deleted file mode 100644
index 411150da480..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/FIND.data
+++ /dev/null
@@ -1,13 +0,0 @@
-"E",	"QWERTYUIOP",		3
-"D",	"ABCDEFGHI",		4
-"E",	TRUE,			4
-"E",	FALSE,			5
-"A",	"Mark Baker",		"#VALUE!"
-"A",	"MARK BAKER",		2
-"a",	"Mark Baker",	2,	2
-"k",	"Mark Baker",	2,	4
-"k",	"Mark Baker",	5,	8
-"a",	"Mark Baker",	3,	7
-"BITE",	"BIT",			"#VALUE!"
-"",	"Mark Baker",		1
-"",	"Mark Baker",	8,	8
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/FIXED.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/FIXED.data
deleted file mode 100644
index cd7d57bb593..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/FIXED.data
+++ /dev/null
@@ -1,5 +0,0 @@
-123456.789,	2,	FALSE,	'"123,456.79"'
-123456.789,	1,	TRUE,	'"123456.8"'
-123456.789,	2,	TRUE,	'"123456.79"'
-"ABC",		2,	NULL,	"#NUM!"
-123.456,	"ABC",	NULL,	"#NUM!"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/LEFT.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/LEFT.data
deleted file mode 100644
index e76e009cc9e..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/LEFT.data
+++ /dev/null
@@ -1,6 +0,0 @@
-,		1,	""
-"",		1,	""
-"QWERTYUIOP",	-1,	"#VALUE!"
-"ABCDEFGHI",	3,	"ABC"
-TRUE,		2,	"TR"
-FALSE,		2,	"FA"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/LEN.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/LEN.data
deleted file mode 100644
index 09676eae737..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/LEN.data
+++ /dev/null
@@ -1,6 +0,0 @@
-,		0
-"",		0
-"AbCdEfGhI",	9
-"MARK BAKER",	10
-TRUE,		4
-FALSE,		5
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/LOWER.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/LOWER.data
deleted file mode 100644
index 04148f0bd5e..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/LOWER.data
+++ /dev/null
@@ -1,4 +0,0 @@
-"AbCdEfGhI",	"abcdefghi"
-"MARK BAKER",	"mark baker"
-TRUE,		"true"
-FALSE,		"false"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/MID.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/MID.data
deleted file mode 100644
index 5d9b503c896..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/MID.data
+++ /dev/null
@@ -1,9 +0,0 @@
-,		1,	1,	""
-"",		1,	1,	""
-"QWERTYUIOP",	-1,	1,	"#VALUE!"
-"QWERTYUIOP",	5,	-1,	"#VALUE!"
-"QWERTYUIOP",	5,		""
-"QWERTYUIOP",	8,	20,	"IOP"
-"ABCDEFGHI",	4,	3,	"DEF"
-TRUE,		2,	1,	"R"
-FALSE,		2,	2,	"AL"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/PROPER.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/PROPER.data
deleted file mode 100644
index ca142494589..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/PROPER.data
+++ /dev/null
@@ -1,3 +0,0 @@
-"MARK BAKER",	"Mark Baker"
-TRUE,		"True"
-FALSE,		"False"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/REPLACE.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/REPLACE.data
deleted file mode 100644
index 7c8f414bac1..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/REPLACE.data
+++ /dev/null
@@ -1,4 +0,0 @@
-"QWERTYUIOP",	3,	3,	"DFG",	"QWDFGYUIOP"
-"QWERTYUIOP",	5,	3,	"DFG",	"QWERDFGIOP"
-"QWERTYUIOP",	3,	0,	"DFG",	"QWDFGERTYUIOP"
-"QWERTYUIOP",	5,	0,	"DFG",	"QWERDFGTYUIOP"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/RIGHT.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/RIGHT.data
deleted file mode 100644
index 02bf333219c..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/RIGHT.data
+++ /dev/null
@@ -1,6 +0,0 @@
-,		1,	""
-"",		1,	""
-"QWERTYUIOP",	-1,	"#VALUE!"
-"ABCDEFGHI",	3,	"GHI"
-TRUE,		2,	"UE"
-FALSE,		2,	"SE"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/SEARCH.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/SEARCH.data
deleted file mode 100644
index 9925e699167..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/SEARCH.data
+++ /dev/null
@@ -1,11 +0,0 @@
-"E",	"QWERTYUIOP",		3
-"D",	"ABCDEFGHI",		4
-"E",	TRUE,			4
-"E",	FALSE,			5
-"A",	"Mark Baker",		2
-"C",	"Mark Baker",		"#VALUE!"
-"A",	"Mark Baker",	3,	7
-"K",	"Mark Baker",		4
-"K",	"Mark Baker",	5,	8
-"A",	"Mark Baker",	2,	2
-"BITE",	"BIT",			"#VALUE!"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/SUBSTITUTE.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/SUBSTITUTE.data
deleted file mode 100644
index be15c94103c..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/SUBSTITUTE.data
+++ /dev/null
@@ -1,4 +0,0 @@
-"QWERTYUIOP",	"ERT",	"DFG",			"QWDFGYUIOP"
-"Mark Baker",	"a",	"x",			"Mxrk Bxker"
-"Mark Baker",	"a",	"x",		1,	"Mxrk Baker"
-"Mark Baker",	"x",	"a",		1,	"Mark Baker"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/T.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/T.data
deleted file mode 100644
index 87f67e99d5f..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/T.data
+++ /dev/null
@@ -1,5 +0,0 @@
-123456.789,	NULL
-"123456.789",	"123456.789"
-"Mark Baker",	"Mark Baker"
-NULL,		NULL
-TRUE,		NULL
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/TEXT.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/TEXT.data
deleted file mode 100644
index da18defa35f..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/TEXT.data
+++ /dev/null
@@ -1,13 +0,0 @@
-123.456,		'"$#,##0.00"',	"$123.46"
--123.456,		'"$#,##0.00"',	"$-123.46"
-123.456,		'"#,##0.00"',	"123.46"
-123.456,		'"#,##0"',		"123"
-123.456,		"00000",		"00123"
-123456.789,		'"$#,##0.00"',	'"$123,456.79"'
-123456.789,		'"#,##0.00"',	'"123,456.79"'
-123456.789,		"0.00E+00",		"1.23E05"
--123456.789,	"0.00E+00",		"-1.23E05"
-0.000012345,	"0.00E+00",		"1.23E-05"
-"19-Dec-1960",	"yyyy-mm-dd",	"1960-12-19"
-"1-Jan-2012",	"yyyy-mm-dd",	"2012-01-01"
-1.75,			"# ?/?",		"1 3/4"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/TRIM.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/TRIM.data
deleted file mode 100644
index ea800963ce9..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/TRIM.data
+++ /dev/null
@@ -1,7 +0,0 @@
-"HELLO    ",		"HELLO"
-"    HELLO",		"HELLO"
-"   HELLO      ",	"HELLO"
-"	HELLO",		"	HELLO"
-"HELLO    WORLD",	"HELLO WORLD"
-TRUE,			"TRUE"
-NULL,			NULL
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/UPPER.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/UPPER.data
deleted file mode 100644
index 8ebf1d12983..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/UPPER.data
+++ /dev/null
@@ -1,4 +0,0 @@
-"AbCdEfGhI",	"ABCDEFGHI"
-"mark baker",	"MARK BAKER"
-TRUE,		"TRUE"
-FALSE,		"FALSE"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/VALUE.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/VALUE.data
deleted file mode 100644
index 505c2915b97..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Calculation/TextData/VALUE.data
+++ /dev/null
@@ -1,10 +0,0 @@
-"1000",	        "1000"
-"1 000",	    "1000"
-"$1 000",		"1000"
-"£1 000",		"#VALUE!"
-"1.1",		    "1.1"
-"1 000.1",		"1000.1"
-"13 Monkeys",	"#VALUE!"
-"1-Jan-2014",	"41640"
-"12:34:56",     "0.524259259259259"
-"2:46 AM",      "0.11527777777778"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/CalculationBinaryComparisonOperation.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/CalculationBinaryComparisonOperation.data
deleted file mode 100644
index de04cbf792f..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/CalculationBinaryComparisonOperation.data
+++ /dev/null
@@ -1,53 +0,0 @@
-# formula, expectedResultExcel, expectedResultOpenOffice
-'=TRUE',	TRUE,	TRUE
-'=1 + 2.5',	3.5,	3.5
-'=2.5 + 1',	3.5,	3.5
-'=1 - 2.5',	-1.5,	-1.5
-'=2.5 - 1',	1.5,	1.5
-'=3 > 1',	TRUE,	TRUE
-'=3 > 3',	FALSE,	FALSE
-'=1 > 3',	FALSE,	FALSE
-'=3 < 1',	FALSE,	FALSE
-'=3 < 3',	FALSE,	FALSE
-'=1 < 3',	TRUE,	TRUE
-'=3 = 1',	FALSE,	FALSE
-'=3 = 3',	TRUE,	TRUE
-'=1 = 1.0',	TRUE,	TRUE
-'=3 >= 1',	TRUE,	TRUE
-'=3 >= 3',	TRUE,	TRUE
-'=1 >= 3',	FALSE,	FALSE
-'=3 <= 1',	FALSE,	FALSE
-'=3 <= 3',	TRUE,	TRUE
-'=1 <= 3',	TRUE,	TRUE
-'=3 <> 1',	TRUE,	TRUE
-'=3 <> 3',	FALSE,	FALSE
-'=1 <> 1.0',	FALSE,	FALSE
-'="a" > "a"',	FALSE,	FALSE
-'="A" > "A"',	FALSE,	FALSE
-'="A" > "a"',	FALSE,	TRUE
-'="a" > "A"',	FALSE,	FALSE
-'="a" < "a"',	FALSE,	FALSE
-'="A" < "A"',	FALSE,	FALSE
-'="A" < "a"',	FALSE,	FALSE
-'="a" < "A"',	FALSE,	TRUE
-'="a" = "a"',	TRUE,	TRUE
-'="A" = "A"',	TRUE,	TRUE
-'="A" = "a"',	TRUE,	FALSE
-'="a" = "A"',	TRUE,	FALSE
-'="a" <= "a"',	TRUE,	TRUE
-'="A" <= "A"',	TRUE,	TRUE
-'="A" <= "a"',	TRUE,	FALSE
-'="a" <= "A"',	TRUE,	TRUE
-'="a" >= "a"',	TRUE,	TRUE
-'="A" >= "A"',	TRUE,	TRUE
-'="A" >= "a"',	TRUE,	TRUE
-'="a" >= "A"',	TRUE,	FALSE
-'="a" <> "a"',	FALSE,	FALSE
-'="A" <> "A"',	FALSE,	FALSE
-'="A" <> "a"',	FALSE,	TRUE
-'="a" <> "A"',	FALSE,	TRUE
-'="A" > "b"',	FALSE,	TRUE
-'="a" > "b"',	FALSE,	FALSE
-'="b" > "a"',	TRUE,	TRUE
-'="b" > "A"',	TRUE,	FALSE
-'="a2" > "a10"',	TRUE,	TRUE // Test natural sorting is not used
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Cell/DefaultValueBinder.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Cell/DefaultValueBinder.data
deleted file mode 100644
index 446ded6cdb4..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Cell/DefaultValueBinder.data
+++ /dev/null
@@ -1,19 +0,0 @@
-NULL,       "null"
-,           "null"
-"#NULL!",   "e"
-FALSE,      "b"
-TRUE,       "b"
-"FALSE",    "s"
-"TRUE",     "s"
-"",         "s"
-"ABC",      "s"
-"123",      "n"
-123,        "n"
-0.123,      "n"
-"-123",     "n"
-"1.23E4",   "n"
-"-1.23E4",  "n"
-"1.23E-4",  "n"
-"000123",   "s"
-"=123",     "f"
-"#DIV/0!",  "e"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/CellAbsoluteCoordinate.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/CellAbsoluteCoordinate.data
deleted file mode 100644
index ad642947d07..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/CellAbsoluteCoordinate.data
+++ /dev/null
@@ -1,12 +0,0 @@
-"A1",				"$A$1"
-"A12",				"$A$12"
-"J1",				"$J$1"
-"J20",				"$J$20"
-"AI1",				"$AI$1"
-"AI2012",			"$AI$2012"
-"'Worksheet1'!AI256",		"'Worksheet1'!$AI$256"
-"Worksheet1!AI256",		"Worksheet1!$AI$256"
-"'Data Worksheet'!AI256",	"'Data Worksheet'!$AI$256"
-"'Worksheet1'!$AI256",		"'Worksheet1'!$AI$256"
-"'Worksheet1'!AI$256",		"'Worksheet1'!$AI$256"
-"'Worksheet1'!$AI$256",		"'Worksheet1'!$AI$256"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/CellAbsoluteReference.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/CellAbsoluteReference.data
deleted file mode 100644
index 8aa314a2b50..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/CellAbsoluteReference.data
+++ /dev/null
@@ -1,16 +0,0 @@
-"A1",				"$A$1"
-"A12",				"$A$12"
-"J1",				"$J$1"
-"J20",				"$J$20"
-"AI1",				"$AI$1"
-"AI2012",			"$AI$2012"
-"'Worksheet1'!AI256",		"'Worksheet1'!$AI$256"
-"Worksheet1!AI256",		"Worksheet1!$AI$256"
-"'Data Worksheet'!AI256",	"'Data Worksheet'!$AI$256"
-"AI",				"$AI"
-2012,				"$2012"
-"Worksheet1!AI",		"Worksheet1!$AI"
-"Worksheet1!256",		"Worksheet1!$256"
-"'Worksheet1'!$AI256",		"'Worksheet1'!$AI$256"
-"'Worksheet1'!AI$256",		"'Worksheet1'!$AI$256"
-"'Worksheet1'!$AI$256",		"'Worksheet1'!$AI$256"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/CellBuildRange.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/CellBuildRange.data
deleted file mode 100644
index 8d6efbffc87..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/CellBuildRange.data
+++ /dev/null
@@ -1,2 +0,0 @@
-{"B4"|"E9"},		"B4:E9"
-{"B4"|"E9";"H2"|"O11"},	'"B4:E9,H2:O11"'
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/CellCoordinates.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/CellCoordinates.data
deleted file mode 100644
index e64ce5598af..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/CellCoordinates.data
+++ /dev/null
@@ -1,6 +0,0 @@
-"A1",		{"A";1}
-"A12",		{"A";12}
-"J1",		{"J";1}
-"J20",		{"J";20}
-"AI1",		{"AI";1}
-"AI2012",	{"AI";2012}
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/CellExtractAllCellReferencesInRange.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/CellExtractAllCellReferencesInRange.data
deleted file mode 100644
index 4b44a83a3ad..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/CellExtractAllCellReferencesInRange.data
+++ /dev/null
@@ -1,9 +0,0 @@
-"B4:B6",		{"B4";"B5";"B6"}
-'"B4:B6,D4:D6"',	{"B4";"B5";"B6";"D4";"D5";"D6"}
-'"B4:B6 D4:D6"',	{"B4";"B5";"B6";"D4";"D5";"D6"}
-"B4:D6",		{"B4";"B5";"B6";"C4";"C5";"C6";"D4";"D5";"D6"}
-'"B4:D6,C5:E7"',	{"B4";"B5";"B6";"C4";"C5";"C6";"C7";"D4";"D5";"D6";"D7";"E5";"E6";"E7"}
-'"B4:D6 C5:E7"',	{"B4";"B5";"B6";"C4";"C5";"C6";"C7";"D4";"D5";"D6";"D7";"E5";"E6";"E7"}
-"B2:D4 C5:D5 E3:E5 D6:E6 F4:F6",	{"B2";"B3";"B4";"C2";"C3";"C4";"C5";"D2";"D3";"D4";"D5";"D6";"E3";"E4";"E5";"E6";"F4";"F5";"F6"}
-"B2:D4 C3:E5 D4:F6",	{"B2";"B3";"B4";"C2";"C3";"C4";"C5";"D2";"D3";"D4";"D5";"D6";"E3";"E4";"E5";"E6";"F4";"F5";"F6"}
-"B4:B6 B8",		{"B4";"B5";"B6";"B8"}
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/CellGetRangeBoundaries.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/CellGetRangeBoundaries.data
deleted file mode 100644
index f01a5fd9940..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/CellGetRangeBoundaries.data
+++ /dev/null
@@ -1,2 +0,0 @@
-"B4:E9",		{"B"|4;"E"|9}
-"B4",			{"B"|4;"B"|4}
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/CellRangeBoundaries.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/CellRangeBoundaries.data
deleted file mode 100644
index 2fca6dc23d1..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/CellRangeBoundaries.data
+++ /dev/null
@@ -1,2 +0,0 @@
-"B4:E9",		{2|4;5|9}
-"B4",			{2|4;2|4}
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/CellRangeDimension.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/CellRangeDimension.data
deleted file mode 100644
index 1718f1219c0..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/CellRangeDimension.data
+++ /dev/null
@@ -1,2 +0,0 @@
-"B4:E9",		{4;6}
-"B4",			{1;1}
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/CellSplitRange.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/CellSplitRange.data
deleted file mode 100644
index 215fce253f9..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/CellSplitRange.data
+++ /dev/null
@@ -1,3 +0,0 @@
-"B4:E9",		{"B4"|"E9"}
-"B4",			{"B4"}
-'"B4:E9,H2:O11"',	{"B4"|"E9";"H2"|"O11"}
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/ColumnIndex.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/ColumnIndex.data
deleted file mode 100644
index 9a1679b6b91..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/ColumnIndex.data
+++ /dev/null
@@ -1,9 +0,0 @@
-0,	"A"
-25,	"Z"
-26,	"AA"
-27,	"AB"
-51,	"AZ"
-52,	"BA"
-701,	"ZZ"
-702,	"AAA"
-1378,	"BAA"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/ColumnString.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/ColumnString.data
deleted file mode 100644
index 5573759eb93..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/ColumnString.data
+++ /dev/null
@@ -1,9 +0,0 @@
-"A",	1
-"Z",	26
-"AA",	27
-"AB",	28
-"AZ",	52
-"BA",	53
-"ZZ",	702
-"AAA",	703
-"BAA",	1379
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Reader/XEETestInvalidUTF-16.xml b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Reader/XEETestInvalidUTF-16.xml
deleted file mode 100644
index 94eaedfc2aec6c1eb2e723c914acf0afcdbbfd65..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 276
zcmezOpTUN~o}q#vmm!BifuW2cm7$2Cm?4uPpCOOImO+WZkU@{ZfI*2tfgzP4k0F^M
zpCN@IlOc~G9V{El5W?Wbpvz#$U<OuG%uvFR$dJd7!jQ<212!WStgezFm7$nHiNT)1
zj)9kfi@}CLk->$*pTU_Sgdvh4fWehPfuV>YpCO;2gh7EJ8mvZv0R};;T^alsLKr;3
z>J=C&7z`K`7?c=X81fl{8I+)=#zJX`4KVW{HgYnQfZb5SV8x)opuwO9Hp7}h6Kt0a
JgFf7TI{<>ICxrk2

diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Reader/XEETestInvalidUTF-16BE.xml b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Reader/XEETestInvalidUTF-16BE.xml
deleted file mode 100644
index 1d186ff443435bec745501c2d7bfc81271e4c3c5..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 278
zcmZRuVX$YYV8~_2VNhTwV@PEvVkl<FWXNa8W3XjVVlZUTV=!P)Vo+d6WyoVlX2@qq
zVaR02V@L<fhBAaOxH0H57&4eKI5D__)fF?8FeEbMF{CggGUR~GNd>E|WJqNwW>8|V
zXRu@7W#D44VNhgnVen^gW(Z-3WC&nzWl&%!V#sI6XDDG%V2B2*QDA^UkZM;3KZXzn
zPq2Cgh6)A)1_cHs1{a2WhF}IIsHw3~8e#*?Jcx~)3?*PUlrUH^C@^R+sDaI}X3zxN
LWy7Ekx8Du`_k|`8

diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Reader/XEETestInvalidUTF-16LE.xml b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Reader/XEETestInvalidUTF-16LE.xml
deleted file mode 100644
index c3913f71bb84e44fb3659848c69c0434945a2642..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 278
zcmcCvuxF@X$Ysc3P+%xyNM$HuC}zlH$Y;o7uw_tUFl5kUFknz(P+&-9$YV%m$Y)4l
z$YjW4NC(S?GK4U=G3YWFGMF*=Ft~!%6*H7DBr@bNq%b5h<bcgd1*@%ONM$HyP-3uW
zuw&q5;9{_0P-Jjn@Mmyl2w{k12w-q!P+%xx$Y;oBC}B`whz6@sV1Pl8YF7q7h7bl%
zuzCfC3I+oP1qLMs7lwR>U<M_qsj*NRVgt-Ph>e^KC15v{Fjz4tFlaESfz7aH&;;9M
L!=Mkh-;MzQC9WnJ

diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Reader/XEETestInvalidUTF-8.xml b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Reader/XEETestInvalidUTF-8.xml
deleted file mode 100644
index 212003fd4fb..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Reader/XEETestInvalidUTF-8.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<!DOCTYPE root [
-     <!ENTITY x0 "DoS">
-]>
-
-<root>
-	test: (&x0;)
-</root>
\ No newline at end of file
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Reader/XEETestValidUTF-16.xml b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Reader/XEETestValidUTF-16.xml
deleted file mode 100644
index 6473fe6b6382c7f6993f3c9f0187bd0636613a98..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 176
zcmezOpTUN~o}q#vmm!BifuW2cm7$2Cm?4uPpCOOImO+WZkU@{ZfI*2tfgzP4k0F^M
zpCN@IlOc~G9V{El5W?Wbpvz#$U<OuG%uvFR$dJd7!jQ<212!WStgezFm7$nHiNT)1
rj)9kfi@}DWh#{XLpP>ZG=VT}Wt0-ZxVo+cR1MALYNP()=N2mq>yEz>O

diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Reader/XEETestValidUTF-16BE.xml b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Reader/XEETestValidUTF-16BE.xml
deleted file mode 100644
index 677e712f99d0619ab707c616cfc7789095e37ee7..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 178
zcmZRuVX$YYV8~_2VNhTwV@PEvVkl<FWXNa8W3XjVVlZUTV=!P)Vo+d6WyoVlX2@qq
zVaR02V@L<fhBAaOxH0H57&4eKI5D__)fF?8FeEbMF{CggGUR~GNd>E|WJqNwW>8|V
sXRu@7W#D44VJKqAXUJzLf$}*SO28^g7_1l+7{b81GZ|8#YV{GS0m3{RkN^Mx

diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Reader/XEETestValidUTF-16LE.xml b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Reader/XEETestValidUTF-16LE.xml
deleted file mode 100644
index 64353bfbab10e9caa40b2910d956468a7161ed40..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 178
zcmcCvuxF@X$Ysc3P+%xyNM$HuC}zlH$Y;o7uw_tUFl5kUFknz(P+&-9$YV%m$Y)4l
z$YjW4NC(S?GK4U=G3YWFGMF*=Ft~!%6*H7DBr@bNq%b5h<bcgd1*@%ONM$HyP-3uW
suw&q5;9{_0C}PNG$Y&^l@;Mnwz$!`@tQZs+!oa#S8B(BX^^sHq0O9W&ng9R*

diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Reader/XEETestValidUTF-8.xml b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Reader/XEETestValidUTF-8.xml
deleted file mode 100644
index c400ae88b5c..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Reader/XEETestValidUTF-8.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<root>
-	test: Valid
-</root>
\ No newline at end of file
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Shared/CentimeterSizeToPixels.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Shared/CentimeterSizeToPixels.data
deleted file mode 100644
index fc48f21ab11..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Shared/CentimeterSizeToPixels.data
+++ /dev/null
@@ -1,5 +0,0 @@
-0.1,	3.7795275591
-0.2,	7.5590551182
-0.5,	18.8976377955
-1.0,	37.795275591
-2.0,	75.590551182
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Shared/CodePage.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Shared/CodePage.data
deleted file mode 100644
index 68ceda1feda..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Shared/CodePage.data
+++ /dev/null
@@ -1,43 +0,0 @@
-367,	"ASCII"			//	ASCII
-437,	"CP437"			//	OEM US
-737,	"CP737"			//	OEM Greek
-775,	"CP775"			//	OEM Baltic
-850,	"CP850"			//	OEM Latin I
-852,	"CP852"			//	OEM Latin II (Central European)
-855,	"CP855"			//	OEM Cyrillic
-857,	"CP857"			//	OEM Turkish
-858,	"CP858"			//	OEM Multilingual Latin I with Euro
-860,	"CP860"			//	OEM Portugese
-861,	"CP861"			//	OEM Icelandic
-862,	"CP862"			//	OEM Hebrew
-863,	"CP863"			//	OEM Canadian (French)
-864,	"CP864"			//	OEM Arabic
-865,	"CP865"			//	OEM Nordic
-866,	"CP866"			//	OEM Cyrillic (Russian)
-869,	"CP869"			//	OEM Greek (Modern)
-874,	"CP874"			//	ANSI Thai
-932,	"CP932"			//	ANSI Japanese Shift-JIS
-936,	"CP936"			//	ANSI Chinese Simplified GBK
-949,	"CP949"			//	ANSI Korean (Wansung)
-950,	"CP950"			//	ANSI Chinese Traditional BIG5
-1200,	"UTF-16LE"		//	UTF-16 (BIFF8)
-1250,	"CP1250"		//	ANSI Latin II (Central European)
-1251,	"CP1251"		//	ANSI Cyrillic
-0,	"CP1252"		//	ANSI Latin I (BIFF4-BIFF7)
-1252,	"CP1252"		//	ANSI Latin I (BIFF4-BIFF7)
-1253,	"CP1253"		//	ANSI Greek
-1254,	"CP1254"		//	ANSI Turkish
-1255,	"CP1255"		//	ANSI Hebrew
-1256,	"CP1256"		//	ANSI Arabic
-1257,	"CP1257"		//	ANSI Baltic
-1258,	"CP1258"		//	ANSI Vietnamese
-1361,	"CP1361"		//	ANSI Korean (Johab)
-10000,	"MAC"			//	Apple Roman
-10006,	"MACGREEK"		//	Macintosh Greek
-10007,	"MACCYRILLIC"		//	Macintosh Cyrillic
-10029,	"MACCENTRALEUROPE"	//	Macintosh Central Europe
-10079, 	"MACICELAND"		//	Macintosh Icelandic
-10081, 	"MACTURKISH"		//	Macintosh Turkish
-32768,	"MAC"			//	Apple Roman
-65000,	"UTF-7"			//	Unicode (UTF-7)
-65001,	"UTF-8"			//	Unicode (UTF-8)
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Shared/DateTimeExcelToPHP1900.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Shared/DateTimeExcelToPHP1900.data
deleted file mode 100644
index d348b0aa41d..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Shared/DateTimeExcelToPHP1900.data
+++ /dev/null
@@ -1,15 +0,0 @@
-#Excel DateTimeStamp	Result		Comments
-714,			-2147472000	//	PHP 32-bit Earliest Date	14-Dec-1901
-1461,			-2082931200	//					31-Dec-1903
-1462,			-2082844800	//	Excel 1904 Calendar Base Date	01-Jan-1904
-1463,			-2082758400	//					02-Jan-1904
-22269,			-285120000	//					19-Dec-1960
-25569,			0		//	PHP Base Date			01-Jan-1970
-30292,			408067200	//					07-Dec-1982
-39611,			1213228800	//					12-Jun-2008
-50424,			2147472000	//	PHP 32-bit Latest Date		19-Jan-2038
-1234.56789,		-2102494934	//					18-May-1903 13:37:46
-12345.6789,		-1142494943	//					18-Oct-1933 16:17:37
-0.5,			43200		//					12:00:00
-0.75,			64800		//					18:00.00
-0.12345,		10666		//					02:57:46
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Shared/DateTimeExcelToPHP1900Timezone.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Shared/DateTimeExcelToPHP1900Timezone.data
deleted file mode 100644
index e106b5fe13c..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Shared/DateTimeExcelToPHP1900Timezone.data
+++ /dev/null
@@ -1,23 +0,0 @@
-#Excel DateTimeStamp	Adjust	Timezone		Result		Comments
-22269,			TRUE,	'America/New_York',	-285138000	//					19-Dec-1960 00:00:00 UST
-25569,			TRUE,	'America/New_York',	-18000		//	PHP Base Date			01-Jan-1970 00:00:00 UST
-30292,			TRUE,	'America/New_York',	408049200	//					07-Dec-1982 00:00:00 UST
-39611,			TRUE,	'America/New_York',	1213214400	//					12-Jun-2008 00:00:00 UST
-50424,			TRUE,	'America/New_York',	2147454000	//	PHP 32-bit Latest Date		19-Jan-2038 00:00:00 UST
-22345.56789,		TRUE,	'America/New_York',	-278522534	//					18-May-1903 13:37:46 UST
-22345.6789,		TRUE,	'America/New_York',	-278512943	//					18-Oct-1933 16:17:37 UST
-0.5,			TRUE,	'America/New_York',	25200		//					12:00:00 UST
-0.75,			TRUE,	'America/New_York',	46800		//					18:00.00 UST
-0.12345,		TRUE,	'America/New_York',	-7334		//					02:57:46 UST
-41215,			TRUE,	'America/New_York',	1351800000	//					02-Nov-2012 00:00:00 UST
-22269,			TRUE,	'Pacific/Auckland',	-285076800	//					19-Dec-1960 00:00:00 UST
-25569,			TRUE,	'Pacific/Auckland',	43200		//	PHP Base Date			01-Jan-1970 00:00:00 UST
-30292,			TRUE,	'Pacific/Auckland',	408114000	//					07-Dec-1982 00:00:00 UST
-39611,			TRUE,	'Pacific/Auckland',	1213272000	//					12-Jun-2008 00:00:00 UST
-50423.5,		TRUE,	'Pacific/Auckland',	2147475600	//	PHP 32-bit Latest Date		19-Jan-2038 00:00:00 UST
-22345.56789,		TRUE,	'Pacific/Auckland',	-278461334	//					18-May-1903 13:37:46 UST
-22345.6789,		TRUE,	'Pacific/Auckland',	-278451743	//					18-Oct-1933 16:17:37 UST
-0.5,			TRUE,	'Pacific/Auckland',	90000		//					12:00:00 UST
-0.75,			TRUE,	'Pacific/Auckland',	111600		//					18:00.00 UST
-0.12345,		TRUE,	'Pacific/Auckland',	57466		//					02:57:46 UST
-41215,			TRUE,	'Pacific/Auckland',	1351861200	//					02-Nov-2012 00:00:00 UST
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Shared/DateTimeExcelToPHP1904.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Shared/DateTimeExcelToPHP1904.data
deleted file mode 100644
index 5501ad17cea..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Shared/DateTimeExcelToPHP1904.data
+++ /dev/null
@@ -1,10 +0,0 @@
-#Excel DateTimeStamp	Result
-1462,			-1956528000
-1463,			-1956441600
-22269,			-158803200
-25569,			126316800
-30292,			534384000
-39611,			1339545600
-0.25,			21600		//					06:00:00
-0.3333333333333333333,	28800		//					08:00.00
-0.54321,		46933		//					02:57:46
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Shared/DateTimeFormatCodes.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Shared/DateTimeFormatCodes.data
deleted file mode 100644
index 73420470490..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Shared/DateTimeFormatCodes.data
+++ /dev/null
@@ -1,37 +0,0 @@
-#Excel Format Code			Result
-"General",				FALSE
-"@",					FALSE
-"0",					FALSE
-"0.00",					FALSE
-"#,##0.00",				FALSE
-"#,##0.00_-",				FALSE
-"0%",					FALSE
-"0.00%",				FALSE
-"yyyy-mm-dd",				TRUE
-"yy-mm-dd",				TRUE
-"dd/mm/yy",				TRUE
-"d/m/y",				TRUE
-"d-m-y",				TRUE
-"d-m",					TRUE
-"m-y",					TRUE
-"mm-dd-yy",				TRUE
-"d-mmm-yy",				TRUE
-"d-mmm",				TRUE
-"mmm-yy",				TRUE
-"m/d/yy h:mm",				TRUE
-"d/m/y h:mm",				TRUE
-"h:mm AM/PM",				TRUE
-"h:mm:ss AM/PM",			TRUE
-"h:mm",					TRUE
-"h:mm:ss",				TRUE
-"mm:ss",				TRUE
-"h:mm:ss",				TRUE
-"i:s.S",				TRUE
-"h:mm:ss;@",				TRUE
-"yy/mm/dd;@",				TRUE
-"\"$\"#,##0.00_-",			FALSE
-"$#,##0_-",				FALSE
-"[$EUR ]#,##0.00_-",			FALSE
-"_[$EUR ]#,##0.00_-",			FALSE
-"[Green]#,##0.00;[Red]#,##0.00_-",	FALSE
-"#,##0.00 \"dollars\"",			FALSE
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Shared/DateTimeFormattedPHPToExcel1900.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Shared/DateTimeFormattedPHPToExcel1900.data
deleted file mode 100644
index bb6ed3f4292..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Shared/DateTimeFormattedPHPToExcel1900.data
+++ /dev/null
@@ -1,12 +0,0 @@
-#Year	Month	Day	Hours	Minutes	Seconds	Result		Comments
-1901,	12,	14,				714		//	PHP 32-bit Earliest Date	14-Dec-1901
-1903,	12,	31,				1461		//					31-Dec-1903
-1904,	1,	1,				1462		//	Excel 1904 Calendar Base Date	01-Jan-1904
-1904,	1,	2,				1463		//					02-Jan-1904
-1960,	12,	19,				22269		//					19-Dec-1960
-1970,	1,	1,				25569		//	PHP Base Date			01-Jan-1970
-1982,	12,	7,				30292		//					07-Dec-1982
-2008,	6,	12,				39611		//					12-Jun-2008
-2038,	1,	19,				50424		//	PHP 32-bit Latest Date		19-Jan-2038
-1903,	5,	18,	13,	37,	46,	1234.56789	//					18-May-1903 13:37:46
-1933,	10,	18,	16,	17,	37,	12345.6789	//					18-Oct-1933 16:17:37
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Shared/DateTimePHPToExcel1900.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Shared/DateTimePHPToExcel1900.data
deleted file mode 100644
index dc6a9d909a4..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Shared/DateTimePHPToExcel1900.data
+++ /dev/null
@@ -1,12 +0,0 @@
-#Excel DateTimeStamp	Result		Comments
--2147472000,		714		//	PHP 32-bit Earliest Date	14-Dec-1901
--2082931200,		1461		//					31-Dec-1903
--2082844800,		1462		//	Excel 1904 Calendar Base Date	01-Jan-1904
--2082758400,		1463		//					02-Jan-1904
--285120000,		22269		//					19-Dec-1960
-0,			25569		//	PHP Base Date			01-Jan-1970
-408067200,		30292		//					07-Dec-1982
-1213228800,		39611		//					12-Jun-2008
-2147472000,		50424		//	PHP 32-bit Latest Date		19-Jan-2038
--2102494934,		1234.56789	//					18-May-1903 13:37:46
--1142494943,		12345.6789	//					18-Oct-1933 16:17:37
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Shared/DateTimePHPToExcel1904.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Shared/DateTimePHPToExcel1904.data
deleted file mode 100644
index 98fa49514ba..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Shared/DateTimePHPToExcel1904.data
+++ /dev/null
@@ -1,7 +0,0 @@
-#Excel DateTimeStamp	Result
--1956528000,		1462
--1956441600,		1463
--158803200,		22269
-126316800,		25569
-534384000,		30292
-1339545600,		39611
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Shared/FontSizeToPixels.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Shared/FontSizeToPixels.data
deleted file mode 100644
index af89196d3ff..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Shared/FontSizeToPixels.data
+++ /dev/null
@@ -1,16 +0,0 @@
-6,	8
-7,	9
-8,	10
-9,	12
-10,	13
-11,	14
-12,	16
-14,	18
-16,	21
-18,	24
-20,	26
-22,	29
-24,	32
-36,	48
-48,	64
-60,	80
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Shared/InchSizeToPixels.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Shared/InchSizeToPixels.data
deleted file mode 100644
index 147eaa989ea..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Shared/InchSizeToPixels.data
+++ /dev/null
@@ -1,5 +0,0 @@
-0.1,	9.6
-0.2,	19.2
-0.5,	48.0
-1.0,	96.0
-2.0,	192.0
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Shared/PasswordHashes.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Shared/PasswordHashes.data
deleted file mode 100644
index c6846812616..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Shared/PasswordHashes.data
+++ /dev/null
@@ -1,9 +0,0 @@
-"PHPExcel",						"8053"
-"Mark Baker",					"877D"
-"!+&=()~§±æþ",					"C0EA"
-"μυστικό κωδικό πρόσβασης",		"FFFF26DD"
-"গোপন পাসওয়ার্ড",						"E858"
-"Секретный пароль",				"EA5F"
-"秘密口令",						"C07E"
-"leyndarmál lykilorð",			"99E8"
-"",								"CE4B"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Style/ColorChangeBrightness.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Style/ColorChangeBrightness.data
deleted file mode 100644
index de5eeaf5f7c..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Style/ColorChangeBrightness.data
+++ /dev/null
@@ -1,14 +0,0 @@
-"FFAABBCC",	0.1,	"FFB2C1D1"	//	RGBA
-"FFAABBCC",	-0.1,	"FF99A8B7"	//	RGBA
-"AABBCC",	0.1,	"B2C1D1"	//	RGB
-"AABBCC",	-0.1,	"99A8B7"	//	RGB
-"FF0000",	0.1,	"FF1919"
-"FF0000",	-0.1,	"E50000"
-"FF8080",	0.1,	"FF8C8C"
-"FF8080",	-0.1,	"E57373"
-"FF0000",	0.15,	"FF2626"
-"FF0000",	-0.15,	"D80000"
-"FF8080",	0.15,	"FF9393"
-"FF8080",	-0.15,	"D86C6C"
-"FFF008",	0.5,	"FFF783"
-"FFF008",	-0.5,	"7F7804"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Style/ColorGetBlue.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Style/ColorGetBlue.data
deleted file mode 100644
index 4e01d1c7ca1..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Style/ColorGetBlue.data
+++ /dev/null
@@ -1,6 +0,0 @@
-"FFAABBCC",		"CC"	//	RGBA (hex)
-"FFAABBCC",	FALSE,	204	//	RGBA (decimal)
-"AABBCC",		"CC"	//	RGB (hex)
-"AABBCC",	FALSE,	204	//	RGB (decimal)
-"FFFF00",		"00"
-"FFFF00",	FALSE,	0
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Style/ColorGetGreen.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Style/ColorGetGreen.data
deleted file mode 100644
index 0ace610340b..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Style/ColorGetGreen.data
+++ /dev/null
@@ -1,6 +0,0 @@
-"FFAABBCC",		"BB"	//	RGBA (hex)
-"FFAABBCC",	FALSE,	187	//	RGBA (decimal)
-"AABBCC",		"BB"	//	RGB (hex)
-"AABBCC",	FALSE,	187	//	RGB (decimal)
-"FF00FF",		"00"
-"FF00FF",	FALSE,	0
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Style/ColorGetRed.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Style/ColorGetRed.data
deleted file mode 100644
index 1692a6ad716..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Style/ColorGetRed.data
+++ /dev/null
@@ -1,6 +0,0 @@
-"FFAABBCC",		"AA"	//	RGBA (hex)
-"FFAABBCC",	FALSE,	170	//	RGBA (decimal)
-"AABBCC",		"AA"	//	RGB (hex)
-"AABBCC",	FALSE,	170	//	RGB (decimal)
-"00FFFF",		"00"
-"00FFFF",	FALSE,	0
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Style/NumberFormat.data b/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Style/NumberFormat.data
deleted file mode 100644
index 49acaccfc7d..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/rawTestData/Style/NumberFormat.data
+++ /dev/null
@@ -1,37 +0,0 @@
-# value		format									result
-0.0,		"0.0",									"0.0"
-0.0,		"0",									"0"
-0,			"0.0",									"0.0"
-0,			"0",									"0"
-0,			"##0",									"000"
-12,			"#.0#",									"12.0"
-0.1,		"0.0",									"0.1"
-0.1,		"0",									"0"
-5.5555,		"0.###",								"5.556"
-5.5555,		"0.0##",								"5.556"	
-5.5555,		"0.00#",								"5.556"
-5.5555,		"0.000",								"5.556"
-5.5555,		"0.0000",								"5.5555"
-12345.6789,	'"#,##0.00"',							'"12,345.68"'
-12345.6789,	'"#,##0.000"',							'"12,345.679"'
-12345.6789,	'"£ #,##0.00"',							'"£ 12,345.68"'
-12345.6789,	'"$ #,##0.000"',						'"$ 12,345.679"'
-5.6789,		'"#,##0.00"',							'"5.68"'
-12000,		'"#,###"',								'"12,000"'
-12000,		'"#,"',									'12'
-12200000,	'"0.0,,"',								'12.2'		// Scaling test
-0.08,		"0%",									"8%"
-0.8,		"0%",									"80%"
-2.8,		"0%",									"280%"
-125.74,		'$0.00" Surplus";$-0.00" Shortage"',	"$125.74 Surplus"
--125.74,	'$0.00" Surplus";$-0.00" Shortage"',	"$-125.74 Shortage"
--125.74,	'$0.00" Surplus";$0.00" Shortage"',		"$125.74 Shortage"
-5.25,		'# ???/???',							"5 1/4"		// Fraction
-5.3,		'# ???/???',							"5 3/10"	// Vulgar Fraction
-5.25,		'???/???',								"21/4"
-123456789,	'(000) 0-0000-000',						"(001) 2-3456-789"
-123456789,	'0 (+00) 0000 00 00 00',				"0 (+00) 0123 45 67 89"
-123456789,	'0000:00:00',							"12345:67:89"
--123456789,	'0000:00:00',							"-12345:67:89"
-1234567.89,	'0000:00.00',							"12345:67.89"
--1234567.89,'0000:00.00',							"-12345:67.89"
diff --git a/htdocs/includes/phpoffice/phpexcel/unitTests/testDataFileIterator.php b/htdocs/includes/phpoffice/phpexcel/unitTests/testDataFileIterator.php
deleted file mode 100644
index a092cd59339..00000000000
--- a/htdocs/includes/phpoffice/phpexcel/unitTests/testDataFileIterator.php
+++ /dev/null
@@ -1,131 +0,0 @@
-<?php
-
-class testDataFileIterator implements Iterator
-{
-
-    protected $file;
-    protected $key = 0;
-    protected $current;
-
-    public function __construct($file)
-    {
-        $this->file = fopen($file, 'r');
-    }
-
-    public function __destruct()
-    {
-        fclose($this->file);
-    }
-
-    public function rewind()
-    {
-        rewind($this->file);
-        $this->current = $this->_parseNextDataset();
-        $this->key = 0;
-    }
-
-    public function valid()
-    {
-        return !feof($this->file);
-    }
-
-    public function key()
-    {
-        return $this->key;
-    }
-
-    public function current()
-    {
-        return $this->current;
-    }
-
-    public function next()
-    {
-        $this->current = $this->_parseNextDataset();
-        $this->key++;
-    }
-
-    private function _parseNextDataset()
-    {
-        //    Read a line of test data from the file
-        do {
-            //    Only take lines that contain test data and that aren't commented out
-            $testDataRow = trim(fgets($this->file));
-        } while (($testDataRow > '') && ($testDataRow{0} === '#'));
-
-        //    Discard any comments at the end of the line
-        list($testData) = explode('//',$testDataRow);
-
-        //    Split data into an array of individual values and a result
-        $dataSet = $this->_getcsv($testData, ',', "'");
-        foreach($dataSet as &$dataValue) {
-            $dataValue = $this->_parseDataValue($dataValue);
-        }
-        unset($dataValue);
-
-        return $dataSet;
-    }
-
-    private function _getcsv($input, $delimiter, $enclosure)
-    {
-        if (function_exists('str_getcsv')) {
-            return str_getcsv($input, $delimiter, $enclosure);
-        }
-
-        $temp = fopen('php://memory', 'rw');
-        fwrite($temp, $input);
-        rewind($temp);
-        $data = fgetcsv($temp, strlen($input), $delimiter, $enclosure);
-        fclose($temp);
-
-        if ($data === false) {
-            $data = array(null);
-        }
-
-        return $data;
-    }
-
-    private function _parseDataValue($dataValue) {
-        //    discard any white space
-        $dataValue = trim($dataValue);
-        //    test for the required datatype and convert accordingly
-        if (!is_numeric($dataValue)) {
-            if($dataValue == '') {
-                $dataValue = NULL;
-            } elseif($dataValue == '""') {
-                $dataValue = '';
-            } elseif(($dataValue[0] == '"') && ($dataValue[strlen($dataValue)-1] == '"')) {
-                $dataValue = substr($dataValue,1,-1);
-            } elseif(($dataValue[0] == '{') && ($dataValue[strlen($dataValue)-1] == '}')) {
-                $dataValue = explode(';',substr($dataValue,1,-1));
-                foreach($dataValue as &$dataRow) {
-                    if (strpos($dataRow,'|') !== FALSE) {
-                        $dataRow = explode('|',$dataRow);
-                        foreach($dataRow as &$dataCell) {
-                            $dataCell = $this->_parseDataValue($dataCell);
-                        }
-                        unset($dataCell);
-                    } else {
-                        $dataRow = $this->_parseDataValue($dataRow);
-                    }
-                }
-                unset($dataRow);
-            } else {
-                switch (strtoupper($dataValue)) {
-                    case 'NULL' :  $dataValue = NULL; break;
-                    case 'TRUE' :  $dataValue = TRUE; break;
-                    case 'FALSE' : $dataValue = FALSE; break;
-                }
-            }
-        } else {
-            if (strpos($dataValue,'.') !== FALSE) {
-                $dataValue = (float) $dataValue;
-            } else {
-                $dataValue = (int) $dataValue;
-            }
-        }
-
-		return $dataValue;
-    }
-
-}
-- 
GitLab


From 26b85d7cac82c077ec70e4f3f932e79af0794c85 Mon Sep 17 00:00:00 2001
From: Ion Agorria <ion@agorria.com>
Date: Fri, 11 Dec 2015 18:28:55 +0100
Subject: [PATCH 157/197] Remove unnecesary variable

---
 htdocs/core/tpl/objectline_create.tpl.php | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/htdocs/core/tpl/objectline_create.tpl.php b/htdocs/core/tpl/objectline_create.tpl.php
index bb84e47ad7d..bcbcae00639 100644
--- a/htdocs/core/tpl/objectline_create.tpl.php
+++ b/htdocs/core/tpl/objectline_create.tpl.php
@@ -518,7 +518,7 @@ jQuery(document).ready(function() {
 			/* focus work on a standard textarea but not if field was replaced with CKEDITOR */
 			jQuery('#dp_desc').focus();
 			/* focus if CKEDITOR */
-			if (typeof CKEDITOR == "object" && typeof CKEDITOR.instances != "undefined" && CKEDITOR.instances[key] != "undefined")
+			if (typeof CKEDITOR == "object" && typeof CKEDITOR.instances != "undefined")
 			{
 				var editor = CKEDITOR.instances['dp_desc'];
    				if (editor) { editor.focus(); }
@@ -624,7 +624,7 @@ jQuery(document).ready(function() {
 			/* focus work on a standard textarea but not if field was replaced with CKEDITOR */
 			jQuery('#dp_desc').focus();
 			/* focus if CKEDITOR */
-			if (typeof CKEDITOR == "object" && typeof CKEDITOR.instances != "undefined" && CKEDITOR.instances[key] != "undefined")
+			if (typeof CKEDITOR == "object" && typeof CKEDITOR.instances != "undefined")
 			{
 				var editor = CKEDITOR.instances['dp_desc'];
    				if (editor) { editor.focus(); }
-- 
GitLab


From 2cd49043a644e2b137bae7dac083fa1e2a3d23ff Mon Sep 17 00:00:00 2001
From: philippe grand <philippe.grand@atoo-net.com>
Date: Fri, 11 Dec 2015 19:37:12 +0100
Subject: [PATCH 158/197] [Qual] Close database handler should be after Footer

---
 htdocs/don/info.php                       | 3 +--
 htdocs/don/list.php                       | 4 +---
 htdocs/don/payment/payment.php            | 4 +---
 htdocs/ecm/docfile.php                    | 3 +--
 htdocs/ecm/docmine.php                    | 3 +--
 htdocs/ecm/docother.php                   | 3 +--
 htdocs/expedition/list.php                | 3 +--
 htdocs/expensereport/card.php             | 3 +--
 htdocs/expensereport/payment/payment.php  | 4 +---
 htdocs/fichinter/info.php                 | 3 +--
 htdocs/fourn/facture/impayees.php         | 2 +-
 htdocs/fourn/facture/paiement.php         | 3 +--
 htdocs/fourn/product/list.php             | 4 +---
 htdocs/fourn/recap-fourn.php              | 4 +---
 htdocs/hrm/establishment/info.php         | 3 +--
 htdocs/loan/payment/payment.php           | 4 +---
 htdocs/product/stock/fiche-valo.php       | 3 +--
 htdocs/projet/admin/project.php           | 5 ++---
 htdocs/societe/checkvat/checkVatPopup.php | 1 +
 htdocs/societe/commerciaux.php            | 4 +---
 htdocs/societe/societecontact.php         | 6 +++---
 htdocs/user/group/perms.php               | 3 +--
 htdocs/user/ldap.php                      | 6 +-----
 23 files changed, 26 insertions(+), 55 deletions(-)

diff --git a/htdocs/don/info.php b/htdocs/don/info.php
index daa5c6e62de..1c51a1fa9f8 100644
--- a/htdocs/don/info.php
+++ b/htdocs/don/info.php
@@ -57,6 +57,5 @@ if ($id)
     print '</div>';
 }
 
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/don/list.php b/htdocs/don/list.php
index 36c74826952..0a91e59593d 100644
--- a/htdocs/don/list.php
+++ b/htdocs/don/list.php
@@ -236,7 +236,5 @@ else
 	dol_print_error($db);
 }
 
-
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/don/payment/payment.php b/htdocs/don/payment/payment.php
index da33a92e750..a0062632770 100644
--- a/htdocs/don/payment/payment.php
+++ b/htdocs/don/payment/payment.php
@@ -308,7 +308,5 @@ if (GETPOST("action") == 'create')
 	print "</form>\n";
 }
 
-
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/ecm/docfile.php b/htdocs/ecm/docfile.php
index d533e1cf559..ce4bf480668 100644
--- a/htdocs/ecm/docfile.php
+++ b/htdocs/ecm/docfile.php
@@ -285,6 +285,5 @@ if ($_GET["action"] != 'edit')
 
 
 // End of page
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/ecm/docmine.php b/htdocs/ecm/docmine.php
index 13f5ee516b9..ae4e6c6b08c 100644
--- a/htdocs/ecm/docmine.php
+++ b/htdocs/ecm/docmine.php
@@ -364,6 +364,5 @@ if ($user->rights->ecm->read)
 */
 
 // End of page
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/ecm/docother.php b/htdocs/ecm/docother.php
index 2f0f231523f..addf559e01c 100644
--- a/htdocs/ecm/docother.php
+++ b/htdocs/ecm/docother.php
@@ -167,6 +167,5 @@ if ($mesg) { print $mesg."<br>"; }
 print $langs->trans("FeatureNotYetAvailable");
 
 // End of page
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/expedition/list.php b/htdocs/expedition/list.php
index 6d8dc1d22df..5339538901e 100644
--- a/htdocs/expedition/list.php
+++ b/htdocs/expedition/list.php
@@ -237,6 +237,5 @@ else
 	dol_print_error($db);
 }
 
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/expensereport/card.php b/htdocs/expensereport/card.php
index e7b0be3d6d5..aa36b690619 100644
--- a/htdocs/expensereport/card.php
+++ b/htdocs/expensereport/card.php
@@ -1198,9 +1198,8 @@ else
 					print $langs->trans('NotUserRightToView');
 					print '</div>';
 
-					$db->close();
-
 					llxFooter();
+					$db->close();
 
 					exit;
 				}
diff --git a/htdocs/expensereport/payment/payment.php b/htdocs/expensereport/payment/payment.php
index 94f37389fc9..b7d40b2e65b 100644
--- a/htdocs/expensereport/payment/payment.php
+++ b/htdocs/expensereport/payment/payment.php
@@ -313,7 +313,5 @@ if (GETPOST("action") == 'create')
 	print "</form>\n";
 }
 
-
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/fichinter/info.php b/htdocs/fichinter/info.php
index f577913ebe2..5be4af71d27 100644
--- a/htdocs/fichinter/info.php
+++ b/htdocs/fichinter/info.php
@@ -65,6 +65,5 @@ print '</td></tr></table>';
 
 print '</div>';
 
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/fourn/facture/impayees.php b/htdocs/fourn/facture/impayees.php
index ecb6b990a64..ccb6671ba3a 100644
--- a/htdocs/fourn/facture/impayees.php
+++ b/htdocs/fourn/facture/impayees.php
@@ -299,5 +299,5 @@ if ($user->rights->fournisseur->facture->lire)
 }
 
 // End of page
-$db->close();
 llxFooter();
+$db->close();
diff --git a/htdocs/fourn/facture/paiement.php b/htdocs/fourn/facture/paiement.php
index d500f8eceb1..599ce879d8e 100644
--- a/htdocs/fourn/facture/paiement.php
+++ b/htdocs/fourn/facture/paiement.php
@@ -621,6 +621,5 @@ if (empty($action))
     }
 }
 
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/fourn/product/list.php b/htdocs/fourn/product/list.php
index fc04c6838ab..f21390776d3 100644
--- a/htdocs/fourn/product/list.php
+++ b/htdocs/fourn/product/list.php
@@ -249,7 +249,5 @@ else
 	dol_print_error($db);
 }
 
-
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/fourn/recap-fourn.php b/htdocs/fourn/recap-fourn.php
index eb976acb4a0..acf4c9400d3 100644
--- a/htdocs/fourn/recap-fourn.php
+++ b/htdocs/fourn/recap-fourn.php
@@ -213,7 +213,5 @@ else
     dol_print_error($db);
 }
 
-
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/hrm/establishment/info.php b/htdocs/hrm/establishment/info.php
index 806bd893fbb..1ef523fa607 100644
--- a/htdocs/hrm/establishment/info.php
+++ b/htdocs/hrm/establishment/info.php
@@ -53,6 +53,5 @@ if ($id)
     print '</div>';
 }
 
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/loan/payment/payment.php b/htdocs/loan/payment/payment.php
index f095272d5f2..06061da5c22 100644
--- a/htdocs/loan/payment/payment.php
+++ b/htdocs/loan/payment/payment.php
@@ -307,7 +307,5 @@ if ($_GET["action"] == 'create')
 	print "</form>\n";
 }
 
-
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/product/stock/fiche-valo.php b/htdocs/product/stock/fiche-valo.php
index 10cdb0144ac..8add246afa2 100644
--- a/htdocs/product/stock/fiche-valo.php
+++ b/htdocs/product/stock/fiche-valo.php
@@ -141,6 +141,5 @@ if ($_GET["id"])
 	print "</div>";
 }
 
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/projet/admin/project.php b/htdocs/projet/admin/project.php
index f42fc7c4720..400560d0040 100644
--- a/htdocs/projet/admin/project.php
+++ b/htdocs/projet/admin/project.php
@@ -2,7 +2,7 @@
 /* Copyright (C) 2010-2014	Regis Houssin		<regis.houssin@capnetworks.com>
  * Copyright (C) 2011		Laurent Destailleur	<eldy@users.sourceforge.net>
  * Copyright (C) 2011-2012	Juanjo Menent		<jmenent@2byte.es>
- * Copyright (C) 2011-2013	Philippe Grand		<philippe.grand@atoo-net.com>
+ * Copyright (C) 2011-2015	Philippe Grand		<philippe.grand@atoo-net.com>
  * Copyright (C) 2013		Florian Henry		<florian.henry@open-concept.pro>
  * Copyright (C) 2015		Juanjo Menent		<jmenent@2byte.es>
  * Copyright (C) 2015       Marcos García       <marcosgdf@gmail.com>
@@ -935,6 +935,5 @@ else
 }
 print '</tr></table></form>';
 
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/societe/checkvat/checkVatPopup.php b/htdocs/societe/checkvat/checkVatPopup.php
index 152cd5d9a3f..702dbb0a08a 100644
--- a/htdocs/societe/checkvat/checkVatPopup.php
+++ b/htdocs/societe/checkvat/checkVatPopup.php
@@ -171,3 +171,4 @@ if ($messagetoshow)
 
 
 llxFooter();
+$db->close();
diff --git a/htdocs/societe/commerciaux.php b/htdocs/societe/commerciaux.php
index 12a1612ab1d..b35e7096ef3 100644
--- a/htdocs/societe/commerciaux.php
+++ b/htdocs/societe/commerciaux.php
@@ -256,7 +256,5 @@ if ($socid)
 
 }
 
-
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/societe/societecontact.php b/htdocs/societe/societecontact.php
index 691f930b767..69298f263e8 100644
--- a/htdocs/societe/societecontact.php
+++ b/htdocs/societe/societecontact.php
@@ -2,9 +2,9 @@
 /* Copyright (C) 2005     	Patrick Rouillon    <patrick@rouillon.net>
  * Copyright (C) 2005-2011	Laurent Destailleur <eldy@users.sourceforge.net>
  * Copyright (C) 2005-2012	Regis Houssin       <regis.houssin@capnetworks.com>
- * Copyright (C) 2011-2012	Philippe Grand      <philippe.grand@atoo-net.com>
+ * Copyright (C) 2011-2015	Philippe Grand      <philippe.grand@atoo-net.com>
  * Copyright (C) 2014		Charles-Fr Benke	<charles.fr@benke.fr>
- * Copyright (C) 2015      Marcos García        <marcosgdf@gmail.com>
+ * Copyright (C) 2015       Marcos García       <marcosgdf@gmail.com>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -333,5 +333,5 @@ if ($id > 0 || ! empty($ref))
 	}
 }
 
-$db->close();
 llxFooter();
+$db->close();
diff --git a/htdocs/user/group/perms.php b/htdocs/user/group/perms.php
index a910753c643..11e08988de6 100644
--- a/htdocs/user/group/perms.php
+++ b/htdocs/user/group/perms.php
@@ -326,6 +326,5 @@ if ($id)
     print '</table>';
 }
 
-$db->close();
-
 llxFooter();
+$db->close();
diff --git a/htdocs/user/ldap.php b/htdocs/user/ldap.php
index 968c3e565a5..34d29150251 100644
--- a/htdocs/user/ldap.php
+++ b/htdocs/user/ldap.php
@@ -209,9 +209,5 @@ else
 
 print '</table>';
 
-
-
-
-$db->close();
-
 llxFooter();
+$db->close();
-- 
GitLab


From 57102aefde71f5def0ae66d83c701cd52680c233 Mon Sep 17 00:00:00 2001
From: Ion Agorria <ion@agorria.com>
Date: Sat, 12 Dec 2015 01:38:24 +0100
Subject: [PATCH 159/197] Price expression selector fix

---
 htdocs/product/dynamic_price/editor.php | 2 +-
 htdocs/product/fournisseurs.php         | 2 +-
 htdocs/product/price.php                | 4 ++--
 3 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/htdocs/product/dynamic_price/editor.php b/htdocs/product/dynamic_price/editor.php
index ba00d3be3bd..dc7c670f4cb 100644
--- a/htdocs/product/dynamic_price/editor.php
+++ b/htdocs/product/dynamic_price/editor.php
@@ -231,7 +231,7 @@ print '<script type="text/javascript">
 		window.location = "'.str_replace('dynamic_price/editor.php', $tab.'.php', $_SERVER["PHP_SELF"]).'?id='.$id.($tab == 'price' ? '&action=edit_price' : '').'";
 	}
 	function on_change() {
-		window.location = "'.$_SERVER["PHP_SELF"].'?id='.$id.'&tab='.$tab.'&eid=" + $("#expression_selection").attr("value");
+		window.location = "'.$_SERVER["PHP_SELF"].'?id='.$id.'&tab='.$tab.'&eid=" + $("#expression_selection").val();
 	}
 </script>';
 
diff --git a/htdocs/product/fournisseurs.php b/htdocs/product/fournisseurs.php
index dab8d8dcf5d..04007d2ede1 100644
--- a/htdocs/product/fournisseurs.php
+++ b/htdocs/product/fournisseurs.php
@@ -467,7 +467,7 @@ if ($id > 0 || $ref)
 							window.location = "'.DOL_URL_ROOT.'/product/dynamic_price/editor.php?id='.$id.'&tab=fournisseurs&eid=" + $("#eid").attr("value");
 						}
 						function on_change() {
-							if ($("#eid").attr("value") == 0) {
+							if ($("#eid").val() == 0) {
 								jQuery("#price_numeric").show();
 							} else {
 								jQuery("#price_numeric").hide();
diff --git a/htdocs/product/price.php b/htdocs/product/price.php
index 3f16a20d98b..2a770841c60 100644
--- a/htdocs/product/price.php
+++ b/htdocs/product/price.php
@@ -841,13 +841,13 @@ if ($action == 'edit_price' && $object->getRights()->creer)
 			<script type="text/javascript">
 				jQuery(document).ready(function() {
 					jQuery("#expression_editor").click(function() {
-						window.location = "<?php echo DOL_URL_ROOT ?>/product/dynamic_price/editor.php?id=<?php echo $id ?>&tab=price&eid=" + $("#eid").attr("value");
+						window.location = "<?php echo DOL_URL_ROOT ?>/product/dynamic_price/editor.php?id=<?php echo $id ?>&tab=price&eid=" + $("#eid").val();
 					});
 					jQuery("#eid").change(on_change);
 					on_change();
 				});
 				function on_change() {
-					if ($("#eid").attr("value") == 0) {
+					if ($("#eid").val() == 0) {
 						jQuery("#price_numeric").show();
 					} else {
 						jQuery("#price_numeric").hide();
-- 
GitLab


From 442f669dc7801a24a9db2e131ca6ca9c5efc7739 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= <frederic.france@free.fr>
Date: Sat, 12 Dec 2015 10:45:33 +0100
Subject: [PATCH 160/197] typo

---
 htdocs/core/class/html.formsms.class.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/htdocs/core/class/html.formsms.class.php b/htdocs/core/class/html.formsms.class.php
index 815bad896b5..c3b38a85c6a 100644
--- a/htdocs/core/class/html.formsms.class.php
+++ b/htdocs/core/class/html.formsms.class.php
@@ -324,7 +324,7 @@ function limitChars(textarea, limit, infodiv)
         print '<input class="button" type="submit" name="sendmail" value="'.$langs->trans("SendSms").'">';
         if ($this->withcancel)
         {
-            print '&nbsp;&nbsp;&nbnp;&nbsp;&nbsp;';
+            print '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
             print '<input class="button" type="submit" name="cancel" value="'.$langs->trans("Cancel").'">';
         }
         print '</div>';
-- 
GitLab


From de0a13ae8fa9af5886d64f0320d20e1b3579ae19 Mon Sep 17 00:00:00 2001
From: philippe grand <philippe.grand@atoo-net.com>
Date: Sat, 12 Dec 2015 10:59:02 +0100
Subject: [PATCH 161/197] [Qual] Uniformize code

---
 htdocs/margin/admin/margin.php             |  6 +++---
 htdocs/opensurvey/card.php                 |  4 ++--
 htdocs/opensurvey/results.php              |  6 +++---
 htdocs/opensurvey/wizard/choix_autre.php   |  2 +-
 htdocs/opensurvey/wizard/choix_date.php    |  4 ++--
 htdocs/opensurvey/wizard/create_survey.php |  4 ++--
 htdocs/paybox/admin/paybox.php             |  2 +-
 htdocs/paypal/admin/paypal.php             |  4 ++--
 htdocs/product/admin/dynamic_prices.php    | 18 +++++++++---------
 htdocs/product/admin/price_rules.php       |  4 ++--
 htdocs/product/admin/product.php           |  8 ++++----
 htdocs/product/admin/product_tools.php     |  8 ++++----
 htdocs/product/composition/card.php        | 10 ++++++----
 htdocs/product/dynamic_price/editor.php    | 22 +++++++++++-----------
 htdocs/product/stock/card.php              | 15 ++++++++-------
 htdocs/product/stock/massstockmove.php     | 18 +++++++++---------
 16 files changed, 69 insertions(+), 66 deletions(-)

diff --git a/htdocs/margin/admin/margin.php b/htdocs/margin/admin/margin.php
index 8ff533df259..706d14ebe12 100644
--- a/htdocs/margin/admin/margin.php
+++ b/htdocs/margin/admin/margin.php
@@ -73,7 +73,7 @@ if ($action == 'remises')
 {
     if (dolibarr_set_const($db, 'MARGIN_METHODE_FOR_DISCOUNT', $_POST['MARGIN_METHODE_FOR_DISCOUNT'], 'chaine', 0, '', $conf->entity) > 0)
     {
-          setEventMessage($langs->trans("RecordModifiedSuccessfully"));
+          setEventMessages($langs->trans("RecordModifiedSuccessfully"), null, 'mesgs');
     }
     else
     {
@@ -85,7 +85,7 @@ if ($action == 'typemarges')
 {
     if (dolibarr_set_const($db, 'MARGIN_TYPE', $_POST['MARGIN_TYPE'], 'chaine', 0, '', $conf->entity) > 0)
     {
-          setEventMessage($langs->trans("RecordModifiedSuccessfully"));
+          setEventMessages($langs->trans("RecordModifiedSuccessfully"), null, 'mesgs');
     }
     else
     {
@@ -97,7 +97,7 @@ if ($action == 'contact')
 {
     if (dolibarr_set_const($db, 'AGENT_CONTACT_TYPE', $_POST['AGENT_CONTACT_TYPE'], 'chaine', 0, '', $conf->entity) > 0)
     {
-          setEventMessage($langs->trans("RecordModifiedSuccessfully"));
+          setEventMessages($langs->trans("RecordModifiedSuccessfully"), null, 'mesgs');
     }
     else
     {
diff --git a/htdocs/opensurvey/card.php b/htdocs/opensurvey/card.php
index 7a36a316d13..c419a804210 100644
--- a/htdocs/opensurvey/card.php
+++ b/htdocs/opensurvey/card.php
@@ -99,7 +99,7 @@ if ($action == 'update')
 		$res=$object->update($user);
 		if ($res < 0)
 		{
-			setEventMessage($object->error,'errors');
+			setEventMessages($object->error, $object->errors, 'errors');
 			$action='edit';
 		}
 	}
@@ -131,7 +131,7 @@ if (GETPOST('ajoutcomment'))
 
 		if (! $resql)
 		{
-			setEventMessage($langs->trans('ErrorInsertingComment'), 'errors');
+			setEventMessages($langs->trans('ErrorInsertingComment'), null, 'errors');
 		}
 	}
 }
diff --git a/htdocs/opensurvey/results.php b/htdocs/opensurvey/results.php
index ca10eac09b9..5c14a20de23 100644
--- a/htdocs/opensurvey/results.php
+++ b/htdocs/opensurvey/results.php
@@ -91,7 +91,7 @@ if (GETPOST("boutonp") || GETPOST("boutonp.x") || GETPOST("boutonp_x"))		// bout
 		$num_rows = $db->num_rows($resql);
 		if ($num_rows > 0)
 		{
-			setEventMessage($langs->trans("VoteNameAlreadyExists"),'errors');
+			setEventMessages($langs->trans("VoteNameAlreadyExists"), null, 'errors');
 			$error++;
 		}
 		else
@@ -1024,11 +1024,11 @@ if (isset($_POST["boutonp"]) && $_POST["nom"] == "") {
 }
 
 if (isset($erreur_prenom) && $erreur_prenom) {
-	setEventMessage($langs->trans('VoteNameAlreadyExists'), 'errors');
+	setEventMessages($langs->trans('VoteNameAlreadyExists'), null, 'errors');
 }
 
 if (isset($erreur_ajout_date) && $erreur_ajout_date) {
-	setEventMessage($langs->trans("ErrorWrongDate"), 'errors');
+	setEventMessages($langs->trans("ErrorWrongDate"), null, 'errors');
 }
 
 //fin du tableau
diff --git a/htdocs/opensurvey/wizard/choix_autre.php b/htdocs/opensurvey/wizard/choix_autre.php
index 9797762d6cb..a415d6b4987 100644
--- a/htdocs/opensurvey/wizard/choix_autre.php
+++ b/htdocs/opensurvey/wizard/choix_autre.php
@@ -84,7 +84,7 @@ if (isset($_POST["confirmecreation"]))
 
 	//message d'erreur si aucun champ renseigné
 	if ($testremplissage != "ok" || (!$toutchoix)) {
-		setEventMessage($langs->trans("ErrorOpenSurveyOneChoice"), 'errors');
+		setEventMessages($langs->trans("ErrorOpenSurveyOneChoice"), null, 'errors');
 	} else {
 
 		//format du sondage AUTRE
diff --git a/htdocs/opensurvey/wizard/choix_date.php b/htdocs/opensurvey/wizard/choix_date.php
index 6a1efd39617..ecfe319828a 100644
--- a/htdocs/opensurvey/wizard/choix_date.php
+++ b/htdocs/opensurvey/wizard/choix_date.php
@@ -156,13 +156,13 @@ if (GETPOST('confirmation'))
 		}
 
 		if (isset($errheure)) {
-			setEventMessage($langs->trans("ErrorBadFormat"), 'errors');
+			setEventMessages($langs->trans("ErrorBadFormat"), null, 'errors');
 		}
 	}
 
 	//If just one day and no other time options, error message
 	if (count($_SESSION["totalchoixjour"])=="1" && $_POST["horaires0"][0]=="" && $_POST["horaires0"][1]=="" && $_POST["horaires0"][2]=="" && $_POST["horaires0"][3]=="" && $_POST["horaires0"][4]=="") {
-		setEventMessage($langs->trans("MoreChoices"), 'errors');
+		setEventMessages($langs->trans("MoreChoices"), null, 'errors');
 		$erreur=true;
 	}
 
diff --git a/htdocs/opensurvey/wizard/create_survey.php b/htdocs/opensurvey/wizard/create_survey.php
index ec78e9789ca..c9ba1324a70 100644
--- a/htdocs/opensurvey/wizard/create_survey.php
+++ b/htdocs/opensurvey/wizard/create_survey.php
@@ -94,12 +94,12 @@ if (GETPOST("creation_sondage_date") || GETPOST("creation_sondage_autre"))
 			$_SESSION['champdatefin'] = dol_print_date($champdatefin,'dayrfc');
 			//$testdate = false;
 			//$_SESSION['champdatefin'] = dol_print_date($champdatefin,'dayrfc');
-			setEventMessage('ExpireDate','warnings');
+			setEventMessages('ExpireDate', null, 'warnings');
 		}
 	}
 
 	if (! $testdate) {
-		setEventMessage($langs->trans('ErrorFieldRequired',$langs->transnoentitiesnoconv("ExpireDate")), 'errors');
+		setEventMessages($langs->trans('ErrorFieldRequired',$langs->transnoentitiesnoconv("ExpireDate")), null, 'errors');
 	}
 
 	if ($titre && $testdate)
diff --git a/htdocs/paybox/admin/paybox.php b/htdocs/paybox/admin/paybox.php
index 5a7301613c4..98645575a13 100644
--- a/htdocs/paybox/admin/paybox.php
+++ b/htdocs/paybox/admin/paybox.php
@@ -67,7 +67,7 @@ if ($action == 'setvalue' && $user->admin)
     if (! $error)
   	{
   		$db->commit();
-	    setEventMessage($langs->trans("SetupSaved"));
+	    setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
   	}
   	else
   	{
diff --git a/htdocs/paypal/admin/paypal.php b/htdocs/paypal/admin/paypal.php
index 89065cb7c77..f794989c59e 100644
--- a/htdocs/paypal/admin/paypal.php
+++ b/htdocs/paypal/admin/paypal.php
@@ -75,7 +75,7 @@ if ($action == 'setvalue' && $user->admin)
 	if (! $error)
   	{
   		$db->commit();
-  		setEventMessage($langs->trans("SetupSaved"));
+  		setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
   	}
   	else
   	{
@@ -113,7 +113,7 @@ print $langs->trans("PaypalDesc")."<br>\n";
 if (! function_exists('curl_version'))
 {
 	$langs->load("errors");
-	setEventMessage($langs->trans("ErrorPhpCurlNotInstalled"), 'errors');
+	setEventMessages($langs->trans("ErrorPhpCurlNotInstalled"), null, 'errors');
 }
 
 
diff --git a/htdocs/product/admin/dynamic_prices.php b/htdocs/product/admin/dynamic_prices.php
index 79d7cdebfc2..45086630c47 100644
--- a/htdocs/product/admin/dynamic_prices.php
+++ b/htdocs/product/admin/dynamic_prices.php
@@ -43,14 +43,14 @@ $price_globals = new PriceGlobalVariable($db);
 if ($action == 'edit_variable') {
     $res = $price_globals->fetch($selection);
     if ($res < 1) {
-        setEventMessage($price_globals->error, 'errors');
+        setEventMessages($price_globals->error, $price_globals->errors, 'errors');
     }
 }
 $price_updaters = new PriceGlobalVariableUpdater($db);
 if ($action == 'edit_updater') {
     $res = $price_updaters->fetch($selection);
     if ($res < 1) {
-        setEventMessage($price_updaters->error, 'errors');
+        setEventMessages($price_updaters->error, $price_updaters->errors, 'errors');
     }
 }
 
@@ -67,7 +67,7 @@ if (!empty($action) && empty($cancel)) {
         if (!empty($save)) {
             foreach ($price_globals->listGlobalVariables() as $entry) {
                 if ($price_globals->id != $entry->id && dol_strtolower($price_globals->code) == dol_strtolower($entry->code)) {
-                    setEventMessage($langs->trans("ErrorRecordAlreadyExists"), 'errors');
+                    setEventMessages($langs->trans("ErrorRecordAlreadyExists"), null, 'errors');
                     $save = null;
                 }
             }
@@ -78,21 +78,21 @@ if (!empty($action) && empty($cancel)) {
         if ($res > 0) {
             $action = '';
         } else {
-            setEventMessage($price_globals->error, 'errors');
+            setEventMessages($price_globals->error, $price_globals->errors, 'errors');
         }
     } elseif ($action == 'edit_variable' && !empty($save)) {
         $res = $price_globals->update($user);
         if ($res > 0) {
             $action = '';
         } else {
-            setEventMessage($price_globals->error, 'errors');
+            setEventMessages($price_globals->error, $price_globals->errors, 'errors');
         }
     } elseif ($action == 'delete_variable') {
         $res = $price_globals->delete($selection, $user);
         if ($res > 0) {
             $action = '';
         } else {
-            setEventMessage($price_globals->error, 'errors');
+            setEventMessages($price_globals->error, $price_globals->errors, 'errors');
         }
     }
 
@@ -113,7 +113,7 @@ if (!empty($action) && empty($cancel)) {
         if ($res > 0) {
             $action = '';
         } else {
-            setEventMessage($price_updaters->error, 'errors');
+            setEventMessages($price_updaters->error, $price_updaters->errors, 'errors');
         }
     } elseif ($action == 'edit_updater' && !empty($save)) {
         //Verify if process() works
@@ -124,14 +124,14 @@ if (!empty($action) && empty($cancel)) {
         if ($res > 0) {
             $action = '';
         } else {
-            setEventMessage($price_updaters->error, 'errors');
+            setEventMessages($price_updaters->error, $price_updaters->errors, 'errors');
         }
     } elseif ($action == 'delete_updater') {
         $res = $price_updaters->delete($selection, $user);
         if ($res > 0) {
             $action = '';
         } else {
-            setEventMessage($price_updaters->error, 'errors');
+            setEventMessages($price_updaters->error, $price_updaters->errors, 'errors');
         }
     }
 } elseif (!empty($cancel)) {
diff --git a/htdocs/product/admin/price_rules.php b/htdocs/product/admin/price_rules.php
index 83d90485b3d..64fa982fff1 100644
--- a/htdocs/product/admin/price_rules.php
+++ b/htdocs/product/admin/price_rules.php
@@ -89,13 +89,13 @@ if ($_POST) {
 			SET fk_level = ".$db->escape($i_fk_level).", var_percent = ".$i_var_percent.", var_min_percent = ".$i_var_min_percent." WHERE level = ".$i;
 
 			if (!$db->query($sql)) {
-				setEventMessage($langs->trans('ErrorSavingChanges'), 'errors');
+				setEventMessages($langs->trans('ErrorSavingChanges'), null, 'errors');
 			}
 		}
 
 	}
 
-	setEventMessage($langs->trans("RecordSaved"));
+	setEventMessages($langs->trans("RecordSaved"), null, 'mesgs');
 }
 
 /*
diff --git a/htdocs/product/admin/product.php b/htdocs/product/admin/product.php
index b3d17646db5..57f6577f789 100644
--- a/htdocs/product/admin/product.php
+++ b/htdocs/product/admin/product.php
@@ -98,12 +98,12 @@ if ($action == 'setModuleOptions')
 	if (! $error)
     {
         $db->commit();
-	    setEventMessage($langs->trans("SetupSaved"));
+	    setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
     }
     else
     {
         $db->rollback();
-	    setEventMessage($langs->trans("Error"), 'errors');
+	    setEventMessages($langs->trans("Error"), null, 'errors');
 	}
 }
 
@@ -196,11 +196,11 @@ if ($action)
 
  	if (! $error)
     {
-	    setEventMessage($langs->trans("SetupSaved"));
+	    setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
     }
     else
     {
-	    setEventMessage($langs->trans("Error"), 'errors');
+	    setEventMessages($langs->trans("Error"), null, 'errors');
     }
 }
 
diff --git a/htdocs/product/admin/product_tools.php b/htdocs/product/admin/product_tools.php
index 1f2820358e1..0d3ea7584f1 100644
--- a/htdocs/product/admin/product_tools.php
+++ b/htdocs/product/admin/product_tools.php
@@ -57,7 +57,7 @@ if ($action == 'convert')
 	if ($oldvatrate == $newvatrate)
 	{
 		$langs->load("errors");
-		setEventMessage($langs->trans("ErrorNewValueCantMatchOldValue"),'errors');
+		setEventMessages($langs->trans("ErrorNewValueCantMatchOldValue"), null, 'errors');
 		$error++;
 	}
 
@@ -225,12 +225,12 @@ if ($action == 'convert')
 		// Output result
 		if (! $error)
 		{
-			if ($nbrecordsmodified > 0) setEventMessage($langs->trans("RecordsModified",$nbrecordsmodified));
-			else setEventMessage($langs->trans("NoRecordFound"),'warnings');
+			if ($nbrecordsmodified > 0) setEventMessages($langs->trans("RecordsModified",$nbrecordsmodified), null, 'mesgs');
+			else setEventMessages($langs->trans("NoRecordFound"), null, 'warnings');
 		}
 		else
 		{
-			setEventMessage($langs->trans("Error"),'errors');
+			setEventMessages($langs->trans("Error"), null, 'errors');
 		}
 
 	}
diff --git a/htdocs/product/composition/card.php b/htdocs/product/composition/card.php
index 86dfb8a8fd4..9686c4683ae 100644
--- a/htdocs/product/composition/card.php
+++ b/htdocs/product/composition/card.php
@@ -85,9 +85,11 @@ if ($action == 'add_prod' && ($user->rights->produit->creer || $user->rights->se
 				$error++;
 				$action = 're-edit';
 				if ($object->error == "isFatherOfThis") {
-					setEventMessage($langs->trans("ErrorAssociationIsFatherOfThis"), 'errors');
-				} else {
-					setEventMessage($object->error, 'errors');
+					setEventMessages($langs->trans("ErrorAssociationIsFatherOfThis"), null, 'errors');
+				} 
+				else 
+				{
+					setEventMessages($object->error, $object->errors, 'errors');
 				}
 			}
 		}
@@ -101,7 +103,7 @@ if ($action == 'add_prod' && ($user->rights->produit->creer || $user->rights->se
 			{
 				$error++;
 				$action = 're-edit';
-				setEventMessage($object->error, 'errors');
+				setEventMessages($object->error, $object->errors, 'errors');
 			}
 		}
 	}
diff --git a/htdocs/product/dynamic_price/editor.php b/htdocs/product/dynamic_price/editor.php
index ba00d3be3bd..bcef4a6fea2 100644
--- a/htdocs/product/dynamic_price/editor.php
+++ b/htdocs/product/dynamic_price/editor.php
@@ -75,7 +75,7 @@ if ($action == 'add')
             $priceparser = new PriceParser($db);
             $price_result = $priceparser->parseProductSupplierExpression($id, $expression, 0, 0);
             if ($price_result < 0) { //Expression is not valid
-				setEventMessage($priceparser->translatedError(), 'errors');
+				setEventMessages($priceparser->translatedError(), null, 'errors');
 			}
 			else
 			{
@@ -85,21 +85,21 @@ if ($action == 'add')
 				if ($result > 0) //created successfully, set the eid to newly created entry
 				{
 					$eid = $price_expression->id;
-					setEventMessage($langs->trans("RecordSaved"));
+					setEventMessages($langs->trans("RecordSaved"), null, 'mesgs');
 				}
 				else
 				{
-					setEventMessage("add: ".$price_expression->error, 'errors');
+					setEventMessages("add: ".$price_expression->error, $price_expression->errors, 'errors');
 				}
 			}
 		}
 		else if ($result < 0)
 		{
-			setEventMessage("add find: ".$price_expression->error, 'errors');
+			setEventMessages("add find: ".$price_expression->error, $price_expression->errors, 'errors');
 		}
 		else
 		{
-			setEventMessage($langs->trans("ErrorRecordAlreadyExists"), 'errors');
+			setEventMessages($langs->trans("ErrorRecordAlreadyExists"), null, 'errors');
 		}
 	}
 }
@@ -115,7 +115,7 @@ if ($action == 'update')
             $priceparser = new PriceParser($db);
             $price_result = $priceparser->parseProductSupplierExpression($id, $expression, 0, 0);
             if ($price_result < 0) { //Expression is not valid
-				setEventMessage($priceparser->translatedError(), 'errors');
+				setEventMessages($priceparser->translatedError(), null, 'errors');
 			}
 			else
 			{
@@ -125,21 +125,21 @@ if ($action == 'update')
 				$result = $price_expression->update($user);
 				if ($result < 0)
 				{
-					setEventMessage("update: ".$price_expression->error, 'errors');
+					setEventMessages("update: ".$price_expression->error, $price_expression->errors, 'errors');
 				}
 				else
 				{
-					setEventMessage($langs->trans("RecordSaved"));
+					setEventMessages($langs->trans("RecordSaved"), null, 'mesgs');
 				}
 			}
 		}
 		else if ($result < 0)
 		{
-			setEventMessage("update find: ".$price_expression->error, 'errors');
+			setEventMessages("update find: ".$price_expression->error, $price_expression->errors, 'errors');
 		}
 		else
 		{
-			setEventMessage($langs->trans("ErrorRecordAlreadyExists"), 'errors');
+			setEventMessages($langs->trans("ErrorRecordAlreadyExists"), null, 'errors');
 		}
 	}
 }
@@ -151,7 +151,7 @@ if ($action == 'delete')
 		$result = $price_expression->delete($eid, $user);
 		if ($result < 0)
 		{
-			setEventMessage("delete: ".$price_expression->error, 'errors');
+			setEventMessages("delete: ".$price_expression->error, $price_expression->errors, 'errors');
 		}
 		$eid = 0;
 	}
diff --git a/htdocs/product/stock/card.php b/htdocs/product/stock/card.php
index 522d2cf242a..5cc9e27a8cb 100644
--- a/htdocs/product/stock/card.php
+++ b/htdocs/product/stock/card.php
@@ -78,7 +78,7 @@ if ($action == 'add' && $user->rights->stock->creer)
 		$id = $object->create($user);
 		if ($id > 0)
 		{
-			setEventMessage($langs->trans("RecordSaved"));
+			setEventMessages($langs->trans("RecordSaved"), null, 'mesgs');
 
 			if (! empty($backtopage))
 			{
@@ -94,11 +94,12 @@ if ($action == 'add' && $user->rights->stock->creer)
 		else
 		{
 			$action = 'create';
-			setEventMessage($object->error, 'errors');
+			setEventMessages($object->error, $object->errors, 'errors');
 		}
 	}
-	else {
-		setEventMessage($langs->trans("ErrorWarehouseRefRequired"), 'errors');
+	else 
+	{
+		setEventMessages($langs->trans("ErrorWarehouseRefRequired"), null, 'errors');
 		$action="create";   // Force retour sur page creation
 	}
 }
@@ -116,7 +117,7 @@ if ($action == 'confirm_delete' && $confirm == 'yes' && $user->rights->stock->su
 	}
 	else
 	{
-		setEventMessage($object->error, 'errors');
+		setEventMessages($object->error, $object->errors, 'errors');
 		$action='';
 	}
 }
@@ -143,13 +144,13 @@ if ($action == 'update' && $cancel <> $langs->trans("Cancel"))
 		else
 		{
 			$action = 'edit';
-			setEventMessage($object->error, 'errors');
+			setEventMessages($object->error, $object->errors, 'errors');
 		}
 	}
 	else
 	{
 		$action = 'edit';
-		setEventMessage($object->error, 'errors');
+		setEventMessages($object->error, $object->errors, 'errors');
 	}
 }
 
diff --git a/htdocs/product/stock/massstockmove.php b/htdocs/product/stock/massstockmove.php
index 604d7d30280..ffce2e4db8f 100644
--- a/htdocs/product/stock/massstockmove.php
+++ b/htdocs/product/stock/massstockmove.php
@@ -95,7 +95,7 @@ if ($action == 'addline')
 	{
 		$error++;
 		$langs->load("errors");
-		setEventMessage($langs->trans("ErrorWarehouseMustDiffers"),'errors');
+		setEventMessages($langs->trans("ErrorWarehouseMustDiffers"), null, 'errors');
 	}
 	if (! $qty)
 	{
@@ -113,7 +113,7 @@ if ($action == 'addline')
 			if (empty($batch))
 			{
 				$error++;
-				setEventMessage($langs->trans("ErrorTryToMakeMoveOnProductRequiringBatchData"), 'errors');
+				setEventMessages($langs->trans("ErrorTryToMakeMoveOnProductRequiringBatchData"), null, 'errors');
 			}
 		}
 	}
@@ -161,7 +161,7 @@ if ($action == 'createmovements')
 	if (! GETPOST("label"))
 	{
 		$error++;
-		setEventMessage($langs->trans("ErrorFieldRequired"),$langs->transnoentitiesnoconv("LabelMovement"));
+		setEventMessages($langs->trans("ErrorFieldRequired"),$langs->transnoentitiesnoconv("LabelMovement"), null, 'errors');
 	}
 
 	$db->begin();
@@ -209,7 +209,7 @@ if ($action == 'createmovements')
 					if ($result1 < 0)
 					{
 						$error++;
-						setEventMessage($product->errors,'errors');
+						setEventMessages($product->errors, $product->errorss, 'errors');
 					}
 
 					// Add stock
@@ -225,7 +225,7 @@ if ($action == 'createmovements')
 					if ($result2 < 0)
 					{
 						$error++;
-						setEventMessage($product->errors,'errors');
+						setEventMessages($product->errors, $product->errorss, 'errors');
 					}
 				}
 				else
@@ -260,7 +260,7 @@ if ($action == 'createmovements')
 					if ($result1 < 0)
 					{
 						$error++;
-						setEventMessage($product->errors,'errors');
+						setEventMessages($product->errors, $product->errorss, 'errors');
 					}
 
 					// Add stock
@@ -279,7 +279,7 @@ if ($action == 'createmovements')
 					if ($result2 < 0)
 					{
 						$error++;
-						setEventMessage($product->errors,'errors');
+						setEventMessages($product->errors, $product->errorss, 'errors');
 					}
 				}
 			}
@@ -296,14 +296,14 @@ if ($action == 'createmovements')
 		unset($_SESSION['massstockmove']);
 
 		$db->commit();
-		setEventMessage($langs->trans("StockMovementRecorded"),'mesgs');
+		setEventMessages($langs->trans("StockMovementRecorded"), null, 'mesgs');
 		header("Location: ".DOL_URL_ROOT.'/product/stock/index.php');		// Redirect to avoid pb when using back
 		exit;
 	}
 	else
 	{
 		$db->rollback();
-		setEventMessage($langs->trans("Error"),'errors');
+		setEventMessages($langs->trans("Error"), null, 'errors');
 	}
 }
 
-- 
GitLab


From 84205b5be471c9cc647d3ca7a5753e67e664b597 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Sat, 12 Dec 2015 14:12:53 +0100
Subject: [PATCH 162/197] Fix: text too long

---
 htdocs/core/modules/propale/doc/pdf_azur.modules.php | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/htdocs/core/modules/propale/doc/pdf_azur.modules.php b/htdocs/core/modules/propale/doc/pdf_azur.modules.php
index cb7bad2c6c7..4e03a0c4237 100644
--- a/htdocs/core/modules/propale/doc/pdf_azur.modules.php
+++ b/htdocs/core/modules/propale/doc/pdf_azur.modules.php
@@ -177,7 +177,7 @@ class pdf_azur extends ModelePDFPropales
 				if (empty($object->lines[$i]->fk_product)) continue;
 
 				$objphoto->fetch($object->lines[$i]->fk_product);
-
+                //var_dump($objphoto->ref);exit;
 				if (! empty($conf->global->PRODUCT_USE_OLD_PATH_FOR_PHOTO))
 				{
 					$pdir[0] = get_exdir($objphoto->id,2,0,0,$objphoto,'product') . $objphoto->id ."/photos/";
@@ -575,7 +575,7 @@ class pdf_azur extends ModelePDFPropales
 					if (! empty($conf->global->MAIN_PDF_DASH_BETWEEN_LINES) && $i < ($nblignes - 1))
 					{
 						$pdf->setPage($pageposafter);
-						$pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(60,60,60)));
+						$pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(80,80,80)));
 						//$pdf->SetDrawColor(190,190,200);
 						$pdf->line($this->marge_gauche, $nexY+1, $this->page_largeur - $this->marge_droite, $nexY+1);
 						$pdf->SetLineStyle(array('dash'=>0));
@@ -1567,6 +1567,7 @@ class pdf_azur extends ModelePDFPropales
 		// Total HT
 		$pdf->SetFillColor(255,255,255);
 		$pdf->SetXY($posx, $tab_top + 0);
+		$pdf->SetFont('','', $default_font_size - 2);
 		$pdf->MultiCell($largcol, $tab_hl, $outputlangs->transnoentities("ProposalCustomerSignature"), 0, 'L', 1);
 
 		$pdf->SetXY($posx, $tab_top + $tab_hl);
-- 
GitLab


From 0330d8237f1b52f81ea5522f282a9eac8e3105e7 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Sat, 12 Dec 2015 14:13:45 +0100
Subject: [PATCH 163/197] Fix: Color too dark

---
 htdocs/core/modules/commande/doc/pdf_einstein.modules.php       | 2 +-
 htdocs/core/modules/expedition/doc/pdf_merou.modules.php        | 2 +-
 htdocs/core/modules/expedition/doc/pdf_rouget.modules.php       | 2 +-
 htdocs/core/modules/facture/doc/pdf_crabe.modules.php           | 2 +-
 htdocs/core/modules/livraison/doc/pdf_typhon.modules.php        | 2 +-
 htdocs/core/modules/project/doc/pdf_baleine.modules.php         | 2 +-
 .../core/modules/supplier_invoice/pdf/pdf_canelle.modules.php   | 2 +-
 htdocs/core/modules/supplier_order/pdf/pdf_muscadet.modules.php | 2 +-
 .../core/modules/supplier_proposal/doc/pdf_aurore.modules.php   | 2 +-
 9 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/htdocs/core/modules/commande/doc/pdf_einstein.modules.php b/htdocs/core/modules/commande/doc/pdf_einstein.modules.php
index 0bba9873a52..76a386c48c1 100644
--- a/htdocs/core/modules/commande/doc/pdf_einstein.modules.php
+++ b/htdocs/core/modules/commande/doc/pdf_einstein.modules.php
@@ -487,7 +487,7 @@ class pdf_einstein extends ModelePDFCommandes
 					if (! empty($conf->global->MAIN_PDF_DASH_BETWEEN_LINES) && $i < ($nblignes - 1))
 					{
 						$pdf->setPage($pageposafter);
-						$pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(60,60,60)));
+						$pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(80,80,80)));
 						//$pdf->SetDrawColor(190,190,200);
 						$pdf->line($this->marge_gauche, $nexY+1, $this->page_largeur - $this->marge_droite, $nexY+1);
 						$pdf->SetLineStyle(array('dash'=>0));
diff --git a/htdocs/core/modules/expedition/doc/pdf_merou.modules.php b/htdocs/core/modules/expedition/doc/pdf_merou.modules.php
index 5be6bc09847..075609fda2a 100644
--- a/htdocs/core/modules/expedition/doc/pdf_merou.modules.php
+++ b/htdocs/core/modules/expedition/doc/pdf_merou.modules.php
@@ -280,7 +280,7 @@ class pdf_merou extends ModelePdfExpedition
 					if (! empty($conf->global->MAIN_PDF_DASH_BETWEEN_LINES) && $i < ($nblignes - 1))
 					{
 						$pdf->setPage($pageposafter);
-						$pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(60,60,60)));
+						$pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(80,80,80)));
 						//$pdf->SetDrawColor(190,190,200);
 						$pdf->line($this->marge_gauche, $nexY+1, $this->page_largeur - $this->marge_droite, $nexY+1);
 						$pdf->SetLineStyle(array('dash'=>0));
diff --git a/htdocs/core/modules/expedition/doc/pdf_rouget.modules.php b/htdocs/core/modules/expedition/doc/pdf_rouget.modules.php
index 57afdac711d..300132eb986 100644
--- a/htdocs/core/modules/expedition/doc/pdf_rouget.modules.php
+++ b/htdocs/core/modules/expedition/doc/pdf_rouget.modules.php
@@ -316,7 +316,7 @@ class pdf_rouget extends ModelePdfExpedition
 					if (! empty($conf->global->MAIN_PDF_DASH_BETWEEN_LINES) && $i < ($nblignes - 1))
 					{
 						$pdf->setPage($pageposafter);
-						$pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(60,60,60)));
+						$pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(80,80,80)));
 						//$pdf->SetDrawColor(190,190,200);
 						$pdf->line($this->marge_gauche, $nexY+1, $this->page_largeur - $this->marge_droite, $nexY+1);
 						$pdf->SetLineStyle(array('dash'=>0));
diff --git a/htdocs/core/modules/facture/doc/pdf_crabe.modules.php b/htdocs/core/modules/facture/doc/pdf_crabe.modules.php
index 71050008e07..c0f3ffcc069 100644
--- a/htdocs/core/modules/facture/doc/pdf_crabe.modules.php
+++ b/htdocs/core/modules/facture/doc/pdf_crabe.modules.php
@@ -582,7 +582,7 @@ class pdf_crabe extends ModelePDFFactures
 					if (! empty($conf->global->MAIN_PDF_DASH_BETWEEN_LINES) && $i < ($nblignes - 1))
 					{
 						$pdf->setPage($pageposafter);
-						$pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(60,60,60)));
+						$pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(80,80,80)));
 						//$pdf->SetDrawColor(190,190,200);
 						$pdf->line($this->marge_gauche, $nexY+1, $this->page_largeur - $this->marge_droite, $nexY+1);
 						$pdf->SetLineStyle(array('dash'=>0));
diff --git a/htdocs/core/modules/livraison/doc/pdf_typhon.modules.php b/htdocs/core/modules/livraison/doc/pdf_typhon.modules.php
index f0db8f9e61b..ace4f5e0139 100644
--- a/htdocs/core/modules/livraison/doc/pdf_typhon.modules.php
+++ b/htdocs/core/modules/livraison/doc/pdf_typhon.modules.php
@@ -422,7 +422,7 @@ class pdf_typhon extends ModelePDFDeliveryOrder
 					if (! empty($conf->global->MAIN_PDF_DASH_BETWEEN_LINES) && $i < ($nblines - 1))
 					{
 						$pdf->setPage($pageposafter);
-						$pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(60,60,60)));
+						$pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(80,80,80)));
 						//$pdf->SetDrawColor(190,190,200);
 						$pdf->line($this->marge_gauche, $nexY+1, $this->page_largeur - $this->marge_droite, $nexY+1);
 						$pdf->SetLineStyle(array('dash'=>0));
diff --git a/htdocs/core/modules/project/doc/pdf_baleine.modules.php b/htdocs/core/modules/project/doc/pdf_baleine.modules.php
index 4b49397716f..24b0bcb627d 100644
--- a/htdocs/core/modules/project/doc/pdf_baleine.modules.php
+++ b/htdocs/core/modules/project/doc/pdf_baleine.modules.php
@@ -250,7 +250,7 @@ class pdf_baleine extends ModelePDFProjects
 					if (! empty($conf->global->MAIN_PDF_DASH_BETWEEN_LINES) && $i < ($nblignes - 1))
 					{
 						$pdf->setPage($pageposafter);
-						$pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(60,60,60)));
+						$pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(80,80,80)));
 						//$pdf->SetDrawColor(190,190,200);
 						$pdf->line($this->marge_gauche, $nexY+1, $this->page_largeur - $this->marge_droite, $nexY+1);
 						$pdf->SetLineStyle(array('dash'=>0));
diff --git a/htdocs/core/modules/supplier_invoice/pdf/pdf_canelle.modules.php b/htdocs/core/modules/supplier_invoice/pdf/pdf_canelle.modules.php
index 743e333208d..c456bd7e0db 100644
--- a/htdocs/core/modules/supplier_invoice/pdf/pdf_canelle.modules.php
+++ b/htdocs/core/modules/supplier_invoice/pdf/pdf_canelle.modules.php
@@ -451,7 +451,7 @@ class pdf_canelle extends ModelePDFSuppliersInvoices
 					if (! empty($conf->global->MAIN_PDF_DASH_BETWEEN_LINES) && $i < ($nblignes - 1))
 					{
 						$pdf->setPage($pageposafter);
-						$pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(60,60,60)));
+						$pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(80,80,80)));
 						//$pdf->SetDrawColor(190,190,200);
 						$pdf->line($this->marge_gauche, $nexY+1, $this->page_largeur - $this->marge_droite, $nexY+1);
 						$pdf->SetLineStyle(array('dash'=>0));
diff --git a/htdocs/core/modules/supplier_order/pdf/pdf_muscadet.modules.php b/htdocs/core/modules/supplier_order/pdf/pdf_muscadet.modules.php
index a9247534165..e84416e114e 100644
--- a/htdocs/core/modules/supplier_order/pdf/pdf_muscadet.modules.php
+++ b/htdocs/core/modules/supplier_order/pdf/pdf_muscadet.modules.php
@@ -473,7 +473,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders
 					if (! empty($conf->global->MAIN_PDF_DASH_BETWEEN_LINES) && $i < ($nblignes - 1))
 					{
 						$pdf->setPage($pageposafter);
-						$pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(60,60,60)));
+						$pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(80,80,80)));
 						//$pdf->SetDrawColor(190,190,200);
 						$pdf->line($this->marge_gauche, $nexY+1, $this->page_largeur - $this->marge_droite, $nexY+1);
 						$pdf->SetLineStyle(array('dash'=>0));
diff --git a/htdocs/core/modules/supplier_proposal/doc/pdf_aurore.modules.php b/htdocs/core/modules/supplier_proposal/doc/pdf_aurore.modules.php
index a0d565d5337..4a14998d0c4 100644
--- a/htdocs/core/modules/supplier_proposal/doc/pdf_aurore.modules.php
+++ b/htdocs/core/modules/supplier_proposal/doc/pdf_aurore.modules.php
@@ -497,7 +497,7 @@ class pdf_aurore extends ModelePDFSupplierProposal
 					if (! empty($conf->global->MAIN_PDF_DASH_BETWEEN_LINES) && $i < ($nblignes - 1))
 					{
 						$pdf->setPage($pageposafter);
-						$pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(60,60,60)));
+						$pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(80,80,80)));
 						//$pdf->SetDrawColor(190,190,200);
 						$pdf->line($this->marge_gauche, $nexY+1, $this->page_largeur - $this->marge_droite, $nexY+1);
 						$pdf->SetLineStyle(array('dash'=>0));
-- 
GitLab


From 2a6fbe352630613f8f65068942d8493ddc76f2c9 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Sat, 12 Dec 2015 14:29:59 +0100
Subject: [PATCH 164/197] Fix debug shipment doc generation (bad position of
 fields, code differences, text size, ...)

---
 .../expedition/doc/pdf_merou.modules.php      |  32 ++--
 .../expedition/doc/pdf_rouget.modules.php     | 166 ++++++++++++++++--
 .../modules/propale/doc/pdf_azur.modules.php  |   2 +-
 3 files changed, 171 insertions(+), 29 deletions(-)

diff --git a/htdocs/core/modules/expedition/doc/pdf_merou.modules.php b/htdocs/core/modules/expedition/doc/pdf_merou.modules.php
index 075609fda2a..935c2c3f400 100644
--- a/htdocs/core/modules/expedition/doc/pdf_merou.modules.php
+++ b/htdocs/core/modules/expedition/doc/pdf_merou.modules.php
@@ -262,9 +262,11 @@ class pdf_merou extends ModelePdfExpedition
 
 					$pdf->SetFont('','', $default_font_size - 3);
 
-					//Creation des cases a cocher
+					// Check boxes
+					$pdf->SetDrawColor(120,120,120);
 					$pdf->Rect(10+3, $curY, 3, 3);
 					$pdf->Rect(20+3, $curY, 3, 3);
+					
 					//Insertion de la reference du produit
 					$pdf->SetXY(30, $curY);
 					$pdf->SetFont('','B', $default_font_size - 3);
@@ -522,7 +524,7 @@ class pdf_merou extends ModelePdfExpedition
 		$origin_id 	= $object->origin_id;
 
 		// Add list of linked elements
-		$posy = pdf_writeLinkedObjects($pdf, $object, $outputlangs, $posx, $posy, 100, 3, 'R', $default_font_size, $hookmanager);
+		$posy = pdf_writeLinkedObjects($pdf, $object, $outputlangs, $posx, $posy, 100, 3, 'R', $default_font_size - 1, $hookmanager);
 
 		//$this->Code39($Xoff+43, $Yoff+1, $object->commande->ref,$ext = true, $cks = false, $w = 0.4, $h = 4, $wide = true);
 		//Definition Emplacement du bloc Societe
@@ -560,18 +562,18 @@ class pdf_merou extends ModelePdfExpedition
 		$Yoff = $Yoff+7;
 		$pdf->SetXY($blSocX-80,$blSocY+17);
 
-		$pdf->SetFont('','B', $default_font_size - 2);
+		$pdf->SetFont('','B', $default_font_size - 3);
 		$pdf->SetTextColor(0,0,0);
-		$pdf->MultiCell(50, 8, $outputlangs->transnoentities("DateDelivery")." : " . dol_print_date($object->date_delivery,'day',false,$outputlangs,true), '', 'L');
+		$pdf->MultiCell(50, 8, $outputlangs->transnoentities("DateDeliveryPlanned")." : " . dol_print_date($object->date_delivery,'day',false,$outputlangs,true), '', 'L');
 
 		$pdf->SetXY($blSocX-80,$blSocY+20);
-		$pdf->SetFont('','B', $default_font_size - 2);
+		$pdf->SetFont('','B', $default_font_size - 3);
 		$pdf->SetTextColor(0,0,0);
 		$pdf->MultiCell(50, 8, $outputlangs->transnoentities("TrackingNumber")." : " . $object->tracking_number, '', 'L');
 
 		// Deliverer
 		$pdf->SetXY($blSocX-80,$blSocY+23);
-		$pdf->SetFont('','', $default_font_size - 2);
+		$pdf->SetFont('','', $default_font_size - 3);
 		$pdf->SetTextColor(0,0,0);
 
 		if (! empty($object->tracking_number))
@@ -592,7 +594,7 @@ class pdf_merou extends ModelePdfExpedition
 						$label.=" : ";
 						$label.=$object->tracking_url;
 					}
-					$pdf->SetFont('','B', $default_font_size - 2);
+					$pdf->SetFont('','B', $default_font_size - 3);
 					$pdf->writeHTMLCell(50, 8, '', '', $label, '', 'L');
 				}
 			}
@@ -603,9 +605,7 @@ class pdf_merou extends ModelePdfExpedition
 		}
 
 
-		/**********************************/
-		//Emplacement Informations Expediteur (My Company)
-		/**********************************/
+		// Shipping company (My Company)
 		$Yoff = $blSocY;
 		$blExpX=$Xoff-20;
 		$blW=52;
@@ -623,7 +623,7 @@ class pdf_merou extends ModelePdfExpedition
 			$result=$object->fetch_contact($arrayidcontact[0]);
 		}
 
-		//Recipient name
+		// Recipient name
 		// On peut utiliser le nom de la societe du contact
 		if ($usecontact && !empty($conf->global->MAIN_USE_COMPANY_NAME_OF_CONTACT)) {
 			$thirdparty = $object->contact;
@@ -631,15 +631,15 @@ class pdf_merou extends ModelePdfExpedition
 			$thirdparty = $object->client;
 		}
 
-		$carac_client_name= pdfBuildThirdpartyName($thirdparty, $outputlangs);
+		$carac_client_name=pdfBuildThirdpartyName($thirdparty, $outputlangs);
 
 		$carac_client=pdf_build_address($outputlangs,$this->emetteur,$object->client,((!empty($object->contact))?$object->contact:null),$usecontact,'targetwithdetails');
 
 		$blDestX=$blExpX+55;
-		$blW=50;
+		$blW=54;
 		$Yoff = $Ydef +1;
 
-		// Show recipient frame
+		// Show Recipient frame
 		$pdf->SetFont('','B', $default_font_size - 3);
 		$pdf->SetXY($blDestX,$Yoff-4);
 		$pdf->MultiCell($blW,3, $outputlangs->transnoentities("Recipient"), 0, 'L');
@@ -653,8 +653,8 @@ class pdf_merou extends ModelePdfExpedition
 		$posy = $pdf->getY();
 
 		// Show recipient information
-		$pdf->SetFont('','', $default_font_size - 1);
-		$pdf->SetXY($posx+2,$posy);
+		$pdf->SetFont('','', $default_font_size - 3);
+		$pdf->SetXY($blDestX,$posy);
 		$pdf->MultiCell($widthrecbox, 4, $carac_client, 0, 'L');
 	}
 }
diff --git a/htdocs/core/modules/expedition/doc/pdf_rouget.modules.php b/htdocs/core/modules/expedition/doc/pdf_rouget.modules.php
index 300132eb986..091f754a01c 100644
--- a/htdocs/core/modules/expedition/doc/pdf_rouget.modules.php
+++ b/htdocs/core/modules/expedition/doc/pdf_rouget.modules.php
@@ -71,6 +71,14 @@ class pdf_rouget extends ModelePdfExpedition
 		$this->posxdesc=$this->marge_gauche+1;
 		$this->posxqtyordered=$this->page_largeur - $this->marge_droite - 70;
 		$this->posxqtytoship=$this->page_largeur - $this->marge_droite - 35;
+		$this->posxpicture=$this->posxqtyordered - (empty($conf->global->MAIN_DOCUMENTS_WITH_PICTURE_WIDTH)?20:$conf->global->MAIN_DOCUMENTS_WITH_PICTURE_WIDTH);	// width of images
+		
+		if ($this->page_largeur < 210) // To work with US executive format
+		{
+		    $this->posxpicture-=20;
+		    $this->posxqtyordered-=20;
+		    $this->posxqtytoship-=20;
+		}
 	}
 
 	/**
@@ -103,6 +111,68 @@ class pdf_rouget extends ModelePdfExpedition
 		$outputlangs->load("deliveries");
         $outputlangs->load("sendings");
 
+		$nblignes = count($object->lines);
+
+        // Loop on each lines to detect if there is at least one image to show
+        $realpatharray=array();
+        if (! empty($conf->global->MAIN_GENERATE_SHIPMENT_WITH_PICTURE))
+        {
+            $objphoto = new Product($this->db);
+        
+            for ($i = 0 ; $i < $nblignes ; $i++)
+            {
+                if (empty($object->lines[$i]->fk_product)) continue;
+        
+                $objphoto->fetch($object->lines[$i]->fk_product);
+                //var_dump($objphoto->ref);exit;
+                if (! empty($conf->global->PRODUCT_USE_OLD_PATH_FOR_PHOTO))
+                {
+                    $pdir[0] = get_exdir($objphoto->id,2,0,0,$objphoto,'product') . $objphoto->id ."/photos/";
+                    $pdir[1] = get_exdir(0,0,0,0,$objphoto,'product') . dol_sanitizeFileName($objphoto->ref).'/';
+                }
+                else
+                {
+                    $pdir[0] = get_exdir(0,0,0,0,$objphoto,'product') . dol_sanitizeFileName($objphoto->ref).'/';				// default
+                    $pdir[1] = get_exdir($objphoto->id,2,0,0,$objphoto,'product') . $objphoto->id ."/photos/";	// alternative
+                }
+        
+                $arephoto = false;
+                foreach ($pdir as $midir)
+                {
+                    if (! $arephoto)
+                    {
+                        $dir = $conf->product->dir_output.'/'.$midir;
+        
+                        foreach ($objphoto->liste_photos($dir,1) as $key => $obj)
+                        {
+                            if (empty($conf->global->CAT_HIGH_QUALITY_IMAGES))		// If CAT_HIGH_QUALITY_IMAGES not defined, we use thumb if defined and then original photo
+                            {
+                                if ($obj['photo_vignette'])
+                                {
+                                    $filename= $obj['photo_vignette'];
+                                }
+                                else
+                                {
+                                    $filename=$obj['photo'];
+                                }
+                            }
+                            else
+                            {
+                                $filename=$obj['photo'];
+                            }
+        
+                            $realpath = $dir.$filename;
+                            $arephoto = true;
+                        }
+                    }
+                }
+        
+                if ($realpath && $arephoto) $realpatharray[$i]=$realpath;
+            }
+        }
+        
+        if (count($realpatharray) == 0) $this->posxpicture=$this->posxqtyordered;        
+        
 		if ($conf->expedition->dir_output)
 		{
 			// Definition de $dir et $file
@@ -140,8 +210,6 @@ class pdf_rouget extends ModelePdfExpedition
 				global $action;
 				$reshook=$hookmanager->executeHooks('beforePDFCreation',$parameters,$object,$action);    // Note that $action and $object may have been modified by some hooks
 
-				$nblignes = count($object->lines);
-
 				$pdf=pdf_getInstance($this->format);
 				$default_font_size = pdf_getPDFFontSize($outputlangs);
 				$heightforinfotot = 0;	// Height reserved to output the info and total part
@@ -278,27 +346,98 @@ class pdf_rouget extends ModelePdfExpedition
 				$curY = $tab_top + 7;
 				$nexY = $tab_top + 7;
 
-				$num=count($object->lines);
 				// Loop on each lines
-				for ($i = 0; $i < $num; $i++)
+				for ($i = 0; $i < $nblignes; $i++)
 				{
 					$curY = $nexY;
 					$pdf->SetFont('','', $default_font_size - 1);   // Into loop to work with multipage
 					$pdf->SetTextColor(0,0,0);
 
+					// Define size of image if we need it
+					$imglinesize=array();
+					if (! empty($realpatharray[$i])) $imglinesize=pdf_getSizeForImage($realpatharray[$i]);
+
 					$pdf->setTopMargin($tab_top_newpage);
 					$pdf->setPageOrientation('', 1, $heightforfooter+$heightforfreetext+$heightforinfotot);	// The only function to edit the bottom margin of current page to set it.
 					$pageposbefore=$pdf->getPage();
 
-					// Description de la ligne produit
-					pdf_writelinedesc($pdf,$object,$i,$outputlangs,$this->posxqtyordered-10,3,$this->posxdesc,$curY,0,1);
+					$showpricebeforepagebreak=1;
+					$posYAfterImage=0;
+					$posYAfterDescription=0;
 
+					// We start with Photo of product line
+					if (isset($imglinesize['width']) && isset($imglinesize['height']) && ($curY + $imglinesize['height']) > ($this->page_hauteur-($heightforfooter+$heightforfreetext+$heightforinfotot)))	// If photo too high, we moved completely on new page
+					{
+						$pdf->AddPage('','',true);
+						if (! empty($tplidx)) $pdf->useTemplate($tplidx);
+						if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs);
+						$pdf->setPage($pageposbefore+1);
+
+						$curY = $tab_top_newpage;
+						$showpricebeforepagebreak=0;
+					}
+
+					if (isset($imglinesize['width']) && isset($imglinesize['height']))
+					{
+						$curX = $this->posxpicture-1;
+						$pdf->Image($realpatharray[$i], $curX + (($this->posxqtyordered-$this->posxpicture-$imglinesize['width'])/2), $curY, $imglinesize['width'], $imglinesize['height'], '', '', '', 2, 300);	// Use 300 dpi
+						// $pdf->Image does not increase value return by getY, so we save it manually
+						$posYAfterImage=$curY+$imglinesize['height'];
+					}
+
+					// Description of product line
+					$curX = $this->posxdesc-1;
+
+					$pdf->startTransaction();
+					// Description de la ligne produit
+					pdf_writelinedesc($pdf,$object,$i,$outputlangs,$this->posxpicture-$curX,3,$curX,$curY,$hideref,$hidedesc);
+						
+					$pageposafter=$pdf->getPage();
+					if ($pageposafter > $pageposbefore)	// There is a pagebreak
+					{
+						$pdf->rollbackTransaction(true);
+						$pageposafter=$pageposbefore;
+						//print $pageposafter.'-'.$pageposbefore;exit;
+						$pdf->setPageOrientation('', 1, $heightforfooter);	// The only function to edit the bottom margin of current page to set it.
+						pdf_writelinedesc($pdf,$object,$i,$outputlangs,$this->posxpicture-$curX,3,$curX,$curY,$hideref,$hidedesc);
+
+						$pageposafter=$pdf->getPage();
+						$posyafter=$pdf->GetY();
+						//var_dump($posyafter); var_dump(($this->page_hauteur - ($heightforfooter+$heightforfreetext+$heightforinfotot))); exit;
+						if ($posyafter > ($this->page_hauteur - ($heightforfooter+$heightforfreetext+$heightforinfotot)))	// There is no space left for total+free text
+						{
+							if ($i == ($nblignes-1))	// No more lines, and no space left to show total, so we create a new page
+							{
+								$pdf->AddPage('','',true);
+								if (! empty($tplidx)) $pdf->useTemplate($tplidx);
+								if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs);
+								$pdf->setPage($pageposafter+1);
+							}
+						}
+						else
+						{
+							// We found a page break
+							$showpricebeforepagebreak=0;
+						}
+					}
+					else	// No pagebreak
+					{
+						$pdf->commitTransaction();
+					}
+					$posYAfterDescription=$pdf->GetY();
+					
 					$nexY = $pdf->GetY();
 					$pageposafter=$pdf->getPage();
+					
 					$pdf->setPage($pageposbefore);
 					$pdf->setTopMargin($this->marge_haute);
 					$pdf->setPageOrientation('', 1, 0);	// The only function to edit the bottom margin of current page to set it.
 
+					// We suppose that a too long description or photo were moved completely on next page
+					if ($pageposafter > $pageposbefore && empty($showpricebeforepagebreak)) {
+						$pdf->setPage($pageposafter); $curY = $tab_top_newpage;
+					}
+
 					// We suppose that a too long description is moved completely on next page
 					if ($pageposafter > $pageposbefore) {
 						$pdf->setPage($pageposafter); $curY = $tab_top_newpage;
@@ -563,12 +702,15 @@ class pdf_rouget extends ModelePdfExpedition
 		$pdf->SetTextColor(0,0,60);
 		$pdf->MultiCell(100, 4, $outputlangs->transnoentities("RefSending") ." : ".$object->ref, '', 'R');
 
-		// Date Expedition
-		$posy+=4;
-		$pdf->SetXY($posx,$posy);
-		$pdf->SetTextColor(0,0,60);
-		$pdf->MultiCell(100, 4, $outputlangs->transnoentities("DateDeliveryPlanned")." : ".dol_print_date($object->date_delivery,"daytext",false,$outputlangs,true), '', 'R');
-
+		// Date planned delivery
+		if (! empty($object->date_delivery))
+		{
+    		$posy+=4;
+    		$pdf->SetXY($posx,$posy);
+    		$pdf->SetTextColor(0,0,60);
+    		$pdf->MultiCell(100, 4, $outputlangs->transnoentities("DateDeliveryPlanned")." : ".dol_print_date($object->date_delivery,"day",false,$outputlangs,true), '', 'R');
+		}
+		
 		if (! empty($object->client->code_client))
 		{
 			$posy+=4;
diff --git a/htdocs/core/modules/propale/doc/pdf_azur.modules.php b/htdocs/core/modules/propale/doc/pdf_azur.modules.php
index 4e03a0c4237..8f5109eb4ec 100644
--- a/htdocs/core/modules/propale/doc/pdf_azur.modules.php
+++ b/htdocs/core/modules/propale/doc/pdf_azur.modules.php
@@ -395,7 +395,7 @@ class pdf_azur extends ModelePDFPropales
 				$nexY = $tab_top + 7;
 
 				// Loop on each lines
-				for ($i = 0 ; $i < $nblignes ; $i++)
+				for ($i = 0; $i < $nblignes; $i++)
 				{
 					$curY = $nexY;
 					$pdf->SetFont('','', $default_font_size - 1);   // Into loop to work with multipage
-- 
GitLab


From 9cc77787c5bbb60ba0c2f3f34bec0af905369293 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= <frederic.france@free.fr>
Date: Sat, 12 Dec 2015 16:10:36 +0100
Subject: [PATCH 165/197] typo

---
 htdocs/core/class/html.formsms.class.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/htdocs/core/class/html.formsms.class.php b/htdocs/core/class/html.formsms.class.php
index 815bad896b5..8fa5c3e3110 100644
--- a/htdocs/core/class/html.formsms.class.php
+++ b/htdocs/core/class/html.formsms.class.php
@@ -17,7 +17,7 @@
 */
 
 /**
- *       \file       htdocs/core/class/html.formmail.class.php
+ *       \file       htdocs/core/class/html.formsms.class.php
  *       \ingroup    core
  *       \brief      Fichier de la classe permettant la generation du formulaire html d'envoi de mail unitaire
  */
-- 
GitLab


From 3680202c1c6a4a836f0a11d4bf4c3581ae08a577 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Sun, 13 Dec 2015 14:39:12 +0100
Subject: [PATCH 166/197] Fix do not share color for title of table and title
 of pages

---
 htdocs/admin/ihm.php               |  7 ++++--
 htdocs/core/lib/usergroups.lib.php | 36 +++++++++++++++++++++++++++---
 htdocs/langs/en_US/admin.lang      |  1 +
 htdocs/theme/eldy/style.css.php    | 18 +++++++++------
 htdocs/theme/md/style.css.php      | 14 +++++++-----
 5 files changed, 59 insertions(+), 17 deletions(-)

diff --git a/htdocs/admin/ihm.php b/htdocs/admin/ihm.php
index af560e73c46..0b6e65f7d1f 100644
--- a/htdocs/admin/ihm.php
+++ b/htdocs/admin/ihm.php
@@ -85,7 +85,11 @@ if ($action == 'update')
 	if ($val == '') dolibarr_del_const($db, 'THEME_ELDY_BACKTITLE1', $conf->entity);
     else dolibarr_set_const($db, 'THEME_ELDY_BACKTITLE1', join(',',colorStringToArray(GETPOST('THEME_ELDY_BACKTITLE1'),array())),'chaine',0,'',$conf->entity);
 
-	if (GETPOST('THEME_ELDY_USE_HOVER') == '') dolibarr_del_const($db, "THEME_ELDY_USE_HOVER", $conf->entity);
+	$val=(join(',',(colorStringToArray(GETPOST('THEME_ELDY_TEXTTITLENOTAB'),array()))));
+	if ($val == '') dolibarr_del_const($db, 'THEME_ELDY_TEXTTITLENOTAB', $conf->entity);
+    else dolibarr_set_const($db, 'THEME_ELDY_TEXTTITLENOTAB', join(',',colorStringToArray(GETPOST('THEME_ELDY_TEXTTITLENOTAB'),array())),'chaine',0,'',$conf->entity);
+    
+    if (GETPOST('THEME_ELDY_USE_HOVER') == '') dolibarr_del_const($db, "THEME_ELDY_USE_HOVER", $conf->entity);
 	else dolibarr_set_const($db, "THEME_ELDY_USE_HOVER", $_POST["THEME_ELDY_USE_HOVER"], 'chaine', 0, '', $conf->entity);
 
 	$val=(join(',',(colorStringToArray(GETPOST('THEME_ELDY_TEXTLINK'),array()))));
@@ -157,7 +161,6 @@ if ($action == 'edit')	// Edit
     clearstatcache();
     $var=true;
 
-    print load_fiche_titre($langs->trans("Language"),'','');
     print '<br>';
     print '<table summary="edit" class="noborder" width="100%">';
     print '<tr class="liste_titre"><td>'.$langs->trans("Parameters").'</td><td>'.$langs->trans("Value").'</td>';
diff --git a/htdocs/core/lib/usergroups.lib.php b/htdocs/core/lib/usergroups.lib.php
index 56b44845e3b..c1d13b49429 100644
--- a/htdocs/core/lib/usergroups.lib.php
+++ b/htdocs/core/lib/usergroups.lib.php
@@ -317,8 +317,8 @@ function show_theme($fuser,$edit=0,$foruserprofile=false)
     {
     	print '<tr class="liste_titre"><th width="35%">'.$langs->trans("DefaultSkin").'</th>';
     	print '<th align="right">';
-    	$url='http://www.dolistore.com/lang-en/4-skins';
-    	if (preg_match('/fr/i',$langs->defaultlang)) $url='http://www.dolistore.com/lang-fr/4-themes';
+    	$url='https://www.dolistore.com/lang-en/4-skins';
+    	if (preg_match('/fr/i',$langs->defaultlang)) $url='https://www.dolistore.com/fr/4-themes';
     	//if (preg_match('/es/i',$langs->defaultlang)) $url='http://www.dolistore.com/lang-es/4-themes';
     	print '<a href="'.$url.'" target="_blank">';
     	print $langs->trans('DownloadMoreSkins');
@@ -506,6 +506,32 @@ function show_theme($fuser,$edit=0,$foruserprofile=false)
 
 	    print '</tr>';
 	}
+
+	// TextTitleColor
+	if ($foruserprofile)
+	{
+	     
+	     
+	}
+	else
+	{
+	    $var=!$var;
+	    print '<tr '.$bc[$var].'>';
+	    print '<td>'.$langs->trans("TextTitleColor").'</td>';
+	    print '<td colspan="'.($colspan-1).'">';
+	    if ($edit)
+	    {
+	        print $formother->selectColor(colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_TEXTTITLENOTAB,array()),''),'THEME_ELDY_TEXTTITLENOTAB','formcolor',1).' ';
+	    }
+	    else
+	    {
+	        print $formother->showColor($conf->global->THEME_ELDY_TEXTTITLENOTAB, $langs->trans("Default"));
+	    }
+	    print ' &nbsp; ('.$langs->trans("Default").': <strong>3c3c14</strong>, '.$langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis").')';
+	    print '</td>';
+	
+	    print '</tr>';
+	}
 	
 	// Use Hover
 	$var=!$var;
@@ -539,7 +565,11 @@ function show_theme($fuser,$edit=0,$foruserprofile=false)
 	    {
 	        if ($conf->global->THEME_ELDY_USE_HOVER == '1') $color='edf4fb';
 	        else $color = colorArrayToHex(colorStringToArray($conf->global->THEME_ELDY_USE_HOVER,array()),'');
-	        if ($color) print '<input type="text" class="colorthumb" disabled="disabled" style="padding: 1px; margin-top: 0; margin-bottom: 0; width: 40px; background-color: #'.$color.'" value="'.$color.'">';
+	        if ($color) 
+	        {
+	            if ($color != 'edf4fb') print '<input type="text" class="colorthumb" disabled="disabled" style="padding: 1px; margin-top: 0; margin-bottom: 0; width: 40px; background-color: #'.$color.'" value="'.$color.'">';
+	            else print $langs->trans("Default");
+	        }
 	        else print $langs->trans("None");
 	    }
 	    print ' &nbsp; ('.$langs->trans("Default").': <strong>edf4fb</strong>, '.$langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis").')';
diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang
index 2df962ee15f..9a36531e543 100755
--- a/htdocs/langs/en_US/admin.lang
+++ b/htdocs/langs/en_US/admin.lang
@@ -1664,6 +1664,7 @@ InstallModuleFromWebHasBeenDisabledByFile=Install of external module from applic
 ConfFileMuseContainCustom=Installing an external module from application save the module files into directory <strong>%s</strong>. To have this directory processed by Dolibarr, you must setup your <strong>conf/conf.php</strong> to have option<br>- <strong>$dolibarr_main_url_root_alt</strong> enabled to value <strong>$dolibarr_main_url_root_alt="/custom"</strong><br>- <strong>$dolibarr_main_document_root_alt</strong> enabled to value <strong>"%s/custom"</strong> 
 HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over
 HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight)
+TextTitleColor=Color of page title
 LinkColor=Color of links
 PressF5AfterChangingThis=Press F5 on keyboard after changing this value to have it effective
 NotSupportedByAllThemes=Will works with eldy theme but is not supported by all themes
diff --git a/htdocs/theme/eldy/style.css.php b/htdocs/theme/eldy/style.css.php
index 66d62959e43..a83f3430bc4 100644
--- a/htdocs/theme/eldy/style.css.php
+++ b/htdocs/theme/eldy/style.css.php
@@ -90,7 +90,7 @@ $colorbacklinepair1='248,248,248';    // line pair
 $colorbacklinepair2='248,248,248';    // line pair
 $colorbacklinepairhover='238,246,252';    // line pair
 $colorbackbody='255,255,255';
-$colortexttitlenotab='80,80,0';
+$colortexttitlenotab='60,60,20';
 $colortexttitle='0,0,0';
 $colortext='0,0,0';
 $colortextlink='0,0,120';
@@ -100,11 +100,12 @@ $usegradient=1;
 $useboldtitle=1;
 
 // Case of option always editable
-if (! isset($conf->global->THEME_ELDY_BACKBODY)) $conf->global->THEME_ELDY_BACKBODY='255,255,255';
+if (! isset($conf->global->THEME_ELDY_BACKBODY)) $conf->global->THEME_ELDY_BACKBODY=$colorbackbody;
 if (! isset($conf->global->THEME_ELDY_TOPMENU_BACK1)) $conf->global->THEME_ELDY_TOPMENU_BACK1='120,130,170';
-if (! isset($conf->global->THEME_ELDY_BACKTITLE1)) $conf->global->THEME_ELDY_BACKTITLE1='230,230,230';
+if (! isset($conf->global->THEME_ELDY_BACKTITLE1)) $conf->global->THEME_ELDY_BACKTITLE1=$colorbacktitle1;
 if (! isset($conf->global->THEME_ELDY_USE_HOVER)) $conf->global->THEME_ELDY_USE_HOVER=='238,246,252';
-if (! isset($conf->global->THEME_ELDY_TEXTLINK)) $conf->global->THEME_ELDY_TEXTLINK='0,0,120';
+if (! isset($conf->global->THEME_ELDY_TEXTTITLENOTAB)) $conf->global->THEME_ELDY_TEXTTITLENOTAB=$colortexttitlenotab;
+if (! isset($conf->global->THEME_ELDY_TEXTLINK)) $conf->global->THEME_ELDY_TEXTLINK=$colortextlink;
 
 // Case of option editable only if option THEME_ELDY_ENABLE_PERSONALIZED is on
 if (empty($conf->global->THEME_ELDY_ENABLE_PERSONALIZED))
@@ -124,6 +125,7 @@ if (empty($conf->global->THEME_ELDY_ENABLE_PERSONALIZED))
 //var_dump($conf->global->THEME_ELDY_BACKBODY);
 //var_dump($user->conf->THEME_ELDY_BACKTITLE1);
 
+
 // Case of option availables only if THEME_ELDY_ENABLE_PERSONALIZED is on
 $colorbackhmenu1     =empty($user->conf->THEME_ELDY_ENABLE_PERSONALIZED)?(empty($conf->global->THEME_ELDY_TOPMENU_BACK1)?$colorbackhmenu1:$conf->global->THEME_ELDY_TOPMENU_BACK1)   :(empty($user->conf->THEME_ELDY_TOPMENU_BACK1)?$colorbackhmenu1:$user->conf->THEME_ELDY_TOPMENU_BACK1);
 $colorbackvmenu1     =empty($user->conf->THEME_ELDY_ENABLE_PERSONALIZED)?(empty($conf->global->THEME_ELDY_VERMENU_BACK1)?$colorbackvmenu1:$conf->global->THEME_ELDY_VERMENU_BACK1)   :(empty($user->conf->THEME_ELDY_VERMENU_BACK1)?$colorbackvmenu1:$user->conf->THEME_ELDY_VERMENU_BACK1);
@@ -136,12 +138,12 @@ $colorbacklinepair1  =empty($user->conf->THEME_ELDY_ENABLE_PERSONALIZED)?(empty(
 $colorbacklinepair2  =empty($user->conf->THEME_ELDY_ENABLE_PERSONALIZED)?(empty($conf->global->THEME_ELDY_LINEPAIR2)    ?$colorbacklinepair2:$conf->global->THEME_ELDY_LINEPAIR2)    :(empty($user->conf->THEME_ELDY_LINEPAIR2)?$colorbacklinepair2:$user->conf->THEME_ELDY_LINEPAIR2);
 $colorbacklinepairhover=empty($user->conf->THEME_ELDY_ENABLE_PERSONALIZED)?(empty($conf->global->THEME_ELDY_LINEPAIRHOVER)    ?$colorbacklinepairhover:$conf->global->THEME_ELDY_LINEPAIRHOVER)    :(empty($user->conf->THEME_ELDY_LINEPAIRHOVER)?$colorbacklinepairhover:$user->conf->THEME_ELDY_LINEPAIRHOVER);
 $colorbackbody       =empty($user->conf->THEME_ELDY_ENABLE_PERSONALIZED)?(empty($conf->global->THEME_ELDY_BACKBODY)     ?$colorbackbody:$conf->global->THEME_ELDY_BACKBODY)          :(empty($user->conf->THEME_ELDY_BACKBODY)?$colorbackbody:$user->conf->THEME_ELDY_BACKBODY);
-$colortexttitle      =empty($user->conf->THEME_ELDY_ENABLE_PERSONALIZED)?(empty($conf->global->THEME_ELDY_TEXTTITLE)    ?$colortext:$conf->global->THEME_ELDY_TEXTTITLE)             :(empty($user->conf->THEME_ELDY_TEXTTITLE)?$colortexttitle:$user->conf->THEME_ELDY_TEXTTITLE);
+$colortexttitlenotab =empty($user->conf->THEME_ELDY_ENABLE_PERSONALIZED)?(empty($conf->global->THEME_ELDY_TEXTTITLENOTAB)?$colortexttitlenotab:$conf->global->THEME_ELDY_TEXTTITLENOTAB)             :(empty($user->conf->THEME_ELDY_TEXTTITLENOTAB)?$colortexttitlenotab:$user->conf->THEME_ELDY_TEXTTITLENOTAB);
+$colortexttitle      =empty($user->conf->THEME_ELDY_ENABLE_PERSONALIZED)?(empty($conf->global->THEME_ELDY_TEXTTITLE)    ?$colortexttitle:$conf->global->THEME_ELDY_TEXTTITLE)             :(empty($user->conf->THEME_ELDY_TEXTTITLE)?$colortexttitle:$user->conf->THEME_ELDY_TEXTTITLE);
 $colortext           =empty($user->conf->THEME_ELDY_ENABLE_PERSONALIZED)?(empty($conf->global->THEME_ELDY_TEXT)         ?$colortext:$conf->global->THEME_ELDY_TEXT)                  :(empty($user->conf->THEME_ELDY_TEXT)?$colortext:$user->conf->THEME_ELDY_TEXT);
-$colortextlink       =empty($user->conf->THEME_ELDY_ENABLE_PERSONALIZED)?(empty($conf->global->THEME_ELDY_TEXTLINK)     ?$colortext:$conf->global->THEME_ELDY_TEXTLINK)              :(empty($user->conf->THEME_ELDY_TEXTLINK)?$colortextlink:$user->conf->THEME_ELDY_TEXTLINK);
+$colortextlink       =empty($user->conf->THEME_ELDY_ENABLE_PERSONALIZED)?(empty($conf->global->THEME_ELDY_TEXTLINK)     ?$colortextlink:$conf->global->THEME_ELDY_TEXTLINK)              :(empty($user->conf->THEME_ELDY_TEXTLINK)?$colortextlink:$user->conf->THEME_ELDY_TEXTLINK);
 $fontsize            =empty($user->conf->THEME_ELDY_ENABLE_PERSONALIZED)?(empty($conf->global->THEME_ELDY_FONT_SIZE1)   ?$fontsize:$conf->global->THEME_ELDY_FONT_SIZE1)             :(empty($user->conf->THEME_ELDY_FONT_SIZE1)?$fontsize:$user->conf->THEME_ELDY_FONT_SIZE1);
 $fontsizesmaller     =empty($user->conf->THEME_ELDY_ENABLE_PERSONALIZED)?(empty($conf->global->THEME_ELDY_FONT_SIZE2)   ?$fontsize:$conf->global->THEME_ELDY_FONT_SIZE2)             :(empty($user->conf->THEME_ELDY_FONT_SIZE2)?$fontsize:$user->conf->THEME_ELDY_FONT_SIZE2);
-
 // Hover color
 $colorbacklinepairhover=((! isset($conf->global->THEME_ELDY_USE_HOVER) || (string) $conf->global->THEME_ELDY_USE_HOVER === '0')?'':($conf->global->THEME_ELDY_USE_HOVER === '1'?'edf4fb':$conf->global->THEME_ELDY_USE_HOVER));
 if (! empty($user->conf->THEME_ELDY_ENABLE_PERSONALIZED))
@@ -186,6 +188,7 @@ $colorbacklinepair1=join(',',colorStringToArray($colorbacklinepair1));
 $colorbacklinepair2=join(',',colorStringToArray($colorbacklinepair2));
 if ($colorbacklinepairhover != '') $colorbacklinepairhover=join(',',colorStringToArray($colorbacklinepairhover));
 $colorbackbody=join(',',colorStringToArray($colorbackbody));
+$colortexttitlenotab=join(',',colorStringToArray($colortexttitlenotab));
 $colortexttitle=join(',',colorStringToArray($colortexttitle));
 $colortext=join(',',colorStringToArray($colortext));
 $colortextlink=join(',',colorStringToArray($colortextlink));
@@ -204,6 +207,7 @@ print 'colorbacklineimpair2='.$colorbacklineimpair2."\n";
 print 'colorbacklinepair1='.$colorbacklinepair1."\n";
 print 'colorbacklinepair2='.$colorbacklinepair2."\n";
 print 'colorbacklinepairhover='.$colorbacklinepairhover."\n";
+print '$colortexttitlenotab='.$colortexttitlenotab."\n";
 print '$colortexttitle='.$colortexttitle."\n";
 print '$colortext='.$colortext."\n";
 print '$colortextlink='.$colortextlink."\n";
diff --git a/htdocs/theme/md/style.css.php b/htdocs/theme/md/style.css.php
index 9839959bfb8..ad4237dc769 100644
--- a/htdocs/theme/md/style.css.php
+++ b/htdocs/theme/md/style.css.php
@@ -91,7 +91,7 @@ $colorbacklinepair1='250,250,250';    // line pair
 $colorbacklinepair2='248,248,248';    // line pair
 $colorbacklinepairhover='244,244,244';    // line pair
 $colorbackbody='255,255,255';
-$colortexttitlenotab='80,80,0';
+$colortexttitlenotab='90,90,90';
 $colortexttitle='0,0,0';
 $colortext='0,0,0';
 $colortextlink='0,0,120';
@@ -101,11 +101,12 @@ $usegradient=1;
 $useboldtitle=1;
 
 // Case of option always editable
-if (! isset($conf->global->THEME_ELDY_BACKBODY)) $conf->global->THEME_ELDY_BACKBODY='255,255,255';
-if (! isset($conf->global->THEME_ELDY_TOPMENU_BACK1)) $conf->global->THEME_ELDY_TOPMENU_BACK1=join(',',colorStringToArray('#000000'));   // topmenu (140,160,185)
-if (! isset($conf->global->THEME_ELDY_BACKTITLE1)) $conf->global->THEME_ELDY_BACKTITLE1='140,150,180';       	// title of arrays TO MATCH ELDY (140,160,185)
+if (! isset($conf->global->THEME_ELDY_BACKBODY)) $conf->global->THEME_ELDY_BACKBODY=$colorbackbody;
+if (! isset($conf->global->THEME_ELDY_TOPMENU_BACK1)) $conf->global->THEME_ELDY_TOPMENU_BACK1='0,0,0';
+if (! isset($conf->global->THEME_ELDY_BACKTITLE1)) $conf->global->THEME_ELDY_BACKTITLE1=$colorbacktitle1;
 if (! isset($conf->global->THEME_ELDY_USE_HOVER)) $conf->global->THEME_ELDY_USE_HOVER=='238,246,252';
-if (! isset($conf->global->THEME_ELDY_TEXTLINK)) $conf->global->THEME_ELDY_TEXTLINK='0,0,120';
+if (! isset($conf->global->THEME_ELDY_TEXTTITLENOTAB)) $conf->global->THEME_ELDY_TEXTTITLENOTAB=$colortexttitlenotab;
+if (! isset($conf->global->THEME_ELDY_TEXTLINK)) $conf->global->THEME_ELDY_TEXTLINK=$colortextlink;
 
 // Case of option editable only if option THEME_ELDY_ENABLE_PERSONALIZED is on
 if (empty($conf->global->THEME_ELDY_ENABLE_PERSONALIZED))
@@ -138,6 +139,7 @@ $colorbacklinepair1  =empty($user->conf->THEME_ELDY_ENABLE_PERSONALIZED)?(empty(
 $colorbacklinepair2  =empty($user->conf->THEME_ELDY_ENABLE_PERSONALIZED)?(empty($conf->global->THEME_ELDY_LINEPAIR2)    ?$colorbacklinepair2:$conf->global->THEME_ELDY_LINEPAIR2)    :(empty($user->conf->THEME_ELDY_LINEPAIR2)?$colorbacklinepair2:$user->conf->THEME_ELDY_LINEPAIR2);
 $colorbacklinepairhover  =empty($user->conf->THEME_ELDY_ENABLE_PERSONALIZED)?(empty($conf->global->THEME_ELDY_LINEPAIRHOVER)    ?$colorbacklinepairhover:$conf->global->THEME_ELDY_LINEPAIRHOVER)    :(empty($user->conf->THEME_ELDY_LINEPAIRHOVER)?$colorbacklinepairhover:$user->conf->THEME_ELDY_LINEPAIRHOVER);
 $colorbackbody       =empty($user->conf->THEME_ELDY_ENABLE_PERSONALIZED)?(empty($conf->global->THEME_ELDY_BACKBODY)     ?$colorbackbody:$conf->global->THEME_ELDY_BACKBODY)          :(empty($user->conf->THEME_ELDY_BACKBODY)?$colorbackbody:$user->conf->THEME_ELDY_BACKBODY);
+$colortexttitlenotab =empty($user->conf->THEME_ELDY_ENABLE_PERSONALIZED)?(empty($conf->global->THEME_ELDY_TEXTTITLENOTAB)?$colortexttitlenotab:$conf->global->THEME_ELDY_TEXTTITLENOTAB)             :(empty($user->conf->THEME_ELDY_TEXTTITLENOTAB)?$colortexttitlenotab:$user->conf->THEME_ELDY_TEXTTITLENOTAB);
 $colortexttitle      =empty($user->conf->THEME_ELDY_ENABLE_PERSONALIZED)?(empty($conf->global->THEME_ELDY_TEXTTITLE)    ?$colortext:$conf->global->THEME_ELDY_TEXTTITLE)             :(empty($user->conf->THEME_ELDY_TEXTTITLE)?$colortexttitle:$user->conf->THEME_ELDY_TEXTTITLE);
 $colortext           =empty($user->conf->THEME_ELDY_ENABLE_PERSONALIZED)?(empty($conf->global->THEME_ELDY_TEXT)         ?$colortext:$conf->global->THEME_ELDY_TEXT)                  :(empty($user->conf->THEME_ELDY_TEXT)?$colortext:$user->conf->THEME_ELDY_TEXT);
 $colortextlink       =empty($user->conf->THEME_ELDY_ENABLE_PERSONALIZED)?(empty($conf->global->THEME_ELDY_TEXTLINK)     ?$colortext:$conf->global->THEME_ELDY_TEXTLINK)              :(empty($user->conf->THEME_ELDY_TEXTLINK)?$colortextlink:$user->conf->THEME_ELDY_TEXTLINK);
@@ -181,6 +183,7 @@ $colorbacklinepair1=join(',',colorStringToArray($colorbacklinepair1));
 $colorbacklinepair2=join(',',colorStringToArray($colorbacklinepair2));
 if ($colorbacklinepairhover != '') $colorbacklinepairhover=join(',',colorStringToArray($colorbacklinepairhover));
 $colorbackbody=join(',',colorStringToArray($colorbackbody));
+$colortexttitlenotab=join(',',colorStringToArray($colortexttitlenotab));
 $colortexttitle=join(',',colorStringToArray($colortexttitle));
 $colortext=join(',',colorStringToArray($colortext));
 $colortextlink=join(',',colorStringToArray($colortextlink));
@@ -199,6 +202,7 @@ print 'colorbacklineimpair2='.$colorbacklineimpair2."\n";
 print 'colorbacklinepair1='.$colorbacklinepair1."\n";
 print 'colorbacklinepair2='.$colorbacklinepair2."\n";
 print 'colorbacklinepairhover='.$colorbacklinepairhover."\n";
+print '$colortexttitlenotab='.$colortexttitlenotab."\n";
 print '$colortexttitle='.$colortexttitle."\n";
 print '$colortext='.$colortext."\n";
 print '$colortextlink='.$colortextlink."\n";
-- 
GitLab


From ef33691818999414125b77354a09f55c0a1b56a6 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Sun, 13 Dec 2015 15:21:46 +0100
Subject: [PATCH 167/197] FIX Removed hard coded parameters for asterisk setup

---
 htdocs/asterisk/wrapper.php | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/htdocs/asterisk/wrapper.php b/htdocs/asterisk/wrapper.php
index bcd5957dbb3..e5c9a6b2093 100644
--- a/htdocs/asterisk/wrapper.php
+++ b/htdocs/asterisk/wrapper.php
@@ -79,6 +79,10 @@ if (! isset($conf->global->ASTERISK_TYPE))      $conf->global->ASTERISK_TYPE="SI
 if (! isset($conf->global->ASTERISK_INDICATIF)) $conf->global->ASTERISK_INDICATIF="0";
 if (! isset($conf->global->ASTERISK_PORT))      $conf->global->ASTERISK_PORT=5038;
 if ($conf->global->ASTERISK_INDICATIF=='NONE')  $conf->global->ASTERISK_INDICATIF='';
+if (! isset($conf->global->ASTERISK_CONTEXT))   $conf->global->ASTERISK_CONTEXT="from-internal";
+if (! isset($conf->global->ASTERISK_WAIT_TIME)) $conf->global->ASTERISK_WAIT_TIME="30";
+if (! isset($conf->global->ASTERISK_PRIORITY))  $conf->global->ASTERISK_PRIORITY="1";
+if (! isset($conf->global->ASTERISK_MAX_RETRY)) $conf->global->ASTERISK_MAX_RETRY="2";
 
 
 $login = $_GET['login'];
@@ -96,14 +100,13 @@ $prefix = $conf->global->ASTERISK_INDICATIF;
 // Port
 $port = $conf->global->ASTERISK_PORT;
 // Context ( generalement from-internal )
-$strContext = "from-internal";
-
+$strContext = $conf->global->ASTERISK_CONTEXT;
 // Delai d'attente avant de raccrocher
-$strWaitTime = "30";
+$strWaitTime = $conf->global->ASTERISK_WAIT_TIME;
 // Priority
-$strPriority = "1";
+$strPriority = $conf->global->ASTERISK_PRIORITY;
 // Nomber of try
-$strMaxRetry = "2";
+$strMaxRetry = $conf->global->ASTERISK_MAX_RETRY;
 
 
 /*
-- 
GitLab


From 7db6ac592f783204236d8540a6cea5a2b8a0fb24 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Sun, 13 Dec 2015 15:51:52 +0100
Subject: [PATCH 168/197] FIX Option start tls of ldap was not correctly
 supported.

---
 htdocs/core/class/ldap.class.php | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/htdocs/core/class/ldap.class.php b/htdocs/core/class/ldap.class.php
index c081ed34a96..8ea3221c648 100644
--- a/htdocs/core/class/ldap.class.php
+++ b/htdocs/core/class/ldap.class.php
@@ -149,7 +149,7 @@ class Ldap
 	 */
 	function connect_bind()
 	{
-		global $langs;
+		global $langs, $conf;
 
 		$connected=0;
 		$this->bind=0;
@@ -186,7 +186,18 @@ class Ldap
 
 			if (is_resource($this->connection))
 			{
-				// Execute the ldap_set_option here (after connect and before bind)
+				// Begin TLS if requested by the configuration
+    			if (! empty($conf->global->LDAP_SERVER_USE_TLS)) 
+    			{
+    			    if (! ldap_start_tls($this->connection)) 
+    			    {
+    			        dol_syslog(get_class($this)."::connect_bind failed to start tls", LOG_WARNING);
+    			        $connected = 0;
+    			        $this->close();
+    				}
+    			}
+			
+			    // Execute the ldap_set_option here (after connect and before bind)
 				$this->setVersion();
 				ldap_set_option($this->connection, LDAP_OPT_SIZELIMIT, 0); // no limit here. should return true.
 
-- 
GitLab


From 4b741c6b9c6c1da489a975e78701a2fef4e13e58 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Sun, 13 Dec 2015 16:16:30 +0100
Subject: [PATCH 169/197] Fix permissions

---
 test/phpunit/CategorieTest.php             | 0
 test/phpunit/ExportTest.php                | 0
 test/phpunit/Functions2LibTest.php         | 0
 test/phpunit/FunctionsLibTest.php          | 0
 test/phpunit/JsonLibTest.php               | 0
 test/phpunit/LangTest.php                  | 0
 test/phpunit/ModulesTest.php               | 0
 test/phpunit/PricesTest.php                | 0
 test/phpunit/SecurityTest.php              | 0
 test/phpunit/SocieteTest.php               | 0
 test/phpunit/SqlTest.php                   | 0
 test/phpunit/WebservicesInvoicesTest.php   | 0
 test/phpunit/WebservicesThirdpartyTest.php | 0
 13 files changed, 0 insertions(+), 0 deletions(-)
 mode change 100755 => 100644 test/phpunit/CategorieTest.php
 mode change 100755 => 100644 test/phpunit/ExportTest.php
 mode change 100755 => 100644 test/phpunit/Functions2LibTest.php
 mode change 100755 => 100644 test/phpunit/FunctionsLibTest.php
 mode change 100755 => 100644 test/phpunit/JsonLibTest.php
 mode change 100755 => 100644 test/phpunit/LangTest.php
 mode change 100755 => 100644 test/phpunit/ModulesTest.php
 mode change 100755 => 100644 test/phpunit/PricesTest.php
 mode change 100755 => 100644 test/phpunit/SecurityTest.php
 mode change 100755 => 100644 test/phpunit/SocieteTest.php
 mode change 100755 => 100644 test/phpunit/SqlTest.php
 mode change 100755 => 100644 test/phpunit/WebservicesInvoicesTest.php
 mode change 100755 => 100644 test/phpunit/WebservicesThirdpartyTest.php

diff --git a/test/phpunit/CategorieTest.php b/test/phpunit/CategorieTest.php
old mode 100755
new mode 100644
diff --git a/test/phpunit/ExportTest.php b/test/phpunit/ExportTest.php
old mode 100755
new mode 100644
diff --git a/test/phpunit/Functions2LibTest.php b/test/phpunit/Functions2LibTest.php
old mode 100755
new mode 100644
diff --git a/test/phpunit/FunctionsLibTest.php b/test/phpunit/FunctionsLibTest.php
old mode 100755
new mode 100644
diff --git a/test/phpunit/JsonLibTest.php b/test/phpunit/JsonLibTest.php
old mode 100755
new mode 100644
diff --git a/test/phpunit/LangTest.php b/test/phpunit/LangTest.php
old mode 100755
new mode 100644
diff --git a/test/phpunit/ModulesTest.php b/test/phpunit/ModulesTest.php
old mode 100755
new mode 100644
diff --git a/test/phpunit/PricesTest.php b/test/phpunit/PricesTest.php
old mode 100755
new mode 100644
diff --git a/test/phpunit/SecurityTest.php b/test/phpunit/SecurityTest.php
old mode 100755
new mode 100644
diff --git a/test/phpunit/SocieteTest.php b/test/phpunit/SocieteTest.php
old mode 100755
new mode 100644
diff --git a/test/phpunit/SqlTest.php b/test/phpunit/SqlTest.php
old mode 100755
new mode 100644
diff --git a/test/phpunit/WebservicesInvoicesTest.php b/test/phpunit/WebservicesInvoicesTest.php
old mode 100755
new mode 100644
diff --git a/test/phpunit/WebservicesThirdpartyTest.php b/test/phpunit/WebservicesThirdpartyTest.php
old mode 100755
new mode 100644
-- 
GitLab


From ef13bd43b07806b53688163448bae58d27600b90 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Sun, 13 Dec 2015 17:27:55 +0100
Subject: [PATCH 170/197] Fix bad merge

---
 htdocs/product/class/product.class.php | 1 -
 1 file changed, 1 deletion(-)

diff --git a/htdocs/product/class/product.class.php b/htdocs/product/class/product.class.php
index a77689949c4..b68ac04b87d 100644
--- a/htdocs/product/class/product.class.php
+++ b/htdocs/product/class/product.class.php
@@ -880,7 +880,6 @@ class Product extends CommonObject
 
    			// Delete all child tables
 			if (! $error)
-			foreach($elements as $table)
 			{
 			    $elements = array('product_fournisseur_price','product_price','product_lang','categorie_product','product_stock','product_customer_price');
     			foreach($elements as $table)
-- 
GitLab


From 65cebe37f36b5fe4de628f193840d0c774a97346 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= <frederic.france@free.fr>
Date: Sun, 13 Dec 2015 21:12:08 +0100
Subject: [PATCH 171/197] Update sms.php

---
 htdocs/admin/sms.php | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/htdocs/admin/sms.php b/htdocs/admin/sms.php
index 604b426b800..05fe548daff 100644
--- a/htdocs/admin/sms.php
+++ b/htdocs/admin/sms.php
@@ -124,10 +124,12 @@ if ($action == 'send' && ! $_POST['cancel'])
 		if ($result)
 		{
 			setEventMessages($langs->trans("SmsSuccessfulySent",$smsfrom,$sendto), null, 'mesgs');
+			setEventMessages($smsfile->error, $smsfile->errors, 'mesgs');
 		}
 		else
 		{
 			setEventMessages($langs->trans("ResultKo"), null, 'errors');
+			setEventMessages($smsfile->error, $smsfile->errors, 'errors');
 		}
 
 		$action='';
-- 
GitLab


From 1aa232c4a7f8d34aaf31da2e5e48026aaa3d945b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= <frederic.france@free.fr>
Date: Sun, 13 Dec 2015 21:14:53 +0100
Subject: [PATCH 172/197] Update CSMSFile.class.php

---
 htdocs/core/class/CSMSFile.class.php | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/htdocs/core/class/CSMSFile.class.php b/htdocs/core/class/CSMSFile.class.php
index b6819fdd87f..4456df76f83 100644
--- a/htdocs/core/class/CSMSFile.class.php
+++ b/htdocs/core/class/CSMSFile.class.php
@@ -149,9 +149,10 @@ class CSMSFile
 		            $sms->message=$this->message;
 
                     $res=$sms->SmsSend();
+                    $this->error = $sms->error;
+                    $this->errors = $sms->errors;
     				if ($res <= 0)
     				{
-    					$this->error=$sms->error;
     					dol_syslog("CSMSFile::sendfile: sms send error=".$this->error, LOG_ERR);
     				}
     				else
-- 
GitLab


From bbe7498de6b1590f3b806eb4400e5cfb5837cb73 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rapha=C3=ABl=20Doursenaud?= <rdoursenaud@gpcsolutions.fr>
Date: Fri, 11 Dec 2015 05:08:32 +0100
Subject: [PATCH 173/197] Better Travis CI

NEW:
Cleaned up routines for better readability of both declaration and results.
PHP versions now really covered.
    The old code forced install of PHP and didn't use Travis provided versions.
    This resulted in the process not being executed with the declared PHP version.
Dropped MySQL in favor of MariaDB.
    This is now the FLOSS community standard.
    This should help avoid problems with buggy MySQL releases.
Fast finish enabled to show results faster.
Optimized tools installation with composer.
    The right version of the tool is installed for the PHP version under test.
New PHP linter to check for syntax errors.
    Parallelized for better speed.
Apache + PHP FPM for testing webservices.
    The previous mod_php configuration was not supported on Travis.
New global DEBUG environment variable to show verbose output with configuration files content.
IRC notification on #dolibarr@freenode for community awareness.

FIXES:
Bug in scripts preventing execution with environmentalized PHP.
Wrong detection of MAIN_URL_ROOT under specific circumstances.
    $_SERVER["DOCUMENT_ROOT"] empty and $_SERVER["SCRIPT_NAME"] populated.
Relative ignore directive in coding style ruleset to avoid bypassing test.
Unit test errors without an exit status.
    This prevented the CI from properly detecting and reporting the error.

TODOS:
PostgreSQL support.
    This one is tricky since we only have a MySQL dump and the syntax is not directly compatible.
SQLite support.
    Disabled in core at the moment.
Nginx + PHP FPM support.
    Test webservices on the second most popular webserver.
Run dev/* checks.
    We have a nice collection of scripts we could leverage.
Check Javascript.
Check CSS.
Check SQL.
---
 .travis.yml                                   | 434 ++++++++++++------
 build/aps/configure.php                       |   2 +-
 build/generate_filecheck_xml.php              |   2 +-
 build/travis-ci/apache.conf                   |  18 +
 composer.json.phpcs                           |  18 -
 dev/codesniffer/ruleset.xml                   |  12 +-
 dev/examples/create_invoice.php               |   2 +-
 dev/examples/create_order.php                 |   2 +-
 dev/examples/create_product.php               |   2 +-
 dev/examples/create_user.php                  |   2 +-
 dev/examples/get_contracts.php                |   2 +-
 dev/initdata/generate-invoice.php             |   2 +-
 dev/initdata/generate-order.php               |   2 +-
 dev/initdata/generate-product.php             |   2 +-
 dev/initdata/generate-proposal.php            |   2 +-
 dev/initdata/generate-thirdparty.php          |   2 +-
 dev/initdata/sftpget_and_loaddump.php         |   2 +-
 dev/skeletons/build_api_class.php             |   2 +-
 dev/skeletons/build_class_from_table.php      |   2 +-
 dev/skeletons/build_webservice_from_class.php |   2 +-
 dev/skeletons/skeleton_script.php             |   2 +-
 dev/translation/autotranslator.php            |   2 +-
 dev/translation/sanity_check_en_langfiles.php |   2 +-
 dev/translation/strip_language_file.php       |   2 +-
 htdocs/filefunc.inc.php                       |   6 +-
 .../accountancy/export-thirdpartyaccount.php  |   3 +-
 scripts/bank/export-bank-receipts.php         |   2 +-
 .../company/export-contacts-xls-example.php   |   2 +-
 .../company/sync_contacts_dolibarr2ldap.php   |   2 +-
 .../email_expire_services_to_customers.php    |   2 +-
 ...ail_expire_services_to_representatives.php |   2 +-
 scripts/cron/cron_run_jobs.php                |   2 +-
 scripts/emailings/mailing-send.php            |   2 +-
 .../email_unpaid_invoices_to_customers.php    |   2 +-
 ...ail_unpaid_invoices_to_representatives.php |   2 +-
 scripts/invoices/rebuild_merge_pdf.php        |   2 +-
 .../members/sync_members_dolibarr2ldap.php    |   2 +-
 .../members/sync_members_ldap2dolibarr.php    |   2 +-
 scripts/product/migrate_picture_path.php      |   2 +-
 scripts/user/sync_groups_dolibarr2ldap.php    |   2 +-
 scripts/user/sync_groups_ldap2dolibarr.php    |   2 +-
 scripts/user/sync_users_dolibarr2ldap.php     |   2 +-
 scripts/user/sync_users_ldap2dolibarr.php     |   2 +-
 scripts/withdrawals/build_withdrawal_file.php |   2 +-
 test/phpunit/AllTests.php                     |   8 +-
 test/phpunit/ContactTest.php                  |   2 +-
 test/phpunit/PricesTest.php                   |   2 +-
 test/phpunit/WebservicesProductsTest.php      |   2 +-
 48 files changed, 370 insertions(+), 211 deletions(-)
 create mode 100644 build/travis-ci/apache.conf
 delete mode 100644 composer.json.phpcs

diff --git a/.travis.yml b/.travis.yml
index 9956d9c58c8..a5330042b58 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,154 +1,308 @@
 # This script is used by Travis CI to run automatically Continuous test integration
 # from Dolibarr GitHub repository.
-# Command run is phpunit
 # For syntax, see http://about.travis-ci.org/docs/user/languages/php/
 
-notifications:
-  email:
-    on_success: never # [always|never|change] default: change
-    on_failure: change # [always|never|change] default: always
-    
+sudo: required
+
+language: php
+
+php:
+- '5.3'
+- '5.4'
+- '5.5'
+- '5.6'
+- '7.0'
+- nightly
+
 addons:
-  postgresql: "9.3"
+  mariadb: '10.0'
+  # FIXME: find a way to import a MySQL dump into PostgreSQL
+  #postgresql: '9.3'
+  apt:
+    packages:
+    # We need a webserver to test the webservices
+    # Let's install Apache with.
+    - apache2
+    # mod_php is not supported by Travis. Add fcgi. We install FPM later on.
+    - libapache2-mod-fastcgi
 
+# Start on every boot
 services:
- - memcached # will start memcached
+- memcached
 
-# This will tell travis to run phpunit
-language: php
-php:
- - 5.3
- - 5.4
- - 5.5 
- - 5.6
- - 7.0
+env:
+  global:
+  # Set to true for very verbose output
+  - DEBUG=false
+  matrix:
+  # MariaDB overrides MySQL installation so it's not possible to test both yet
+  #- DB=mysql
+  - DB=mariadb
+  # FIXME: find a way to import a MySQL dump into PostgreSQL
+  #- DB=postgresql
+  # TODO
+  #- DB=sqlite
+  # See https://docs.travis-ci.com/user/languages/php/#Apache-%2B-PHP
+  #- WS=apache
+  # See https://github.com/DracoBlue/travis-ci-nginx-php-fpm-test
+  #- WS=nginx
 
 matrix:
+  fast_finish: true
   allow_failures:
-    - php: 7.0
+  - php: '7.0'
+  - php: nightly
+  # FIXME
+  #- env: DB=postgresql
+  # TODO
+  #- env: DB=sqlite
 
-env:
- - DB=mysql
-# - DB=postgres  
-
-before_script: 
- - echo Start travis
- - echo Current dir is `pwd`
- - echo Home dir is `echo ~`
- - export PHPV=`phpenv version-name`
- - echo PHP version $PHPV 
-# - echo Update composer
-# - ~/.phpenv/versions/$(phpenv version-name)/bin/composer.phar self-update 
- - echo PHPUnit version
- - which phpunit
- - phpunit --version
- - echo Install phpcs then show installed rules
- - cp composer.json composer.json.old
- - cp composer.json.phpcs composer.json
- - composer self-update
- - composer require squizlabs/php_codesniffer:"^2.0.0"
- - composer install
- - phpenv rehash
- - htdocs/includes/squizlabs/php_codesniffer/scripts/phpcs --version
- - htdocs/includes/squizlabs/php_codesniffer/scripts/phpcs -i
-# - which phpcs
-# - phpcs --version
-# - phpcs -i
- - echo Create dir $(pwd)/htdocs/documents
- - sudo mkdir -p $(pwd)/htdocs/documents/admin/temp;
- - sudo touch $(pwd)/htdocs/documents/dolibarr.log;
- - sudo chmod a+rwx /home; sudo chmod a+rwx /home/travis; sudo chmod -R a+rwx /home/travis/build;
- - sudo chmod -R a+rwx $(pwd);
- - sudo chown -R www-data:travis $(pwd)/htdocs/documents;
- - find $(pwd)/htdocs/documents -type d -exec ls -alt {} \;
- - echo Edit php.ini file
- - echo 'date.timezone = "Europe/Paris"' >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini
-# - echo "extension = memcache.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini
- - echo "extension = memcached.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini
- - sh -c "if [ '$PHPV' = '5.3' ]; then echo 'extension = apc.so' >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini; fi"
- - sh -c "if [ '$PHPV' = '5.4' ]; then echo 'extension = apc.so' >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini; fi"
- - sh -c "if [ '$PHPV' = '5.3' ]; then echo 'zend_extension_ts = xdebug.so' >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini; fi"
- - sh -c "if [ '$PHPV' = '5.4' ]; then echo 'zend_extension_ts = xdebug.so' >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini; fi"
- - cat ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini
- - echo Mysql version
-# INSTALL MYSQL 5.6
-# (https://github.com/piwik/piwik/commit/20bd2e1c24e5d673dce3feb256204ad48c29f160)
-# TODO: Remove when mysql 5.6 is provided by travis.
-# Otherwise, our migrations will raise a syntax error.
-# - "sudo apt-get remove mysql-common mysql-server-5.5 mysql-server-core-5.5 mysql-client-5.5 mysql-client-core-5.5"
-# - "sudo apt-get autoremove"
-# - "sudo apt-get install libaio1"
-# - "wget -O mysql-5.6.14.deb http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.14-debian6.0-x86_64.deb/from/http://cdn.mysql.com/"
-# - "sudo dpkg -i mysql-5.6.14.deb"
-# - "sudo cp /opt/mysql/server-5.6/support-files/mysql.server /etc/init.d/mysql.server"
-# - "sudo ln -s /opt/mysql/server-5.6/bin/* /usr/bin/"
-# - "sudo sed -i'' 's/table_cache/table_open_cache/' /etc/mysql/my.cnf"
-# - "sudo sed -i'' 's/log_slow_queries/slow_query_log/' /etc/mysql/my.cnf"
-# - "sudo sed -i'' 's/basedir[^=]\\+=.*$/basedir = \\/opt\\/mysql\\/server-5.6/' /etc/mysql/my.cnf"
-# - "sudo /etc/init.d/mysql.server start"
-# /END MYSQL 5.6- mysql --version
- - mysql --version
- - mysql -e "SELECT VERSION();"
- - echo Init database
- - sh -c "if [ '$DB' = 'pgsql' ]; then psql -c 'DROP DATABASE IF EXISTS myapp_test;' -U postgres; fi"
- - sh -c "if [ '$DB' = 'pgsql' ]; then psql -c 'CREATE DATABASE myapp_test;' -U postgres; fi"
- - sh -c "if [ '$DB' = 'mysql' ]; then mysql -e 'DROP DATABASE IF EXISTS myapp_test;'; fi"
- - sh -c "if [ '$DB' = 'mysql' ]; then mysql -e 'CREATE DATABASE IF NOT EXISTS myapp_test;'; fi"
- - sh -c "if [ '$DB' = 'mysql' ]; then mysql -D myapp_test < $(pwd)/dev/initdata/mysqldump_dolibarr_3.5.0.sql; fi"
- - echo Create config file htdocs/conf/conf.php
- - echo '<?php ' > htdocs/conf/conf.php
- - sh -c "if [ '$DB' = 'pgsql' ]; then echo '$'dolibarr_main_db_type=\'pgsql\'';' >> htdocs/conf/conf.php; fi"
- - sh -c "if [ '$DB' = 'mysql' ]; then echo '$'dolibarr_main_db_type=\'mysqli\'';' >> htdocs/conf/conf.php; fi"
- - echo '$'dolibarr_main_url_root=\'http://localhost/\'';' >> htdocs/conf/conf.php
- - echo '$'dolibarr_main_document_root=\'$(pwd)/htdocs\'';' >> htdocs/conf/conf.php
- - echo '$'dolibarr_main_data_root=\'$(pwd)/htdocs/documents\'';' >> htdocs/conf/conf.php
- - echo '$'dolibarr_main_db_host=\'localhost\'';' >> htdocs/conf/conf.php
- - echo '$'dolibarr_main_db_name=\'myapp_test\'';' >> htdocs/conf/conf.php
- - echo '$'dolibarr_main_db_user=\'travis\'';' >> htdocs/conf/conf.php
- - echo '$'dolibarr_main_authentication=\'dolibarr\'';' >> htdocs/conf/conf.php
- - echo '?>' >> htdocs/conf/conf.php
- - echo Show conf.php content
- - cat htdocs/conf/conf.php
- - echo Install apache server
- - sudo apt-get update
- - sudo apt-get install -y --force-yes apache2 libapache2-mod-php5 php5-curl php5-mysql php5-pgsql php5-intl
- - sudo sed -i -e "s,/var/www,$(pwd)/htdocs,g" /etc/apache2/sites-available/default
- - echo Show default virtual host
- - sudo cat /etc/apache2/sites-available/default
- - sudo /etc/init.d/apache2 restart
- - wget http://localhost/
- - sudo cat /etc/apache2/envvars
- - sudo cat /var/log/apache2/error.log
- - cat index.html
-
-
-
-script: 
- - cd htdocs/install
- - date
-# - php upgrade.php 3.4.0 3.5.0 ignoredbversion > upgrade340350.log
-# - php upgrade2.php 3.4.0 3.5.0 ignoredbversion > upgrade340350-2.log
- - php upgrade.php 3.5.0 3.6.0 ignoredbversion > upgrade350360.log
- - php upgrade2.php 3.5.0 3.6.0 ignoredbversion > upgrade350360-2.log
- - php upgrade.php 3.6.0 3.7.0 ignoredbversion > upgrade360370.log
- - php upgrade2.php 3.6.0 3.7.0 ignoredbversion > upgrade360370-2.log
- - php upgrade.php 3.7.0 3.8.0 ignoredbversion > upgrade370380.log
-# - cat upgrade370380.log
- - php upgrade2.php 3.7.0 3.8.0 ignoredbversion > upgrade370380-2.log
- - php upgrade.php 3.8.0 3.9.0 ignoredbversion > upgrade380390.log
-# - cat upgrade380390.log
- - php upgrade2.php 3.8.0 3.9.0 ignoredbversion > upgrade380390-2.log
-# - cat upgrade380390-2.log
- - cd ../..
- - date
- - phpunit -d memory_limit=-1 --configuration test/phpunit/phpunittest.xml test/phpunit/AllTests.php
- - date
-# - phpcs -p --warning-severity=0 -s --report-summary --standard=dev/codesniffer/ruleset.xml --tab-width=4 --ignore=/build/html/,/dev/vagrant/,/documents/,/includes/,/test/report/ htdocs/core/class/dolgraph.class.php 2>&1
- - htdocs/includes/squizlabs/php_codesniffer/scripts/phpcs -p --warning-severity=0 -s --report-checkstyle --report-summary --standard=dev/codesniffer/ruleset.xml --tab-width=4 --ignore=/htdocs/conf/conf.php,/build/html/,/dev/vagrant/,/documents/,/includes/,/test/report/ . 2>&1
- - date
+notifications:
+  email:
+    on_success: never # [always|never|change] default: change
+    on_failure: change # [always|never|change] default: always
+  irc:
+    channels:
+    - "chat.freenode.net#dolibarr"
+    on_success: change
+    on_failure: always
+    use_notice: true
 
-after_script:
-# - echo Output dolibarr log file; cat $(pwd)/htdocs/documents/dolibarr.log
- - echo Output apache log file; sudo cat /var/log/apache2/error.log
- - echo End travis
+before_install:
+- |
+  echo "Disabling Xdebug for composer"
+  export PHP_VERSION_NAME=$(phpenv version-name)
+  cp ~/.phpenv/versions/$PHP_VERSION_NAME/etc/conf.d/xdebug.ini /tmp/xdebug.ini
+  phpenv config-rm xdebug.ini
+  echo
+
+install:
+- |
+  echo "Updating Composer"
+  composer self-update
+  echo
+
+- |
+  echo "Installing Parallel Lint"
+  composer -n require jakub-onderka/php-parallel-lint ^0
+  composer -n require jakub-onderka/php-console-highlighter ^0
+  echo
+
+- |
+  echo "Installing PHP Unit"
+  if [ "$TRAVIS_PHP_VERSION" = '5.3' ] || [ "$TRAVIS_PHP_VERSION" = '5.4' ] || [ "$TRAVIS_PHP_VERSION" = '5.5' ]; then
+    composer -n require phpunit/phpunit ^4
+  fi
+  if [ "$TRAVIS_PHP_VERSION" = '5.6' ] || [ "$TRAVIS_PHP_VERSION" = '7.0' ] || [ "$TRAVIS_PHP_VERSION" = 'nightly' ]; then
+    composer -n require phpunit/phpunit ^5
+  fi
+  echo
+
+- |
+  echo "Installing PHP CodeSniffer"
+  composer require squizlabs/php_codesniffer ^2
+  echo
 
+- |
+  echo "Adding Composer binaries to the path"
+  export PATH="$TRAVIS_BUILD_DIR/htdocs/includes/bin:$PATH"
+  echo
+
+before_script:
+- |
+  echo "Re-enabling Xdebug for PHP CodeSniffer and PHP Unit"
+  phpenv config-add /tmp/xdebug.ini
+  echo
+
+- |
+  echo "Setting up PHP"
+  echo
+  echo "Set timezone"
+  echo 'date.timezone = "Europe/Paris"' >> ~/.phpenv/versions/$PHP_VERSION_NAME/etc/php.ini
+  if [ "$TRAVIS_PHP_VERSION" = '5.3' ] || [ "$TRAVIS_PHP_VERSION" = '5.4' ]; then
+    echo
+    echo "Enabling APC for PHP <= 5.4"
+    #   Documentation says it should be available for PHP <= 5.6 but it's not for 5.5 and 5.6!
+    echo 'extension = apc.so' >> ~/.phpenv/versions/$PHP_VERSION_NAME/etc/php.ini
+    echo
+    echo "Enabling Memcached for PHP <= 5.4"
+    #   Documentation says it should be available for all PHP versions but it's not for 5.5 and 5.6, 7.0 and nightly!
+    echo 'extension = memcached.so' >> ~/.phpenv/versions/$PHP_VERSION_NAME/etc/php.ini
+  fi
+  phpenv rehash
+  echo
+
+- |
+  if [ "$DEBUG" = true ]; then
+    echo "Debugging informations"
+    # Check PHP
+    php -i
+    # Check PHP CodeSniffer installation
+    which phpcs
+    phpcs --version
+    phpcs -i
+    # Check PHPUnit installation
+    which phpunit
+    phpunit --version
+    # Check MySQL
+    mysql --version
+    mysql -e "SELECT VERSION();"
+    echo
+  fi
+
+- |
+  echo "Setting up database"
+  if [ "$DB" = 'mysql' ] || [ "$DB" = 'mariadb' ]; then
+    echo "MySQL"
+    mysql -e 'DROP DATABASE IF EXISTS travis;'
+    mysql -e 'CREATE DATABASE IF NOT EXISTS travis;'
+    mysql -D travis < dev/initdata/mysqldump_dolibarr_3.5.0.sql
+  fi
+  # FIXME: find a way to import a MySQL dump into PostgreSQL
+  #if [ "$DB" = 'postgresql' ]; then
+  #  pgsql travis < dev/initdata/mysqldump_dolibarr_3.5.0.sql
+  #fi
+  # TODO: SQLite
+  echo
+
+- |
+  echo "Setting up Dolibarr"
+  export CONF_FILE=htdocs/conf/conf.php
+  echo '<?php ' > $CONF_FILE
+  echo '$'dolibarr_main_url_root=\'http://127.0.0.1\'';' >> $CONF_FILE
+  echo '$'dolibarr_main_document_root=\'$TRAVIS_BUILD_DIR/htdocs\'';' >> $CONF_FILE
+  echo '$'dolibarr_main_data_root=\'$TRAVIS_BUILD_DIR/documents\'';' >> $CONF_FILE
+  echo '$'dolibarr_main_db_host=\'127.0.0.1\'';' >> $CONF_FILE
+  echo '$'dolibarr_main_db_name=\'travis\'';' >> $CONF_FILE
+  echo '$'dolibarr_main_db_user=\'travis\'';' >> $CONF_FILE
+  if [ "$DB" = 'mysql' ] || [ "$DB" = 'mariadb' ]; then
+    echo '$'dolibarr_main_db_type=\'mysqli\'';' >> $CONF_FILE
+  fi
+  # FIXME
+  #if [ "$DB" = 'postgresql' ]; then
+  #  echo '$'dolibarr_main_db_type=\'pgsql\'';' >> $CONF_FILE
+  #fi
+  # TODO: SQLite
+  echo '$'dolibarr_main_authentication=\'dolibarr\'';' >> $CONF_FILE
+  echo
+
+- |
+  if [ "$DEBUG" = true ]; then
+    echo "Debugging informations"
+    cat $CONF_FILE
+    echo
+  fi
+
+- |
+  echo "Create documents directory and set permissions"
+  # and admin/temp subdirectory needed for unit tests
+  mkdir -p documents/admin/temp
+  echo
+
+- |
+  echo "Setting up Apache + FPM"
+  # enable php-fpm
+  cp ~/.phpenv/versions/$PHP_VERSION_NAME/etc/php-fpm.conf.default ~/.phpenv/versions/$PHP_VERSION_NAME/etc/php-fpm.conf
+  if [ "$TRAVIS_PHP_VERSION" = '7.0' ] || [ "$TRAVIS_PHP_VERSION" = 'nightly' ]; then
+    # Copy the included pool
+    cp ~/.phpenv/versions/$PHP_VERSION_NAME/etc/php-fpm.d/www.conf.default ~/.phpenv/versions/$PHP_VERSION_NAME/etc/php-fpm.d/www.conf
+  fi
+  if [ "$DEBUG" = true ]; then
+    cat ~/.phpenv/versions/$PHP_VERSION_NAME/etc/php-fpm.conf
+  fi
+  sudo a2enmod rewrite actions fastcgi alias
+  echo "cgi.fix_pathinfo = 1" >> ~/.phpenv/versions/$PHP_VERSION_NAME/etc/php.ini
+  if [ "$DEBUG" = true ]; then
+    cat ~/.phpenv/versions/$PHP_VERSION_NAME/etc/php.ini
+  fi
+  ~/.phpenv/versions/$PHP_VERSION_NAME/sbin/php-fpm
+  # configure apache virtual hosts
+  sudo cp -f build/travis-ci/apache.conf /etc/apache2/sites-available/default
+  sudo sed -e "s?%TRAVIS_BUILD_DIR%?$TRAVIS_BUILD_DIR?g" --in-place /etc/apache2/sites-available/default
+  if [ "$DEBUG" = true ]; then
+    sudo cat /etc/apache2/sites-available/default
+  fi
+  sudo service apache2 restart
+  echo
+
+script:
+- |
+  echo "Checking webserver availability"
+  # Ensure we catch errors
+  set -e
+  wget http://127.0.0.1
+  if [ "$DEBUG" = true ]; then
+    cat index.html
+  fi
+  set +e
+  echo
+
+- |
+  echo "Checking PHP syntax errors"
+  # Ensure we catch errors
+  set -e
+  parallel-lint --exclude htdocs/includes --blame .
+  set +e
+  echo
+
+# TODO: dev/* checks
+
+- |
+  echo "Checking coding style"
+  # Ensure we catch errors
+  set -e
+  # Exclusions are defined in the ruleset.xml file
+  phpcs -s -n -p -d memory_limit=-1 --colors --tab-width=4 --standard=dev/codesniffer/ruleset.xml --encoding=utf-8 .
+  set +e
+  echo
+
+# TODO: Check Javascript (jshint?)
+
+# TODO: Check CSS (csslint?)
+
+# TODO: check SQL syntax (pgsanity?)
+
+- |
+  echo "Upgrading Dolibarr"
+  # Ensure we catch errors
+  set -e
+  cd htdocs/install
+  php upgrade.php 3.5.0 3.6.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade350360.log
+  php upgrade2.php 3.5.0 3.6.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade350360-2.log
+  php upgrade.php 3.6.0 3.7.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade360370.log
+  php upgrade2.php 3.6.0 3.7.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade360370-2.log
+  php upgrade.php 3.7.0 3.8.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade370380.log
+  php upgrade2.php 3.7.0 3.8.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade370380-2.log
+  php upgrade.php 3.8.0 3.9.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade380390.log
+  php upgrade2.php 3.8.0 3.9.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade380390-2.log
+  cd -
+  set +e
+  echo
+
+- |
+  echo "Unit testing"
+  # Ensure we catch errors
+  set -e
+  phpunit -d memory_limit=-1 -c test/phpunit/phpunittest.xml test/phpunit/AllTests.php
+  set +e
+  echo
+
+after_success:
+
+after_failure:
+- |
+  if [ "$DEBUG" = true ]; then
+    echo "Debugging informations"
+    # Upgrade log files
+    cat *.log
+    # Dolibarr log file
+    cat documents/dolibarr.log
+    # Apache log file
+    sudo cat /var/log/apache2/error.log
+    # MariaDB log file
+    sudo cat /var/log/mysql/error.log
+    # TODO: PostgreSQL log file
+    echo
+  fi
+
+after_script:
diff --git a/build/aps/configure.php b/build/aps/configure.php
index f4bd03b5d9e..1b2565e3dc8 100755
--- a/build/aps/configure.php
+++ b/build/aps/configure.php
@@ -1,4 +1,4 @@
-#!/usr/bin/php
+#!/usr/bin/env php
 <?php
 /*-----------------------------------------------------
  *
diff --git a/build/generate_filecheck_xml.php b/build/generate_filecheck_xml.php
index dbe96b4c0e9..665bb3a65d1 100644
--- a/build/generate_filecheck_xml.php
+++ b/build/generate_filecheck_xml.php
@@ -1,4 +1,4 @@
-#!/usr/bin/php
+#!/usr/bin/env php
 <?php
 /* Copyright (C) 2015 Laurent Destailleur  <eldy@users.sourceforge.net>
  *
diff --git a/build/travis-ci/apache.conf b/build/travis-ci/apache.conf
new file mode 100644
index 00000000000..5ba713924f2
--- /dev/null
+++ b/build/travis-ci/apache.conf
@@ -0,0 +1,18 @@
+<VirtualHost *:80>
+  DocumentRoot %TRAVIS_BUILD_DIR%/htdocs
+
+  <Directory "%TRAVIS_BUILD_DIR%/htdocs">
+    Options FollowSymLinks MultiViews ExecCGI
+    AllowOverride All
+    Order deny,allow
+    Allow from all
+  </Directory>
+
+  # Wire up Apache to use Travis CI's php-fpm.
+  <IfModule mod_fastcgi.c>
+    AddHandler php5-fcgi .php
+    Action php5-fcgi /php5-fcgi
+    Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi
+    FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -host 127.0.0.1:9000 -pass-header Authorization
+  </IfModule>
+</VirtualHost>
diff --git a/composer.json.phpcs b/composer.json.phpcs
deleted file mode 100644
index 5f5ea2d1fdf..00000000000
--- a/composer.json.phpcs
+++ /dev/null
@@ -1,18 +0,0 @@
-{
-    "name": "dolibarr/dolibarr",
-    "type": "project",
-    "description": "Dolibarr ERP & CRM is a modern and easy to use web software to manage your business",
-    "keywords": ["erp","crm","invoice","sme","proposal","order","stock"],
-    "homepage": "http://www.dolibarr.org",
-    "license": "GPL-3.0+",
-    "support": {
-        "issues": "https://github.com/Dolibarr/dolibarr/issues",
-        "forum": "http://www.dolibarr.org/forum",
-        "wiki": "http://wiki.dolibarr.org",
-        "irc": "irc://chat.freenode.net/dolibarr",
-        "source": "https://github.com/Dolibarr/dolibarr"
-    },
-    "config": {
-        "vendor-dir": "htdocs/includes"
-    }
-}
diff --git a/dev/codesniffer/ruleset.xml b/dev/codesniffer/ruleset.xml
index 321560ff6f9..64194c7b756 100644
--- a/dev/codesniffer/ruleset.xml
+++ b/dev/codesniffer/ruleset.xml
@@ -3,12 +3,12 @@
 <ruleset name="Dolibarr">
 	<description>Dolibarr coding standard.</description>
 
-	<exclude-pattern>*/conf.php</exclude-pattern>
-	<exclude-pattern>*/includes/*</exclude-pattern>
-	<exclude-pattern>*/documents/*</exclude-pattern>
-	<exclude-pattern>*/dev/vagrant/*</exclude-pattern>
-	<exclude-pattern>*/custom/*</exclude-pattern>
-	<exclude-pattern>*/nltechno*</exclude-pattern>
+	<exclude-pattern type="relative">build/html</exclude-pattern>
+	<exclude-pattern type="relative">documents</exclude-pattern>
+	<exclude-pattern type="relative">htdocs/custom</exclude-pattern>
+	<exclude-pattern type="relative">htdocs/includes</exclude-pattern>
+	<exclude-pattern type="relative">htdocs/conf.php</exclude-pattern>
+	<exclude-pattern type="relative">*/nltechno*</exclude-pattern>
 
 		<!-- List of all tests -->
 
diff --git a/dev/examples/create_invoice.php b/dev/examples/create_invoice.php
index d59655ef613..bd82d38d306 100755
--- a/dev/examples/create_invoice.php
+++ b/dev/examples/create_invoice.php
@@ -1,4 +1,4 @@
-#!/usr/bin/php
+#!/usr/bin/env php
 <?php
 /* Copyright (C) 2009 Laurent Destailleur  <eldy@users.sourceforge.net>
  *
diff --git a/dev/examples/create_order.php b/dev/examples/create_order.php
index d490d230b77..4575e9e28f3 100755
--- a/dev/examples/create_order.php
+++ b/dev/examples/create_order.php
@@ -1,4 +1,4 @@
-#!/usr/bin/php
+#!/usr/bin/env php
 <?php
 /* Copyright (C) 2009 Laurent Destailleur  <eldy@users.sourceforge.net>
  *
diff --git a/dev/examples/create_product.php b/dev/examples/create_product.php
index 6ecce081d45..61598ff59d9 100755
--- a/dev/examples/create_product.php
+++ b/dev/examples/create_product.php
@@ -1,4 +1,4 @@
-#!/usr/bin/php
+#!/usr/bin/env php
 <?php
 /* Copyright (C) 2009 Laurent Destailleur  <eldy@users.sourceforge.net>
  *
diff --git a/dev/examples/create_user.php b/dev/examples/create_user.php
index d6126af2cba..f745032f575 100755
--- a/dev/examples/create_user.php
+++ b/dev/examples/create_user.php
@@ -1,4 +1,4 @@
-#!/usr/bin/php
+#!/usr/bin/env php
 <?php
 /* Copyright (C) 2009 Laurent Destailleur  <eldy@users.sourceforge.net>
  *
diff --git a/dev/examples/get_contracts.php b/dev/examples/get_contracts.php
index d1be3d9d7bf..1262fe3eebd 100755
--- a/dev/examples/get_contracts.php
+++ b/dev/examples/get_contracts.php
@@ -1,4 +1,4 @@
-#!/usr/bin/php
+#!/usr/bin/env php
 <?php
 /* Copyright (C) 2009 Laurent Destailleur  <eldy@users.sourceforge.net>
  *
diff --git a/dev/initdata/generate-invoice.php b/dev/initdata/generate-invoice.php
index 321cc6af06a..c1b2f2646a5 100755
--- a/dev/initdata/generate-invoice.php
+++ b/dev/initdata/generate-invoice.php
@@ -1,4 +1,4 @@
-#!/usr/bin/php
+#!/usr/bin/env php
 <?php
 /* Copyright (C) 2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
  *
diff --git a/dev/initdata/generate-order.php b/dev/initdata/generate-order.php
index 6ba813c5135..082d5428c97 100755
--- a/dev/initdata/generate-order.php
+++ b/dev/initdata/generate-order.php
@@ -1,4 +1,4 @@
-#!/usr/bin/php
+#!/usr/bin/env php
 <?php
 /* Copyright (C) 2003      Rodolphe Quiedeville <rodolphe@quiedeville.org>
  * Copyright (C) 2004-2007 Laurent Destailleur  <eldy@users.sourceforge.net>
diff --git a/dev/initdata/generate-product.php b/dev/initdata/generate-product.php
index 38c0e755db3..975fc1ba33d 100755
--- a/dev/initdata/generate-product.php
+++ b/dev/initdata/generate-product.php
@@ -1,4 +1,4 @@
-#!/usr/bin/php
+#!/usr/bin/env php
 <?php
 /* Copyright (C) 2003      Rodolphe Quiedeville <rodolphe@quiedeville.org>
  * Copyright (C) 2004-2010 Laurent Destailleur  <eldy@users.sourceforge.net>
diff --git a/dev/initdata/generate-proposal.php b/dev/initdata/generate-proposal.php
index 8e17e673b86..8d413a518c1 100755
--- a/dev/initdata/generate-proposal.php
+++ b/dev/initdata/generate-proposal.php
@@ -1,4 +1,4 @@
-#!/usr/bin/php
+#!/usr/bin/env php
 <?php
 /* Copyright (C) 2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
  * Copyright (C) 2007 Laurent Destailleur  <eldy@users.sourceforge.net>
diff --git a/dev/initdata/generate-thirdparty.php b/dev/initdata/generate-thirdparty.php
index 9d928db6ac0..d6e9d4c9393 100755
--- a/dev/initdata/generate-thirdparty.php
+++ b/dev/initdata/generate-thirdparty.php
@@ -1,4 +1,4 @@
-#!/usr/bin/php
+#!/usr/bin/env php
 <?php
 /* Copyright (C) 2003      Rodolphe Quiedeville <rodolphe@quiedeville.org>
  * Copyright (C) 2006-2013 Laurent Destailleur  <eldy@users.sourceforge.net>
diff --git a/dev/initdata/sftpget_and_loaddump.php b/dev/initdata/sftpget_and_loaddump.php
index 72a33cf197c..64c5ddeb24d 100755
--- a/dev/initdata/sftpget_and_loaddump.php
+++ b/dev/initdata/sftpget_and_loaddump.php
@@ -1,4 +1,4 @@
-#!/usr/bin/php
+#!/usr/bin/env php
 <?php
 /* Copyright (C) 2012 Laurent Destailleur	<eldy@users.sourceforge.net>
  *
diff --git a/dev/skeletons/build_api_class.php b/dev/skeletons/build_api_class.php
index 4ed122c95d8..6263eabcd6e 100755
--- a/dev/skeletons/build_api_class.php
+++ b/dev/skeletons/build_api_class.php
@@ -1,4 +1,4 @@
-#!/usr/bin/php
+#!/usr/bin/env php
 <?php
 /* Copyright (C) 2015   Jean-François Ferry <jfefe@aternatik.fr>
  *
diff --git a/dev/skeletons/build_class_from_table.php b/dev/skeletons/build_class_from_table.php
index 803a6c8b8f5..4de319dabc9 100755
--- a/dev/skeletons/build_class_from_table.php
+++ b/dev/skeletons/build_class_from_table.php
@@ -1,4 +1,4 @@
-#!/usr/bin/php
+#!/usr/bin/env php
 <?php
 /* Copyright (C) 2008-2014 Laurent Destailleur  <eldy@users.sourceforge.net>
  *
diff --git a/dev/skeletons/build_webservice_from_class.php b/dev/skeletons/build_webservice_from_class.php
index ee8772a8a44..c91347a424d 100755
--- a/dev/skeletons/build_webservice_from_class.php
+++ b/dev/skeletons/build_webservice_from_class.php
@@ -1,4 +1,4 @@
-#!/usr/bin/php
+#!/usr/bin/env php
 <?php
 /* Copyright (C) 2009 Laurent Destailleur  <eldy@users.sourceforge.net>
  *
diff --git a/dev/skeletons/skeleton_script.php b/dev/skeletons/skeleton_script.php
index 35904c9bfd3..5eb1565d4a3 100644
--- a/dev/skeletons/skeleton_script.php
+++ b/dev/skeletons/skeleton_script.php
@@ -1,4 +1,4 @@
-#!/usr/bin/php
+#!/usr/bin/env php
 <?php
 /* Copyright (C) 2007-2013 Laurent Destailleur  <eldy@users.sourceforge.net>
  * Copyright (C) ---Put here your own copyright and developer email---
diff --git a/dev/translation/autotranslator.php b/dev/translation/autotranslator.php
index 7fe21adfd73..58314a23b9e 100755
--- a/dev/translation/autotranslator.php
+++ b/dev/translation/autotranslator.php
@@ -1,4 +1,4 @@
-#!/usr/bin/php
+#!/usr/bin/env php
 <?php
 /* Copyright (C) 2009-2012 Laurent Destailleur  <eldy@users.sourceforge.net>
  *
diff --git a/dev/translation/sanity_check_en_langfiles.php b/dev/translation/sanity_check_en_langfiles.php
index f54c179ac09..5eb92509eb1 100755
--- a/dev/translation/sanity_check_en_langfiles.php
+++ b/dev/translation/sanity_check_en_langfiles.php
@@ -1,4 +1,4 @@
-#!/usr/bin/php
+#!/usr/bin/env php
 <?php
 /* Copyright (c) 2015 Tommaso Basilici    <t.basilici@19.coop>
  * Copyright (c) 2015 Laurent Destailleur <eldy@destailleur.fr>
diff --git a/dev/translation/strip_language_file.php b/dev/translation/strip_language_file.php
index d612ff66abf..647b571c788 100755
--- a/dev/translation/strip_language_file.php
+++ b/dev/translation/strip_language_file.php
@@ -1,4 +1,4 @@
-#!/usr/bin/php
+#!/usr/bin/env php
 <?php
 /* Copyright (C) 2014 by FromDual GmbH, licensed under GPL v2
  * Copyright (C) 2014 Laurent Destailleur  <eldy@users.sourceforge.net>
diff --git a/htdocs/filefunc.inc.php b/htdocs/filefunc.inc.php
index 7abc17b49cd..534ef2587bc 100644
--- a/htdocs/filefunc.inc.php
+++ b/htdocs/filefunc.inc.php
@@ -166,7 +166,11 @@ define('DOL_DOCUMENT_ROOT', $dolibarr_main_document_root);			// Filesystem core
 $tmp='';
 $found=0;
 $real_dolibarr_main_document_root=str_replace('\\','/',realpath($dolibarr_main_document_root));	// A) Value found into config file, to say where are store htdocs files. Ex: C:/xxx/dolibarr, C:/xxx/dolibarr/htdocs
-$pathroot=$_SERVER["DOCUMENT_ROOT"];															// B) Value reported by web server setup, to say where is root of web server instance. Ex: C:/xxx/dolibarr, C:/xxx/dolibarr/htdocs
+if (!empty($_SERVER["DOCUMENT_ROOT"])) {
+	$pathroot = $_SERVER["DOCUMENT_ROOT"];                                                      // B) Value reported by web server setup, to say where is root of web server instance. Ex: C:/xxx/dolibarr, C:/xxx/dolibarr/htdocs
+} else {
+	$pathroot = 'BOGUS';
+}
 $paths=explode('/',str_replace('\\','/',$_SERVER["SCRIPT_NAME"]));								// C) Value reported by web server, to say full path on filesystem of a file. Ex: /dolibarr/htdocs/admin/system/phpinfo.php
 // Try to detect if $_SERVER["DOCUMENT_ROOT"]+start of $_SERVER["SCRIPT_NAME"] is $dolibarr_main_document_root. If yes, relative url to add before dol files is this start part.
 $concatpath='';
diff --git a/scripts/accountancy/export-thirdpartyaccount.php b/scripts/accountancy/export-thirdpartyaccount.php
index 0613df19501..05236aabf7e 100755
--- a/scripts/accountancy/export-thirdpartyaccount.php
+++ b/scripts/accountancy/export-thirdpartyaccount.php
@@ -1,4 +1,5 @@
-<?PHP
+#!/usr/bin/env php
+<?php
 /* Copyright (C) 2013-2014 Olivier Geffroy		<jeff@jeffinfo.com>
  * Copyright (C) 2013-2014 Alexandre Spangaro	<aspangaro.dolibarr@gmail.com>
  * Copyright (C) 2014	   Florian Henry		<florian.henry@open-concept.pro>
diff --git a/scripts/bank/export-bank-receipts.php b/scripts/bank/export-bank-receipts.php
index 91b1140d1a1..98ec3dd84cd 100755
--- a/scripts/bank/export-bank-receipts.php
+++ b/scripts/bank/export-bank-receipts.php
@@ -1,4 +1,4 @@
-#!/usr/bin/php
+#!/usr/bin/env php
 <?php
 /*
  * Copyright (C) 2013 Laurent Destailleur  <eldy@users.sourceforge.net>
diff --git a/scripts/company/export-contacts-xls-example.php b/scripts/company/export-contacts-xls-example.php
index f9469848c31..5fd7806a26c 100755
--- a/scripts/company/export-contacts-xls-example.php
+++ b/scripts/company/export-contacts-xls-example.php
@@ -1,4 +1,4 @@
-#!/usr/bin/php
+#!/usr/bin/env php
 <?php
 /*
  * Copyright (C) 2004      Rodolphe Quiedeville <rodolphe@quiedeville.org>
diff --git a/scripts/company/sync_contacts_dolibarr2ldap.php b/scripts/company/sync_contacts_dolibarr2ldap.php
index 2223cd1ca8f..900cdbc35ed 100755
--- a/scripts/company/sync_contacts_dolibarr2ldap.php
+++ b/scripts/company/sync_contacts_dolibarr2ldap.php
@@ -1,4 +1,4 @@
-#!/usr/bin/php
+#!/usr/bin/env php
 <?php
 /*
  * Copyright (C) 2005      Rodolphe Quiedeville <rodolphe@quiedeville.org>
diff --git a/scripts/contracts/email_expire_services_to_customers.php b/scripts/contracts/email_expire_services_to_customers.php
index 8f2fef6a9d6..0f5c91817db 100755
--- a/scripts/contracts/email_expire_services_to_customers.php
+++ b/scripts/contracts/email_expire_services_to_customers.php
@@ -1,4 +1,4 @@
-#!/usr/bin/php
+#!/usr/bin/env php
 <?php
 /*
  * Copyright (C) 2005		Rodolphe Quiedeville <rodolphe@quiedeville.org>
diff --git a/scripts/contracts/email_expire_services_to_representatives.php b/scripts/contracts/email_expire_services_to_representatives.php
index 44ccb4c7e97..ad7ccebcba7 100755
--- a/scripts/contracts/email_expire_services_to_representatives.php
+++ b/scripts/contracts/email_expire_services_to_representatives.php
@@ -1,4 +1,4 @@
-#!/usr/bin/php
+#!/usr/bin/env php
 <?php
 /*
  * Copyright (C) 2005		Rodolphe Quiedeville <rodolphe@quiedeville.org>
diff --git a/scripts/cron/cron_run_jobs.php b/scripts/cron/cron_run_jobs.php
index 81b1955d35f..e163f41e9fc 100755
--- a/scripts/cron/cron_run_jobs.php
+++ b/scripts/cron/cron_run_jobs.php
@@ -1,4 +1,4 @@
-#!/usr/bin/php
+#!/usr/bin/env php
 <?php
 /* Copyright (C) 2012   Nicolas Villa aka Boyquotes http://informetic.fr
  * Copyright (C) 2013   Florian Henry <forian.henry@open-concept.pro
diff --git a/scripts/emailings/mailing-send.php b/scripts/emailings/mailing-send.php
index 9896db73352..cfe26e3d2a4 100755
--- a/scripts/emailings/mailing-send.php
+++ b/scripts/emailings/mailing-send.php
@@ -1,4 +1,4 @@
-#!/usr/bin/php
+#!/usr/bin/env php
 <?php
 /*
  * Copyright (C) 2004      Rodolphe Quiedeville <rodolphe@quiedeville.org>
diff --git a/scripts/invoices/email_unpaid_invoices_to_customers.php b/scripts/invoices/email_unpaid_invoices_to_customers.php
index 0b5e66f49da..02e9db2e0ce 100755
--- a/scripts/invoices/email_unpaid_invoices_to_customers.php
+++ b/scripts/invoices/email_unpaid_invoices_to_customers.php
@@ -1,4 +1,4 @@
-#!/usr/bin/php
+#!/usr/bin/env php
 <?php
 /*
  * Copyright (C) 2005		Rodolphe Quiedeville <rodolphe@quiedeville.org>
diff --git a/scripts/invoices/email_unpaid_invoices_to_representatives.php b/scripts/invoices/email_unpaid_invoices_to_representatives.php
index 2870766ff21..e134d693d74 100755
--- a/scripts/invoices/email_unpaid_invoices_to_representatives.php
+++ b/scripts/invoices/email_unpaid_invoices_to_representatives.php
@@ -1,4 +1,4 @@
-#!/usr/bin/php
+#!/usr/bin/env php
 <?php
 /*
  * Copyright (C) 2005		Rodolphe Quiedeville <rodolphe@quiedeville.org>
diff --git a/scripts/invoices/rebuild_merge_pdf.php b/scripts/invoices/rebuild_merge_pdf.php
index 6fbcdb59538..6727dc5cab7 100755
--- a/scripts/invoices/rebuild_merge_pdf.php
+++ b/scripts/invoices/rebuild_merge_pdf.php
@@ -1,4 +1,4 @@
-#!/usr/bin/php
+#!/usr/bin/env php
 <?php
 /*
  * Copyright (C) 2009-2012 Laurent Destailleur  <eldy@users.sourceforge.net>
diff --git a/scripts/members/sync_members_dolibarr2ldap.php b/scripts/members/sync_members_dolibarr2ldap.php
index bfe16330b79..a0c393d01c2 100755
--- a/scripts/members/sync_members_dolibarr2ldap.php
+++ b/scripts/members/sync_members_dolibarr2ldap.php
@@ -1,4 +1,4 @@
-#!/usr/bin/php
+#!/usr/bin/env php
 <?php
 /**
  * Copyright (C) 2005      Rodolphe Quiedeville <rodolphe@quiedeville.org>
diff --git a/scripts/members/sync_members_ldap2dolibarr.php b/scripts/members/sync_members_ldap2dolibarr.php
index b6a27250557..2319a10a0fd 100755
--- a/scripts/members/sync_members_ldap2dolibarr.php
+++ b/scripts/members/sync_members_ldap2dolibarr.php
@@ -1,4 +1,4 @@
-#!/usr/bin/php
+#!/usr/bin/env php
 <?php
 /**
  * Copyright (C) 2005      Rodolphe Quiedeville <rodolphe@quiedeville.org>
diff --git a/scripts/product/migrate_picture_path.php b/scripts/product/migrate_picture_path.php
index a03e2549006..9d3cba8452f 100755
--- a/scripts/product/migrate_picture_path.php
+++ b/scripts/product/migrate_picture_path.php
@@ -1,4 +1,4 @@
-#!/usr/bin/php
+#!/usr/bin/env php
 <?php
 /* Copyright (C) 2007-2013 Laurent Destailleur  <eldy@users.sourceforge.net>
  * Copyright (C) 2015 Jean Heimburger  <http://tiaris.eu>
diff --git a/scripts/user/sync_groups_dolibarr2ldap.php b/scripts/user/sync_groups_dolibarr2ldap.php
index d751c5ed90c..e661a85beb5 100755
--- a/scripts/user/sync_groups_dolibarr2ldap.php
+++ b/scripts/user/sync_groups_dolibarr2ldap.php
@@ -1,4 +1,4 @@
-#!/usr/bin/php
+#!/usr/bin/env php
 <?php
 /**
  * Copyright (C) 2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
diff --git a/scripts/user/sync_groups_ldap2dolibarr.php b/scripts/user/sync_groups_ldap2dolibarr.php
index b48a4af974e..45b960878ab 100755
--- a/scripts/user/sync_groups_ldap2dolibarr.php
+++ b/scripts/user/sync_groups_ldap2dolibarr.php
@@ -1,4 +1,4 @@
-#!/usr/bin/php
+#!/usr/bin/env php
 <?php
 /**
  * Copyright (C) 2005      Rodolphe Quiedeville <rodolphe@quiedeville.org>
diff --git a/scripts/user/sync_users_dolibarr2ldap.php b/scripts/user/sync_users_dolibarr2ldap.php
index 91ad440e9b2..dd5e3d18de4 100755
--- a/scripts/user/sync_users_dolibarr2ldap.php
+++ b/scripts/user/sync_users_dolibarr2ldap.php
@@ -1,4 +1,4 @@
-#!/usr/bin/php
+#!/usr/bin/env php
 <?php
 /**
  * Copyright (C) 2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
diff --git a/scripts/user/sync_users_ldap2dolibarr.php b/scripts/user/sync_users_ldap2dolibarr.php
index 48917cc1042..9a04f81c557 100755
--- a/scripts/user/sync_users_ldap2dolibarr.php
+++ b/scripts/user/sync_users_ldap2dolibarr.php
@@ -1,4 +1,4 @@
-#!/usr/bin/php
+#!/usr/bin/env php
 <?php
 /**
  * Copyright (C) 2005      Rodolphe Quiedeville <rodolphe@quiedeville.org>
diff --git a/scripts/withdrawals/build_withdrawal_file.php b/scripts/withdrawals/build_withdrawal_file.php
index cb01c3f6678..1a8c673c5f9 100755
--- a/scripts/withdrawals/build_withdrawal_file.php
+++ b/scripts/withdrawals/build_withdrawal_file.php
@@ -1,4 +1,4 @@
-#!/usr/bin/php
+#!/usr/bin/env php
 <?php
 /*
  * Copyright (C) 2005      Rodolphe Quiedeville <rodolphe@quiedeville.org>
diff --git a/test/phpunit/AllTests.php b/test/phpunit/AllTests.php
index d7bd828527f..96e48a7264d 100644
--- a/test/phpunit/AllTests.php
+++ b/test/phpunit/AllTests.php
@@ -36,17 +36,17 @@ require_once dirname(__FILE__).'/../../htdocs/master.inc.php';
 if ($langs->defaultlang != 'en_US')
 {
     print "Error: Default language for company to run tests must be set to en_US or auto. Current is ".$langs->defaultlang."\n";
-    exit;
+    exit(1);
 }
 if (empty($conf->adherent->enabled))
 {
-	print "Error: Module member must be enabled to have significatn results.\n";
-	exit;
+	print "Error: Module member must be enabled to have significant results.\n";
+	exit(1);
 }
 if (! empty($conf->ldap->enabled))
 {
     print "Error: LDAP module should not be enabled.\n";
-    exit;
+    exit(1);
 }
 if (! empty($conf->google->enabled))
 {
diff --git a/test/phpunit/ContactTest.php b/test/phpunit/ContactTest.php
index d9532417fc2..cb0f37875b3 100755
--- a/test/phpunit/ContactTest.php
+++ b/test/phpunit/ContactTest.php
@@ -33,7 +33,7 @@ $langs->load("dict");
 if ($langs->defaultlang != 'en_US')
 {
 	print "Error: Default language for company to run tests must be set to en_US or auto. Current is ".$langs->defaultlang."\n";
-	exit;
+	exit(1);
 }
 
 if (empty($user->id))
diff --git a/test/phpunit/PricesTest.php b/test/phpunit/PricesTest.php
index bb8c90d5f1c..5e0169f9b36 100755
--- a/test/phpunit/PricesTest.php
+++ b/test/phpunit/PricesTest.php
@@ -42,7 +42,7 @@ $conf->global->MAIN_DISABLE_ALL_MAILS=1;
 if (! empty($conf->global->MAIN_ROUNDING_RULE_TOT))
 {
     print "Parameter MAIN_ROUNDING_RULE_TOT must be set to 0 or not set.\n";
-    exit;
+    exit(1);
 }
 
 /**
diff --git a/test/phpunit/WebservicesProductsTest.php b/test/phpunit/WebservicesProductsTest.php
index a751faddb4b..fecc58a65e1 100755
--- a/test/phpunit/WebservicesProductsTest.php
+++ b/test/phpunit/WebservicesProductsTest.php
@@ -43,7 +43,7 @@ $conf->global->MAIN_DISABLE_ALL_MAILS=1;
 if (empty($conf->service->enabled))
 {
 	print "Error: Module service must be enabled.\n";
-	exit;
+	exit(1);
 }
 
 /**
-- 
GitLab


From 0ec62c05cc8c9e342a77b4975c8ddecf9b760fc0 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Mon, 14 Dec 2015 09:14:34 +0100
Subject: [PATCH 174/197] Fix bad var name. Removed warning.

---
 htdocs/comm/action/class/actioncomm.class.php |  4 +-
 htdocs/core/class/conf.class.php              | 68 +++++++++++--------
 2 files changed, 43 insertions(+), 29 deletions(-)

diff --git a/htdocs/comm/action/class/actioncomm.class.php b/htdocs/comm/action/class/actioncomm.class.php
index 55dd28d8029..5b75bbadd00 100644
--- a/htdocs/comm/action/class/actioncomm.class.php
+++ b/htdocs/comm/action/class/actioncomm.class.php
@@ -891,7 +891,7 @@ class ActionComm extends CommonObject
             $agenda_static = new ActionComm($this->db);
 
 	        $response = new WorkboardResponse();
-	        $response->warning_delay = $conf->actions->warning_delay/60/60/24;
+	        $response->warning_delay = $conf->agenda->warning_delay/60/60/24;
 	        $response->label = $langs->trans("ActionsToDo");
 	        $response->url = DOL_URL_ROOT.'/comm/action/listactions.php?status=todo&amp;mainmenu=agenda';
 	        $response->img = img_object($langs->trans("Actions"),"action");
@@ -1380,7 +1380,7 @@ class ActionComm extends CommonObject
 
         $now = dol_now();
 
-        return $this->datep && ($this->datep < ($now - $conf->actions->warning_delay));
+        return $this->datep && ($this->datep < ($now - $conf->agenda->warning_delay));
     }
 
 }
diff --git a/htdocs/core/class/conf.class.php b/htdocs/core/class/conf.class.php
index 3aac36f3f37..7adcd79d364 100644
--- a/htdocs/core/class/conf.class.php
+++ b/htdocs/core/class/conf.class.php
@@ -469,33 +469,47 @@ class Conf
 
 		// Delay before warnings
 		// Avoid strict errors. TODO: Replace xxx->warning_delay with a property ->warning_delay_xxx
-		$this->propal->cloture				= new stdClass();
-		$this->propal->facturation			= new stdClass();
-		$this->commande->client				= new stdClass();
-		$this->commande->fournisseur		= new stdClass();
-		$this->facture->client				= new stdClass();
-		$this->facture->fournisseur			= new stdClass();
-		$this->contrat->services			= new stdClass();
-		$this->contrat->services->inactifs	= new stdClass();
-		$this->contrat->services->expires	= new stdClass();
-		$this->adherent->cotisation			= new stdClass();
-		$this->bank->rappro					= new stdClass();
-		$this->bank->cheque					= new stdClass();
-		$this->expensereport->payment		= new stdClass();
-		$this->actions->warning_delay=(isset($this->global->MAIN_DELAY_ACTIONS_TODO)?$this->global->MAIN_DELAY_ACTIONS_TODO:7)*24*60*60;
-		$this->commande->client->warning_delay=(isset($this->global->MAIN_DELAY_ORDERS_TO_PROCESS)?$this->global->MAIN_DELAY_ORDERS_TO_PROCESS:2)*24*60*60;
-		$this->commande->fournisseur->warning_delay=(isset($this->global->MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS)?$this->global->MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS:7)*24*60*60;
-        $this->propal->cloture->warning_delay=(isset($this->global->MAIN_DELAY_PROPALS_TO_CLOSE)?$this->global->MAIN_DELAY_PROPALS_TO_CLOSE:0)*24*60*60;
-        $this->propal->facturation->warning_delay=(isset($this->global->MAIN_DELAY_PROPALS_TO_BILL)?$this->global->MAIN_DELAY_PROPALS_TO_BILL:0)*24*60*60;
-		$this->facture->client->warning_delay=(isset($this->global->MAIN_DELAY_CUSTOMER_BILLS_UNPAYED)?$this->global->MAIN_DELAY_CUSTOMER_BILLS_UNPAYED:0)*24*60*60;
-		$this->facture->fournisseur->warning_delay=(isset($this->global->MAIN_DELAY_SUPPLIER_BILLS_TO_PAY)?$this->global->MAIN_DELAY_SUPPLIER_BILLS_TO_PAY:0)*24*60*60;
-        $this->contrat->services->inactifs->warning_delay=(isset($this->global->MAIN_DELAY_NOT_ACTIVATED_SERVICES)?$this->global->MAIN_DELAY_NOT_ACTIVATED_SERVICES:0)*24*60*60;
-        $this->contrat->services->expires->warning_delay=(isset($this->global->MAIN_DELAY_RUNNING_SERVICES)?$this->global->MAIN_DELAY_RUNNING_SERVICES:0)*24*60*60;
-		$this->adherent->cotisation->warning_delay=(isset($this->global->MAIN_DELAY_MEMBERS)?$this->global->MAIN_DELAY_MEMBERS:0)*24*60*60;
-		$this->bank->rappro->warning_delay=(isset($this->global->MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE)?$this->global->MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE:0)*24*60*60;
-		$this->bank->cheque->warning_delay=(isset($this->global->MAIN_DELAY_CHEQUES_TO_DEPOSIT)?$this->global->MAIN_DELAY_CHEQUES_TO_DEPOSIT:0)*24*60*60;
-		$this->expensereport->payment->warning_delay=(isset($this->global->MAIN_DELAY_EXPENSEREPORTS_TO_PAY)?$this->global->MAIN_DELAY_EXPENSEREPORTS_TO_PAY:0)*24*60*60;
-
+		if (isset($this->agenda)) {
+		    $this->adherent->cotisation			= new stdClass();
+            $this->adherent->cotisation->warning_delay=(isset($this->global->MAIN_DELAY_MEMBERS)?$this->global->MAIN_DELAY_MEMBERS:0)*24*60*60;
+		}
+        if (isset($this->agenda)) $this->agenda->warning_delay=(isset($this->global->MAIN_DELAY_ACTIONS_TODO)?$this->global->MAIN_DELAY_ACTIONS_TODO:7)*24*60*60;
+        if (isset($this->commande)) {
+            $this->commande->client				= new stdClass();
+    		$this->commande->fournisseur		= new stdClass();
+    		$this->commande->client->warning_delay=(isset($this->global->MAIN_DELAY_ORDERS_TO_PROCESS)?$this->global->MAIN_DELAY_ORDERS_TO_PROCESS:2)*24*60*60;
+    		$this->commande->fournisseur->warning_delay=(isset($this->global->MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS)?$this->global->MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS:7)*24*60*60;
+		}
+		if (isset($this->propal)) {
+		    $this->propal->cloture				= new stdClass();
+    		$this->propal->facturation			= new stdClass();
+	        $this->propal->cloture->warning_delay=(isset($this->global->MAIN_DELAY_PROPALS_TO_CLOSE)?$this->global->MAIN_DELAY_PROPALS_TO_CLOSE:0)*24*60*60;
+            $this->propal->facturation->warning_delay=(isset($this->global->MAIN_DELAY_PROPALS_TO_BILL)?$this->global->MAIN_DELAY_PROPALS_TO_BILL:0)*24*60*60;
+		}
+		if (isset($this->facture)) {
+		    $this->facture->client				= new stdClass();
+    		$this->facture->fournisseur			= new stdClass();
+            $this->facture->client->warning_delay=(isset($this->global->MAIN_DELAY_CUSTOMER_BILLS_UNPAYED)?$this->global->MAIN_DELAY_CUSTOMER_BILLS_UNPAYED:0)*24*60*60;
+		    $this->facture->fournisseur->warning_delay=(isset($this->global->MAIN_DELAY_SUPPLIER_BILLS_TO_PAY)?$this->global->MAIN_DELAY_SUPPLIER_BILLS_TO_PAY:0)*24*60*60;
+		}
+		if (isset($this->contrat)) {
+		    $this->contrat->services			= new stdClass();
+    		$this->contrat->services->inactifs	= new stdClass();
+	   	    $this->contrat->services->expires	= new stdClass();
+		    $this->contrat->services->inactifs->warning_delay=(isset($this->global->MAIN_DELAY_NOT_ACTIVATED_SERVICES)?$this->global->MAIN_DELAY_NOT_ACTIVATED_SERVICES:0)*24*60*60;
+            $this->contrat->services->expires->warning_delay=(isset($this->global->MAIN_DELAY_RUNNING_SERVICES)?$this->global->MAIN_DELAY_RUNNING_SERVICES:0)*24*60*60;
+		}
+		if (isset($this->commande)) {
+		    $this->bank->rappro					= new stdClass();
+    		$this->bank->cheque					= new stdClass();
+            $this->bank->rappro->warning_delay=(isset($this->global->MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE)?$this->global->MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE:0)*24*60*60;
+		    $this->bank->cheque->warning_delay=(isset($this->global->MAIN_DELAY_CHEQUES_TO_DEPOSIT)?$this->global->MAIN_DELAY_CHEQUES_TO_DEPOSIT:0)*24*60*60;
+		}
+		if (isset($this->expensereport)) {
+		    $this->expensereport->payment		= new stdClass();
+		    $this->expensereport->payment->warning_delay=(isset($this->global->MAIN_DELAY_EXPENSEREPORTS_TO_PAY)?$this->global->MAIN_DELAY_EXPENSEREPORTS_TO_PAY:0)*24*60*60;
+		}
+		
 		// For modules that want to disable top or left menu
 		if (! empty($this->global->MAIN_HIDE_TOP_MENU)) $this->dol_hide_topmenu=$this->global->MAIN_HIDE_TOP_MENU;
 		if (! empty($this->global->MAIN_HIDE_LEFT_MENU)) $this->dol_hide_leftmenu=$this->global->MAIN_HIDE_LEFT_MENU;
-- 
GitLab


From af5bcc5312ce891f547e07dfa3a80f47be2805b8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= <frederic.france@free.fr>
Date: Mon, 14 Dec 2015 09:31:40 +0100
Subject: [PATCH 175/197] Update mouvement.php

---
 htdocs/product/stock/mouvement.php | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/htdocs/product/stock/mouvement.php b/htdocs/product/stock/mouvement.php
index a6085699a63..0eb538a4c29 100644
--- a/htdocs/product/stock/mouvement.php
+++ b/htdocs/product/stock/mouvement.php
@@ -203,6 +203,14 @@ if (! empty($search_product))       $sql.= " AND p.label LIKE '%".$db->escape($s
 if (! empty($search_warehouse))     $sql.= " AND e.label LIKE '%".$db->escape($search_warehouse)."%'";
 if (! empty($search_user))          $sql.= " AND u.login LIKE '%".$db->escape($search_user)."%'";
 if (! empty($search_batch))         $sql.= " AND m.batch LIKE '%".$db->escape($search_batch)."%'";
+
+$nbtotalofrecords = 0;
+if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST))
+{
+    $result = $db->query($sql);
+    $nbtotalofrecords = $db->num_rows($result);
+}
+
 $sql.= $db->order($sortfield,$sortorder);
 $sql.= $db->plimit($conf->liste_limit+1, $offset);
 
@@ -248,7 +256,7 @@ if ($resql)
 
         print '<table class="border" width="100%">';
 
-        $linkback = '<a href="'.DOL_URL_ROOT.'/adherents/list.php">'.$langs->trans("BackToList").'</a>';
+        $linkback = '<a href="'.DOL_URL_ROOT.'/product/stock/list.php">'.$langs->trans("BackToList").'</a>';
 
         // Ref
         print '<tr><td width="25%">'.$langs->trans("Ref").'</td><td colspan="3">';
@@ -470,8 +478,8 @@ if ($resql)
     if (!empty($snom)) $param.='&snom='.urlencode($snom); // FIXME $snom is not defined
     if ($search_user)    $param.='&search_user='.urlencode($search_user);
     if ($idproduct > 0)  $param.='&idproduct='.$idproduct;
-    if ($id) print_barre_liste($texte, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder,'',$num,0,'');
-    else print_barre_liste($texte, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder,'',$num);
+    if ($id) print_barre_liste($texte, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder,'',$num, $nbtotalofrecords,'');
+    else print_barre_liste($texte, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder,'',$num, $nbtotalofrecords);
 
     print '<form method="get" action="'.$_SERVER["PHP_SELF"].'">';
     if ($id) print '<input type="hidden" name="id" value="'.$id.'">';
-- 
GitLab


From e415a3ddf279911383f60dc2511d892c071750c4 Mon Sep 17 00:00:00 2001
From: Bahfir Abbes <bafbes@gmail.com>
Date: Mon, 14 Dec 2015 15:01:29 +0100
Subject: [PATCH 176/197] Update facture.php

fix change customer function in customer invoices - include customers or prospects only
---
 htdocs/compta/facture.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/htdocs/compta/facture.php b/htdocs/compta/facture.php
index 9ce11ee5abf..4d3c194bce1 100644
--- a/htdocs/compta/facture.php
+++ b/htdocs/compta/facture.php
@@ -2837,7 +2837,7 @@ else if ($id > 0 || ! empty($ref))
 	print '</tr></table>';
 	print '</td><td colspan="5">';
 	if ($action == 'editthirdparty') {
-		$form->form_thirdparty($_SERVER['PHP_SELF'] . '?facid=' . $object->id, $object->socid, 'socid');
+		$form->form_thirdparty($_SERVER['PHP_SELF'] . '?facid=' . $object->id, $object->socid, 'socid','client>0');
 	} else {
 		print ' &nbsp;' . $soc->getNomUrl(1, 'compta');
 		print ' &nbsp; ';
-- 
GitLab


From 4c60569cc4bde2fe733217d8fd1c7c4597b94d69 Mon Sep 17 00:00:00 2001
From: Sof <virtualsof@yahoo.fr>
Date: Mon, 14 Dec 2015 15:42:21 +0100
Subject: [PATCH 177/197] FIX : Fatal error: Cannot access empty property

---
 htdocs/admin/livraison.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/htdocs/admin/livraison.php b/htdocs/admin/livraison.php
index f9cee8a75f3..04183bed336 100644
--- a/htdocs/admin/livraison.php
+++ b/htdocs/admin/livraison.php
@@ -503,7 +503,7 @@ print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
 print '<input type="hidden" name="action" value="set_DELIVERY_FREE_TEXT">';
 print '<tr '.$bc[$var].'><td colspan="2">';
 print $langs->trans("FreeLegalTextOnDeliveryReceipts").' ('.$langs->trans("AddCRIfTooLong").')<br>';
-print '<textarea name="DELIVERY_FREE_TEXT" class="flat" cols="120">'.$conf->global->DELIVERY_FREE_TEXT.'</textarea>';
+$variablename='DELIVERY_FREE_TEXT';
 if (empty($conf->global->PDF_ALLOW_HTML_FOR_FREE_TEXT))
 {
     print '<textarea name="'.$variablename.'" class="flat" cols="120">'.$conf->global->$variablename.'</textarea>';
-- 
GitLab


From 0fe64c6091be75e222f13cfaa6d25e7aeea4982c Mon Sep 17 00:00:00 2001
From: philippe grand <philippe.grand@atoo-net.com>
Date: Mon, 14 Dec 2015 20:54:55 +0100
Subject: [PATCH 178/197] [Qual] Uniformize code

---
 htdocs/product/card.php            | 44 ++++++++++++++++--------------
 htdocs/product/document.php        |  6 ++--
 htdocs/product/fournisseurs.php    | 16 +++++------
 htdocs/product/list.php            |  2 +-
 htdocs/product/price.php           | 36 ++++++++++++------------
 htdocs/product/stock/mouvement.php |  2 +-
 htdocs/product/stock/product.php   |  4 +--
 htdocs/product/stock/replenish.php |  8 +++---
 htdocs/product/traduction.php      |  6 ++--
 9 files changed, 63 insertions(+), 61 deletions(-)

diff --git a/htdocs/product/card.php b/htdocs/product/card.php
index 77b14b24c7a..e166b15c8ee 100644
--- a/htdocs/product/card.php
+++ b/htdocs/product/card.php
@@ -149,21 +149,21 @@ if (empty($reshook))
         	else $errors[] = 'FailedToValidateBarCode';
 
 			$error++;
-			setEventMessage($errors,'errors');
+			setEventMessages($errors, null, 'errors');
 		}
     }
 
     if ($action == 'setaccountancy_code_buy') {
 
 	    $result = $object->setAccountancyCode('buy', GETPOST('accountancy_code_buy'));
-        if ($result < 0) setEventMessage(join(',',$object->errors), 'errors');
+        if ($result < 0) setEventMessages(join(',',$object->errors), null, 'errors');
         $action="";
     }
 
     if ($action == 'setaccountancy_code_sell')
     {
 	    $result = $object->setAccountancyCode('sell', GETPOST('accountancy_code_sell'));
-	    if ($result < 0) setEventMessage(join(',',$object->errors), 'errors');
+	    if ($result < 0) setEventMessages(join(',',$object->errors), null, 'errors');
 	    $action="";
     }
 
@@ -174,13 +174,13 @@ if (empty($reshook))
 
         if (! GETPOST('label'))
         {
-            setEventMessage($langs->trans('ErrorFieldRequired',$langs->transnoentities('Label')), 'errors');
+            setEventMessages($langs->trans('ErrorFieldRequired',$langs->transnoentities('Label')), null, 'errors');
             $action = "create";
             $error++;
         }
         if (empty($ref))
         {
-            setEventMessage($langs->trans('ErrorFieldRequired',$langs->transnoentities('Ref')), 'errors');
+            setEventMessages($langs->trans('ErrorFieldRequired',$langs->transnoentities('Ref')), null, 'errors');
             $action = "create";
             $error++;
         }
@@ -224,7 +224,8 @@ if (empty($reshook))
             if ($result < 0)
             {
             	$error++;
-            	setEventMessage('Failed to get bar code type information '.$stdobject->error, 'errors');
+            	$mesg='Failed to get bar code type information ';
+            	setEventMessages($mesg.$stdobject->error, $mesg.$stdobject->errors, 'errors');
             }
             $object->barcode_type_code      = $stdobject->barcode_type_code;
             $object->barcode_type_coder     = $stdobject->barcode_type_coder;
@@ -290,8 +291,8 @@ if (empty($reshook))
             }
             else
 			{
-            	if (count($object->errors)) setEventMessage($object->errors, 'errors');
-				else setEventMessage($langs->trans($object->error), 'errors');
+            	if (count($object->errors)) setEventMessages($object->error, $object->errors, 'errors');
+				else setEventMessages($langs->trans($object->error), null, 'errors');
                 $action = "create";
             }
         }
@@ -353,7 +354,8 @@ if (empty($reshook))
     	        if ($result < 0)
     	        {
     	        	$error++;
-    	        	setEventMessage('Failed to get bar code type information '.$stdobject->error, 'errors');
+    	        	$mesg='Failed to get bar code type information ';
+            		setEventMessages($mesg.$stdobject->error, $mesg.$stdobject->errors, 'errors');
     	        }
     	        $object->barcode_type_code      = $stdobject->barcode_type_code;
     	        $object->barcode_type_coder     = $stdobject->barcode_type_coder;
@@ -378,15 +380,15 @@ if (empty($reshook))
                     }
                     else
 					{
-						if (count($object->errors)) setEventMessage($object->errors, 'errors');
-                    	else setEventMessage($langs->trans($object->error), 'errors');
+						if (count($object->errors)) setEventMessages($object->error, $object->errors, 'errors');
+                    	else setEventMessages($langs->trans($object->error), null, 'errors');
                         $action = 'edit';
                     }
                 }
                 else
 				{
-					if (count($object->errors)) setEventMessage($object->errors, 'errors');
-                	else setEventMessage($langs->trans("ErrorProductBadRefOrLabel"), 'errors');
+					if (count($object->errors)) setEventMessages($object->error, $object->errors, 'errors');
+                	else setEventMessages($langs->trans("ErrorProductBadRefOrLabel"), null, 'errors');
                     $action = 'edit';
                 }
             }
@@ -400,7 +402,7 @@ if (empty($reshook))
     {
         if (! GETPOST('clone_content') && ! GETPOST('clone_prices') )
         {
-        	setEventMessage($langs->trans("NoCloneOptionsSpecified"), 'errors');
+        	setEventMessages($langs->trans("NoCloneOptionsSpecified"), null, 'errors');
         }
         else
         {
@@ -427,7 +429,7 @@ if (empty($reshook))
                             if ($result < 1)
                             {
                                 $db->rollback();
-                                setEventMessage($langs->trans('ErrorProductClone'), 'errors');
+                                setEventMessages($langs->trans('ErrorProductClone'), null, 'errors');
                                 header("Location: ".$_SERVER["PHP_SELF"]."?id=".$originalId);
                                 exit;
                             }
@@ -454,7 +456,7 @@ if (empty($reshook))
 
                             $mesg=$langs->trans("ErrorProductAlreadyExists",$object->ref);
                             $mesg.=' <a href="'.$_SERVER["PHP_SELF"].'?ref='.$object->ref.'">'.$langs->trans("ShowCardHere").'</a>.';
-                            setEventMessage($mesg, 'errors');
+                            setEventMessages($mesg, null, 'errors');
                             $object->fetch($id);
                         }
                         else
@@ -462,12 +464,12 @@ if (empty($reshook))
                             $db->rollback();
                             if (count($object->errors))
                             {
-                            	setEventMessage($object->errors, 'errors');
+                            	setEventMessages($object->error, $object->errors, 'errors');
                             	dol_print_error($db,$object->errors);
                             }
                             else
                             {
-                            	setEventMessage($langs->trans($object->error), 'errors');
+                            	setEventMessages($langs->trans($object->error), null, 'errors');
                             	dol_print_error($db,$object->error);
                             }
                         }
@@ -498,7 +500,7 @@ if (empty($reshook))
         }
         else
         {
-        	setEventMessage($langs->trans($object->error), 'errors');
+        	setEventMessages($langs->trans($object->error), null, 'errors');
             $reload = 0;
             $action='';
         }
@@ -624,7 +626,7 @@ if (empty($reshook))
                     return;
                 }
 
-                setEventMessage($langs->trans("ErrorUnknown") . ": $result", 'errors');
+                setEventMessages($langs->trans("ErrorUnknown") . ": $result", null, 'errors');
             } elseif (GETPOST('commandeid') > 0) {
                 $result = $commande->addline(
                     $desc,
@@ -696,7 +698,7 @@ if (empty($reshook))
         }
         else {
             $action="";
-            setEventMessage($langs->trans("WarningSelectOneDocument"), 'warnings');
+            setEventMessages($langs->trans("WarningSelectOneDocument"), null, 'warnings');
 
         }
     }
diff --git a/htdocs/product/document.php b/htdocs/product/document.php
index ecb3d12bb52..8a4c68990c6 100644
--- a/htdocs/product/document.php
+++ b/htdocs/product/document.php
@@ -105,7 +105,7 @@ if (empty($reshook))
 			$filetomerge->file_name=$filename;
 			$result=$filetomerge->delete_by_file($user);
 			if ($result<0) {
-				setEventMessage($filetomerge->error,'errors');
+				setEventMessages($filetomerge->error, $filetomerge->errors, 'errors');
 			}
 		}
 	}
@@ -137,7 +137,7 @@ if ($action=='filemerge')
 			$result=$filetomerge->delete_by_product($user, $object->id);
 		}
 		if ($result<0) {
-			setEventMessage($filetomerge->error,'errors');
+			setEventMessages($filetomerge->error, $filetomerge->errors, 'errors');
 		}
 
 		// for each file checked add it to the product
@@ -152,7 +152,7 @@ if ($action=='filemerge')
 
 				$result=$filetomerge->create($user);
 				if ($result<0) {
-					setEventMessage($filetomerge->error,'errors');
+					setEventMessages($filetomerge->error, $filetomerge->errors, 'errors');
 				}
 			}
 		}
diff --git a/htdocs/product/fournisseurs.php b/htdocs/product/fournisseurs.php
index 04007d2ede1..1f5e35a043a 100644
--- a/htdocs/product/fournisseurs.php
+++ b/htdocs/product/fournisseurs.php
@@ -101,7 +101,7 @@ if (empty($reshook))
 			if ($result > 0)
 			{
 				$object->cost_price = price2num($cost_price);
-				setEventMessage($langs->trans("RecordSaved"));
+				setEventMessages($langs->trans("RecordSaved"), null, 'mesgs');
 			}
 			else
 			{
@@ -119,7 +119,7 @@ if (empty($reshook))
 			$action = '';
 			$result=$object->remove_product_fournisseur_price($rowid);
 			if($result > 0){
-				setEventMessage($langs->trans("PriceRemoved"));
+				setEventMessages($langs->trans("PriceRemoved"), null, 'mesgs');
 			}else{
 				$error++;
 				setEventMessages($object->error, $object->errors, 'errors');
@@ -151,7 +151,7 @@ if (empty($reshook))
 		{
 			$error++;
 			$langs->load("errors");
-			setEventMessage($langs->trans("ErrorFieldMustBeANumeric",'eeee'), 'errors');
+			setEventMessages($langs->trans("ErrorFieldMustBeANumeric",'eeee'), null, 'errors');
 		}
 		if (empty($quantity))
 		{
@@ -199,12 +199,12 @@ if (empty($reshook))
 					$object->fetch($object->product_id_already_linked);
 					$productLink = $object->getNomUrl(1,'supplier');
 
-					setEventMessage($langs->trans("ReferenceSupplierIsAlreadyAssociatedWithAProduct",$productLink), 'errors');
+					setEventMessages($langs->trans("ReferenceSupplierIsAlreadyAssociatedWithAProduct",$productLink), null, 'errors');
 				}
 				else if ($ret < 0)
 				{
 					$error++;
-					setEventMessage($object->error, 'errors');
+					setEventMessages($object->error, $object->errors, 'errors');
 				}
 			}
 
@@ -220,7 +220,7 @@ if (empty($reshook))
 				{
 
 					$error++;
-					setEventMessage($object->error, $object->errors, 'errors');
+					setEventMessages($object->error, $object->errors, 'errors');
 				}
 				else
 				{
@@ -231,7 +231,7 @@ if (empty($reshook))
 						$price_result = $priceparser->parseProductSupplier($id, $price_expression, $quantity, $tva_tx);
 						if ($price_result < 0) { //Expression is not valid
 							$error++;
-							setEventMessage($priceparser->translatedError(), 'errors');
+							setEventMessages($priceparser->translatedError(), null, 'errors');
 						}
 					}
 					if (! $error && ! empty($conf->dynamicprices->enabled)) {
@@ -239,7 +239,7 @@ if (empty($reshook))
 						if ($ret < 0)
 						{
 							$error++;
-							setEventMessage($object->error, 'errors');
+							setEventMessages($object->error, $object->errors, 'errors');
 						}
 					}
 				}
diff --git a/htdocs/product/list.php b/htdocs/product/list.php
index b656b88efc6..335f6cd346a 100644
--- a/htdocs/product/list.php
+++ b/htdocs/product/list.php
@@ -293,7 +293,7 @@ else
 
     	// Displays product removal confirmation
     	if (GETPOST('delprod'))	{
-		    setEventMessage($langs->trans("ProductDeleted", GETPOST('delprod')));
+		    setEventMessages($langs->trans("ProductDeleted", GETPOST('delprod')), null, 'mesgs');
 	    }
 
     	if ($sref) $param="&amp;sref=".$sref;
diff --git a/htdocs/product/price.php b/htdocs/product/price.php
index 2a770841c60..e5b93d981af 100644
--- a/htdocs/product/price.php
+++ b/htdocs/product/price.php
@@ -6,7 +6,7 @@
  * Copyright (C) 2006		Andre Cianfarani		<acianfa@free.fr>
  * Copyright (C) 2014		Florian Henry			<florian.henry@open-concept.pro>
  * Copyright (C) 2014		Juanjo Menent			<jmenent@2byte.es>
- * Copyright (C) 2014 	    Philippe Grand 		    <philippe.grand@atoo-net.com>
+ * Copyright (C) 2014-2015 	Philippe Grand 		    <philippe.grand@atoo-net.com>
  * Copyright (C) 2014		Ion agorria				<ion@agorria.com>
  * Copyright (C) 2015		Alexandre Spangaro		<aspangaro.dolibarr@gmail.com>
  * Copyright (C) 2015		Marcos García			<marcosgdf@gmail.com>
@@ -131,7 +131,7 @@ if (empty($reshook))
 
 				if ($priceparser->parseProduct($object) < 0) {
 					$error ++;
-					setEventMessage($priceparser->translatedError(), 'errors');
+					setEventMessages($priceparser->translatedError(), null, 'errors');
 				}
 			}
 		}
@@ -194,7 +194,7 @@ if (empty($reshook))
 				$newprice_min = price2num($val['price_min'], 'MU');
 
 				if (!empty($conf->global->PRODUCT_MINIMUM_RECOMMENDED_PRICE) && $newprice_min < $maxpricesupplier) {
-					setEventMessage($langs->trans("MinimumPriceLimit", price($maxpricesupplier, 0, '', 1, - 1, - 1, 'auto')), 'errors');
+					setEventMessages($langs->trans("MinimumPriceLimit", price($maxpricesupplier, 0, '', 1, - 1, - 1, 'auto')), null, 'errors');
 					$error ++;
 					break;
 				}
@@ -203,7 +203,7 @@ if (empty($reshook))
 
 				if ($res < 0) {
 					$error ++;
-					setEventMessage($object->error, 'errors');
+					setEventMessages($object->error, $object->errors, 'errors');
 					break;
 				}
 			}
@@ -211,12 +211,12 @@ if (empty($reshook))
 
 		if (!$error && $object->update($object->id, $user) < 0) {
 			$error++;
-			setEventMessage($object->error, 'errors');
+			setEventMessages($object->error, $object->errors, 'errors');
 		}
 
 		if (empty($error)) {
 			$action = '';
-			setEventMessage($langs->trans("RecordSaved"));
+			setEventMessages($langs->trans("RecordSaved"), null, 'mesgs');
 			$db->commit();
 		} else {
 			$action = 'edit_price';
@@ -229,7 +229,7 @@ if (empty($reshook))
 	{
 		$result = $object->log_price_delete($user, $_GET ["lineid"]);
 		if ($result < 0) {
-			setEventMessage($object->error, 'errors');
+			setEventMessages($object->error, $object->errors, 'errors');
 		}
 	}
 
@@ -341,7 +341,7 @@ if (empty($reshook))
 
 		if (! empty($conf->global->PRODUCT_MINIMUM_RECOMMENDED_PRICE) && $prodcustprice->price_min<$maxpricesupplier)
 		{
-			setEventMessage($langs->trans("MinimumPriceLimit",price($maxpricesupplier,0,'',1,-1,-1,'auto')),'errors');
+			setEventMessages($langs->trans("MinimumPriceLimit",price($maxpricesupplier,0,'',1,-1,-1,'auto')), null, 'errors');
 			$error++;
 			$action='add_customer_price';
 		}
@@ -351,9 +351,9 @@ if (empty($reshook))
 			$result = $prodcustprice->create($user, 0, $update_child_soc);
 
 			if ($result < 0) {
-				setEventMessage($prodcustprice->error, 'errors');
+				setEventMessages($prodcustprice->error, $prodcustprice->errors, 'errors');
 			} else {
-				setEventMessage($langs->trans('RecordSaved'), 'mesgs');
+				setEventMessages($langs->trans('RecordSaved'), null, 'mesgs');
 			}
 
 			$action = '';
@@ -367,9 +367,9 @@ if (empty($reshook))
 		$result = $prodcustprice->delete($user);
 
 		if ($result < 0) {
-			setEventMessage($prodcustprice->error, 'mesgs');
+			setEventMessages($prodcustprice->error, $prodcustprice->errors, 'mesgs');
 		} else {
-			setEventMessage($langs->trans('RecordDeleted'), 'errors');
+			setEventMessages($langs->trans('RecordDeleted'), null, 'errors');
 		}
 		$action = '';
 	}
@@ -391,7 +391,7 @@ if (empty($reshook))
 
 		if ($prodcustprice->price_min<$maxpricesupplier && !empty($conf->global->PRODUCT_MINIMUM_RECOMMENDED_PRICE))
 		{
-			setEventMessage($langs->trans("MinimumPriceLimit",price($maxpricesupplier,0,'',1,-1,-1,'auto')),'errors');
+			setEventMessages($langs->trans("MinimumPriceLimit",price($maxpricesupplier,0,'',1,-1,-1,'auto')), null, 'errors');
 			$error++;
 			$action='update_customer_price';
 		}
@@ -401,9 +401,9 @@ if (empty($reshook))
 			$result = $prodcustprice->update($user, 0, $update_child_soc);
 
 			if ($result < 0) {
-				setEventMessage($prodcustprice->error, 'errors');
+				setEventMessages($prodcustprice->error, $prodcustprice->errors, 'errors');
 			} else {
-				setEventMessage($langs->trans('Save'), 'mesgs');
+				setEventMessages($langs->trans('Save'), null, 'mesgs');
 			}
 
 			$action = '';
@@ -1257,7 +1257,7 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES))
 
 		$result = $prodcustprice->fetch(GETPOST('lineid', 'int'));
 		if ($result < 0) {
-			setEventMessage($prodcustprice->error, 'errors');
+			setEventMessages($prodcustprice->error, $prodcustprice->errors, 'errors');
 		}
 
 		print '<form action="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '" method="POST">';
@@ -1346,7 +1346,7 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES))
 
 		$result = $prodcustprice->fetch_all_log($sortorder, $sortfield, $conf->liste_limit, $offset, $filter);
 		if ($result < 0) {
-			setEventMessage($prodcustprice->error, 'errors');
+			setEventMessages($prodcustprice->error, $prodcustprice->errors, 'errors');
 		}
 
 		$option = '&socid=' . GETPOST('socid', 'int') . '&id=' . $object->id;
@@ -1422,7 +1422,7 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES))
 
 		$result = $prodcustprice->fetch_all($sortorder, $sortfield, $conf->liste_limit, $offset, $filter);
 		if ($result < 0) {
-			setEventMessage($prodcustprice->error, 'errors');
+			setEventMessages($prodcustprice->error, $prodcustprice->errors, 'errors');
 		}
 
 		$option = '&search_soc=' . $search_soc . '&id=' . $object->id;
diff --git a/htdocs/product/stock/mouvement.php b/htdocs/product/stock/mouvement.php
index a6085699a63..463ac8c5468 100644
--- a/htdocs/product/stock/mouvement.php
+++ b/htdocs/product/stock/mouvement.php
@@ -100,7 +100,7 @@ if ($action == "correct_stock")
 	if (! is_numeric($_POST["nbpiece"]))
 	{
 		$error++;
-		setEventMessage($langs->trans("ErrorFieldMustBeANumeric", $langs->transnoentitiesnoconv("NumberOfUnit")), 'errors');
+		setEventMessages($langs->trans("ErrorFieldMustBeANumeric", $langs->transnoentitiesnoconv("NumberOfUnit")), null, 'errors');
 		$action='correction';
 	}
 
diff --git a/htdocs/product/stock/product.php b/htdocs/product/stock/product.php
index 0476a459f60..ad4acbe362a 100644
--- a/htdocs/product/stock/product.php
+++ b/htdocs/product/stock/product.php
@@ -77,7 +77,7 @@ if ($action == 'setstocklimit')
     $object->seuil_stock_alerte=$stocklimit;
     $result=$object->update($object->id,$user,0,'update');
     if ($result < 0)
-    	setEventMessage($object->error, 'errors');
+    	setEventMessages($object->error, $object->errors, 'errors');
     $action='';
 }
 
@@ -89,7 +89,7 @@ if ($action == 'setdesiredstock')
     $object->desiredstock=$desiredstock;
     $result=$object->update($object->id,$user,0,'update');
     if ($result < 0)
-    	setEventMessage($object->error, 'errors');
+    	setEventMessages($object->error, $object->errors, 'errors');
     $action='';
 }
 
diff --git a/htdocs/product/stock/replenish.php b/htdocs/product/stock/replenish.php
index 620f1acbb40..5df580877c5 100644
--- a/htdocs/product/stock/replenish.php
+++ b/htdocs/product/stock/replenish.php
@@ -176,7 +176,7 @@ if ($action == 'order' && isset($_POST['valid']))
                     $fail++;
                     $msg = $langs->trans('OrderFail') . "&nbsp;:&nbsp;";
                     $msg .= $order->error;
-                    setEventMessage($msg, 'errors');
+                    setEventMessages($msg, null, 'errors');
                 } else {
                     $id = $result;
                 }
@@ -195,7 +195,7 @@ if ($action == 'order' && isset($_POST['valid']))
                     $fail++;
                     $msg = $langs->trans('OrderFail') . "&nbsp;:&nbsp;";
                     $msg .= $order->error;
-                    setEventMessage($msg, 'errors');
+                    setEventMessages($msg, null, 'errors');
                 }
                 $i++;
             }
@@ -205,7 +205,7 @@ if ($action == 'order' && isset($_POST['valid']))
         {
         	$db->commit();
 
-            setEventMessage($langs->trans('OrderCreated'), 'mesgs');
+            setEventMessages($langs->trans('OrderCreated'), null, 'mesgs');
             header('Location: replenishorders.php');
             exit;
         }
@@ -216,7 +216,7 @@ if ($action == 'order' && isset($_POST['valid']))
     }
     if ($box == 0)
     {
-        setEventMessage($langs->trans('SelectProductWithNotNullQty'), 'warnings');
+        setEventMessages($langs->trans('SelectProductWithNotNullQty'), null, 'warnings');
     }
 }
 
diff --git a/htdocs/product/traduction.php b/htdocs/product/traduction.php
index a40b7b15cd9..96c94e9efff 100644
--- a/htdocs/product/traduction.php
+++ b/htdocs/product/traduction.php
@@ -94,7 +94,7 @@ $cancel != $langs->trans("Cancel") &&
 	else
 	{
 		$action = 'add';
-		setEventMessage($object->error,'errors');
+		setEventMessages($object->error, $object->errors, 'errors');
 	}
 }
 
@@ -130,7 +130,7 @@ $cancel != $langs->trans("Cancel") &&
 	else
 	{
 		$action = 'edit';
-		setEventMessage($object->error,'errors');
+		setEventMessages($object->error, $object->errors, 'errors');
 	}
 }
 
@@ -151,7 +151,7 @@ $cancel != $langs->trans("Cancel") &&
 	else
 	{
 		$action = 'edit';
-		setEventMessage($object->error,'errors');
+		setEventMessages($object->error, $object->errors, 'errors');
 	}
 }
 
-- 
GitLab


From ed88a4c398b981e9f6bce8b06f4888c6245b828d Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Mon, 14 Dec 2015 21:38:04 +0100
Subject: [PATCH 179/197] Fix css

---
 htdocs/index.php                | 20 +++++++++++---------
 htdocs/theme/eldy/style.css.php | 15 ++++++++++++---
 htdocs/theme/md/style.css.php   | 13 +++++++++++++
 3 files changed, 36 insertions(+), 12 deletions(-)

diff --git a/htdocs/index.php b/htdocs/index.php
index 94445337720..8bc704520ca 100644
--- a/htdocs/index.php
+++ b/htdocs/index.php
@@ -287,12 +287,10 @@ if (empty($user->societe_id))
 	            $var=!$var;
 	            if (!empty($langfile[$key])) $langs->load($langfile[$key]);
 	            $text=$langs->trans($titres[$key]);
-	            print '<a href="'.$links[$key].'" class="thumbstat nobold nounderline">';
+	            print '<a href="'.$links[$key].'" class="boxstatsindicator thumbstat nobold nounderline">';
 	            print '<div class="boxstats">';
 	            print img_object("",$icons[$key]).' '.$text.'<br>';
-	            //print '</a>';
-	            //print '<a href="'.$links[$key].'">';
-	            print $board->nb[$val];
+	            print '<span class="boxstatsindicator">'.$board->nb[$val].'</span>';
 	            print '</div>';
 	            print '</a>';
 	        }
@@ -454,13 +452,17 @@ foreach($valid_dashboardlines as $board)
 {
     $var=!$var;
     print '<tr '.$bc[$var].'><td width="16">'.$board->img.'</td><td>'.$board->label.'</td>';
-    print '<td align="right"><a href="'.$board->url.'">'.$board->nbtodo.'</a></td>';
+    print '<td align="right"><a class="dashboardlineindicator" href="'.$board->url.'"><span class="dashboardlineindicator">'.$board->nbtodo.'</span></a></td>';
     print '<td align="right">';
-    print '<a href="'.$board->url.'">';
-    print $board->nbtodolate;
-    print '</a></td>';
+    //if ($board->nbtodolate > 0)
+    //{
+        print '<a class="dashboardlineindicatorlate" href="'.$board->url.'"><span class="dashboardlineindicatorlate">';
+        print $board->nbtodolate;
+        print '</span></a>';
+    //}
+    print '</td>';
     print '<td align="left">';
-    if ($board->nbtodolate > 0) print img_picto($langs->trans("NActionsLate",$board->nbtodolate),"warning");
+    if ($board->nbtodolate > 0) print img_picto($langs->trans("NActionsLate",$board->nbtodolate).' (>'.ceil($board->warning_delay).' '.$langs->trans("days").')',"warning");
     else print '&nbsp;';
     print '</td>';
     print '<td class="nowrap" align="right">';
diff --git a/htdocs/theme/eldy/style.css.php b/htdocs/theme/eldy/style.css.php
index a83f3430bc4..d17cd7aec1f 100644
--- a/htdocs/theme/eldy/style.css.php
+++ b/htdocs/theme/eldy/style.css.php
@@ -2323,8 +2323,6 @@ div.pagination li.paginationafterarrows {
 {
 <?php if ($colorbacklinepairhover) { ?>
 	background: rgb(<?php echo $colorbacklinepairhover; ?>) !important;
-<?php } else { ?>
-	/* background: rgba(0, 0, 0, 0.05) !important; */
 <?php } ?>
 }
 
@@ -2524,9 +2522,20 @@ div.tabBar .noborder {
     border-radius: 4px;
 }
 .boxstats:hover {
+<?php if ($colorbacklinepairhover) { ?>
+	background: rgb(<?php echo $colorbacklinepairhover; ?>) !important;
+<?php } else { ?>
 	background-color: #<?php echo colorArrayToHex(colorStringToArray($colorbacklinepair1)); ?>;
+<?php } ?>
+}
+span.boxstatsindicator {
+	font-size: 110%;
+	font-weight: bold;
+}
+span.dashboardlineindicator, span.dashboardlineindicatorlate {
+	font-size: 120%;
+	font-weight: bold;
 }
-
 .boxtable {
     -moz-box-shadow: 3px 3px 4px #DDD;
     -webkit-box-shadow: 3px 3px 4px #DDD;
diff --git a/htdocs/theme/md/style.css.php b/htdocs/theme/md/style.css.php
index ad4237dc769..453365f3908 100644
--- a/htdocs/theme/md/style.css.php
+++ b/htdocs/theme/md/style.css.php
@@ -2349,9 +2349,22 @@ div.tabBar .noborder {
     border: 1px solid #AAA;
     text-align: center;
     border-radius: 2px;
+    min-height: 38px;
 }
 .boxstats:hover {
+<?php if ($colorbacklinepairhover) { ?>
+	background: rgb(<?php echo $colorbacklinepairhover; ?>) !important;
+<?php } else { ?>
 	background-color: #<?php echo colorArrayToHex(colorStringToArray($colorbacklinepair1)); ?>;
+<?php } ?>
+}
+span.boxstatsindicator {
+	font-size: 110%;
+	font-weight: bold;
+}
+span.dashboardlineindicator, span.dashboardlineindicatorlate {
+	font-size: 120%;
+	font-weight: bold;
 }
 
 .boxtable {
-- 
GitLab


From 9fa742ceb2d4302c116031ec09b38ee0dddeff2b Mon Sep 17 00:00:00 2001
From: fappels <francis.appels@yahoo.com>
Date: Mon, 14 Dec 2015 21:38:26 +0100
Subject: [PATCH 180/197] [QUAL] Shipment error handling

---
 htdocs/expedition/card.php                    | 29 +++++++------------
 htdocs/expedition/class/expedition.class.php  |  1 +
 .../stock/class/mouvementstock.class.php      |  8 ++---
 3 files changed, 16 insertions(+), 22 deletions(-)

diff --git a/htdocs/expedition/card.php b/htdocs/expedition/card.php
index 36d85366805..dfe848808c8 100644
--- a/htdocs/expedition/card.php
+++ b/htdocs/expedition/card.php
@@ -224,7 +224,7 @@ if (empty($reshook))
 						$ret=$object->addline($entrepot_id,GETPOST($idl,'int'),GETPOST($qty,'int'));
 						if ($ret < 0)
 						{
-							$mesg='<div class="error">'.$object->error.'</div>';
+							setEventMessages($object->error, $object->errors, 'errors');
 							$error++;
 						}
 					}
@@ -237,7 +237,7 @@ if (empty($reshook))
 						$ret=$object->addline_batch($batch_line[$i]);
 						if ($ret < 0)
 						{
-							$mesg='<div class="error">'.$object->error.'</div>';
+							setEventMessages($object->error, $object->errors, 'errors');
 							$error++;
 						}
 					}
@@ -249,14 +249,14 @@ if (empty($reshook))
 	            $ret=$object->create($user);		// This create shipment (like Odoo picking) and line of shipments. Stock movement will when validating shipment.
 	            if ($ret <= 0)
 	            {
-	                $mesg='<div class="error">'.$object->error.'</div>';
+	                setEventMessages($object->error, $object->errors, 'errors');
 	                $error++;
 	            }
 	        }
 	    }
 	    else
 	    {
-	        $mesg='<div class="error">'.$langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("Qty")).'</div>';
+	        setEventMessages($langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("QtyToShip")), null, 'errors');
 	        $error++;
 	    }
 
@@ -287,7 +287,7 @@ if (empty($reshook))
 	    }
 	    else
 	    {
-	        $mesg=$object->error;
+	        setEventMessages($object->error, $object->errors, 'errors');
 	    }
 	}
 
@@ -337,19 +337,18 @@ if (empty($reshook))
 	    }
 	    else
 		{
-			$langs->load("errors");
-	        setEventMessages($langs->trans($object->error), null, 'errors');
+			setEventMessages($object->error, $object->errors, 'errors');
 	    }
 	}
-
-	else if ($action == 'reopen' && (! empty($user->rights->expedition->creer) || ! empty($user->rights->expedition->shipping_advance->validate)))
+	// TODO add alternative status
+	/*else if ($action == 'reopen' && (! empty($user->rights->expedition->creer) || ! empty($user->rights->expedition->shipping_advance->validate)))
 	{
 	    $result = $object->setStatut(0);
 	    if ($result < 0)
 	    {
-	        $mesg = $object->error;
+	        setEventMessages($object->error, $object->errors, 'errors');
 	    }
-	}
+	}*/
 
 	else if ($action == 'setdate_livraison' && $user->rights->expedition->creer)
 	{
@@ -360,7 +359,7 @@ if (empty($reshook))
 	    $result=$object->set_date_livraison($user,$datedelivery);
 	    if ($result < 0)
 	    {
-	        $mesg='<div class="error">'.$object->error.'</div>';
+	        setEventMessages($object->error, $object->errors, 'errors');
 	    }
 	}
 
@@ -485,8 +484,6 @@ if ($action == 'create')
         setEventMessages($langs->trans("ErrorBadParameters"), null, 'errors');
     }
 
-    dol_htmloutput_mesg($mesg);
-
     if ($origin)
     {
         $classname = ucfirst($origin);
@@ -928,8 +925,6 @@ else if ($id || $ref)
 
 	if ($object->id > 0)
 	{
-		dol_htmloutput_mesg($mesg);
-
 		if (!empty($object->origin))
 		{
 			$typeobject = $object->origin;
@@ -943,8 +938,6 @@ else if ($id || $ref)
 		$head=shipping_prepare_head($object);
 		dol_fiche_head($head, 'shipping', $langs->trans("Shipment"), 0, 'sending');
 
-		dol_htmloutput_mesg($mesg);
-
 		/*
 		 * Confirmation de la suppression
 		*/
diff --git a/htdocs/expedition/class/expedition.class.php b/htdocs/expedition/class/expedition.class.php
index d7bfc9aed98..08b53bf9e25 100644
--- a/htdocs/expedition/class/expedition.class.php
+++ b/htdocs/expedition/class/expedition.class.php
@@ -1068,6 +1068,7 @@ class Expedition extends CommonObject
 								break;
 							}
 						}
+						if ($error) break; // break for loop incase of error
 					} 
 				}
 			}
diff --git a/htdocs/product/stock/class/mouvementstock.class.php b/htdocs/product/stock/class/mouvementstock.class.php
index 561b38977ac..dde89bfb6e5 100644
--- a/htdocs/product/stock/class/mouvementstock.class.php
+++ b/htdocs/product/stock/class/mouvementstock.class.php
@@ -139,15 +139,15 @@ class MouvementStock extends CommonObject
             		$obj = $this->db->fetch_object($resql);
             		if ($this->db->jdate($obj->eatby) != $eatby)
             		{
-						$this->errors[]=$langs->trans("ThisSerialAlreadyExistWithDifferentDate", $batch, $this->db->jdate($obj->eatby), $eatby);
-						dol_syslog($langs->trans("ThisSerialAlreadyExistWithDifferentDate", $batch, $this->db->jdate($obj->eatby), $eatby));
+						$this->errors[]=$langs->trans("ThisSerialAlreadyExistWithDifferentDate", $batch, dol_print_date($this->db->jdate($obj->eatby)), dol_print_date($eatby));
+						dol_syslog($langs->transnoentities("ThisSerialAlreadyExistWithDifferentDate", $batch, dol_print_date($this->db->jdate($obj->eatby)), dol_print_date($eatby)), LOG_ERR);
 						$this->db->rollback();
             			return -3;
             		}
             		if ($this->db->jdate($obj->sellby) != $sellby)
             		{
-						$this->errors[]=$langs->trans("ThisSerialAlreadyExistWithDifferentDate", $batch, $this->db->jdate($obj->sellby), $sellby);
-						dol_syslog($langs->trans("ThisSerialAlreadyExistWithDifferentDate", $batch, $this->db->jdate($obj->sellby), $sellby));
+						$this->errors[]=$langs->trans("ThisSerialAlreadyExistWithDifferentDate", $batch, dol_print_date($this->db->jdate($obj->sellby)), dol_print_date($sellby));
+						dol_syslog($langs->transnoentities("ThisSerialAlreadyExistWithDifferentDate", $batch, dol_print_date($this->db->jdate($obj->sellby)), dol_print_date($sellby)), LOG_ERR);
 						$this->db->rollback();
             			return -3;
             		}
-- 
GitLab


From 687370071b245e9f15a5441bbe65c31c8aead3ea Mon Sep 17 00:00:00 2001
From: aspangaro <alexandre.spangaro@gmail.com>
Date: Mon, 14 Dec 2015 21:38:30 +0100
Subject: [PATCH 181/197] A function to remove zero at the end of the account

---
 htdocs/core/lib/accounting.lib.php | 29 ++++++++++++++++++++++++++++-
 1 file changed, 28 insertions(+), 1 deletion(-)

diff --git a/htdocs/core/lib/accounting.lib.php b/htdocs/core/lib/accounting.lib.php
index 6e6da6bd686..0b1bfb8f4fc 100644
--- a/htdocs/core/lib/accounting.lib.php
+++ b/htdocs/core/lib/accounting.lib.php
@@ -91,6 +91,33 @@ function accounting_prepare_head(AccountingAccount $object)
 	return $head;
 }
 
+/**
+ * Return accounting account without zero on the right
+ *
+ * @param 	string	$account		Accounting account
+ * @return	string          		String without zero on the right
+ */
+function clean_account($account)
+{
+	global $conf;
+
+	// Clean parameters
+	$i = strlen($account);
+
+	if ($i >= 1) {
+		if (substr($account, -1) == 0) {
+			while ( $i >= 1 ) {
+				$account = substr($account, $i);
+
+				$i --;
+			}
+			return $account;
+		}
+	} else {
+		return $account;
+	}
+}
+
 /**
  * Return general accounting account with defined length
  *
@@ -131,7 +158,7 @@ function length_accountg($account)
  */
 function length_accounta($accounta)
 {
-	global $conf, $langs;
+	global $conf;
 
 	$a = $conf->global->ACCOUNTING_LENGTH_AACCOUNT;
 
-- 
GitLab


From 577040746467193dc5a83684c088b871bcc62fbc Mon Sep 17 00:00:00 2001
From: aspangaro <alexandre.spangaro@gmail.com>
Date: Tue, 15 Dec 2015 06:10:33 +0100
Subject: [PATCH 182/197] Complete information on FEC format - french law

---
 ...ien_outil_de_test_agr\303\251\303\251.pdf" | Bin 0 -> 137080 bytes
 dev/iso-normes/format_FEC.pdf                 | Bin 46230 -> 196003 bytes
 2 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 "dev/iso-normes/format_FEC-Lien_outil_de_test_agr\303\251\303\251.pdf"

diff --git "a/dev/iso-normes/format_FEC-Lien_outil_de_test_agr\303\251\303\251.pdf" "b/dev/iso-normes/format_FEC-Lien_outil_de_test_agr\303\251\303\251.pdf"
new file mode 100644
index 0000000000000000000000000000000000000000..1c0d0c91e739f88a744c877728edd1451da7ee2b
GIT binary patch
literal 137080
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
C=4#0R

literal 0
HcmV?d00001

diff --git a/dev/iso-normes/format_FEC.pdf b/dev/iso-normes/format_FEC.pdf
index 2b5770305506bdbee07afbf03ca11bd51dc9c37e..ad62797a1903c335112b68aa9ea34c378ae1132d 100644
GIT binary patch
literal 196003
zcmY!laB<T$)HC5yefaYAWiCSn1BLvgEG`=xednUo#FG3X1r6tnqWs*<(p*h0{eYtU
zl+xtXA_a}$?94>{02en+E{MX+{5+S$l2io^7b_zJLsLT|LsJ72Q%e(5Z36>!0|RwU
zE`8tp6#Po;?6^|%Qb5)lA)FCXS&*ur@0?hYn3JE*r5})(o?5J6tYDxJ#HH_&T3k}B
zU~B^7AvA*|L5A4a=tDGv^>FDs=a=S{D422SduOH;D@22JDHuU1GmseyMiyYo*Z@L-
zoDmd@Fd3v4!(=Y~pw#00(xT+lVg(x;P!J^tr<N2eM1z7yK|dt5qC`R8GdD3k)d@;F
zLut=gE`8UE68GQ|P{`TX=(`&zn1XD!v*Xf_@K4H0O)dc$8DXFRb{?00grR~tOo3Z|
z9$41RK*16u#-;COs9*^4d=Qtun~{Pc*e`Z=Aj5o9Q!*2s@+%agK|V9JG*hrJF^=WZ
zcg)Mn2RRiURA2!v{ovB15^%WtWaeda={w~YrKA=?G#kW%Je*vj5N&8;pkQultYBhl
zp<rQP4l)kpT1c2XCYNO9=W*!=E9i#?d2)dW1&xf7k^(Dz{qpj1y`0qa%(SA!yyR59
z^!(B?y|f~IO^{oWOaQr!NT(QEDwrD@D;Qc>D3}|8J%(fs=`Kl3OUq2oaL!Lj)l12@
z&MHnVF3!x)%S^E~Ff(^_HZe9cGd6WIa5FWtbaghgFgJ5CFgI{DGBz;OD=A3H%t<sb
zFN-&}PtHsMMSiNSkE^?9h-*ZM0SK5Gm|2=y7^|fumZU<YLHWhN%+P=W|C^dBm|0pV
z7+M-Dm>U{W923;>e`ZQ>Dmd&z9Kk^l>>T0<3IPK%0}B&l6H7HZ29UX-f|-S>f{}$K
zD4+&?02vyZn3|Z;Gk`4270k?y6pV~4Kmj%Q1IXCe(v+?NWN2WlU}kEmU~Faq3aP;#
zLMG<MhIGwihDHVoW+vte#%3m<kQ)3UWM*t&PS+4JGBZ#xwX{?)F)&v!qgpu)u0<S+
zN-~pks8e5g`3Jed>MJ92a|;V2b2GKf6sQ&8vfME!#1mAOgQd+4%&}BwYRQQusp<Je
znW;XRsd=`UDaxRF5M3h$m7bBYse-A6p@NZ_xq_)BHETVnPxVsr2~^_P1I571*wEC#
z$OI`+&;lblGX?DNSWv4puOv0Eq*%cS+H?y@EK1EQfi!UuO;1p}5T)q}Z#Z&6Te(OA
z&W;L(T>8n0AkxQK!GKHO#|un`gGgT=1rsj)U`K_LqS90@eJ5W9eZTyo+{7G&ZJ_2R
zifz!=C{l9_+@j^u56?^~$xtx1wBXYBNX<;oC{Zvo0eLDXzbLpMF*#L1-zBvyGdVTL
z-HA)zDYK+FAhpOjKer%159CP;E`7JmoRZWc1%0=i#FA8()a3k>R4#p=)V%bP3<V=g
zb7NyWJB8wsqSVA(u8KKt_OeGyd+sv(W54fp_4?O)($CMk8+rbQ+VckniME^X6{>J~
zHe9}u>|Y?^K1pEGiDPExEE6X?axf}sO=xjwXz@_;YAE7c`ys5<yJ_a!kA2_Y^nL$p
zcm3+LXs1{2R;}Chdf)u2dCTwS9eKE6_uahdr=ONt-_2v$XLazO{c?)~6CWOYxKFrn
z$6ofbgT<D6pS%8lRkG`TK~#mv_PbBF?Ydi55%MGT&5Hc(3#T_6IQy``TK0nl-}b{l
zw|#YzKK=Al%=GHNPBDHv8kv)==WQ=DFH?HIJu!9f`uC@Qf7<t_t0|#_k$uwX%yNZ!
z7uoOqH8v|rSd@Ijx<a;tw=b~6Y~G`Sif^&`E<Eaw4yt|GP-gMrVd8zE6)_BY4|fWR
zq#JmYS>7wS6|eCk@Br)XIc8rH7`hL9y(v3yf5P$x>23Xv+AJ@4C7wFJ{Qk7IGX7pn
zfKzMVEZ*67zdru{zxiydsQD7zj>FDQbM$z4Vx>Kg&bAaic2=g0rP;1sx^NexOT_(c
z`{W*ciD|#xSn=V>+V1BH67f!R^k#F%iLPPQkXGbaz3jcPyv~005Rh+Pcl-AxNDE|W
zlqt?I`ZYg4PrPZB-0`;JgBQ61P8TyupO&@|^*Xh|IYRgK2PTL2y5`a?>Ic@$35)RF
zvMI0qZSHN}khAYLEEM59cuO#57VkBoj{!PUQga^^%W?iu-uipr9{u;H*K70fS1I_l
zi!PQ-FxY+IMYVV6*KX;u680%>4`R%Av#*JHSE~8s)5`Vcor)iPtsfaF+6P5Uh}nDf
znbT{YEbi<VP3h+U=YIZIQ|Q>n(a*N(!3Jwvah9t~FCW(soHAGGo?F?j8iS`(>)s!|
z4~m{$kDgkVF^HG#j^39Q`r^*&Dwl<3e}c`<&Wc)mDf>!V@3BPz5+zZa9oL4R3>Tjs
zHdn)Lp#kg6&bxW_hfkQ!@|`x-b$i^qFweWYOt;sZT^qDp<aFNDPixJ(Bh#<1nN@OH
z?{Sy6-TSheJ$XEq_cq;Fz{gsVUS4%_(%na8GxqK(iv6D`k-E{!@Nf6Ov)Ko$`@x~C
z&26&&z*iH4ujSv)z42Fm>!teEZr=Z!8?*mU$-RF4y1iZ1*T=$7=g--(^{>ZG@%Z~U
z{1o2*-_~>VQN)=Q5l*~s<Tg|sJ`pRh$zNbs*{|Y%LMQ&*ng7={<@<6)+v-ER%J<$q
zc2CgsLuASM=MUG+Wz5~3v}TUm_UPwsZ}RWv`E9@XrYh>H-|pD*y^D5lt6r3yQ5Ilg
zt~8O?Ux(jUhqp(!jNjM1jL&}UTb=q_8Z+arNam_-7A?GWU-|0qPy6<iHnPQaggl66
zu2!t@PxB}`d2Pz04Jn`O)4k8|`Y&r!32vUOk)W<*SIn+A+ipeK-;7fEgDeX^Pxrm;
z;Cge_E2;lqmQOptujOpNp#7&Ill>arpZQfM<nL!?bNmi={!nk)`gh&c|Mt?`axRsc
zL^3R{{=L<nVT0D{*D5dl3Y?BD`+GB5_><El%|MGFkw%%xUY%ZxTbDh_>pgvE%lAj~
zzs3L5(CfZ>Q$7B2#+It?vu`%W?{#1G{b}vbt4EdpUa(cGR#LDtH&V5i@n>ECe~NC4
zNADr=cIFvYQ^Y%#=iQwf`)`ME$3pX%{_MMxo))?py}a`5W#i87`(eNSzF)Uu?N&wk
zu;Y0z`Ti(tfBEh!D8KKn*uI^bTzm3ZfA==l8*H5Y&oG>Ex9j?=GoP;BbTaeg(x&H)
zoI3;EyA~H%8t!;hprmTD*Ti7ruHOaU*1Grd`pVop@!`jh9WF`}Pd^pwK3aaP{MFKg
z);!I5pOsgvzSY0yMa^oNd*AK<nWkMTS->appqwM*9YcNY{~J!Pet**A+V-x0X8Z=x
z`u6h;JyA(@g;Vx*e_HRhO2Mhl$IDS?qL{}CZjUpTRSy?>@#{X!-!ZRrNl~I+M91Bn
z0Nc6?PoAIu@Vhqm!uwfCf3pv7H*zuy&%OU^-Goz5x2)AP*?h@!V#b=K<%&Z7ygrIY
zmj&6WiMR=9Dz-HFU(P6vRh}D@Sj@e>@#2xR&Bu=&yLRnbj@j+|RYrflvFg?Cx~S@{
zo~G5p@VJ6`d2IZbf<>!2&2}GV`g=S^!?NXHVPC0Y|DLZ=uYP};EqdXjz>)IhbLBQP
zt!p%!e*0CytOfa|TlU|Yu>CvJuj^CmO@mqm*So1qT*UcgZRe8a<@tK+ZY@~-bGH6T
z^QO6a{A-z<Pb`ejULj-ACw)WklI)h1mNmu6XP)hP;rqTP_~u%*#l9OiX^8b3SAGt(
zD00y<RokjyW~ptoRzYQ=%ihrQ(h|G=KL~VI-aP*{b3#^T=E)3`Uw>BKd4K1#aI0qj
z?b(N4Mz8qW`shm~hq9mbwpU#{a$j@R-3>kWlmEw`{rdY;4_eJTzff@B*PWr&G8-29
zviZ2Z|7K-At==@q^<h_1Q0BrNdlocHp4rE`MRCnHbG{2-KX&hQNK9s_OWW3MW&Q2=
zwYI-~a-WWG%l+q@_}=HQqdLp%!%Jd=vqSw~u_+60T6B5k!ykWSU+z5k<IjsJHe%Il
z7XC^V-aOA<DQ22isFrAh=IX0l(=GmQTlRj*51!O@ycUnI*4qDEC)_mY?&nl}J<Gta
z>F(ELjo+;M{%m{w>rEHC-@BJfe%;vkFwbsz#_#>tOFpl6Ta|k<#Gr_IlBT`L6^Vtf
zCtZDMvS+9E|B@LCeAAovO$iIsT>EhU|M0`x_$31W@g9tRo%Hv<Vo>AnEaO$aW$EwE
zF8i>f$Ad|8QiO!(2|gteA>(;GeBP_#Z69&7FV!wu8^vzGwLw#!<IfTM|J(KBe!f)v
z@7FGCb@A_}iJS*{A{X4)Bj_{FKu3F(R0H1;nKKVwwY;?r`TJX}|K`E#e+5`>Z;YO6
zwuYTyFN5s1|0_T4|Nj}3#Al=g32e+Lj^SHf&N;W+QQvLOw*8Ci>zm|0tQD@R%dXme
z%lVJgq5AuByOvt3Y_R*&T;3XT!I;bRoBr#!?0&JVDq6E9NY4$End-*vrILOp>&dsz
z*0&^tF9&-~{+NGV?7n5tLe>SM2j+ggp?TzI_pUn+zj<1*gxuyVWh}`qUHDD!$nA-5
z#I`QC-mCwA*-_!phjR^Wk4-b39c{4r(k=B#r?zY`zL6{U_`rVOpW(`(E?ky>0z3<1
z)T%xDp5-|FYs^UKnRuv`Ywx7p>EWqA>P=kgk8s?+BKNhuyfq|mi&oj}R`Z=goyzY$
z^!t3z_9|Ui)cNybXQXK?Q(855|K;7w0$!e}%E@ZF_eNvwFLwX${<?D8qdRu^%|86t
zJHOFb=hJ3^uE?_&wH&TnGx%T5ZrdeyaPh2d>b-Y<$!)CgOD?rotES7av3J{!?@#Zq
za`^YAl<kvlY^Lck<t5KAeiS!%ecYWFl6aW+*vdcuIafLbaW@rCS+T=gU;5XDVnu^V
zPjlH;hnwFH$V`&3F8@;cpuVJ)#mJd?Rnos7=dQ^An0l2h?)2+jj*DB>gUgpZXI#?d
zwd{?p&r?qIEUDE;9#8HHUCM0uTV($G?e;&P$cpTUVE4~2-C<dqd_8afnw&QgS8tz5
zGu~$Pa(Br4@39ekEDtQ$cynua>-m2^XO6~J)XfMIm6$GA@!-_-<Dax<?~GdPy4*bK
z-o1(6YJcW(aRu+2-M!E1u1wi|_uu-*1y-o)|88F%l94mx;9Il*(Pz!`yF(fb-gxM8
zF$=V4cc@HhdCaZE(YjEx)$rt#2%B9uraN^jH1KmDc+l&$(CyJ@C64Rc-km+Cx!#qP
zt!I06@Qt4Lhs<u29=tJeRe1XGv@ca}FC8v=CSM;fzw>A56L#Ie_i1nWH-E6u@tb_O
z*5bLRgra@d1j*)hzWLFUPl$ht=i&Vnsaq->TwK-6dC)1RZs*_HV>u?%ZVR7(@rl*X
z%3!&Xg#Qcfia*hZx0<WmDHb@R_Ue~(zJSK!z-o&ho6hDj<-gze?rxRB<HJwh`2Ic@
zyXV@nn9DCpr6xzdExNs@aKSzA5(cfOJI+hoZ_~c9>-!zfOQ%1+H2iqv!@kE)9d}F;
zSWqAQiB0X<wXmaB&CiA2c3htRi!EC8$es;*5*O;}Y`XoBbJZuQuX~p}`~E09e|^J?
z{OP%OGsR3dRQ`Q;!Pr7@O_^Vb-WS%`Bt!oU<HXF936q@|-~Br(%CdX=*6YFz3zB8H
zCx5@o%@V}V((QUwEvcgQ!m_T4YYwqDx}}XDC2r)@yD{lO)J0a#inU@#a$ChYlcP6g
zZ&RA#Q>;|B=CAAxh1Q){-h>_LIlvGxTYB{j;a!^>g%2KU+?G%w)6RP}&n@He(VA7V
zFL+%R<a2(RzUi=yQrdP-nQik71%9MHJ9ycAs(}s9wVRK(Ju+Eby6KRVVwiZ9^M&2t
z`Iar(?z&3iz{E+P4&3Nb5o1~^+;^JS_ted4aUza7oL-t7s$y)9KRa`<Dr#PN;jFsQ
zqCh4nB}=ox^v=!KZq`<AGWn-s8h%RU)^Ml&+`85D=O?bYS5GFGp1H4|_36K@?Js`^
z2D8>Z&VElBWZgEc_;otmB;aOl=9LI0(<TRQAEo;>H;<+kTfFJpxioe2QR_{08x`!m
zc0P!FQNFn8%<i3L8EytF3FjM=&%WHSKK=ROO{ELnKi9mI-hXdmN7TjZv&G(cJ-b@3
znDWkJajS6A;SWzFk}mGZ$jVEM%fHevvDL!tzzXKN{d*Q^YrJ!^(0f05%b&i7o@~wc
z4#@ra^!gJ=jN*gIj)hC6pRs#+rXz6e_DJ3r8(i5ZU7fs)=gQG%n-*z5iU?^+@02;r
z#A78>5Mn8?TvRr(EZ)J&>dFDpn-}$W)XF*DyS3K+=;5A30Sy8EeU{fZo^5=#`vB9a
z|L3GscZga1o11sNKfm|(zPi&f8ATpCzh@QyRr?i_w)e)<4}b5x^xV{9vDfqT96$bd
ziS7nFW!LXk5nr)>-^t3T<1=^0pSAL>zHms6ZTZ%ncVd&fmv?8C$?xCyeYSM?x_xq@
zx`(|ieVYPbuGHo?@}7TUtJDY2{SFmMzpp)=WM!JPCb6h5cBk{s*!A0Q7+$~AW6kTn
z?#}Zs=aVw0#clskUSF)QvsC9>z_*P(MGG?;%}vUloI1SemfF9TU)G<p!{&?Z4YMwZ
z-mreX;QwP!b0=!eh!F5u;JQqd;h#X?=}xt0N0$X2<XaFrF{8cTV_}1zwC4%F!>Nvo
zeS`EQ_9q<r`zGMsB(Y%rj<@e$#{aP0l8}FpuRdkXv&^SU(yEr4tWSFVe^vjFTJI;%
zzHKOf@srbP_Ue7f7B&ytH;A0twq;TVlO<QYz-+I~hn>;0W*&BC+L?5=D^l%#3D<jv
zf?e0zg=JC-0-_l|7FO<RJ${<CM4#p6gFRb58tiL)aO4D=PaKEzrFXvy*Ew9NXWPVj
z@XW1kOSB(qx+ZjWDg>3)hF;Q_kQMdUGKtcjv0L!|!-sLc>G>ZRgEFEnUORH;&hFeb
z@2<T{KYz37W3#$<6W@de2AhIaOV;{p2z(G17j>I`u$9-}+G<*?U;Z-3f)MEyvkqUs
zYkt9N%Qub54m-PeA8<V?Y(KE?@qrT)i|;DGQ19GtV>tDJcv-%k0MAQ?rH(VF9iIN0
z$C2^v^e*PF;?6hU^xwMq_{!Vdn)^l?$ExSP>%AgwD`@i1ar>#SYg9F^GcPaOWpn0i
zv^7Imc=oP8-{Sgim1{n{{n|R%Q}E=@|6iXQPkrljfoW}X^1+qU?JWu(iu{y(*Dn2!
zU9WD=wBz!#*?iBuk^6gjUAHw~;Iyx04RgPqS$F^KK8a@ii@WCXeEYHNyuQnWP3>vV
z4s^C$KE1HB@<Cl^TF8emg=_6obq}7jRQxgN#^RgSkM)b#mTt{C$i92Cy{+%vc`m=s
z=iZO0KWcc8dwbQV_#~BY=KA^FA&xDF3X&W}8il4!VU1Jn{OQ=aWW|*xjvBudFUJS}
z=5##i$#C+E5Hg(;AmeoAcB4M;QAWOL;`2(DZmnnAWzwwqemd)i`$2_0VHaoW`igE%
zXfrL2mXOcQy7%xn*N^1n7tx2V*cZM%pT`<Ip=7h3&POGNw;4{JJcjy4mh$EA((b=7
z*}E`MX<pdNt1p_?-~M@;u~&MR$+4I{#d{Ac@3xVz+Qr_~%imu7clL=k7vp)3J(-@<
z%WwVr81p_i?1S^^H><S1ewxew?ddPor|fV4e{*y7=3if4P~oy~Q`%QQbv}=LozJIV
z`CmR+ck)Vt6X%TCai+yDwoZN1w{7FZgJIuZXkJ?U{?ojDdGFq)e6IS<_AGo$)$Yr$
zV&V;1uD@`&t59=DbZ^o7DkZV6omPGcTR$gkGruqX>Th4dzRUM=Yv=xT=llO+BICTo
zZ2>D5%z2SGr?0eW>$!ybCox+#s{eS#2r5RHqxBCv{WA9xkK=m!$upM6AhzSZ0^jm>
znM13~b0UmOE8G5U^4k4aK-Xg4pDo+OzpOi@7Z_4hSCAAKyq@EV{nw(C^55p1-sjCO
z%6R<ewk4nJzdxy)|Cd9i<)mnC-|4%BdpuIxo@b=+)=IeFF8#6V*b1}AI}HuFb`v81
zE#kcL-7$3Y{psO-Y4(oK`7PGZ6ui#O#{b~nzWjCPv=*kVc`5O!|MbWH{eNtKR)#K5
z$a3Z7<#sTuT59#FzWEokm7bJ;x8JEwzmwd@#ThjEY(m7k7PG!TeWP}d&ikVVhMUzs
zC|K&K+AGX_Ha$e5O`FG4mrrF1+cEJP=T#dP<vh9W@afn*=D+`a)s}{}^VzO8X^;87
z+<uEoO~n4%&(_Xb-IYfZy#Kt55|KL*ofYDxnGmeV?)l{Q*Ef!i?%B8Jltktm9=M=Y
zQD49D&^`t+iv=+p%X-%Mala7|W4|`FR#~W|E`FP~_%esY6ib=Y`wZFb4o>sDE4TW}
z`FT=GbFVH5$qfH}?0Ip%v7fk2{jD2UPdzl<e!<<{-9&5a-7d9>Wf6g_T`6&^Zwa|~
zTZC~eiNAHUdhVQk(~dn`_^`3?<Bcazj!a0{(tbL9ONq(WEnTioi?bx#%&UB}>^?Gg
zwj|$mdiw3kA>(hd^Q;m+TJZJjFFL-Z<v>Zh-ih;XGG@8Udw)47VseGSF17jd{&v%Y
z$J)j7kIqT9VR-a1g5%bKeV-=(dp6rKp`nFcJ@7kE{I{AfR*a6DtO68YeF{5LoWCKb
zEA0EP>4H8ds^52*pOvz(xKJ}8W!FrbM29;+`}wDz(|vKruleLVFT2|6%hRVv|33Ca
z>$X`;UW(1qX6yE?aiy;V9yGqOm)E;^^X}R`7aJ-r&G#2sqiOPB!B?He`;B+@x_6tN
zN-elr`90hG?arbne{7|be0TpTI32%vwbc>6?Kj_Sn|&cIGw12=<LO7{@5(Hj#aPN@
z&(2f%ePi||QQ2P)n2tRCQ1LT~U*Sh}pxXaQpSF33Ha7F!u>MfVu>Q~o)q^do6+M3@
zvKw#aUfq_y_R8#@E$`pWRlGj`Or4WOvFW>rLKQ`03HNW^`h7k-#rLT{e|1=l+ve(h
z{^YwiiVvJ^6?0%OdDIx!D(0Gh=-#Xc_s!k@yxi`t)vrC}@JZp*i-H4YC|y`|*()h1
zQ?YR7RNXz(zV#i9o0n60Hp%s_=KVPa{K3V1N3!=F&@tvnTUw})cBPHyKbNh{1O9|_
z&L)B9cO|mOdf8p>y_{)m{Z`E+a@y77{x&h(XQ%bs=`wS8FOFJ0W9B@0;ht^V4Q5Gv
zy~^vm=ia-gOIcT6e9|!IV&}0{yN)k=mdqJqpxr94Qjk-e`<<D|_OkNQuRdqb>#v-`
z&CPw-$&r8g?)jH>1$$S7oaUQ+>aD>JM#;_9t*f~A78QifyCRv^ez@c8%Ng-orcbh1
zxLnNS$*jO|4(=SG<%fTt;4xQYi;Y`-&TT#a`~ME5w{$X;45pub!#10Hqw>5tPI~#p
z3vOLlEN_1A=GT4g+xBmttN3QYO0|bJk63;@c9<=`G2z;VuX}DuXzbh&vVDc3ppm$V
zt?9Ai#sv%qGTXluANj2yQlT`Rch35?^>_X&R6hSG-JP}e_FAKeiAyej|MN&g=iie{
zU4}NDOfSN&U$7~&j;?Bn=9~BXNybF6!tEQ{|9(&T^E6_jAGgV@-JAB>C)8hi?#@-h
zW@}-c?<6(D;h)LYKa!L8Hb-pJ-kK4Y=M*hrDtLo2sQ3T(duv*ZzxR{{XfE04{bGOr
zp5Lp3nvZfB-hTPgRv_FlpJn^w*fnqW=?1wjo!X-MEJr!0Nw`Sq(t4&Y(Yg;w5C4i?
zaJoNl_t&?r?sJ>H@BTSj*O*pzZB59k<zc;B?@s>lKL5ykjoN^-=l6f~T4!c;PiW<x
z0$%2+Tz+4scSL<&w59NKy_sv?&)f-FkIN0VYg~B$E~JQA*jTBvRU=5W>DbNMMN6s^
zW*kiDa&H&)GW99oVxRJtm(4>*(fG&ii_fN=S-Z8c{q=2jNtwj!FU~X_ODbCQt#CHy
zmx3+ZcR%#${gvKixOnRh_0(g1j+x2lU4ql)-4$le2$op;`qg31v)3~=@2pcvKVZoC
zc%r1tn~h7Wu4Ra)yBJ)#fAQR#_tLXw&%T;r61JIlx7LUG=U(pnxkXjM&RS@`_~fu{
z%@cS-<Q7l0)et!qb~UTnZMo^$(_zoAhi%nbT#~r8Hl^v@+&QsfFMZ24Ut|$>j8@!l
zWOX;0dzRZhm-QKOxm%rY7-bvY7CcpNaHk+4Qr2Ph%-9d=9cTO4f^Ub1o~pb#tD-Em
zs4zFF@MgjV#%~>s#!_-`51ol@DEoZGJGbWLg(p&HUS}C8q%mJRd2pgwxNmIjW!<}v
z7rhki4eO8Kjd*k5{M|ej-dnA`E4S}F`nl`f!k201DsuZblqXd>CT=-6*-9tvalg8<
ziJPdY7vru)n|8Vid&}-ItlGX|m-7KpUHw&OHiY`RvH0%F-x}?}`b27X4EOA+qOe`M
z8&kZK;wC$!lq%Own)-I-(%Jk$Gxr!yb^QLb^AP`I5C7<&D^8v${abpzUUr8}{VIu)
zzIBa-4I%Sob*HUNxNMtJ@aKDau6@*=41*mPADp?O?eFv`qu$Pu+it?-&|g9^>pb&k
zPktG=d1LpzbN`)V-W`0O_xfOMxfSDu+LDG(N5fsS_A-9Fr4+;0Kd*H6J>Pvj+g(>V
z)HtdLzL{{~#uslD_G76cc4>|CLOvCJIQ{s_Wz{du_w8)rkF3cMYdF`SrrF*Szk1_~
zvuY=9&)wI$Dt^bj{ResFW6Pu0u83uh%v$l}(f%BsU+Z_BxUVtmnYsrnTgTlL>$%?#
z*((}1MF=_TbSX@77S=qjq5os?V%@WAZh9KdI45vEciX;$^*koB4{m(dk~pp}l6HT^
z$|U_~_79J$#Blnbx%E5r;N9zYi&}4{7%b*tue~RkRW@z)TK?6y_~Uo%W1cQKZ9=Wa
z`j3ji1*_ZG?JTR_N&OH_PpOMqHc>~<TWx7VbY$pE-HxklpZl5^cP|SNwac*hP#Tv}
z!?xha!;?3|wIvn{2X_l!*7jokq4s0e!KC-{qMLrT?{3*NCEwe5va!AA(pGh`y23}l
zUSGR+N{wyvY;}<i6Slp+OP$X|wfcSD(<NTN%*H~u`gLQ^j>)Qvxy82LOS!bZDa!A3
z=<}|4W;r=2|6Z#Zg}+13uez3JAdwTcgRgJVR@vH9{4S4Yx}Lo(b#CgRQ{AnlSE6;d
zul~L3$gIgz)U69{T6Z>Fdj8J7+I!okHP=?13FDTqT;Nvl<94j<+&4>#zbjAr+{E{+
z#_hzrm-DY>ePvsG>|I&UIlZ|H@7|v0#^<AVr^Y~EXnN(!FE1w@TXOw1W5nMlfsPUN
zn=S8bHo7}^`k5`oN1w01mUicLhw21oAq~NkJL_#{m2Y3=y=>zvpRi`n_a8r(FT8V}
zHC?13=c%a9qo0=+xqsESR`=+?nXsfqJzcdX{=<%a&Z!$`mWr)D%CPLsN7kd_KTh9I
zwQc!yK6hWpuRqPT)9vlUDi(hDI&blo2`NS|lGn&FJ}{iQG<5d96Mi<a_sn%(y_o;+
z&55tN@z3tn9b;TB=5wx9EtORzb&75Bwr_q%Yv;?$OyB$Y%G$`qa?%aut1Aw&>$fkx
z@TXwOFFVE;Gj1-uD!Aj#xr?j?TT5l<%FFyveD}on#8-jpQugnMo5K%m$u^j^c1Ebc
zx&Dkv(H51BzrXb9yvn#Ujeq5$1>GWV#VtdPRF$?0tY|P`Dy<GW_c>hV<Cbj?GM_(p
z?>e@8YVx6(-BZH<RTta;IGy_6cDnF+yY>0+ukX+a+tPIR@8jG(no~p;X3KXR-u>j^
zUWw`4(pNH?6L$6++*WN`w|g=Fq{8S{cfKn>{-*n;2-v=o?+;kkp3mfw`exyN$(0+j
ziw~`oujXRgld$`$T5L#N%@T!K0TRw9`VURqwlwfBU)sIZZ(hE8_pE5==g*(hHve>Y
zZ+jT3x4=!O!Ey2H`40?=7BBu&d0yR}oB8{^wHYtvqbK!r{C@T<%p-NHysE?ffBfHL
zPSziqlx-Tdl*zE^q*TJzX47q7rmsKU^w=X>sQ7T9rTM&V{eF61_`Z6pyPi4sucPI3
z!%NU$pnUC=x@`>g&*~1X%+}rGx%ymM7~`|od6IK}m_2^EZ?fgYliL?fI-L|;+&oER
z!F0ZU&-7<1TzjuJo@%n(skeVmTh-=QCSNl%YX0%n1m0M9ra>g@(9Y^B?7d57mquP+
zJ>QID?IzW=p2~4sRpwTIc-Sao&{e)H$SH{X?_|%ja~F4a2WvGahOD|#xF_TEzcmIK
zmz9q{Fk&!#>}gVTbJE=f4ZX?7cPyH0zwXaJw_t`wsd+AX^*4<S%#78dRwS0y&zmMF
z;NN92Mc#1<i|me~e^I?9b$MY{>w{-+2)(Sj_hrt-&l{MR99Z&Z#g{`Tz7$=s+a7o2
z^b(`BahDY%b_PVa>elYk-CAM1QA13RGnUKiRK_dW$tSN=%{|2$vW@xjR6mc0G4Cv&
z-dY-cX2X}H{d@1*uY4!g>+dB#ecqmTeBFzWEqm6w><OFP0uj46AsVS_SD8wJn`}e*
zpM0Bj%BT8{*vyD6%9{I^Id3qq))V79r=wFp`G0|TP+CA%<NbZ|>%#e0g=%MA)v{Rb
zu&UGQgYL(im6BIW%J%O5BKf*I_-MS$x#hO6{(m~ttXn9qWnuiF-#hE~%|FxsRqN;d
z%5J-VujfPa^v(H(XUjNx%9j8BrJVNSpZDy4MTSO-&#R+Sb6#EDFSk%{mBDh0>u<UQ
z9m+G5-aa@fH1{4)+eN`w$pNPK8YKSwaqU0w-a+o;?V8Pur>=&tS-D`ZIN!V_nm+$?
zcKno|vfp);dGV?OC(RjGoPt*TE3`a6`^ejxr+zW({=YNUyl)>9VX`xj|Ifip=aZ|~
zU0KsU`+I8Lhv(k+pBWaPy7AI}&%HW@X4_3E&Wp_g=F6}DdgS%AhIfkdj{7?>_obh`
z{<Jb>-rdYn%QapP7uuHW|G$X+r@4FmfsQ{f)^3}xAo?I=|E`5L+Bq6eEN0BPIN`_{
z4;#^v-x5rwYE#8p&$Dh?w03Rp`RD7`t@~xO*S6y62c3zFx3UFq$W2L`TJg-yA?BZZ
z{mw5vb}9m0)i+}FmIqsyP5Qq=&B)T+!cx0u!v9RE)P$tG%)qQ`(hV{%r6aq1&vE*m
z>Q#Hjob%`5tJif8BVwIPt!LX_xT`#K;zNDA9uLK4U9Rwu+t$bD&v+-m;SzN7%bBK=
zX|-3+oZK6xI4e3sW>)9H=`Ihsx63bUdB|OG|Go%^s?x@QmBBmTiY>p&(J|F0HE34M
zcj+C8C!f5vh<dZo$H6r(bkmHxvU6kJUAXb#$dU*<^OIB8%sI8^@19x3O(pgUFTE`6
z?Arn)X2pb@mXeZx=#iH8xNb+W+G?ARZ)6R2y9yRNT|TW;C?XbZqdYSvc-^c70gX*L
z1<&v2-fFYoUwQuL-Q(Od8`g6kvEiG3T3TlQ9NX9!(K&PE8_ze&>31%9?y&q@QTnoH
z4BE^k#dTLJG@r+%-mdsIcb7tjBde(vSJ&>C%U9H8o))vEufJQb8aJWW`?;{*ozKUE
z7Zv{8xN=HHjbrfd6%jg-(a{^D&dw0!7T(i4*SR`KpY`a|pGPOYGb=c-_T`(b?9612
z*2(d6_K3+$mz*27>*Z<h_|*GzW2flr>t^tleTY{0R_S!}V7?c#&^nigp66%(P+ok<
zEKk4x^t6s8GnbkwvU>(52&g`P^J`g*iKX)7lV74_6ATxzzWpLqvS;&b-nlh`bFH_m
z2-zX4)_ZW{cMIJ&r-O6nC~jv~m?_+Gt}*kbG28OCtM*EfO{+!udOj<t%}(~%bxJ~j
z_q>kO+iQ|D-L&EluerbCcz11@BuDzvkTlol(ZA>LNzS?$<=ddEpw(UJvn+PP>HvMC
z)d$mN$3)JJ4*nOLzv%v^J-R`RPNK7dBqn;;P5byI>~2L#ke>&WrNv4Mv!`0=F}+eE
zZ(nff?D?wH`N@e>Ipe+R|0CM<e?Cv;uH;?8+<lqF<<GB4hC0%R%x%Qe+^2^Kl&n3T
ze9ifKTg)xjxIcbXAKphhHD@RNd+PBt@oQWW>%GNIM`u>|Z~Xe;sYH@o!^#y`76r(d
zzVorHPuaC{WoAuH%<8LEcdKo_I_A2Y>FBEcSdpFa=6u4LW6$%CUG@vqW@lAOOOCa#
zjxf@i7aL&{{lO&be(T)!m4Yu-A9C*8s`Ky3l^<O-k&E4h&fVj%^5|6%b6px(CabwF
z@8#OHb!XmX3HNj@b3d}Vd$sxrQN@otFSegJc+&ER_V-`EEZ54G);6tcojUbaSY6)F
z&6+n)t(fq?<*K|)y`|M$skZZsC90pRa^>qiRAfTeoIJ4C`3zgLpS`&~Yr(VXQ+ows
z%6R^1H9U>Y{P|UPj=2AOlWW($6j>cT9MhQc@b;hQZyw$}dh_J$^Ro^)@G~w^ZT)g{
zqLINp*XBQKE`=Wz&3W1MCp0-dBPcQ?>tI^U&BpwE9=@JW?7yEsE!uq8aPy)g^Y`yH
z)ibs*{eIab%9(rq-K&?*CVksf{i8PK<)SwQ=Qb}`!c-7(;Y$1*t@MrT)={^Xy9#Tq
zt%+K>$D{7fH9M`TE4$@PelQ34o@9*w{e)xfx`~&~jiL&s+nMRTd!78Xx9{)Ij5rm;
zdi8}89PM|HuiLouu}$7|r-cV(N@D$3JT_#XzrASkId}D^tm;#1;=P`KXrKATD=)r0
z-#))ACgh?rOH8V?Uio`-R{iMT6@M3B+PO58ndfav(URL7tkFW;jMx7@jA9KpxN<Mz
z{6p>|P6yv?`4e%id%}`Oxh;!iD~uB6$?jDSo*cBe=xnZG(%r*NH)Q=ziyuF2|KrV<
zotM16T}e9De2o8F`dh0QmDnp4#^Da}<t)+h4u5ypTvpHex&1JM#F@f-9qX1WWK2*?
zyW{@9JmJd4&UGRQ=a-i(?w?@1Zh4T)ThYAfC*RhsUa-Bs@@M3ds^(wa9*V4L;_v^x
z3Ukx6W%K9rTG+T#Gr|8{>z(MREB>eQ+!u=q%s%`mYU=LOaYY9z?o=uKetqWm=FQo8
zZ#?JS`%%ksR=RWThpGh(AGz$Oct>u$s-*sEKmTLaIj`o4g&lczZ2^A-WAyAr|0Zs=
zuX?g9e*Hg%>&2Dx_O{*)D>xf9SMlK=W(L;VmmR-qPF%V4-^ZOZ&0qii%^n>cy);O3
z#_Re=at%Mj53GAs^7+`4`ODInTKau-yFK;?+_!aFpZg}~{fwFO;^)nuJtOw_ryEz_
zHi$D$om(bqa3k&8hJ+RV+m!Mjb1_dgK9JDwvzYN%snT=L^z{1Rui1?899Jg9t(%~2
zdb~Kk?fB(I!JZFanl$L@_Wa`u+n&(E&EoO$Zq~y+J?2N|$_UmvS8{L!rC43~6mW5W
z3ZFsrY_;PqQCrV7-gqN6L)mfdgkJx1Z|$bAyTn&yMFt4H{V;X;+Pi;yw}vv;CJPID
zYinmusot8~u=DFzKHjplyDPZuW=MOV;PzgqGH>@$@jm;?o6}17dK#ErymIZ#yVpPG
zL_FKB{`s==&-Idfu8I9RpimyVSaMd(&qo59EQdnk4Eln;ZJBxb@Y>aDUdS_u6y~MI
z*=WqXKhdpMQS80K0UObDuT|DoR<~~7e)9RW+vbPYR##OWKhol1WTR){TO~Pz<w~m9
z4o!BySXnXe_4Y|u%J}*CKe;+Hi=Npx;fIdG4aa_7FO|6p&Jyos6HcdSi%pgckto^A
z9%|zd*<7e{AkE%7?7*AZD^}JV%*+?+KHBZA9sF46;E@*xPWXuKoqzDz=3Q1h-{xLg
z>1mskCq1LrZ<ovjCr&l7+PW<)f40txJNxp<Sq~S7Cw%^TZ*5$-6fPXFy*tnA=O2$i
z_w@_v8`g)f-6be2@>TA9Z1(#dJmt^A4(!X>(8?TI_sedsZrf>Y>2Qf!yU%<UVL2Im
z=4WEhJ`_}ybKm{7HGI0d&WXM6MA`noIy*o8sLK}7=#5TC`I`1T+{pHR!5@~DOu{GX
zkNdeUIPyT#`qH}EvL{s`L1Gy{8<=l~uMo|eTbtt+cJ$3_`M{9N?i%K=KiE$>t}?lP
z`}-J?zCRCC&u3g}>f-Op`BSL6LpiK}y}+(#-DdMof1csLS?~mZPpYNidFhT=z8@Tt
z5=+;tsEvI8|99I9{+AQ$OmF}Dm@zB9GbH1%f?U7Ei7ASl@-p*z)kT_?b@(oBa%7Bf
z36NR2sdUBStuv25W_<bFd)mIdC9MIhSy^*JCBDzy!MDXHq)JhsFh2c$cJBLy*RS+&
z9G^BV{Y}TqG}hDhGeu@a2~4ZYzHE2t;~eX`bK>&Kk1z81xM7;;j46Bn8d%PmAU<J2
z<gXUT{FHCszMR!Rae&`f>*yXQ$@*_*59}|lOnI@OTYp_54<ApDUuW90=PBOVn?A18
zY;-U(()nexS3#(^i|e@fk-0kQ-#*Naex0taW}3zPETb#puG-{<3$rzJ6onbmBCIS`
z46VPH@h)E5c{Xq6Bt0E1-lC~a2K#MnHN`jGJS-f{u78L3_|v?@=|9!Q(qh-X74JMJ
zVk;{l^u1)G^{!jiY!!25PWFb&xVhH{8}D7aHcm-Oa$el;*B>Wc*l}mZ;iU^Tceby$
zdH3W?=-!$$kNN!0o<A*`Z8rH+SZut9(=omaA3K&VIQlMp`}VCyI}guUYS|l=8Wp0s
zlzX*v?VY-ZKc2UHD;GY=eaY(Z>u*4Wr9#}Ee;p?!#mcs9_w7pee;&@N8nBpCb>b1F
z3k}<|qoX6g&RN(fI#b55;oQ?4*%>UcRtkFhT6=HUTUx)qwRxLZn0NBz44*yQ7G20F
z@!A__WvnFfrM&!`iTU;dtJ}-mszOhRK0Nd2d3%OKC(F{Ot`Cg#pYMN@@jf$am5l7<
zH9ERYJI#Klg{C~Z`Qq@F4~J9b-|hYs>&V-0e?azuuFl!n3mHEDdcAm;PrCClvFmQj
zrnv-vR+}yRx|(mh?3r5;I_fj5a`m*u@;eSZ<@g}0{p$bwE!DjuX8JLeOx+BRKdp;M
zuv0Xfzu$6Iyup7i_AK4)l?oSswmp~q^X=($3(*6s=ifavY16jGNQrj=hl4T_tX<c>
zd$wLq`MTTV%zxE-?|qiU?Ys5y>GtjRUMIdB5B8sKc1C;a1X;y*R?~K@*mILf-15!l
z)6-11vL38qmX%g|yr7lK%(ljFlXL21o|*2y?r2%=X>3@0Ys%-PPj0Q<zkKnG%Q7FY
zMaD}AMl%E%D*dU+uCL$T7!xsNn!4U$mb~wWrM_Kj-s$jbp=77xs`^=R2joPIXT5TB
za|_X$s=x6$TUu({qeE}c?F@ZeKS8E&hl#{|!D$m}mp7fxSogee*7E1+Z}?6hcp)P(
zDY}zYF;nD!^Ay|T-m@(KEL(Q$VBEbuIcu9P%5Je|7vPcD-Ll+nEjv%2<q7%7z>~gW
zstgqm|D5VO>^f1?)tdi#vm)maj^^WUpOpCcdtO;BWssGoc6|DiSGUjKc4qi_Q2eM|
z+qB9e$-OhL9)0;XV#ZV{pQ<&?$$me?*V}*Z-!C&QjAO>7K9#K0;(X)1VJDt98fTq#
z+v}+t9XV&BkDiy>F18~Hx469Zd)1!&QlD_E>KM27?s?bBH{8D6*dfgGo!`Hco!#vh
zTh(mIuV=(|EttQ3&xR_K&oA9Mx6FNMQlFIQVzhN(@seGyO2e&-tIE<UBU^8T6fG_L
zZhqZ)a#2$7rsm0A|BLqQSlWDefjO_YS_s$Xxb@*Ho_@Yu9Mrj_Q<vl5#RX>#_NrKX
zJk|T^-tF_&l5ca|yw5AlR~OKKW5JTv{^-RNCj}Ne%cv`-Bo|$lc2fzintLqMRCCL-
zmiOIFlQcHE=esTqSls#3wCCNkS5kTY|Nl%n#If+qx^3BwTJz@5o;7REj45aQypF8e
zdQ^1o&zO&|JD8_jc(Uk(^3sbtyw7Ld^zAK?>sO7PRjSm-HqXSSQ>0s;$9G9?@A7xn
zvFBb$W@fAr>)|;yCA-QxBwlQ{d-qNo&3A$AGP6%#{{G;_0hu#%?D`{F?Ec^0CwCgO
zBsnp7MZIiV?9CrP3jAd>zC^KQJo#F<xyrdqz~tc;b-9ZVPcHeMpR(dsN61;*r2iH{
zEPN06pH8>9y6wxN14s6p5DChOs&nwltS}O-e-~C#RCb^)%OS`yqv#-CO<{^qZnn@-
zes}JpfwQyJ+}g!o_9RASW{2(-n3EB@bnoXK$`dOl-nDNuy|e4K{0{GZ6(O7R_E>CJ
zO!0RA@NAp^Ay&@9N#5zl{AF@EzbCW(X%u}LFTbl(@b|P9tw+vPH{2cmUOc?*PgJ+n
zu8_>~+XhRDtbDmvzn;BET#@ri1e2wSt-aAysd+O#o4%}k->_ll*21Eqpv4z|#FW%5
zJow?@QoipGwj_mD#jz|@;F$jP<Hke&d{eJ&=f8SopO9yZwpx1a^bGNd&&n0dbu52x
z{=%KUQa`GyW$V{cA2;I(=9iAPDn2};&T!;Wu~Ofi9-otycTZ$xX3I|X_`){zDx2}j
zd-)IYI@Oyy)7-1#F3elA{<B>9*UwhFB|lwVc{Q{(E;DqU$Mh|)jui7Bh-FjKkZ|ww
zJ-H@VDkm%Jo%k2cu&HM4CzEqZZaxcnc7FddCe1C%TQ#(1Zu`I5+UHz`_Toq@Mb=HH
zb2diuR4oqMzH8f(s~Ye2zhdE#@zS_G&8^pFO7xcn?>?PX<J;YT^NyXdUd$BF@bIS&
z4re>s+*)cjrX;zp+w*^uwuYYhpATO%lBUHQ{jBlSWjNEetE%Cf(NCsX-9kHq58vLS
zZ~QCZq*+7S$I9cL{gJVEW!Idu4B+2;?43#TH8TxfuU50~-(KrJShhs0`J~8-$LIT=
z+t*yYdM+zB_vM_K!uF|OejR=8vh3N>B^R1FMGmZ2xSU*i{;dA0(A5i0t)J1{_*>s)
z$@GTZ%v%opTfctuj;3eF+BiRcnI&~EK>SPK)>*lF-A9*PTv1ZBIcVh->C)Iktru8|
zO!Vy4*6Q%YZ}|SYM&a+P7iS;6Y;~QxZ&_)A`ii>;=Umt^XTOY|RdmG3SHjn??@8La
z^~||*Sv+o=Yi*rZ9iIK`VD83+VL~j03(qZ;2)#Ao3e)ZHKg<=SF9lZ=p7}oa>)B+{
zZxu@yy*bqw`PkO(s9yh7R<)dhip5g@b5B_XS;qF{31$Q_*e$ehNXoR|&AMcY>%$@?
z&YKRC4o}hV6fxk<^;Bzrw|~p)*RSK}?G>LmM|#!__O$J`>ZdZpXHG3q+#IeqBi1aU
zH{pui>gO)UE;CK;-u)|l?YuQoVrK%c_5NJ9`%cuA)8YR<WFBSze^=;({MW?)`K3qd
zFZ}&Ce|h8oz{lTr-+J)>uE6fjeP8)=6YF{w*qgQeeYtj9+XP?Uhw>(Ed3hXv7brg1
z|9{^v=ZU8tep?fAOYrcORdwGdK05K_&s&zD8xJ1^*r@(_Fm;l;txcT#>fO18g%=YH
zDsGACGA!$Hd%WsWN{MrJ?vH)mh83T-IbT`u<IR&EF1`3W$5QNT&st6Usi4&N=jO@k
zl~1OJ%bS{&d^3!^bLzVOEa}(B+*FHCf7V|8`ITtxxxd#YxLiuJ(G{xS*mm#o)w8o_
zMPJdr`as8l>*2X6Y!AGZ8rVE{?09|QYS+1i&wlwS?yoQO%-Z6}AGG}JtsBapj;FQ=
z7Bens5%lzYe)^X6&)l;;g(q9WlAHYJINrT?Fz5E6xx9WSI(@W%S*%phczUVxP*zpE
z{)NH@ZpNGgNuPScy3eh+kfoEpIi5}Zsq6Ad4Zpa3weQReyL8DcATs{$@z=2v*3H=J
zHd*fCjD<~6fmzq4te(_*HTJkhf?l`Uv(}}7$-y35b^LNmdD{=qjGpxRi`(kUO7jA9
z{FRxzB<6+5%<<y&R(o!ru%)Ez+jl+<arIoYBP`-qW!ZXzR=ReG=lxp#q)ph%-uo=4
z%9Gl<Z-LhB=PRyWIR9Ml^t1h^sw5h;`xGaY328K*l<a@aZuMen!^(BKx{gma?(R>w
z=kix-7yR_#v6Qgq{opv0lFtWt=SEMMrBlVB9`VGy#GsKacQ)^>PYiW|dDj-I%oJkM
znl$6P?>pxO=C5b%e!uU9WzEYdhoo!i>g(l~hsM-iJM!jTc4q3{ik~f4o#chP!k>C|
zpXA}ab%7!2=$82>bB~I37+!nwL8rf3tnZ?S(vi-m#UCu3W()N5^Xsgz?$w_s9jv}0
ze(!Z79+L%!Cu<*T_L;$RgzsHT(fO`*>bu_VH+u7SyH<wlgQL-N-i5vU(#QPV-dFct
zoBnOKxZv(&j@FGw7RkO`YRw<Z`g_6ew<-;5e<UZJT>et^c2I_O=TB=66NSIKDjpw_
zbbeQQO#S4}-JMrHrQg+RzMWIp<D(&QH@S4~qf5(k?wD`iE`Q>WlIm>JE!+IeYQmf9
znx0MGvU}?1xAFhBTAOtI>#YB)w}0IX-Q3%M4qW?LC{U5xd-v8xV}U)Jw*7A2o*=(x
z+j|a%{OF`@4YF^nAL!mVz*oUtHsj*#gY&Jn{WP!Hw6ya0w09eHd2cKCz7c!zbj!oG
zKO#F8a8FKu)Kq&oE3wFpN$7;)%A*eTjh%KzTP03Rb9*PTcxmF2{G8NEzO$BmxlA9v
zMK7GOH|9dYwk>YYO=Qkj?PHxT>aD|Z{3&DY_WxIMU)frH^^3jO+~$5&cCD>*?H@(G
z>9;T4`St7S>0PsK_4V}`Ui|Us)1;`?Ml(yhxs5M#Z+>$7tKg4EYkzyrTxxoGa*@OK
z5HsEx&6!X2mA=Ju9iPhjX1VN-U2FDj-M?|;zPUF|?CjQGTzS`Q^XW9B9e3`FUSUyB
z$?-qgYvXix(gf$~3)e1PJoWU;nX~Jna@;OFz3BdZ=7FQ}n#+GP-kj=nbJ`qn3IE-H
zcZsgpw$QQBXWbTOb`|bzo8E6wxP1Cmta~>@a;Mj_9OY*}RWGbCmowRPqa<y1gie^|
zb(w&ZJKk{kFeIBsugSZ+_Ep~mW`kx)h3Ac$Q?7V_uduy))^zKnjhsu1PIhIi4a>gB
z9CoMmc4FuAgQiCWy0@!84Kd|6Gc#sgq<ElsO_;UV^@m$-{#L)fVC9?{qRu+J{-+sr
zz9)vJJJ*`--dmjJW@VwpY3b5?WTJgzW(U{4AG=yE8()bF)|@dTFl&w9>cYCpr=Qn<
zI$+y-^!ahM$p`)}ow7eG+4wiR^|b3-tfYDJoSYRl-n{Z%M(B6bxtb3?nE_soEc;A!
zWba(oF0{Y1@Xp&4`>#g)*zhh+d3&$%4Q+w%Up~z2)x8=j%CKwqP20(jo2E_`HCX&}
zQDdE%`?cSn7C(w@VP4M=k@jrr<<o8-CuJ7-S?*mhZ}Q7@G1G+ftT@x%OIWQhr5?Vr
zhwY8`lCGbkdqbAZjS6^m@sFfbZ*GyF?aqvth^+@h<EP)=ux!RO9bX@vj^!!J!rH;z
zVIO-OmmN8D;jUQs@woQ8%Kb@B*78YaJDx9jcQf<!otDhZOSbl}r<}bhwru0seHO`c
z=NIXC>lRObP`o*$N#|_S`GeX&1gg2s-l#tiebYR@!M<_(yOohHcIokxc8D*N309iz
zoBr{pas9djQ#ASXAG6h7&C}cy&id@aj4MrVS5C=bvQ(KltKu79dC97YamsSDgI<`J
zWh~ed&G>C`=M;;@m!rSWJ-^?1`pXc``*)gl=}#4#8ns3Br_s|m>D}v>@7-I!Az$hP
z%RdKqZ*SX%=55!`$@x8>k&)tNwRhL9RhM5na7*%rtvzO8XlP@+|4WOd%*0vpo#)T)
z{Wj~U;I;DpC6ix7e@k&$67a1id|K)1b?X-I-!}1HM7XAmRK%q0Mvq3v0=?%qnjUQ~
z(F$0z(IqP4)7H5zT6=ek_q<r>xX){`Nz@iU9mhR~*D&$CJ@l3#CQnDfra~d)^s3vx
zqM~02D{Tx~dVEz|ncNBEsES7gFJh;O&t_X@cB^ko)30mqRvi;FYiIXR6DxY;soZ+(
zPG-)o^_$+e9XY7Vd0~>n^ojDu6284UeEC_4M_06M+w|P@Z0z5z_ortFa!xN_BF^?$
zquOsO)6biiT;k`5Wq#T4nc*I5@|L;p+P~g8&}{jj%)!(9jK58-?18#i=e-3U3@Pu|
za;4pf^ZKGF^d-ViEq>R>o{QJ+UOg2VF{jbcH0|(@Ej$ypU-)uq#T1(hYL1>JUX|9}
zckPeJ2WT>ESag1Wah1}<iw^QLG!NytKby`|&3Dl$IMe#_rp3V?7ds=jYwfb$^?TQ?
z8OnbSHZs<UuU{@YMXah?eRaRBf~3@(*+TkjBEMAay_@&{=8D7LpQd+Tzsvr0BD?X*
z)3Y^rPG3#?tdi?&eBiLGi2t0pd<~Pw0#egj73CzZ`{^ta>xkccbMkYhV>52;-KJsw
z>h#8U`}Z0aZqMJ#|A<-Y+*7CdUmMm2t(km_mw%P>o7eTXez2NLoqbhOv9Gh1*LM=j
z%Jq_;@3;zovAC08WjB}gutv$;OIgMlKFglub1QL%+aH^3r<j(b9CYZBr{r}lhHD!l
zdv4Cu?3MFg`J^z?@Wx$t&+`8Q?wPsLl0v>m=I`QspsHmkJ=Iw9%Inbe@!_VIvUl&c
zZf8wSkQV2@_=bhMo9k;+jqlQHOiwu~xwFhKywsICDpj5EEah46YtgS$b<UlgF5CKD
zqJd$;dh>fLUoa+II`lHRq|By1G%)<W#R>VDlh0-FhFMp+JItMLQpEf%wo65fX`0Zy
zkRqGqi}tpkUQ@l#z}DQxYGtEeJ%^Z>t%Y9qq32HVz75Abe`bom-&k=tH@Ek5@n);N
zlBbQ^KKW=L*mkG7XTcBcixp8JRfP^U?<7xs{+8$GoGiTM*2<|jn)7XB53pXnyvJ$l
z?~Fv19;Z{RDVieFzpt5g`^buyvQyWb`l`2j>P`E~=b`OB>u&u1d$%LSB%8gj#OQq-
z`|RT{U(A@M!^79*Bet1$WAkjLFQ+AMaVvBs2mb%O_Tx|0^RuL1^gfVM5&HP4i>>})
zT24}(iJ|f%kH&hYm#W1K8_p&!bWoXl^@XU~+-><4idL%U`Q2~-3@vmCDhptmTC;ba
zwS|V<W9chZ7F-uv<<{)qbw_OO)ukpoP2AqT=}FUHDB$suqvl+nb7~^H@p{{2yXt?d
zmTuhGe^*uFovgeVr~A)EorN#2Y)LBgTOROoOW0oD{f5F1_9sOAuiucM@%U3?|MmPk
zlV6t|K5+crBEjByOV*n$Pe1<f?3U(3Tue(Dqc$AbwKn%{gY=ENX6@`pY<{+y-BX^=
zDa9oF>PFkr+pftGYa*%`a}Iwyn6m5RTIO|=BR0xfoUba{swn-xWp9%AR=W*fpLzUr
zJuhf1Wy?Hy*UiKTqi~!3yzWhQY%7l@w(LoGv{fPI<m7D+ul0Rv-1jf?CfBbAk+V<d
z9LbU5&%UvcUH^^E&kg&__e?(P$sDEDDl|7t#z}|QW8akOwS9*l8%4eqz8qY<X(_9u
zN`P1EwUldpp1i!ef2|f@PBFNBmhFl^@3rg*mD{yH+;sYGSz1Iymu_FUZ)d;0q~zoN
zUcRs23$1S5&RU%<^;-JZPMOXOmwg6nuddSNm}SAb@#Wcf!ja{NCog=QVbRDEA;7Tf
z7u&HDA1Y*<!|xslUCmR~d^9Pf@pj?<x&!YM%0jGC@)$WqPMwtsGoOC>uGVDz8E3+J
z<QGcH_-HM*eRpT?gDG!TO!@QS%c2P_dseyS#m36cK0EF7v@=z_yQEro>{-NlVcW)=
zQ{V1rN~o#RaQM9?XhEy?>gdR`B^NXHhpv|wT6w}e`>3(;+dT(Ym_(^8ROu>UR`5J|
zc$J#l-xD{kY*n9oH<oFs)U2(%ZePD_DtaHTD(K=>;#DZpxb5|a-evO|Z|%B%_^{K@
zQ%Ub{1i5foituw3=rtVqad~@0?B9g47cb=Z{cT!!?ZnistBEIXJwM*%eA$b^h&f4Y
z&Xn)52Pfw}JaOU1he<*j*#+K=>Mb!`ArYzNlh^N`6(5!@!hOj#_0P%I2N!q-b1%NU
zp8d^vt*T4+j!C|H^^EK2<lv&8uQvHCy|UWWYVt`Fy~tIGMO)G~U)}LbZsomg3mP7u
zT$#Li_l`XWSKdtR@Lch{p(IT#=N<1$qYEms_Ep&?FLJ^*v(8PN8#k}{r0Uj-H||{w
z4XfK+UU1+cXXWunFKp7~<>bOvU){I6ZK8JXwT#VHwfAz%Jbno9>?+Yp6<@t}_gqtJ
z&5t(GmC0g}?2mpP+5WR)>U5=~jVuwzB6nX*HCK4ibx(gA|C$bG?%a7A<!AQY6`99l
ztj^HOJcU~!yuridd+#>0tNa_Q!>&&gyu9jmZplHOtM9_s9Q5y)&h%~m?_Dd_)h9^w
z%supbYxK8tH`!f+Go!?&&8dCxI-0rpP9kG{UDl~ZvCcYKyU((GC@FI+oLRIzTp>1e
z)|70mcF}^^A3L-cpB4C@>**q-tFiJyNo1~Y^o9H8CN?*YKQAxb@m3};Tz<X0LF>nj
zCnI0}nUxlr8@7P6SU@_-RbX~V-k+8U+`)H*xeoJ-*G=-ueeovy{lid`&QJ1&>eEwB
zW$tuZX_k4tB<;7Sm#YJlq*AC>%$hYx4*ZKQK4e^)b+oNQ=;7g?$FihmO>-CitlaS=
z!l}@pang^&fBVYJ_HK;RkqTb3_D1fE;yIU(ugno!T~PE>xMA8$*NN>#i#}Xf&vRmX
zpklqJ-EB*YN~`xzU;MbVB;i5Y+XeD^#$53Nb7O?+48EtCim!N6y?%CH$fl*n+TPl$
zS7&E+pS^KJw%1F=RUkuf$Dso%m!3AQdbaLdnpkm^&9Z<~@)v#z6m>2YZ2!dg<Wk=C
zt>xFs`TSxu^Cab?XU(2H)hj(MW!2)F<$u1#cY5mIE!@FzXV!WCz#GoOLLZNuy0qu;
zs-oRzI*#(FE&Lh!d1+I6>D<NIMNbbsInotWy6Z<_LQx{mL>XU=9<K$<=I_00ZenJ2
zY3~+=ORsgxmS4=c(4co+JJL4(M@~i1wq1*iGIbaHQPKHT`_ua9bVfnmJ%8Wr&j0a;
zvB6=F-L@33FMpm+ekNuW!~bcWLPgW3I~`$*50q)e@1JnauWCl;>Dh@=ybh5u^OPS5
zs~=hH`-RO%chTv^dGY7Y_w@Aq{8_0sd1cVbh9dUzvnkhXS5~M+M}JlMbNol&&BJ$E
z7JbY=Kj+!E?;EQtZ)mk0X5JQ%@WRJUC)4zsy2QK(f0=Hu%Ns@JCh*KYQ^r!;<B;q7
z_{k2IuYdnm`nCT2SQT*nN!}yhTAr%vns?hwymGSQO1$zyjNT?I{Vcuxpe3a&v(7bl
zLxyhN&YL%tC#By{Wl@h~x?JMH^z#*WUUYeR?cddT|4vL-U;p#?Qy1Y2?%wJmPvce#
z=${Z-Wjb4s?O0asyHoEH4;`It%j_In+-<zMn5&iPgzAf*?~D9>&%4X%aVe#^FL~Ok
z9%S#U|5NLG;lahr+VVb5aIxB|5gj#cy^gMSco?tM;)^MVvs!~9PbkjJ2|V%7$Kbd7
zl4tJ^Oh5ME<WbSPt>w~Q@2+q@7h`w*vs3fsty{CMCe4`gazBGkYk<VeFo8Dpx0a=Q
zg*&{eCYNM6Ee@`h3w_`eYd+^(yDzij$D0>E%nN%YU%&H%;O4nkZ{5AR(Lmo+@~d6+
zM)$|ocf~drhHc}D2=Fj6HJdBb>X!fa>y@*gcAYEUF4doQM_$0khoe=wX`}Yj(CA4<
z+l5c;4(dK6q%mJs-+Ef{?mwAVZ(Mow<HeB~EK(oWlu5sJOnz{1&WbBd5=nspMR}pQ
z;l;(m=?Mv`bzB+Gi&d{WNaQtdZ3}!NetMO}oQK-1qG#V0Uk=FdXWkGMF>!C!!(8uu
z3{%v4p870iO8ZgjwllzDb@<CSYPK;?0(Z{8Vzhr(#p-RPECLS<FLsnf@m1v?Um@UO
ze<0*A$4|qTsuv4qUY9dD<E8Ff)q0pOv*Fysx?3mgYxeE&w$NnUV6k^W$f{b8ulxSo
zdgQt5l}o}Wr`t=rpC@P;PhZ>Tczp&>c>X<&-JyDO1RDR|TIP1}M~3<C=LZ+JZ!W&%
z9j<pe{Ms+}AN=yRg;im1=lE15dphpB-g#DUo`h}fFPGrjxq-<Mll084UHek9z4_kh
zlr0TRRe^<tA0ItZn(KG{Wy$k%bD1lyUO!(K^--ew9-}}u|9ty>mEZZ6nKDRy{r*ue
z?#IHJj`1-ws{g&=ln|_%%XT1vdots%|2sD?Z@eSW+ix^W>iH65|M@mdkC!grEqvyE
z?pmL@VRvr?q?<`^K5=vLq>r69PfGLWWxuVG-V*lr&*Y$kmAPiOwcXyAZ&~hnU%Xw;
zLR@0H;6$e`i-L#BG3)A+5+hDs^<_6|;PKg4@IB+);xBieXFh-b-p;Gn>jc-W$&zjQ
zH)aJ1&2&lKq%Of@wRk5Z&w8zAFVa^|KP<etVHML9o(r8zy!pH0%kO5t(c5u<%9qlY
z8@0=Csd6vs3_N&ZK}lWM$`Gb=oF`Wt)}5|dR$I)wLEPZwdzB#N!YKky7u(s34xC%}
zc+2D~%eSw-_484sgV$WK?%N3kv(KzhXkR4#;!fAGdlQ;>3bu1CzNB&c5%-}<`mXBn
zJAW?WKI1FH7i?i>wcB8Q_-cmKtOs4nlRR!;?mE<Ikn`N<V79{c8*^j3KXX@gAMA`|
ze6V@)TC?uIv;TA*Xr7)l*;7%o@^-LhXwNw@wYle?GhaAtHC=t8Y!t&2rnKG5qHW{<
zC}r3ygfKWSSY8-mlX?1`_mMf%nJ(V>p|F4T^4gNLH^29=AGA2tXA+h1M>ODR>~W3n
zt8eeDb)Gx-uF^t>U0ae2vaX3l-MN_^{dm*ik3SQ4tcg|king|zot3SwVyu0-*lhLd
zoP(DS>^MD9)3SlHSvTSS&m)tM=E@%07ni3$-`ZGt>dBPu?#~R*x!;Ah9-qtY-S+0h
z`wy`W=gVYuf2~{d@zC03$&&iz!d?4LRUVOz6zLRmYpZzF`S5A#)j1`ZWtl4%bxL=i
z|K5F`i!JJFfv1bj%am`MKXt9!Z93PrTuazbWZqKShyA|ZM=m=bW_tN)N{}l1-&eM?
zt5!Fq^=wFX)0`OLv{ZD*#dlL?JI762D|Ue^dS>qR(|I;~{%fdrA9?&m?3uWM<k?4s
z7q_myzFg&UxL)d=9btJ!GdAkvTJBtOzO1&#D*u4Pl3#4U?*1-6B78Y*@$YkQkB6UL
zcl}!U-ZiUMEWErvZm*TC?cWCnnHxfuE?pWN9DIFUthA)0Wx3wtdvD$OxM$5h^VFj5
zPee_U%%ihgzCCh1y4c-crQvO-+PS&b`!{U(^5Nm*Tep7gE`RU6^mA(Jb$9pU^*<gm
z{g`n4_31Nb!d9B_%h~KIe4OU!D0oAC;)w>XNkzs7OZ=_se}-K&Jv-~#@1809GbOh$
zFwQRemiFf1C);%SWAQa^OTubHfBb5%`89LX^>mG`&sT)re`4={zIJBSQ_rend#8Bw
zb57UpxOx7AxV-xOeS5$A+<bn2`g{d@DM{J9ycM!?VxQWpTo-%GHeXiHm}=cG-l9H{
zNhqVP^NIbt-7;<q9_ig-U14EpXnE_j+#`O5myCNi`?zVpI-9&zQgHW6!(^Q@f3^e{
z#>}4+<3(N6C)j&ybK1Lf`si@^pW(Ndz}xm@;hbvS=E-c@NoJW3Cr`T*b|jB&*QV$V
z0<(iQsVXXKXe$3Y@pbW)>7{R(!m`t&jTcY1*O@ube1&L({fwM%i<Yl#{H_09<r(u5
zu0yGJtB$4_Nh&uV-lV$oc(7ouNkfR#)`<mAU%m?t=dX+X_xyc+tVVj#ubsX<zg|kN
z3`=i#Cfnci?Z@wi+Rbs>7ft-;xAy4#I=LDHWfevTTT{t9Tco~SXqa$3q2O0l`?2=0
z>C?|m-@NUe;?JWK7wy-wiwujseeZbIGUHdTDx8J6FLAbB%Q0E`>{*zQ|MdEAckkZ4
zZ~y1>^;XI6RuMU2`PJ<uX^yL}uef@x?cK)<Q{Hq~e3GAhLUHBw^I{ifSN)nH`=#$(
zSYwKlUi`JDMb{Y8RA<EP2t0ke_*Y&<kY@zbkCRI`9GTNERGj4Zq~5vu?hQk|S@Rxz
zXYRDMFw_b=u{<>E=B#r{Q%{Mj9qEldG<oOwB>t(t9&6NfPFed~bN2VNc45sQZ>F!0
zaDF@~^WT974C}+SW=_;U?Nj!6SK>F@%~i9T4*uR-{oQY_)zvFkuH3ulw=jUAYJ$g-
z=jZ2hvoy__Gw0MPujYdR5fL1>wk==I-oVp;+`9M~4};A1?FSF~Gzu~JOEq$f>oNRU
zxqkip*|V)HKdDUhx|(4!T|d6=$A`qoNXh1d6(1k5T3ny3?r&vfHP5b=YaeGF)4m>A
z-qY(kU6&=ypJP$jbogO|tXOwwbTs$BS+i$XbL&3%e7s+tdDXYW{PriF7A?>?X!ql4
zueABCTel9RdaF!oYGV4p<?!kMmhX2z=7!wdpEg~0PpY_B1V`j6ArD3&C#wk)vYZq+
zmmGiD8lu4J;i2eIrK;Fla!L01-sqyKx~C_F>g)`UoYozqa{5*5=Y8et)@p3q{Qmp5
zk9Gh5)Yu89+7#cuQ+@9HJmcc`mPI>jE-&+CaJ#>`eC~q@*YmbFcfWr9+S}WEVuae{
z&Z9|<4ije1>||ST_KLKq-lFbLpFeYRbARUU;^OLFYP3_qeTuFCmuu3WWy?}Outuh|
zcPv}DWQ$Ds(oKKPteMks;zoSFdhG7WB66o6r=C8tsYzy{LG%IP=V{IwucThB&2`&8
zb<gp&m!l`Sgu1U=@^;^Z4O!=VJ6HER%e3iO8ot^*d2yJ)?q`2ff4l47HZMAAm~gt<
z(Y|NK{@2qp7BVjD-pA{<_w-YPXx-9Y-I~C-0+&l?HymNfE32~7*Re8Go3~mZ<x1ET
zvsbrz%CrM6E-2Ug`|Z*M*WVsFQ&f+uueF?c=ycn?ZoiD&+^@MJiw>{7`jXMB>(3#b
zeG0b9#;T^ahMn3ICw+A)5%qfBr+WY29o@6PvO@Rz1WJicuQIi;vQeCS{PEFEErl+w
zS<?<Q9t`X(R}vNuHnP;*b78}Z7cU|@YPN3Lv~}y*q>Yhl%X}QXmU?NOJ$>fM=ZYit
z631j8bFY?6X0KzumE5!LZtp%(G4b<f9V}mbJL2Nks3bpY=fMTrZ+jYqNla2zP33ZJ
zG;p6ZWyYuMj89V^v`9akGvmn_orNmyb7s#x?0w$nSj6JWfWrY6H=4gRgmDW_cy@BZ
zo5D*+%NK86cgJs^)R|77C!bq>Ch#l_=xA@66d4!CcW%k)760rxKmBK6Vh;-qb)2AB
zDAvvT{DDb_oCI6B;hh)h1+r`+^+_|Pc&Tm@5f?w)u~_v-T#xY^87@zEMUMudNs}fq
zxI8~Mx4B_4OU#<ptC__Qo^cPndiAP6qt&LU8*R}m?uPf(&wS7|X_C<5iyen1a;xv?
z2vf8^z{}GtbihV~algg{FRoS0`3san+NUXq3oU+HVe%`jXWO>uC5vi0mY+C#*7Y>w
zT7d|U;F6LOr}CEF0*o@8oSub+oC4Z1GJZydmT{r?ZrovET^X9cB52hSp~@;YdrMVi
zMN{ra!n3DLnlXpX^EvmXr$v#Wp{=_jvoDxBuY0|v@2_~0+Im}ylxx?nTAyE@p8os<
zSMuefzt7#9yZ_^l7e9Bmox68b%FbSRew}u|vwdQ+j$D2Izy6apuF1`8(@f`ydxYM<
z5)%<LbE2-F*GazKzCKR=XG;rJggl#f&D!HpUUl+!P5<HzdlC;Viam0isjzTo{ojMu
zGb3mCUov>K<@4W4wpM39S0zC!cH4%yri4rPmd$wf-edBgP10Z1hGpl*HZNLX60G3m
z;n(l!)7R6(GI_!LK&e=#wt2@rPIhZeGXC)}@MB<MCqs<_r(5LpMMp0zP?g9~5L&<-
z(D3F(y$M6>0>%Vy1OB>$yI5ISXIfse@XK;3aVn_^in8M0WxnCcjWmUg**CVvJrL_%
z#>utTL&MkeT!;V39$&BSuICE1PD<*gw!SK-PM)9MeDi{h$ZO}El$3+30<?q|KB>r)
zViPGns#=&N^vKxAsA2L1%@mj5%+*zI_Wkd%`Wmh7zh|yR@5kuC3z|1;xh>x7v+rT4
z<@~HBapQm9b<<b-n5^dtmoLzJrFZ43=Ei#N+EWt6|GjkU^8;g@XO{1Fnql>w`IM=-
zxw8l3Bv)70AFMN&<rD*Ed@O9T|5&mk?u^hoaWS#S4YghIFCr7_B37QgCARqHlak#s
zddv5n<*?M%U42SlL-1Kz_YtSWJim1=OEgZnZ=9ged@x1HTPugR>h~YrboTQ%40AqS
z{FvRBsyRh-&WaDa%{^FFpV5(vmpUjYzx!D1?%%J@@b2%4{BYOc+T*7;QlFguH=*+P
zJ}U{HnXP^tnN1msKTDhV8XQv%YW0{C7#kUKJz()g>Dkd=HvI7DC^P4LSfp&0{bbJD
zWIJoanwJkJa(}ziAzUEjywKZ0p24UjDw^p`Bg3L;M$<0TDKHlto4$$r|CaUBl^<?+
zeP!uW)rwa!of2Bwp_Ugsd_pCxw@A)lXyvuinqu;0iPzF&5eo|DPj~vGWT?l){=(sc
zlflG=iFO*!lNWqF`AH<Hljmtj_;m&Duiie=&XO~F8@Ve&k_8y8lQwFYhj+y9)LFk|
zMa0@wnVFY<d3_USpOSpV+|2Y!$P{tyPfLY7*F{WHp2(G2xs$>3Oo>GB{bEDgFaI4%
z?vz@|wg{dHJ0#R5cc>$Nh5Quuf{jyDtNer?i)VgN_w_k??K^kpQl6faAHta*yeD5Q
zTJhs@vDTX}GMNzv)m!W}brcNsn9MW0X0?iW2rpilz;mm@OT@V**UkII{4EFn|2wKy
zyO@uyxuoIpg5@tG4s|xFX2oyW^knx_YsQCp(%w_NHSY<Xx7X`GnUa~6m6^3B`^uF^
z8CjPU#0!%+Cm%b<_V3#+JvZ)qbGE<#do<<zn@w|{SMK@p!h-LNTZhv+1#4Z?nUl{v
zP5U%?bMcOwj~@K!X|=AaOh38sqT}x4y7p!zFB@C!<CvB`N_@F2bB3kZ=8a2t1_s|>
zke~gmvzsrzd*3{T)t4Xcx|g<b^N)nc{r_)0SnxMFY@U=@Ny5W$^@Y7EN7@$d{$Mdz
zO_S?cgNTQ1<;}x(`t!D2ewF>~-%f^Q8obl8w$6$!eQWEmySpOny@a6D^T7M7TxUH~
z<Gsn3WAdnL|Axu3R(|TT3h|sjChu!q5aTOqFS5urbXL^@`BRRwt*0pU=U1!EW8Hb-
zZ`Iy~OLsD^&04YEQA~G1%zAgd8?(Q=AKvNSGx<$i+oZNA6Dc3Qts4Xw14?`{t7{~y
z@A>{^e{w!hBEW|+A*Z9*(pyBefk!0z1!t?#A5NbGmg^GSoQ=BJ1nM0aO;xlb7R_kb
z^MmzDfWzlZwJ9369*C`-wMby?Y4(OKdQpPDZWE7}H%$>)meIH+tIF^5uX8UiKfLpQ
z?dj%U$M3e*SgAZM@cJSa>3=}&0Oya(-_w_`OKWX<F!lPw!pOON(!5)W{5e(TvDlmo
zR+Rjk{(kO;M^8E|tDo1DYDG^u{d9@A$h1}2rlnt{maba0z`$RlrFG(j2@;b}^*(<(
zwf@u7&X1@2d!lM8PAsa;?!PnT<mZNa6Q-BtGw8M7O>26mawgm_uIR(rnYY`|+}Zhm
z`USJe*DhR2+AKBoRNH~A$J=%6t&<K;EOgxc-X&G_*s+gBKQGKuD2xr9YbWb!P*rsP
zVoCX`_4$v5URtNPc7J$cru|mCK62TPgFD{v?Y^0~eb-HoL=$D{8&Bmb|8TUH#D;iA
zJ>By2)XwedO)rnlI-viX=~U}arWLHYB9;qzE-%&RSK{AY*1zL%%JI8y(<H3cq!jjC
zu8-JV=FR^%KJfRu2fssu=hysnk9~inI^<F<=Ps@7`<!Za|M}A?_QKxNcEt+6=G#}B
zKASFH{q#hMMBBe@iObDOa%b0HjrDy{J^AJSrFmzc|6X_bXpHPXE30+F`DuRLaZyXS
zVs^@x-PxV3&mUX#B`3qpbKjD%&}F$7XZUOo?7d(THEWjim90mYmbNzObVmHUxz1Zz
zOipI!m*;_>%kOsxE?vGnxvatKg5C1T1@$Qx56vt7*t|?$X8W%<D_Gr|_F1ytUbb@G
z#k6bfN4)OM*japH()@d~zyI~0E@W}1#4n~Ku8uWlh2OIH<)7EdUfSz>_v4c9HoY6}
zO_mEOI{wI}pMS!?+V=8QclA&2EvhMYFTYwEv*&-o_TNj2%WL(1rMFLx;{SbhcFyqy
zvvsV#`uCfCm7o0oG|P&!SzBkVvJz=x&_8+dq)=zeN9h2oU;mn0kHj9G|MCFKfBsD&
zA3v<0_41IGR4>~q!4iWP=l@yt+b=GAs`tM<b*|I}-7A06^LaEjm!7{ZyR}4g1$$@W
z@!OlvsT!<N&wk+MJ=x66_ut81&CJi=%30L^pHjN~(dD8nspzw1;v1Xilr6uTXlQ-w
z%QUsM-pey5O}|#Z<==C`&)@s!Y)!s@Q$sHP)KfLbnJg=|Dl<<E-F`ULwsy94idf+^
z>zZ?orR+_YKdXG&Bjmfe?xNVE(#kK7-t*1ne!hh3u<~J+n|pReed60WIsFIw!Y%Ou
zkJ*)W)+@?At4r8bzi8oZ?p<LA@7VMH%z9(>=<Vi2ao(<%pZunteYfcLnp=#o{^>6K
zpO%!=d~(;HMa%&wivET#+bs7>U+Ar8);a&#X1VY0?bQxjV^Q#cAw{yF@Yk121yKpn
z4@(0y3_6)FBm@ZXr>O}qVQ8~&Xsxi%&Tz22a^W!No2oO<W^@;>3tCxJbYff871qbH
z$7BsQtXs$T&8BXmj=p|>U8qab<KzAQvrJx|nQ3fY{?4Uz!-FS9mbIe&yK{4MLu{E>
zC~>b_5Vz&*>3xEt94tmNduoGEU08K+*M^vc7md1wO)MGqdzGeot<+zcxAeXJ6T|x^
zKC-&M&h36!eCoX4E0-7d7U}8pN<7<eQ-}A+_x!B^f&2c)+*qSuFK3p0{=&`O+y015
zof3TS!lL$#&y?z(#g=XNPB(huvGnu4Un}p=VGiDJQLC&p`S9a**L&yAiY{tDo3{G+
z-FpHv{Bp&dH?FFBB|iP$obA;=_WbSMHgCc-4==AQ|GOQve<$yi&$p>mw6az87Lh4Z
z*VSISX3>tdk*{YPS$&^+{qDmHYhyibuCM05B4bq+xy#Dx#N)R&HeJYV-(7RJl0V&Q
z!2y1;KYaUl{ZVgapK>{}{<X%=yZiNJ#r@lrt^L2t9QyY>Q@(cleDU3Sn(|*}*nX*3
zS%071n&a!CR_>oQbuKPPj?35gXn%foc6Zg+S5vja88lB%(`ByFjolTZA@WFX0jJW2
z+}mb<&dsqjR#8d0xXAUuqV@ZJy?SzTvc|TZJ1ajuIoV(&*S|gac;AZ`8B^N!aB^~P
zPCxI)B+?!8@#9BFN5>V0Mn;p&I62eK%xDyTpt!02*URPC*Tp(NWKfE6VGaroZd~MH
zpK?OLA=1n1l)wGomRDwZcRGsv=2$SMIR7kucE<5)#R_h5y*2Us<#s)~9$zmjBhzCx
z$GSZ4>@3q2bJv|q@+ja7KQ1RP6gltiykiognZAd<<n<q$v*rGiih!S`T`|XU3}&vK
zdbRYCOry)3$x~;`%V^*I>is8ux8C{N6;(gKt&W%P{rR!x)xFc2_H+FIJo<1~)LK8s
zzVLOLQ`)KkvExtOTv}2;1vNfosBAy{(Eia3m#pZL8rPrmJ_}yHCO>n_uNSBOCdSM4
zMs0h2YVCs?ISZ90&aP8$S>t_tPjg?X<(#T(+0qrR`B!#K`NX&LOU2iy;?kXq_r=6V
zK3TDT^Te+UScDhex{-bL>z;tMHj@*5j;NLw_il8{TCuKdiiqLbZ_}<-dC$EQ8kV&>
z^tP<p>eJ8k!X@5DwcQQP%g)_&eO1g^E$3L(En1tB7hb)gb;@9>SK?kFmW!sdv%2S=
zDhiI=xpQgXk2%T@`E7F5*6#LNyZ&7M<rR@L3Zt`UztR1g62GT;<JD<Vy;8f+CanpR
zShYGz`czC0<JFzKR{2Zsyfxhz{n|FK_tu>oFA~<8M+Z-~(mxv#{AAe#SEgXg7&&#h
z<58i>EA)!CngvZOoDn@Y^wqXkN|QHTTea@%25b2fbziqhMaMGU3_TsOl3md{xi~}1
z=akW<-m+sSn3OoJlCw6i&^{BYy6l+KvBabs5zHyp{<%|o3unK6wf2=!`PM6I&ZX+~
zY+Q9ED*j58@@CWNH{bd>=V~6#JMrm;%-T}XIO~u9F04A2>&2a~rKRGw{r2S*p|fV4
zxFl|!{5@pl7Mpb&joLTvzEK&Qy)wwcN9vPlNcJ`}k;xL*db)qy`Mj(2l+pB6XCh*=
zva?mZ)=kdL&Mq~XvdJ#uj9Bhk&)9=bX0L_sT}xW0eem+kP}QEh57GqhEe$p`n<6>Y
zwP(|*W5)^;ZS=Y$*PlI`ak?-0P3{rd35_3mHm?=EyEOcHWoTBk@5Y6z1pX!@^D1x!
ze<?pXNtIhnhe6=!vuBU|J3b%n7B@CBI&hC+sdf1~h7=bi!F899=BJ;ZxAaBf&reUE
zo}SL^z#!#uY{TjKVe4WzkFu3BT4*S0X>m0$cQ7weU<_cL!Q9Fv*=QDUMk8w3^5y+f
zrd%tE9v|cNd3s>`k|j$*SBE{+D^WDbKRr#?LSI9}A^W1-iW-gQ7Zy6Nn3Xuy`AVx)
z<NWCDc}J(-xN*a_`kTWGHNQDC=Fjg}-&_0p+qbv311I{2DhKbK`=+$);<^Ikb4Ha<
z4#WvE|G)HB(DKDaaOPUr{BPBHo~_j~Ss9yW-BQ}9Vy!xL`a~s>)5S%iJ0}HA++i|#
zy~pVZDV$4gI;~u?L~H#PudtYDr%v~Dc0W~7>tx;eO6!y5J^KZgb7wUC^nLZ|RL~Ty
z^CF@u%e;kxiY^;1HHtLs*YET9>V3YXW9cNXRMFlz$0Wm@YjbWWL|;6bEclr1#_CTO
z%|xQg^6IY~Se~qIbAIlJu9D9}){B$>@)_wGUSD*-*0T0q#|g#rUHhUs_f1_lbF#sj
z@S24EEuH^Y?W%GqEDAmp?ce4vE%7fd|KqHa+q!Jt9btUL8{8qfbZv+1-<+E><z1}9
zmitx8I^UWjBlP>7x98*Et-SBgM*lT@T&nRcr&sEe&mHz1H{5r<=PnDkn3<v?E$+hm
zFZ!7K;-vevQ9mB1>qUE?`cmF<yXj8P)Qu9tYCJmje`*iU?M}?Mon=uP@ydGr$L3`Q
ze!f?yE?)S4-=mem8<#E9)_YO=@KI;a?NG@YwX%x!Q#P(Y`nBHb_icr1rR={BC11Ge
z%4#>=?$i7^{BgZ<|9f8i4xPcdN?)c=`d9e5BXM^=G9P*U%&4bPq2c<>&97%q>36%$
zBesi^^KORj`EKc-SJpn<yY)|i_1z2pW@Wop9a?u}-`5bQ2i_Nx=Xc5d4k|Wza^hV4
z|Ah&!9G0)sDt)%QaPho{d+*!V9kfXOGWAI3-^a&!9_+bqp8q+h*T5{tLqFF|=hF4U
z_io>QZ;qRIz3g|<nd<*uGylh3d2syn_nd?|dVUXHUs|8O(4JfWO|SgFlruZ(TY4&j
z_I)qzzpnM8EY;(``{wI4CoFnTJ#L@8oR9U0Qg?6RtgfGPF6tletyN2W)Ghe<*NO8v
zsWyFwV&@<AmwU6t;s8sf^t6KI`@NsD+RU-~lk{al{Sn_v&CH<nD+<@IdaTDV)AfFx
z*zaeL?_@SFzV}u&O0t99O!HGkW9_1Ql@HI&SZ*=-e&LlXCYnOdY&KU!3N?$5ewlE<
z@uBlSN!ypH@3t&lD;jid@s--uzZj*C_sL2dCb66`yc4yz%5(#VP;YcYU+{82$4du)
zGRS8{ZV=P7U@&ZOI>9}cEA!Cd!z*>S<=wT4VVuFx7hu<8$H3Q+cX^qw$jV8RCl?AX
zW%Oxq+M*hxSN`tK&XjxW*RoD>c-)j%_WfP#6o#i<XC>_GY#f4g#1^lJ-Cef#`@QOn
zhu`nl_aFQ5B}-y0!<GXF9882*nWjsWrCJ~0+IhjrCMqduk>B#gFE1W8i;v*HwmR(K
z+2+LctS-Di-M70xx$XZ~?RfJk|C+b@cRH14cGYaMyp@rav2y)79WBkN+{H$$H}}Xe
z#%r7qe9G}TWl~ekOea0PGs4}ikrqpK-u&6Mr)yKu)>U!KmwLCo%M9K(HO;Mg-NJol
z@#{`J`nc2cWagbGXF}E)D2Gna7WGVZRXw`(YiU$&@o}r-vM7~Ry{muR>A(0_F3n_V
ziF4J%lV=t4zi(@t9yMFim-%Z+R`Q;kpYI>P9Ql=X)s&7~#`ezUo>9Nzu5Gy}mpyyu
zLavNs|I@-Q-KdjWA6xph<byr)nXjwflx}7WC=(B!EmrvZDnoMQzMR+quLlh2!M>lC
zOb-_KZK(^At=G;zsnWhHa$j=dmmUAgN;}<`Z{BJ;IiJ;qJxL{dS)pAW>!tXrzwOrN
z|KD6C@NpT>iCY%TlXu)q?2`Ov@&80v>W}s2_iB!;5xRCfhP(Qk;bNQhpC0X-VJ=^0
zK4s$atv6YW+n4FfC11YU*8697!eyNU!B?+#?|i*HIxB1M8fAs-?zYdz9=k?gH$Jy*
zmG<$x?^Rx+mCGN!@(+)zzZ0ST;l))s+1=-xbOMuAtix6IelG70cb}6fsCz21Bt!c9
z;eDNx**nbjlAe29Ghfraa(}Jblb!9eHU}?!n4-(YBll-XXt?GbgQ@0q9nsh47=03b
z_-$&6{hI5k(>^%Ia|9fXQIP7sz3TKsHhcLClMc3?3!5w@`SH*Dl1fX>&F$_!HGPH>
zR}2MDMXS%{E55X2dGR*=G7-_Ed%pEI9kyQ37<z9<!SAE@XKtSCYCU~<PtBuq7xrI!
z{_%93<ph&otgo(huJ9M#nW%3YRQgFG`GO{2-tK>|=1cu-nj|0Q*7tw;>BZZP$_^ge
zIq`8EbM=i*d-MF-A5(8U{}(h_=JC~4M^2}y?z?*X#tOmQd6SJ^`iduO?koB5Y`<LV
zziFF`3SYELmzXQpEMdK5d(LaEwI-IImNJy)a1<VzS)lvysQc?fdR9HJzR7-kll}SI
zd+|JT2L`E&UteE$?~~!wY-3_Bcu-(rptL}twY4>HUb`RbR+bkfFE6R~oS32+TvSvP
zwkCpcbN1(FXYK#}P(I+OAW-w=qPxRvW%oXY1q+NALmNc1wn`oKT6$@*dw*DX_~C2K
z*H~CNBV4%I&6u=aO6MQAz9sWALxz0a55)t*50cGh2MRiHuH9AnS?v~&jPvY^hxqM&
zFmOfNcsHnZA7$$P`se58jBmHLW(TrLah?`gB_-l&!z6V0N^ZU3>(ssO!n>PFonCKS
zcBa-m>A-tsw!dp{D}P#hyl(Pi$EWVR)h0{MJKrf}o_$HE^GCD+r{!#^QeNFzucAsL
zr*2x}6d4s6yK>da6=7mi#aDlbkDTh&$+tQ;<I0v7(Vg;3^yFvPy#KRS&Mm*}TGp(o
zS52QjP2qI+jLgiel=ORTTB^G%t$F3yms{@t_Hk=UIP~U|Sd7Jl57&%;MJa8To4)(S
z7ygU2_2=i?Yt~*n^2xh8LCPW`zH6%H!3$-N?$zl0-TW~(fKO5_^XZfwfqRXb)KbpL
zr#@JIdi#1_*>5~cEQ+6P`1E%EZCkV0sF)+%^&#m;PVS4GXjQ9mBXmbu)}1fqcYn?_
z|HXPG&hGGyNcKRLoJGMO|1P`mul_`om16C$-LG~(R}3(__IgLg<DQO*{wL4NbnsTq
zHh#srJ8G82Pu`Q)o~~&wQ2Y4zc@clEF0ZZZzbuDmO_3`f|4OSjoW9YDyWUpL?9azA
z-`=?_eP311NgR$gbUoa^>vvIumF1bk?>?$AMkn%b<m2=`oBHwaJPnHt7Y|tMRbw_`
zKiRi*)$8`8-*#ta+Uq60+i_}h``arkcg{U|d%IfEA7j1UZHdfXM#q-D=v=>|$v=GV
zefjTU^3k=ebB}E(GG1El-?smodvPPrsZO((@9x_5n|z#Xynp6wi@ozbZ%;6+4G2n@
ze}*@>xIg#G6E)X8AD?e&6)p<bU%jt#W#A+U!x#Nlc}fmjTcyQ*J(~a8yY=eB?ZIv~
zqUJ9GAHLcdRmk<&^oVbT>xRGG$Ck`CtYyk-DLk@fonFt2-`^*lW?y0*_H@l`op}4u
zk6+U-J-%OL|Bm}<*SR~oOS@L=t6#CJWWtdftHO_ct6uWuNZ!kNx+fq1u3GDRAnxLH
z?wym_Ci^cgdvtxD-J7Tvry18=eV_U4&d!fX4&3&k8<SJ-tT=x3{#xJphD&O`PcI91
ze$k;`RIan7GKTNi)O~4LuX+q$?T9v9|M%#Lovc^Zo%Y}T`IGajCDwUmP9;X)-!M%G
zTg}VK$vC57zT$5K21ex_OfF4nP50lt$>CCv>Sf~)la=j#bE5Ugg`gHE#XLq;C1vG8
z@0B4+`n9|HLK-VMT)6o7+N@Zf>@0f9HAN|feFx*02|`ukwR4%0g;^JIwbkbGv1I4u
zuq?U2E52jK)TyH4;_jtdZFgTXpXO5+*nYHIJbp(3qwB#rN2YGsVzMH-WHsxgg=HrE
zr{?*n?Jj*S*1-34yM9%=sFqM|N9p5)bvjRL46IZ?*uFd7yxZ17e(%@WGW=ThnWq-K
znAz-X_j0nq&#SL4-@nasBy+~$ysc3_X_F78<QTuW9ktbJ?zWww>=Bn<Mfv_R>%N$x
ze(q^b*(0`g3(=Av^|!yyy->bOul;iFc8grM&5pP4gxtS$sijEQZ1Kf4<rX<-{=TpC
z+#nSZAy@tMsI%eUf7ha-kM1%onJRZ*((28|T^*ZsHOs%I)=00eHRM~qQft4e?NODJ
zC*uq>m;8U6`?NALdwJpVFDp;?t@7KMWN0E*yWOhpN%1Rh^+##EKG8p{K0eRM?2!7p
z=E>&+M+(<ZiMz=k<`FM{Vy;n0xX%8+zm&JC^C|V7ym3pzFHMK<Xy4Ps<oT=n_osPv
zX9afM%<4?eo)J68FrQ=lIxUMGC$&yD8>q4HiPV48JSds${phy;DZe)>ca~24?WXT*
zwB6>B&xZ}iO)GDTPXDgX^UHd1-iHLQgf*G-_Z^P@SJ<s%{_5!ct9NXh_nBlxN2^Nq
zTyx2ZE^&2M&G9+8kavRSZm-JX55kq~*F$5hgv_7(JavJacaO*Hn3TkavYnr|>Gst=
z4?VU>HBz?6?4?`5{rexySW{~(^<VvL=*n)ta9m}Qyp{2j2#@^@&uSX)zFx<%yX5yy
z25&w6->X?a%JY^*ni#ZBdcG&P_UQ_(PqW+(am#;E|G2&Q)VaKD!KK$u8tHxK4=7HK
z$<tr*``c;8UQ5q!uWoIdvxdzx=hyOlSDyNNtF%03nD}hT&D^Z;(CvN0vNIVWD^EUe
z{aPC#S{3)@EYrPf3(OMTu6&q&d79soGZIe}_uW3h?i;&NXW4({spftT^_x$9eiT=^
z<H4<efBr@vI{v*#vNWN)C-w2A<zJ3&NoAb9L$-J0cBgor3#W@d>{+!z`+7WIhEU;C
z>#)|Is-ViZ7HcdYKJu3=md*dOpJo18g>_5zl$~2MaV7ULlg~<r|9wqQEi!nvRczsd
zV-5Sm)Y=W@X76XWyuWLipSRr~^9?1pW?q{5XFvDv^`&3lMzXmuOwpKB66JT{<>g85
zx8Dxswabc^d9nQoLqteW(4|aOhvogZ<Q@tBw!2@eviG`M@+oJTHFDjvXS~quIr?DJ
z*0SmyZ-0S1f^w4?55K#x-N<Zl^yLFHZprTWv5U3eL0s}uYpdS&t1mZI*}T2Ks^jqC
zvg>EQm)_kwFSFd>#V4idvs;uI<!{BrZ9o3*>#u2B?!Go;|C{rCllYwb?7q%*UuN$~
zzHk0f=(ArA*W1tLM^D<OhM&LUdN;w@b;1h1mGk|(Wq*0unn&z;w)jWm-n(C~{%L)$
zzW1}&*`udL_sd-Ebls%il+?D5ZP|qXd#rbSf1Flnr#0c-J%M}L58g@p?^-qWf&ar#
z{5zAY4E>r@uHKk^xJo-eRzQDd$>REkZ7Xfw@4h;*d7j>m4e?d)3VgFne*YACk>wjN
zEn)U6^;lwpz2L-)XKtEVf4kc7=e7Hj>iry*dJadq*YBt@+EU)|=h?zT^4AvZI@J>J
z^s4ejeHI7*;5qkW=NA~io}4(xQu&UacK)mEjl%Q7-R3^`m6fynQa@Ab^$T~~;NsjD
z(e<ZhST6hXX5yBW`9<;d9??2ly9x}R&9B$7+qd}FrOeb5rfqtmUyW{Bi?@8O_W5<$
z?__7~*+W~-m^KC`{}%oKXYrFS<(!M>d(8Qw=G^?*DDCOl&*t;EC%nDcv5bxXud~+$
z0}r=Xt4@9tj{9=Wyr}KVv^Rfxwrbq{b>~R*c~+An?h~wJdOU;0et#3bx%qy$>wM4I
zb}H}Ys?XKU&Foe`?pNVBS#G|liB;8`%jb@L+OhHcr~PwI&iJyY|M&g5e^$M^)p^9<
z{a8=UnM=!r*ZiEZ|B3P!%lv~^9z3r<|Mx-eH_wyPnVdt-e(65meBe;A{SlUZg63b|
zv*j+<dUHLx_Fu@4ySr9(|8~0f$Nk^6R<lnJTaM`I@L9`#Eopf2TeRtL{5`p=(H4Jo
zMJDYlb9?k#BG38WMBVWDl{-Si18YCEM>ET<viQ^c<G1N{cAGmTzo+=kko=U>pk>J-
zn<Jps@|CNh@?C09PKw6v{Re*e)vWHbUTgR1xcvQ1lK-c~?O!_ku2RJI>$`)NfBO;s
zSK+{$EkZjke{+aGY_)g#=US1^Lbh{jo+ZTYKYV4Q)JpyR>*gQ)AI*1d_wL?AW=YEv
zSJIAI76#pUD0S<($gQjYrp|X;SF*Lf{kzfIdjaweB^xK`@7A9p^ta&s$2;cT8^u?u
zXZz<yP5QF>=b!b{($>#dzO!zptAzf2i77i%{f?bl>B_!u^P~lSIUAN+g<k9vUCDjS
zN%cba<B7XpeEPS>SKG*pC3Vg35Xr(=$;!Z*gynNLnsZuO&K94o-8J!KjDljhzWjo-
zT6?P;$}*%o7p%Q{s{WSld})oSUxCG566>b4$4$wZbNc?a3EQ*6?!CNQQKSCaapRlo
z!L7&34Du$={d<d5`TDwiJ<Cna=IRF3S9wZb=<itZDE&#@W}WA!k2dLYzsj3?s9^PF
z%bl~ETcW3@>&_3Xc%6QArSj9`{F7NTO1FM`Z&o1IckXvhUUuB7nI>FebFZgv5tWTm
zzq>=H`0u7mcV|nv)_kc7j<Tq~&GT=XWYbh`k?L)`ZcP94V)vyV@uIWEyUcaYMw;z@
z_RaF+J=0q=ILhWu+pG8{=G`&VUu{~S%C5Z4IU(|4yUx^l!6iSE%AWp=efNw_<aWWQ
zgntj`nyn7p`2F>z8Ql*21uGW^Y2M!Bq<wmm@!Nx3TXxzU6z2|l?i-RbYklZ}U54AW
zM4RSrzWlr|Fem<Q*qpbe6<+m!Ha$7!-(s4zifiBP8HVK{2e+wi<Fbrc{^i!ZuFutP
zdV;4<ow51l<fi%MH$1sJxxH%_Yn6Y0-t_h~tF)Ndo4=<*Po+;~?tgXb<ea1O%hpLO
z|M8RI@{&)tRyG)FN!mZZeRWSS_mbJ-qI2#h=W3~*y86|)^7ppp>C&5$yUg^ig@-%8
z48OngOzaQObEj7J2JWA<eu*pV&-v%Cb#{5oX`NK`@tEt{pPD<)?Rvd``|ZE;=GEJa
zlti7qt-Gh>sBnDMG5(vod>^k~@tW(WAMfXUx8;-B*KT>!l0Vnzm%eOCRc45c@K2@_
zTXsvA{@yA2H{b5X4}&XHZ8#4(*-LM=Zd9K<_xrs=D!ckloMsY<H94C1m*GrlbI9Ad
z4?g}{+ny5cywE%*??1;3S*e-riOH`gB`md2+`99IpV4If#4C3`Z+Q3dEg$pczS<J5
zEt?ac-Owma2}`)#$m4S3Was48pexy>6Q<p^&Ee1&I?@+AkM(Ej;~AS*uiC@X6|1sJ
za_7TEyv39Hx9aszt_x1iF57hPS7BDc=I&FuIaZInFF5b#e>8s{&z9xMS0_*I*?IhR
zf_UYli!XFHcj`443mj28XcZ_WJ#A90eZ$Ga&lG}Z&F$rRw(;W2);-TRO*+~C_IH{5
zjwhZnZ&Z>?C)t@^W(}VreskL9+iW*JFn-xJH*tQ4i%|OVAam(H*{b!^eI!l($e&8|
zE#dF|?03a|S?}4T)ScIF+m+}zE9~!mt7!B&QggNS&HRaFMg=<OH^w|qi9Z?XsbH~f
zvTRALq_$j1?(Equ>|2#L_trY~Uq99MT7~oGgH{D)&CSWKlCl}xbHCip(UGXS_*zNs
z+=<SUE{kNU&MdJKH(lRZFJ>-nxbU;qHn~>|$w2>Ke%a5sb+f!bS884g^uEy4ycEzS
zrsfI;3Lx6X26|H}fy+!S;8&R%8gS`5=jUL%$~4$Fu{c}7Lcu^Gi1d3+jZKg*HBC-P
z_%XlD;RHjZOeB}Dj9#lI-^4|8Ek3?$VP^1F3V4j^BapS!^pSf}VkH^AFhupmkMj(S
z|NkF;@!#N=eb2vsx5cZPUolT+*ndJ6ix(`>BgHL0uY^lKxHPGxvLICf98(5d`c8?(
zsUR5zeaE8A#2hYt*SzHXl+3(z1%1zy)Vz|+l1g0<E`68O;^fr4l*GIekm6#6XhQ=~
z%*5K+fdUT{RA2!R1D*;%D!KGQBuIBrW<g1Qk%FNiNFNq^;SO{5bOGrJsVqn};?j5a
zbP36K_jK`1EI_yjEF4@}T#}mWnU|KYU}K{nl$xGdTvAl2py8O3pOmV}rSD&ql3E1v
zhz86fnjr5N6y&7lg099ju(RXR4_AmbP>41+1^LE6!N}ZP&%)R!R>4vs+RV&M&(hM!
zC|1GHOd;CX*jUfNz}y0+1V+ay7+NYAStyvAn&}yu8W}4XSt=OA4N@>RQiwLSFxIoQ
zFfmauK&UcMfElk~pkQufq-SVm0jJ?oW`+iO7RHtq3g!@ZDIg36xff<<tb(brLNv@2
z0|l72SOqgP1v4bKnHwlXn;IZF17-ruHwXv9WMUP}%@iyQ6pWy5v@le#Fh(e|FhvR)
zkkQZ(M5q7>LY)??U}>rlZDeYxXKrR{7OP-r2nro&z{M&Unj3<Wm4QJla;gF)7mQSe
zNKcUT<(HV73QxdpIf?1T3T9mTj-Vu4qF`xYs%K<wYywNfB??A{hI*EUCWc)4!6m7=
zVW2CUof8Y7w=0_)n&}xESeS9?dzK{TWF|Z2rRSuAlz<YYlT&_$LbR@#nTejMsey%p
zuCbAcp1Fa!f{}rNfr6odu_ahM7UC?o%$!ss1w$iHibu*QAU@PfZkf36W;Ql8H?oA?
z)NH6=VQyh!fm|NE*~?xLa`d}>O<Lal-LrSUwB3DjQUDW+Q@h8s2`%>&RXjKaCTLx4
z<8WNks??;UproMCbV5yp`G;tZf`+T0j>3W_R+j)l?g_u=?fjm{A$aut`~TJV|9{@&
zU-t8k@!mO>#m~;%xyiu75Te1t_o`RcKIP4;N$>R-Yz(9i%q#kT;G(mX?CT$56Q0~+
zI9cB(_v6Ej4KGiLF$gv8ytDWikDSJ}x+lpEH%%FgX7NeeetekQC*EwZPxF^FpR`#@
zLO}Bg8J}v=K;FHq_eGYZF8W>S^7yx#t<jd_*4@__WzMjl_@D6N#&0+CSn+8*27iKc
zrsRKU7QQ?C`<zGygS8?Kd+I;DXiQ$d=Q_vZ=zb;-DaJK#ADKJn+iicfk}>Mm`l2m7
zZ#F-B{c5Yk-w!|6=l|RJ^jWRngxw3n4}Lk~(cr%_H8MTpZHxW(Kb9vs!zz9rx18T<
z@%-}J32f|+Ok92+4*4)B#{6JpS+HnotC@Cte;w1`pPT|+8R|z5IXm$^nG|`UJ+I{?
zPmE5*&+r7BWp_LNg?W^3+%sdJ_#+-A-igf}n+{nivME&=*e|<#@>7yza-=2OT!z{d
z@gBjVFS8@=3nkj~xUO;eF7+?_hJso1#TW72Kfiro@Qsi<v)Sbihqqx3>oNXg8>V^`
zU)(Qsx7IM;_Vikh&x(@*TRI+^Zk)3-tbTQIzEg5t(?8X3s{E&O`e$^OmblL9ebJEF
zG%-yfZQ@^p*>A32Pp}D^(f9Ry(!&m)?rlel(h_Q{o~>^C_wq&Gp|TDSQx}^>Y_+Vj
zE(%o0W^#Sozx`(ZkvfTEzhdsG=j^|_Z2zI0<o2!uR{xtnTuA#>xx}k=Tj;SbUKz(t
z8=RIX3tsHV`y$Zu%$muuPFMIG^YMmBCx4Vk74pY3%)RKpVXkdU?uI!(1?TekT*&{V
zogi8+IxFdpN+IXB#SA}V<qLU(UhoIF`?Rdoh@Tnp&*X@g&Sz_9Ij#lj*W$%9ng8uk
zbT$_JykXtxIy=LA3+ko%vdh=JW}9s|V?X;M-ac=|B#~_XYx56PoI5u6$rRJWTb>*E
z#<TJ8n>W;^8=d^L;ZH=^BGvZnyugU&%xB8+=arrcE?mP~CsCBf`1o6*<wOoa!R{5^
z7X1;;5}g@+FB(=fmNH*EE%~X-=y1yA3H(!d6YW0<+)g{O=4SiUV->TC)3%0+tyYh#
zVReh@NKf7L^H7S|?VvaMv(IX(8P{c<`0nBSu0G{&iczRv;k%FG3wg7f4cP;?{h4ys
zI>&f6zjucIjNA+1309LMui4qB)+BC9`@r(N#r3k*m#y;*-6s?=$a!B|{(I$o@uwvc
zYmORyKI*t4ILtA+PHD^2c}<RgL{B`)a*ACj*Opjsu(m(0<=v;ajE3Z!tbb2yU0lj@
zsnE#jM)%)4Eq`qI&MW&L|9Cu;seTT}A+^8Nj3*cqh36*i`0u3M{KoXLMCuBO@AupO
z`#bn^%nnG;yQI%?yj1r0=8m(RFO^od7yQ<2o36kmxb;cOrVu$#ucdJhL<)1Admiq+
z5c9!FxK6*%U*lEf9Bzqw-amxC6?`sS)Bk$@L??|U5p5z|%rAwmWJZYFGG3O9_~~&x
zY{KH(DeE@r{9G9yryacPv+m3yMbW~4vfB#I9Wp(#Uc+5BKu!7Ptpi^+Z?s#`=XPex
zlTw$RHF6E59?yS0-8^Yd-wKua-%b@p&XmgLepUY8=IE|xKYpM8qI|i~$KA;G_?I60
z+SDk;dcnILMQ6TzP<)Ym_B9Ll+l{^Pk;U>~4f@LSW5qXroqi<u7n`2PeT8L<eh0TK
z*x$0JVn>bd*{i45eBH9FUf1-n<Ja|zotPzZUvA#ow(qCpJhN*TWfs?V?O<KTb-nOT
zAiLDt*wnL*Pt><ntIY4WiRb&gL4M*LojLsyeJ@T|B=xX5utbaBn03Ooxh5_9V$F<m
zb6u(%pXM?&9;=$jw|C=P_8x<nV9C@(r~C-zxR#K8;;(M)4LESD>udAY_TIgJ7%ZLy
zToFFL(C)v{GEP?MWznf04sh#B79IT5=OWEfsmRO5nYzt*S>n^RW}hk)Pdqvv)hzB-
zx5ae^k8xbW%p{Ex^EaK{ADS+3S3Q=A(iJ_FwNd=s&VU;YscR0`yp4=Dh@Y}C&Yt=E
zqd&8HcV(Krk}-I)zrSwo?Uuil5?`&Fv|Z$Kn>ZE<R9akmQLUE$>PBSFzXEB+&XXNK
zcwQx@`P(qN))=L9Dks{tofQx8Pug2-_=a=N{*xBv&lBpVFWt`gdS3HGoqVg!sWW;H
zJnMeany~T02Id19%$tKZ)V-^YIJ>p|rpEELPtqsw8!zDdv%3FZmnWyxj9-c8IQtcI
zoum)AM>KckZEJh?Wck4YJNBTRzbwj`7xMjAJa^Upfu&zF;~&S0KK<6pGw0czdC#@~
zz2CM?mD`>vHqzoR$6xP-{PWv>rXT+MhhfG6(Zz3SdCclG`b?h*i!GQFa`=yZ@=mc6
z*Dti6KDg6V_-_3JtB#jFR@+{_mH4qO;P{DfMz`p{E3Ty7VywO@cU<K5={wuEir<d9
z=T|TN{({}&`D<d%9KZD8{KBhzzcgJId7j>N@#hB4ja_woYj^s6;JCTqy^~scxYO;f
zx_yE(dsdt_Z@MmU`9iGpOX&{XW%9Y(-3o*ZnNQ#AF44X%Zg7Do<BUezS{EJHJ@5Nh
zbA+9rdq~@<<68OMXZQQEd7EOcmK%on_1EO}d^LUc{$jb|0-bH?0?VB`z9_U5Ts5@e
z`yBd-`=Z7CZO*2AU+%xVwyd71?p64M#oLqQ|2}Rsc@zI2g!NV0l_=?d$8&$rXF6^!
z5P1H<`+k9}QvxiLg@37g6rbSacp~Q@>9SzI-mm7rf4=k!x9OW5((aW%d*QUidF}S_
zZ{c#+cmI4DCJ`W5XQ?s0-SxtxM*rhqI!@L7WZ04-aR2Cz^8c@%$M53)<)E8qnJs)O
z;p_fiNA&{cHijME=C;ws;<>=nf66PA1$5R<yw8{`apO+vg4+fA+cf&~St5D1|KRGC
zjNkb*ZBKp8pT|L!H5+Qb{ycnvE3<UT*@@pAZr$_OK6mrf=WRtZ;-}xy^j*3$@c;W$
zfBp*>ypwTx<NoG%{cb%bjny3LPByJ&9#*#|9=~X}Q+yfo9hcZ5W!8;yUjzJ?%ukS5
zcQ4gckgtS2=|-)`eD)pxw09j({!u7w^>lIK)YNddq#JzN>vN`FKYXVCuWf_<dZleM
zey-1V>2dh(&k=KeeSPB>-zDCLe_79bXSuZf%#Yd37yc_eD*Y1g@?XP6Z<n|duWOXF
zU=PQkKi(2EY(Gt}eevIF@8^Gy?+0y(WJ|V=eRGEU<&#s@9reC{A6JS;Rjz+1|9|&I
zu5`AkD^9ZCF|KVbo4@|iz3214S=4nsjtmp5(f_M<Yf4#~yK(fio9Em9W&|exPrI=(
zLf@fdzR~TOH`kvjOZ%pM>FTkWjR{+pi{E}O{dUu}-mYC!V_K(js4LxCq-=Ore#@>p
ziPHYIPk*)F^<FbtAfL)p<nzM4;O(V?wYQtAzK1VqzaZcJCH()aXV=%(U))$8dHLV=
zzyIG#{j`q=4%X#a(XyZW`{I?YWjs@_Kl(3L9=-ej@$8@X*IX36{_=nD{`$G!oijOC
z@=OZ9e>C8x-rsK70`dQM-`x3sE&k@aAM5{4eIvAgztKOT_{eX6zWIo_OkI3w&+q($
z-^BiWi{7?>KkwA%g+FUH|2eUEO_zghz~Lz8>k4&_a|OE(n0m#x{L}oz>oL{bS?gE2
zazX5s%Yv*re3{8c^XKNjHoy4a;@8|iipsg`TAOyCEKc2-`fX>TywZ6d+Z_|O$_EMP
z3OIHo9m)6~vDsGTTJ5w)t4@F0StI{9{GY+1NxT)|w>XX|nk|lZ-ru&%!iC3W@7vbt
zH!5v{q=Teieb3u|?#Gwek5rU>s~_i7Ds6GKt+%hAGq?8Tdx`X_)CHbpk8Mwt#5l+P
zE4KR5zG<`K$+PFYzXZLm(To2hdHvwM9dcSZZx2)z_mn#+SC;ktHnustazf@@#r7ZP
zC*Axh621P&t_LRP47KJd*Y|EKj6dPB<ny!YRdH|rv|8uySv~XUxw|{hec1K2?sWQX
z4(+LbHw5W5<W#QuxG$4)JJYh{8(f);YXm0ue%Idn=e1U}@cV*q$IlrpK6Tz?tzGyw
z&Yo{yTl?PFEKAz^ucpXs-BNq$=K;?wpT*`#$2{&9V14$R>+h|(=dHi;uPHvCcunem
z!p~XpKj-YzFL}J|!M^kLYP;oLa=ti!-X+3j-5s&|*b~!d*Qay;%oQ&AZg%e1neVo5
zc(isLs@{>)eEz=l<EwqWGanqVT(j}x_3}^8e(&V@m+0fKIB9>6!Fjpf@5OI&BreXb
zYkL{~NM^76bFNbg`)^dVe{W&+S-sx;Q?Jqe*`2lmFK?_{I3r)Vy8H?InH{WuW$tr#
z@kl(+`Xwc`=)H^8ynXq5lCP{OZ=CqY=0)b5%zIVp5(lpvoLigy!B)`XUx)jJ__Hr|
zyYj|W8qQ~X+hezB^Uhri66(deYm9@m*M5;o@s67kF1o38Z9uPd^S9G+S4s^n%H9^n
zn9ev?%UW0yEOCa_iIMr_HU7!n9v6es7l<4DF<#=oaQ@!ke_4M0zQ20r^UDQy4>)cS
z6}YxLrcIHjM7eYOJ>h4O?;<YuCZ0`bXRMc$PON23u==Zgr1Y1`wYiL}TSQ(*wB{bH
zvQR&_-|K))v(A+buQCsRKW15G9Tm>@EY)PGk-?mcM^0@xv{;Mzu;kelJUr)jI9vbI
zyL*4@<M)RqYcU_5{7?MW$MUCDTFi%S|6kb0H?{Gh?7!}^KeF>zhqASW|86fUS;xck
zK4z!viuncd(cAdHFI%th_e#|J{qDB}HNE0*TECHzHoWqwK5J>USmW>bT1lqwr>fdm
zuT)yyW<Kxqi<#;B)vE2$8rBUa$840pUtg^6cE#z*jM9yJQg@%-#T!vNE!Xt({X0Eh
z_Imv@IAWew>vq@Y`#Yysjyl_ancrS@J$>8WoR4e2q#CBl_txx-zF_H6e&)T?t;b@g
zw#~k9-|d%H)7<WN+ixAcQz&L1F+V;z_3kC^59<46O5N-j)?HP+<Tm+JzmvQ3bGe<l
zYo)SZ9A2N;yzqU=mD<b+T2>eMD&>r3+&xgT!{CUAeYnPft(+I^9HS3z5I@&+U_bZ7
zLzNN-?(@&Q!?&gT_JVy!t$My2MVMW_edgJNXAbHuAJ<)~P(N~St_{!ToZCFVk9KA{
z{m9?A_jCgPyPIj;I~@%6Yg~2x?-X-A{P5vJiw!*Gc&m?SznQDabM)&eRlbI_Lys?9
z+rM4Zy;<qTMZFCx_K2`~Z#Aq@-tjYE!EI)1+1<bwT{hW|*6;pvcQ1>g#J+nr@rF<M
z3za1=Ud%AwCjQny?)x>xf7Q%R_D?(;FU~u6%zF9s#^bhD9McQm=CPZqu;#88nX%U8
zfYwK;Z_X~(rZ+3}?XNtlwf*+ba~J<B?#&7(_m_*GSDatnbk_goZ;Stx47c)D|4eM#
zE0MD2`lfTtr&jLg`L=JZz_X3Jg{Hoh+AkZL7aWn!@-&_A-#>-a*Xfo2b)yd6GdM5u
zZBeZh*U2}w^9t31W=7>2-Fy7jHFDFN$V~n%(=C>~PF!IjT*WbWg8sn^&Q;P)OUwig
zzA^SRdb8_dPOsQMhv+TrDi3dLaeFY&Nj`C(_~p-QEYF?0W9Rtg=*b)RxsuaGEuQV_
zdboGZ9*On#3Ga-1Oy2yBocJ^^ci{n_!=LW`Ipno}=b^~6lETOAj>KN{+xjl(>>uvE
zU*F9;>HjVE<$fFI<l-53SMEA&{qIzX;iben`&*Ui1$}yl_T;s^*uGdh_+HI@`=d+R
za!<Ul>fU!ErT1pl)Xb;9wd>30Kb3zIQ9SSG%eUX-{%qOrI{DQ5r*~Sz_NW(kzuNVb
z|Ht<9@@q4rr_8_i@Lyx4T6uR@{Z0GOCC6qkq~F|lrY=8!&-3*1;(v@!%Xi4ROYV@h
z<auLvaIV55uR{vGyJV-${l8sc{*fAvo1v1w^m%SP%T)XFTqkDBhPFoK9n;-D_=mRr
z>u$8Zzy7qy{Nq)EMY6(|7=_#Z{^xg)YiQA4DU%W~ac%2=jx9zKOHPYD`?c^jPu;%X
zKVLlO{`OY-&G!wT%znS#e(JBi?D7AX3xD2!_1%8!UZpkGRduJ{z3VK`G4JbdjQ5c!
z&opz|z$*B2m-I%?!V8Cz*yd;lzF8+^&hj*~qcDD>&H4Bz33l&%C3W_f{&y3(xM{M|
znaTt2{>^CEWBt)xD(Texkh@PN7v>+|viDrFz05V)+Y6_?TfMBL_3Aa-Nb$?MJKk-o
zjO(u#Zo8NF`K9fdzgzaPUH4?X%+4jOID6mv{Te<_a|>MS{bzJ-V_<q+b?6Wy_iCTp
z{`ZsaHjDKBJ|O+@Y1e_hxiZY&$?GQnvO0Y)t?W&OaO(Y854YcXdVTMm_c!`q3uNBW
z|0?zS^}0U=cP{g{d%RORws`M>d*+4A3q_-icO1)z-e_&kAN@V`=FP*IOVngeOka1W
zjqCI5yXzCbX9*meD`V#OyMQ<0<#)-Se}Dg$I`;FD$CbzG2UG9-J!tXRkAK?1cUFeG
zI}XdXUSNH?NP5}ZW%Va?U2k1G^uFWw#=VvXbL<#PcP!i?Z`bwBPou5hxyP}bC5U%o
zdqiV}z$@v8*8~0j9r?o1=l-AFgZ0jBZi#R0t(9sKdp6#`$H<x?ES^xAw(GH*oUoF}
zgzY`MxOVX9@LvwRqgj{{Sg>$f^pPKuGxGa))~7$`(%CEc+<);MFJ)V{o7)ynIP2>^
ztEtRIyH@<C+@&9O0v*Y(983;vw99!be`DWE4yK(;*Sq|8jQSbZ@ZWZ)YwKBqm>uk|
zILt5FS+o`vh+S&Q{xD|(pXrfxJNouAJ=VS#lk~l_clVLwUl0G=oNs?5h9mS|tC>aH
zfp_^oH1D<~Y@b^t`FdjE^mz~RxXos!N_}5`c4yj+ok40o$1CUbW@O*}Etj=V-dS4Y
zxm^Ce;I#+WH%I7n&Z=Hv^kmw(XU_arc%P=P@7ZLX>$6QKdcw^a>o4@**e7;dXzBY!
zv5MzTRj=QvfAwbN*UKDbX*(Ak`n_D0=l}Nm`4_$3FZ}ne_Tt@lX?NbPI~M=v|5NL!
zr^?OWl}&%V?w{BDn0Mdy@uW_@dE(}db#DaCUmd^rU+R(OmG#+@6&Fe$*Ie0h{aJz5
zxwoA=*mK#ht}zZQ^OI`-rQJ6_ea_4CCa0SduJ}qmySb<C@UOYeh4W6Gdp0BXl&i%4
z=8jEu*AJY^&!2l=YX58v`{lVDduOamwYnN%eB*B3o#hMnX(sGym1|)8(zdesL?QEm
zl8J?SGaGZy7_4}>Y^%=PNsL^%4YiRuO_#qgxA}1yl!~!O#A#km-|=tOFRf|aMqkDM
z-nioU#bnvX$6Ak=s>2U|yL@ckthZ<5%&sl7_qEM@;Z(-gnfLg+#<PE($;A`?@;%G@
zHYqhaZ<R~=@0WMqIBB0((>@=6Ir@EGfi9=nwI_cACf|Lld%v8~#NeG<ee#>|TS+#X
z9rJGf{P(#mc}_vkneyLDKJ9DRdp<Gw_5I7UpQokDhc96Ek$7$L`0@6P={F1RzRkGO
zXmzgQzOm!}tgVyZ`YQ$cJ)ide@1JVR|8dL<SoaHEEBd}rH>Cfrr_r_F*R|i|UpJB{
z_uxBV^;pk1h{w9+<*iw-+cviC>9*+lA@EW8QA?#?>1X3_w-t{~|Md3)_nUtXH~k)p
ze9D&BD01%*DWCa`E1cu;&7Bs^zhfDjKi<}~H``QgdMtK@*fm?HZR^i((RdY;k^bT*
z=ds_t`(gxcvBw7bZF(s8<+}TK+ds(}tHaIj1wZ}JFR{P#<xy89`MkgTw5GOx3^s`E
zD%`)F{lCT+p?j@@hYTfj{_wq?`fY>UORhdA?uAo-{^qQ+N!eU0bxU;f3f}M8!V8So
z@iS)pK9i7Zc&qtk<Q&8N;}2(<u}}MypL}P#$8m*}nBzeg>RG2v;@&W2cEjVA%pKQz
zt1o;1l%H_z_>YTXww;NK1MMvg?}~pAvFAxK<S#uZG2v%m2SY*Uj^$3am&H$KbXC5R
z{#w(W{pj|F3mJ#!9=K(4ENe1rk>mcZ+^B{U_D99_(OQQy++8=6h3M^8+PC#q@Jc(j
zW8GZ|H4p3Cc18RbI#MqnpFBHCDUEY&{_}9x4cn$YzJB|5?uQHf$4;M0*z;BSz@yKy
z2Y$o}y6tzrE7e}4z<*<gL~`OuhVNR}&fZybU+1jo=3XB*9?6%?SM2|3OqT5}t54oi
zt~sAWxo2CVt&`a+CYkCdtlpRR?(qqpCnoVT!m7vk*o3XUA1k@9nB3ZMf5O^tYvRPt
z|ImzM^}W-WX?NV}kipr64-%!DH>J;dYy64NUA8T?)7J1_YxdPjo@5T=$35So|7zu1
zOV?j3(+Mt^k?S5^q<QXQUlOm5Hs57`x80LYdgvdqJ0Z4RB3blEWrF6b=9aGg*PU9T
z6W?r4d@Hb3fLF(UG3POxf7=s2|GodH+*v*3NZ0Phm(5-tYh{kLzg!>k#rSXI3!ir7
z*z_GscTYWBB68WkoOxZc{?D)BPpxL?B|AtfEQnbjdPM6*Y~z2n_cvoR{t4NfS6G#C
zS*Bg`&~<}mwS{s1hl(aIFjL|)lnCS(?CsbZaJkES(;uTnZMB>!>^E*oEqKrM<HUk9
z-;PNxeQf7e|1Qt0AT|1YK698~d)cGgPg?94UVisT|8qBX`u@-1`@DmH`klFZ>#O+e
zEuZ!-%l#F}_+|4Sp}*Gu=KPy`MLhS=dBspJ2PvMjSFZPz2X39HZhpZ~$guI^skeW&
zfB*MCcmGXW$HU7kQr_*nVRx@0{X<u3y-$PP4*k^Me>Gq9PmOC;FceWba&ALV1#_CG
zezQ_tTwQzWG8=xGAOjZ-#vSM6w%sdyU>9E@_;$VFvB=B~AET4f>eUa(>9M93i@%!M
znc@BP;jT|IH+udm-sYd@B%P-CyLZL8b6G|+-yXSl(RlaOU%AG=c|R8z@|vx({1shP
zZR@esS?g5fv)t-y!VV|d9_!U_lVl6rBK_{LnZsGG#9ZB|%ZvVf_|5xk`tNDK<hSUZ
zF@G1UcX;n1xn%kCIfA^oFA~`H?fNIp{P?GRqkc;k&z(w{!(8unzZ2KKdvX73*+0AQ
z?A-rarjqx$Tyy=ro|YW8DGMzw?@PI2(f_LH3;&YaXTLA4n(dWmaR0Vp)|}K(=P%nf
ztPl!1^WC}1*`;=W?fGxtMC+@M)LEyz{h9r<Uj9h>qTUMrMMh^=JxKd=@JmeTmFBMs
zEj~@VB91k`>2coC@aa2al6cDEHR;mt!Y|ZS@V|7N^1gG!wT{zGr8UM8>b#Am8kf&6
zJY&~xW#Svb@9MVi>4!Nh66W3gFl9sFf5(Wn;_j(iMbbL=8s06Jkk7u_`YR}-dE2>+
zlKz&5d!$eIG^{(6d?DnB?R<&Ow`=*Wd#p9Szv`dx^jFp^Ch?y!_m3TSX!~Jg(^vLX
z=b!7A#qn-dQibwcp6V$dEm*i+v_0>R@Hrv##rw^FxzGNXu|7rmU3((qFM0L+m-?R;
ze=Xnfb%*_-ie3D3++^h>4)~jY+VD$G{Cf1)zGj{$PjwF0&;Ms_FZTO0_qW2?hTqFC
zEuEkcEOAsprZwlMg-zar6`ofE&X_YMJ&E4G@O4O~+=PD{Zq%y<{e1Tz{+ybT!TqF+
zck$*o<}!Vg_DtNrZ@T=-{TbDQ4si{?mWaQaC+V^F@0^Z@N!42lHz`Jl_<oQr@c(JN
zr2G3Jog9gD#bbX?x?hO<vQWE1{)6L=bfvR5=Pzq`X3+ZLitpzaY3B}?K9qa3tjP6_
zO`d6a%kE>=KlGfsCMfd=q;a|)ntZ74VN*e9k6>x$su-o$8<msXkL{DKHVEsVE%n{$
zj{mxV@HN_}ub#Ymd+PID*RP)cIwO1bYuW3D*FCSNUJnhQ8C|TtWAdG^cX;ofy{mh7
z=DUCIHokMe6MWZy_x*zSPVq<0j}Jc<el+>f>tp48?<Mcs|Lgpb{>WVA0*j%eH-{I8
zZ--Zb>J=Xkzl_-i28kW*RdeS3aPe5u`OPIg$s@@n$tP*+kz1X-!k2~IRmIfoCR$h*
z#yxs;<Z9=7m1!#PylQMe&OO2})UQ%E?T2qr)Fg9FWlj6cf=d^cO!Q37@?R_cFX)f=
z=Q_pfM_)g@E*<Z```)Lj)vsq>zrSbQeTkaKug-p%ZGV4H)#tRC%X5-$UfCr5i+8Rj
zyZM?$4v#bCe`$sHzCPvqXr9A8-3M_``ik~{WUL8axNm|wkH|BQ&#lW_79SE7JYunO
z^&T%faqbhl12?`uGVQ2iOyZqYJLbm<>TO@WcJ=C`yBXIxUFW-Qcb)UP_`3PA*Y7;w
zbGmo6X!)+$J1_Ix>n-qixu;vQep7{b+Q)UlHT^%TCzf-ct`zUs)9ur-xnlbKfP@d{
z{+jQ39d&MZYv*bq^J$;oDSUbt{3P~s(LG*Ism490-S4&TH<7Mnzuvt5cwBzhp3ial
zwYI;1ZIu3-|EI?I?1Q`WQ{Qdcn94s*)ac&J_{DqcB|i$D`eJ*{clyI)C-rWBzs|Hl
zcDwB6+LYfH%2*y8yD0tszSZx)8x0Sn{wq>%=niJwckpGA;g6&Tu5TATUi5cS)y1;F
zof@$s`ds2WyT2&KBs^wGPnS5aF2MiS;84N-Z_dUI@<r#x=GO8&IMZR=Kj&`g#|ziD
zp4Z#4<I9;gV{bow%e~LO#57!f9r?=m;qv2i<r?-?E#JFbdd|8st=}QnR&EJC>t||r
z^+CwqU{in9IbC+5MO}0Le0*|r^8L9s^`Eq-y?(N9a<$*SLZRH{li$yaDK9#Ga?NB(
z_2{{4%8VYS{5iR!`1FQ7cXeXV@G~rwEwoxUVcz6v-lxyhvH7wW)W}5$AE;Bj&{o5g
zXE6KV8~u9);S+<K4c6@45E9Y+MU>I9bGMAZ?)#6X=t!Oa{q*a$#BH_PxEZo!xC0mK
zJUL)rcSZ9RSIxVi?+-uQDnGIPn%rEMw`_y;f3x@Vd0z3J{{GwkdP(%T#jo6-zB^n$
z`B`b$vb%k{98O1m9DaMV&*b>!6Wc}4Jden<36Gp8vxmd~0M9ymoyPnGHJyf?A8hvU
zWFO>oJ#pjZ28neC{0-#iwcczwpt*xbJ5l)$ll|e)2<G(%syFbP9afOw;a<qVcSzs{
zKl=lNJ^b<q6n}`d9cnLN={vN#K>iPh|H0!Q1ZA2NKiI~!SQ;?3Eq-bv<#zDz2CicV
zEF`!eU+k-6P&?H8L7;}6|FB90i(KpR1fxA{s}r?+8l7gai9cY!;W=$WI;X14!%l|l
z57{EUrcHeM#Bv8`s*8%yL`QY)6Q5I5D;w7+t?qQnaZxSX)V7D?`UCS#)7B`zKIxsp
zTsbpGW%dc}6ywUNIf`~cK3*rne#rJsRx+BNqkQ`$-zO<eRX!nyvPrQn%6>u~O%HTx
zJexc@Zu-WlFI4F{qx@ene}Zj_e&ysnu7^BXav0@1RRW*ne&Xv?GgO&&WMcVAyC2N|
zTGl_vex#Hq<S%rh?vtFQ1K*_YC)u9}So+v3k@8gWe8OSrWv3!PG5JaI4cAqZrIx6z
zWPSd?#!^qLv-oJ`qng6TA4_%w)Of|H=!wl2n=d%M<9wHQYt|#9Ld!Mc^M%7Z&Ub4c
z6+aUCD66pd$D$o!G3x8Y;~%+yP(I50==3AE!pT3nc0|^M-ckB>Bx$3|9j&~_?jIK)
zefx;-qv^(wJDTr=%DdNh{};S3@V%q@sQJ<DN46g=KT>|Q_EFtO+m8(u0X6Y|9BfqN
z#QHnje@g%H-Pd!SRiMLx)$akTqX4Vt1XkA#oU48;{4ue@$3}0SfW4r-sJ*bgxPRC3
zBl<@!Ka%{o=Eu?>Q-5r&@UzjcQ?AplQ?JvH6VUIn@0fl>{v_uo&Yx3i-0alVuPU6>
zWc6|k+90CT>XjI@LqyTl>taxki1txWy_32}y*aZsNG)nxHLJ?ac6Hs#x}|k%=LMf%
zeSgLMRrhb!Z;jvlKkfhBf9-$$f0zE|{q0*lGq${;*<!_$iK{$2gC>Q<u2Q@@CCl@q
z(;}&5ZQiYyOkNgd?)uVV;yg?9?4&gB;w4I%>rDJ->FZ9IH$}|L-?Mwk(My*v85b~}
z^YDHU{4z3g<rW^(o5d?G&YK?QrSGwN$<<3zFI_WrYuM%=_O#%ge?a__Rp#C=leRck
zMc&fLofJ3G%zM38w95Ptov9wtOLH%knL71`EWVOq>ed_jIAr>(u*X+ft}YG>7QU*o
zbyrk#{1N?W#y>oZvMqzpP1^j_?2pUNwRimT^vfq$pPKvRT#@+B)pvZ~>3yG2eQNI$
znVs9`Xg@z$`=t8mz9Rdb`)wS~J)a+#y=v=~l&#yM+}EyNw&LrR_gA@JxqfB;Iw>mN
zH&pt>=clZnCVz7JsaZL3Peff*om-rey|(_;=_gM=ef~srR(ST()Qq)HpFf=%wQQQ|
z{s#|a_Bc0KJWnZ_8KY=FG5AUPC+?kI>n7em@%{<_Cv{J?>nC}OCQq4oE2H(H*@U1|
zf%CXRmIzH<>6E*KFLdQxs|<##D<-pDQjqd-_K218I_$x<(*1BIOYf3ElUc_uL`b>E
zW}H3iJX@vliu%ec&Qce$OeU&be6@vbt!MVd6y50D6=p&HtCnBUzaoG2^efS?>Xr6u
zeP3VLWzu?W@z+ePTnFh(Zd(j<mG-O4FPQvdafwlFkKe-JOvSlw^2;y36fSA2nQ(5&
z<|p5u@;`C@l=!owCgfkhKMy;#dL8-c{wL<2n15>i$@!<%p9X&t|CIT&rzY%Q&_Az#
zQFiL{r|+M*f9n3p`X|Jn%0Kb`)c+~<XV;&}e>N*S|8w1^^<OJ~a{c7`>HjDEU$Xh7
z%t1|-Q`etLJ53PKxj*G}i-2MXhw!1)SjJY3kPZPQQNM?xj)J0|6GdG&YOYEWU(}MJ
z=++_nh-Lbt045RNLasc;I1d3EuLVL&ShN+rRtPO?(H8VtBDB;++t6!`(DEH3+lAJv
zXvnp%P|@=ADqY$Z6ufe&iuTslET=_5?kiU>(fB&$m)ELG4w)-Vf~2&4r!4a_Ub=IF
zN=SH=M&>D7FK^Y@k6LS|@GRXrX=RG$%~$7N>3c~pUF%$Qg70Wz@e01(m;5r<mjqa8
z&7E@2OML0-OTI7HeF>=2+B-#N>Gnyl3oMvqW*uHxdci7d?v`^=;%iqg-l}|g;?on?
zc4gk(Di`IycKWo%U#}HywOQN$+3>l@^N{p~#j`#aJ}-GL>^1L_`_Ax}tG@*Q(q^7g
zle)mjLvoFXhVzt#r)p0br0%E+m0Z{p;-<NH>hGzBry^447{$$8;1ePjAh+c6OQv5c
zu^#gmb-zgZWm4Ow7g)da{H3KOlCggC7i+)xT%ua*Sn08M*}rA~)~yS>zCwRh_SS9Z
z7Bc3u?-BlxcVJ(`-&gWq*h}~B@~ic{yI|j%yb$x1>p6J0u$)~SdRb_zO4UhAm%o$$
ztq5H{eP`yKk~}u^?%9XWKA-nQtoVGv=^f7t-8c1B&%Avk_u00Bqj$>k)W6HW^L-cl
zj-lMc`&!TzwkYAXta}gDo{)WR_juofeNWC6-!GoN<MbW>FY3RH|F*_0-G3?ji}|nJ
z7eX@BOv24quU{2?<@GDxugjvAy(+tK>81P^|Ejt77MN#BUbTF{;cnUYc<upCC*FnI
zE;xAzM{&iSnXj0_b<-(&%K<CyyM_H%+KV~=wmKdPNNg$CZxB~8VYQx*&@ztJLyr#$
zAM!~wd$-^jCwEKhA*F|ziJZ4`Pq&K3Y}ybMp}I!YYys<Y;ccAOEwP9468k@xz1w<E
zypKb^sI(>dkoqCdhdm!m!{dL1?a+u3s}rmfUdO%bMCYUxU9%)K*t#FyaWxF;5sh6G
z-6Jl1Br9oBg!3BJYhtgvzV2{KT6H5JN6Sn+x+~7m`OK3PL+>+Uw>xr=mL*khY`zir
zMx{(_cSr2eyrlAt?Kgtos6Ol1do;$-|IOnkN2{+Um9Cy|Kc_d?a`#F3jq7LVi*+16
z^6*ue_15mP*|rDdQusH!-+cUr^P5UFZ?$f9ZnbT-b9Hd_th?Fgw`|{9zNLKY_btzF
z{l4}2E$g?$Z-U<f8Pl2e@%=D+kaS>a!+fSX&L5@^`Wt3TU9|AMpyGQ`CTfA$s<q{O
zm(8-)XQ|%e%botM?c20%{?;pM7s!_N74?<%75Wv}J*jcAURArIc8Tm|yK8;f>RbG`
z_-{SG<^0ykw=~~!zui*iX1%(0W$n`1wR10@%f6p+KkI(x{cQ0${i~MC3if$?Vzu-=
zH(~P=?@v<~-9F%!bLH60irERmxs!aiX`0RU-Fh>ZFS@~Zvt@4MHihU7x-PrJU%$>+
z{8c%Aa`7M2f9C(n|MCCx|F`Q}y!3*n+00uVZzV*p&^;rT*S*2@)}ow?+a#jb=$?DF
zX=m=oZ7j2ohn=04;k_wz`_&Csw_FY4U+sQD>|elN58GvRYvjWHSIl2Af7Sep?_YfX
z!nAkAKJKFdPTfb!J)LjxSwF}vlG}F3tb+aR*W(X;XB;g(CR<y6XL?z%ePj8_noSOO
z{iQN<PngH(>$Sf=`?Sb*$2>-7=6f7BgaZUNm_In%pt#LQdiSnB+CRfowN!mW{GPsy
ztK-_UZjs_*uT{akTjaONZ<OC!zhdj<Th?qApSB)7CwXq>Ii}|}R^sJsrymIIVSSw-
z=-ICBsr^ZzvP(y)`=oP#m)hzs<!ge^3oP&SRk$}De!SwDM~RB%D(ftZEUR0YthWSm
zS1jJUxOws7#nY5;2Hp;I-|a8GjQ6@*hVs_HTN!Wb++*Fl7SCI}Z}IHKyBD`FUcPv`
z^3{t6CO&@g<i(p8k6yf*!&;rNzIa=4-{upR;d3<X6zp8Sue2_d-yB^V`?vpB+b;LJ
ztM_?+zx@3LW7ULx{`L#nUnEww$Ssw>)c?Y;YSz4k=`W{$(f(y>>wf-n{)_Dv@82J+
zyyyHv^UI@{IkUT;3l(hR7vpMCT*0`DBepfq;y*jb&mH&k^-Bb-xaJm!?N{ET{pRq@
zKaB+*7CljkO$LD#3||jRB(5>&TYc{8gRG*h0sb~xK4NmtvWD!Ytk&5xyJsb9O+Rzh
zt@fixc>C(pOAEg4_!Xmdy&=2f^Z!*JRu}M=9^^ly`q2FfgWnZK$2ERe7z!V8Twzi^
z8hFR`9n&NBIUm;+oZEiw8As_BrG@Lv!aXiN<NUhir_-u!4%I;`*6UuGcS&qvpQUz<
zW=(6=VzsRPS1W8MwdQP`7a_mZQz>hb)e8Hlj?724PQDA5ecSS_XPZlPSoA90%hR&Y
zXKHVGzIEy??ps>9TerDY2S%@6`&g>5cW3;L)iKiRbg%bipD!)=a!u}<+(WhE{>;Kz
z(Y8yDW(RL|%ANIXhgod3)9i(3ucT#ezBzx*p0CS;F6tPq&kOytL3;ll1+Ps>!EgH*
z&Pqy%$OuV^$q7n|$_h(AFFLMXu}W1fbba9Fu%fqCrNOVR`sZHQ5cpWlceZK%#4`WW
zCHbp+uFZ_RnR{zn_Wgy)%g@E`Dtmozar*i>_jXp+zI%In{r`qPjRqM72PZ82&MR$~
z^kl`w@BNb2d4F0u`E7n&INa}3Rq`o0c$t`Ab<Hnf<Fs?LY?o)e+w+rqUd)dxi;nu+
zZ+>!f>FH^QyPk*d+mQ8jmiYB`(f=>CO*hYb6nFE_E3x>(lh<-@m+uMNReb&3_5Yub
z&D)!Q==S?PyYv57v-9oye{kVp_r62z^0L2w{OI(5u=%|IykC#L%v?2j7a8dPZ}rl9
z)#*NS4C?OOF#O&xXIgaRL*jQ{S)&#4dGF`M+3qgMd+M8C=^xeo?CdPF%qtrlv;J0T
zmcG8?w=Q(E+t(#WvgWl^Y}eK^Q?t@CQnJx8QL)gtu#(l{%_`rCs(}wIy%v;BQ@6hV
z*89}=kDl|k<-Ru9pRT~hvqoUT`{Lw)Z*Mbe-qk42{QYf8oR8&}Ag}c^FGbIrWN|lh
zLfG<c)~6qTlRfoihqveayqz!R&3}2a__v<qJHNK-g%8UXSlh`N@7S!=mb$A}<^J5K
zr|SwL0>kRm#KPCyimHy{-*|N;?@=?+xmvqw9?si%RArB<p^S;m>Pkb_n~lAnTq}(>
z*G!z}bB#%U`V7+z2d;08&I?N`si}#Zd&}-p)rRy5{5Fzyx;H(T*7j!ABxTP}33)7c
zu8O(%?$NE^#m;J%9$N4xrMhu>Lc;wRd2@sQtAaCnzNY;;q&~NM$J3*SnxmedTO}cV
zRy5U>r`$L{@S@K4{Lt-px;B1%Gjn=-YC_zs8FS;O^oE{yRx5k)@Yt;vJ$qv0XEuiJ
ziu8|If94<W$CQl|{s`vHe{}K#kG9mrerMs(C(ZBrk4$%Qtt@|)uBdf7_KNX!;rHJC
z-=6TE>CxnCT=cF#r}xV)<^2AY!MkrrW*BX=aM&zU=I(lY!Y7NvsVeE~`0k#z^p5DZ
zc^jZm^X_0?j^{e|-&dyCwwbgpI_PUCS@((K*(cEl9X#JP*M9Dvb2ifA^m}2UxpL(f
z*YDVV?t9Fyhu<bNhIPz%@keyV<ddE|S0wJa|JK{@+tpP^U0kwyle=<rGJi;4UHLab
z^J~R1tGgZ(YA=XZS{tmd<l1C!H;?zjogjT4r~dUDqSw7FKfK_D(1&Fz&wpmvb>Dp5
z&-wOf64zhDr#C;_YMi{?bNPF~{5c{2{EORI(|NPsDJT9HuszcA{=(tQ3!~@9l!pcG
zJ9?YXHvjX?kG`iL>rB_*QK~2It1I67tS3U`)V`;kGu5xZdo28Meg;RW<4TpqAySG*
z=Dsa{w%v4o<+dL`>SwMD*?*`=@=2K4>Y4kVo!tIA`p&ccYb(Dg@kyUizsP6%TSW9`
zUbl0gv35?n;FO9NGo|0>y={)OFc$t8zjEJpP3O2R=eu>X&k8O0Gt+U}_iZf~r&;sc
z`&hlca?Z^)JY>q-!gTSc;=DRnx!Ei4`1xP-`z2PpIwL1+Uwnbr*Vy94wKqS1nh<{2
z<FnOPTb*SqRxFU%;j-qKbgU1L`{ZlIpKD?#eYV->cyeBa|2u&<-i5^*j(<Os->b(Z
zc~s75cl5^TXWm^@FJCTvz;<_f9_PDB(a+PLh=w2Dac6E`j8;#;DW^z<&pT$aTM4B2
za=u#}`Rm2pxCSTXY358k{~rV~xy^XPuWYbm%B)1c&5KkPE9nRHJUlD0-rlr7ag$_N
z#<F#ZOQ#tgJDF7WaG%_P4io#MFJ8`kz18%i+4pT9wk>%nVtJ^^%OFL3S*~M3w)Z5z
zMco_EymKqi)YQp)*n2N?%9XobksX?m5s8%&+vcdQ4iLDOUbg4@TDdQ;Chy*=n(*_O
zaB#{7{>xi#baWM;2=MVaSFQg1R%T$koJOP0rE4a)!W3_vHTu<Y-2A}j0-M)!^^bq{
zuwkpJ$-8oG#tMmBN1lj^?)>=LaUIXOlcw`^x~}vcob;)twfRrx;^Y9eyvnyTu1;9J
z*3hSY%Jpw6_HX+bAzdu;bM<H5eaX2us^oW0x9zQW``j(ve0+_3c;@Cyi}tzJ2FN|G
z-MA)cwd@Ptj+4e-2d3$mMmhBy%`~{h;(Rlv$XK;K>(b?YGs^tTGz>EWtNp_mmn9r<
z-7d%%wr96O|I$wzJP)({&ljG^)p^4yNhIz`&cpA5r_=rJE8VZ%Ufn*mdb8vOH_tWM
zt2p0u8>T+4RbEuP_|v4*lX+5V^$zX4JID9KGq-1EJU@55+4518Pp-rF$k%0e6ZqM-
z9A_whr!cuWXQ5uww95|~XY>}{Ty?U%{!^~&B0q%{i#8}+lZ{UdFRz<tEnmv<vh7S?
z*>9F5?-pj*Rk9iFy?FJFe|X404>qx{2lgCj)4ip>&`#Q_prc(gTz+!-<lk$0ZMN}M
zJ^7`uYsHCXqZVJEGsliZ)J*dC$vV#QPkQznNsE@qGUu6z=0{8{H|%69kI1|jIq!#!
zkCQNOoYLchMZ8J<2VKwPy_r70XAXxBmsXLv_94#u{H3DvO)S*qzs|b-@?4p;v#o(t
z?TMDMGt=8yXL3$;nI`aA`v0Vw#gn^#dv<Pj>ZwnjboR)mz*UJZKX(0^>~YM#q{sW)
z#ShCQPFnfz`fhlQRYv2Ojp9bxP1n1FM9&sI)_IkwE1mYQOecFw{ed$%5|f_CGX&i0
z7C!lAov3MIe0)IryYFtw$*)De&$;OJG;6cIZ$m`E!)HsymME?bRXVoIYo}E7WThDQ
z_~%)NB3YhhO;b6(tL%}O#<nG`r=w3*Zewd*mbLa(L0-r~&108)&l`5=cGz;ru@w|b
zygTwd#6>ZQJBk01h7-#H_3l#TV+wH&b5adsbi{)nm03oIK36i#S1EIReCVN(lY7C9
za|LTmWp*jBDa>=((;(1WqLadtq?N?~s7vti(?i~3rU$mQPd{UN;+o*%Al~;5mv3*M
z|M2cD>+?(I?wV<`dG5?LJ7=z`b2i?Q*XFtUx>;sGQkLRkGxt~b!V+U7%8YoV?ZoD{
z>|>Tve9#mcqwzyvitt(ieeo?@qk>*>S6j&4_$k`RRPeIeGUyS9Pj2dBtGzsq4;I;9
z@=oK~yTw$&;A?Bx+n3=RSU0jCeE96U_8q2r&fu4k$BJu~DaSdyag=e4aqHL-XxDxF
zsqv0XJ6@^3OhE!KI~Y5}1*!$63kv;Zn(tTDC0TiF^3KbGQ|297K6&1eytzk~yV<*6
zfBvO7=hntaYG;GWrTU(ToPOxFMdsnfY04TpTc^~8d~)}lvO+~BbIOXlF-%)p*kYVK
zlWIlwcTC#ya9z-^uVLkzvO`x_eM$bHc!PIB|Hfzi2YX+1opA4Q?Ra6;xK22rBcdas
z^@C!-sSht*cD!^v!rmbq!2i&-#P!6N49>7%ul^}2sXL-tFCH$jZ&5zZfAKrdFUGs+
z7rwvT&1TzR!uQf~*Lsz6tZPGh*v~vp*>B@KtLY<CZE^Nih3WUSCcJaJxAViyCJ*-#
zM;-^8PJx$lvjT!1a2;|gJM1WFkjhz;f8px}H@5d2)6G|!axIu`J89PaX1$s{59$;<
zt0qs=an`R^(T!-)`{q%VB)98^a^@wIl8x?{R<K_@D(A_neBr2^XD!=;Zre$_zPO0n
zdA&S!eN||==}V(YJEAkcC_cI5d}3+)1aE#ufBB^NAI<5x)$5jo={~tplwWi<YMs-T
z+&J~tyPglFf-G7@{1jU+dn8I}zVYXp?3u`;*`wSV7qnxxiEEgM(EDw-_nh4$xa5O^
z<{cj{^$CYmf@XMdt)A#)p7}_3=||PKQW7es6{4dzdbWR=H*H0&iB!K#ulvk?_qiL`
z=erB+diXg>sk~{Xg;C$dmbF_i`PSckwlcZk*PdR<`^OS1q|Yf-$Sl|%*mLig)4gL%
zCN;~H*%ZDh=_!}AbgUHK@X%k%pLf1yN68U}BOympTQW?Z8#Nu0Slt=j)3(uVc?9qK
zrUx%?|L{GKZ`1qzm{szeljpYGnQZ9NtsML4i^VOLLx&3Hi;8HlPZK)ccVA}z|7Q$K
zrylbAHS^UnZrxugC*@b{I(cc*lDq4|7CwpWcpUi2!`MTq(_{7_mc#csl2Y8Hop|oH
zm~2&1W8a*q>bW&`w+F-Nt%tw5pRv6D-EgVM-1|r0l+`}cd+OQw+M+Gz*27;GX??F9
zyjJ!ou2-Kbq_X>t+oidNzOl3Ur977>9{D76UBs<yhg^5&V=2jG7al|9U;YmB!;4G(
zUp>z1ewuoWr>IgrVWxG=OT)jhnQ5!sbk6gI+vYfJdby^xcdcY{$g9r76LQzN?X5D^
zR6V?B>r&OAbyr-obe4K;U0QKc^{Cgypbi-o>!%Di^=_v`ilxRaGdiKT^jBoQ(QXGZ
zC8_`N=D$x{u~Zy>yW~ygpP2@8uDdL|AXjrRhW*w;cea-gZd*%O@f7`D_w~aRA?dt7
zEdFc<r;1vAIrG8P_g#S2%e%F{ldOL%S@->!nD8bAe&^Z}v%J`<XVZk{vYzcobJwwM
zoNz$$^J2-hhRJntaxN{lGvp@9T`}4aS@uj;?&me*pV!nMnU&|X<$Jcv?NseG%j-FN
z;`36eyjb^g_WMa?BAX}w@mZIW`cB2(aMJYMle0bR&b>N!Xy>$<m6ftyo_!Pf?mSWV
zX<zht@<hL5p|h4UZ<k457M-`u`^cXe>!g%t_ysCl^q9Uv!_8{mhLWSgt5Q?N!dIs)
z;VeJQqI|Zcp!}!_yRe~e(xQoKYXtbDGWps>H<|34<~C`DgpZJTvWjA$K(b1wVxZfk
zInka$YgCF)O+I6o_2|S}6T>vA<B|1J$0L0v|H-#^Hkvf~<TbI%=HHu=*VOo56L8s=
z|E~G4(hS#kdUA8p=jN+E<(IPQ3EblO*~ZzZw%K;(yGLTR?*;BocisLWMa=pBnt3~q
z*6wvS@{X#APN`%|dzPDfd28b2+plH?$AuqWSFW)}TYHV->earJtzFC$FXl$X`hrpJ
zp4^^Y2L!&Z+j-O|<;m7}*_YOaY+ZQc*<#uGg3n}bUz+ex?4w}tqVk0=H!)s$Vl)5l
z<cGxy5g~KKN~1Pv%!$&`YM2`u6(|@Sb;SL>lJpu4bvE`YBZbOG%))XF9cv!We72wS
z$H4`i{042a&p+X;|9)_X&iwL(XDyu!vNc<)N<J)o{A_!~Bm<NAr6;f7kzckda_O%)
z;|+RjX6cPG;qxZ6F5PJ0x>4v~=^yzG8QEssTrc0PJtFO{cBsYXocQ&H>aM*PE?bG*
zYHbsZ)>eCx$gVyi#pqys+toKuQVjkc`1R)a5q6#FN4q=4OpBAIan?<nQZKQ2(rHVx
ziyGGw(u?lj31f^&)?<xY_%?<=Q+7$|gk?&;PlNV2dg}F=6>1g<PtQ7C;+eGUbbMBv
z5yx%?AwktWEE8*len%%+{g&psZy043^S|$?v6udWYdTvQHZYn^ez-yM+kxmOTpND7
zStm*xtkx0^JCIT#mG;o<CcE=9hw?vM68}s(uWWbZT61h`k*Um~EqfEW-ZU8qEv)Ac
zPGl?RDL%`<u9A?x>yX3@f2&vg4)GR;{oB<p2)=9IxFq2GRq+?yU$$=GD=T{c(%i9C
zL!#%t^RNCx%YSL6IK)@5O*<&L$>Szp+?u5V!FK$Q6D_aztN*I~HUCCaMFq$01J3Fe
zF5fPt=+tu5cq^SqS!X)!)1r5m?;i{?yujafu;_-X)I>9rxEHI-FY!A{T>EG+Z5NMM
z0(+hJL;DYw8@a>3Z2cwL(Q@ko-|x-5e3SRa+&r6^`tra!UN;Bdj5fpM2fR1<-8<X&
zcpm2{Qw;sUHTg@wBFigh{hYVnGd@dylAe3$U1h=VA33(nOcV6|4f77~{-D~aq`8Fq
z<U-Sz61yfz^BY}@kl)X0AoFvth_`+3p&iY)UJAZ*trM<~?a{Sf&HkW6<zVp#n?0T~
zH-gP)I>@Q3pSZroRMuhs;`l=U&-$O`J()LN|C?xXrrr00G^diUr+JaSq?_90$S0bc
zdSsN`PnK^Hee3Cd>GU0gJelwEcFg;2e{lXONnB<S{%4)e_BV4k@t>}{9Q<|W1>UEL
zQrrGXMs(WV=5&8x{AXU{`VNN>p@#S}@wMWWBKw0+)NDGoLvlNBwx!oTrTdQ$ebe6Q
zS9o)oQg51h)`!;%A79L<owaU(d(Zb)`wR9v3iKGwclYiv(d(CPUOVfk?veLp@4W50
z><_&@@jN84^Fz}H#~UhpRAU6+UV5BiP*d>u=<Ka|^YofG-Awg9<#lS?%XlY^KE-v8
zJKDVuU*kXWo<runszzb-1Bs2w?-zOKUYb<ma*jtq`GmzMgQ8EIo93)BzV%P5Qg-JT
z&YeBEWfvqCpDoQ)p5?gv!FGFDr{fEAw|C?%R(~;n&XJXKj<ptT-C-7EpT}W7vAQMt
z(9a$GJM?#~-;sTX_s^?6z2zS{YlP;X+5V9I1OEr@pZP!YTlXFMeW>!HTAx^Y*V0G+
z8A@BH?DD$1r0&w>OMEYrE$8p;Z+rV8>S*-rCpzZ6ryp%Q%yg@v|48h`#3|1i0}hlf
z(pXu-JkwWR`F4is!^DlOxsFzcMeR5%_xA5|SbtG0M*ULbmj=Nt`yyva9Ljf@bZkHG
z^dHwZ=C^Nr((Y<K(@DR(OhfV6{iNFItB<P}zd!u^j-=AZ)elwjl^;G4s_lH;74$)V
z-_i-(AMbEgOqF(*Ykq6OeV{CMUVG7<nK>?dFHBxC>At0``H{JSU9$?}50^-I+P8XJ
z^rs)*yrf}2znBBFk>tMCuNK-_T;IF59tkLF;CtSkVQ`aeO8v~gu@OPN1x_3`j=u^|
zA3goWxPqbYgPFzIy-jQFo#LNbeGG4Tmm+bl;dp{t&*kL@m7Vnd3-08%n8e)qC-O?(
z<eedQaxX)!Xw?QTe|zBOUhc0B+UtbdToybjaoPEzRVvA{Zu+8m4+5Lo9?QJ%je28{
zBV2tcXoo+C!irLcAKy>!a+a^P)w%q>`S(}X0QRp3b!v^K?O;52c=CqEGaA(*#~!`=
zVm#-zY->)H%ZY2RFDU(zeCs&<j@`Z!Z(W2K#XtPks*2*;y|CjyOO?YeJAeDWOR>zR
zZ;T{buD!Q>^Rz$0IXX|@MB}wj_t%^}op0ZHN-oD=iao-1_)Fjg*0}c4Nes+OQ)H6m
ze{%f(t--VK?$^#c6E;0O(XKv`JMPIf<`wnNK0N;M@{ha$|MNdWSIk!z+{-yK^YF8M
z|BYY0Td;3G`|-XRRZ4blKeM?Mdf5Z=7;ap2;;`TlxFMiWq3dvhqv1n2!=ekaz13@9
z$on4gF%;Z=r=@yDXNAt;W}DS*sVa}|?f=CpY`Xit)7lBvi}_3gw?D0KbP`^f>uYl8
zkM9Qlv+EeQL^L{2=Y4S0%2<y5L{7fa>p7j<92wrWGnT|;F1j4fa95n^%MlaHSjM9L
zj1mv_F)#b0pK$yC_Y>#;?Qh{<70{{`vXCoug_9^1nN6(Uj?Z>HpkJWic+AY}TxXDG
z>@!}rM*HK9zK_lec1&@7DDyOK`Bz89(;l%M9%XUfyJudzS!ufV@>vrP_wAqA>|R~(
z=I`P6Il|5;m$zf*Uh_R~_7@j_u8!p0`73kbt^%Hz0BNbos{15Q?!5P1t+kI|THbEu
zyCqX*CcX~d$583{raQ63@6?xLB~@pHKbAyGoaC36@IUOdH&MCaw#4^JiMayCiqq@_
zOzmdbG4!`xT=e1P#V=1UgdcwKWrvcv?k3;<h3|KN4_)4V=w8>d-HX1pUU=AB-g@!j
zLuaWAikd3R9q%7A+3hGV{#Im~pzmu})8dOuUS#EQmA*Q1b!GNu$C8MMoE6qOXWrgR
zT`ion`Ksrtmnyv3$4sAJc`<Y2ynjCrCO3z(7Hb~7mmpQ6_3b2wP@vcEie#neW4-0a
zC*4@)oBb{RsX|}q*WbHUm3lLb@-!bu?)MJ=9a|Llw*1|zrF9+`YWXgmkM-JbqP-xm
z=s@zh@+A#hA{l!uF7vqmty*$F-ag@CM!w8JvFp6ueSEz=9UZ0DczJVQl-$mV30h<B
z_fTqD(bw(0k3`agG^Ym{o$^#rvX$H)*v`~Ei`DFdeUKE(uiCG#o~w2(QeRjVw79Kz
zw#vrz<|`X62sE1H3F&zyJ`57dyt5<lu!?_^gp`n&U&o1z<}1hUEZoztR{QhF3ElO4
z=PW+`nPi(P-Wj4^RKE9}Gnc$%tk`#lYYk>^*{W=o1mEm)br!d|m;3qI!RG0Hab~|$
z`ag0T&8yg5a;x2cy6AJiH5<!6ovEIG=2=<_ulIX{1@&o8?NR2^6I1uj&z!!!oZ~ll
z^I8v0Sx5K9CU=uh_&<rTnzneZhq_lMd&U$4F=5wF$<N(Y%FE`xe*T9o$SQVKJpZwY
zb#L;2DRT!c;!8AdmOk3PZIP+x%WrRIB#MjKa`Ppw^z8{!&XBs1af?BMIXIE~!)k-G
zT6J43JO1i9T8T;Sow~ukMQ&o=l<Nxun=iz+^T`_h<687jH@B_moFk)lu6n_*my;%>
zZ3(e|TiR|?JxzH^b>r<rf$tm@6yMmtR-JL}SS|Y(>maYVdwd7-=eCqCwOk)pl$4wK
zGIMjwu9JV|j8&B^EvvN8xtPs)8BwZ{>2TsS_vs?#R{4KCj9h!a<o|R?)VENaHf5uj
zNbu+WP3}iOI(f`FEVypUtNXc^O>T8t?wQEPzKiMLIVXiPdB>N}ZFTf2D*B{YBXdYj
zx>ir@f7GQ=9nTci+RbMl8pzmJDTjupxLQSWSiCL!mXi3?^`6${+cU+}FW!8W^VXqZ
zfkzh0S*~{yx9m2RmYjdEZ(*(SZukBvZmXJ`-CO&5&h*!{*s0j9@Vk`O>Ah6-9JAp3
z%fgR1zb+9Ay|*OH@2}R4gMEi5Ge7)wenC^#&U*H5@=R5G8!aCSi{$TFo@m?J@F--(
zrBiJ)|8R=_wKjg3ZF$Nme8Js3ebsxpmW_<7vaC|tnPsDknbaLt?z^6SeA1l*|4O#l
zYn})TGMN1CL}P2=@8?E853c*}y|2ap*&Fk71yO4h{vLC*m(P9sx$Nv+wOz_{4VV6!
zD)cJs{)O{S5=tBk6=!YYcYN~nsjIlPQ$bz6^wWY5fyZ2)vlcHhHY{h`C@CW*@@mPk
zJ$z-GZc4p4BB|54*G(?^Yr@GRJ%Y!>>i?VwwvL}?^YiKS<vw}$`{k5vc0QlV7=8N7
z`O~LP-MhEvi|MDDo13SvpOBbxr2laGqMrGT3$6zq%Ta0Yyb%^%dHyfo?D^3T%5V6@
zO))+yJ^yf}Y$LDxr{I^9OJ<(ge@K|srLm~X;ms78Es}S(ZY*Rv^e>}qWnJ0q%biV;
ztKvVfNj;KE?#OOXTz5h@Uq#q${}IVc;;G_$_|`5waEdD-mGg*h1*?|Js@)z^GZ~ky
zl1T6C_~_WbbJNmxbLGafH%>V0Pf2oftKOK~^+J@T^@ixN*Cio~+JapBj#o3e24-E^
zQ8=0H%dc%=$E)mqhn{lzcX8U}*!9~iEf{`JXxkj^bnfWISI6#{q)!ogQR2eF-n~~Q
z$BC6qs!x7z*X7Q2I|LN_e6JKtQ_$->dh94mg3p|}Uk%nxd3Vh0=ApxP_0koV=80c^
zCBK<%sZ5iITEfYfZ+`k|%|5hck5hGkfT`9Ottf@B*Nd;MW@Eh^SE#7dGc~r!)wp%x
zsx9JHbswbe><iA#3ETWDBG)bTo|$fo*rU9}{vFY`^yNDy-n#kujV-g=Ep8??R$s1p
z!e6Q`{9N(*V)&vr)mN@JWzIRP+5PC?j1?1R%+Rn@<1$?;BYN2K(VV3vZ?EY!s%)6z
zl9T?H<=Td|Ew^&F`<6$yzRc5}|E^EwcFTw46&W|DsPBGhQqVlv<m)Zw?aMDSmhjB=
zs@&Bb#w=dB>BfvDe*-?od8hrlK4Wgi?IrQMZoZF65SYwf^Fuu6%Yu@K;A^X0tdr+#
zJZG`|M_V1M%A6HOL97qwulN1DK>nq<T)M7wl=~JH%ZwP!>j}3tviJ)nHk%)rwKpfw
zZQ3SPOB1`5oLp1tpH5w6ZZ<tt#N^L$Z}V9fJ{%FB9)EAcn~TT8C(J##zrNy4)a~i_
zqAr`~eSQ{}+5FwF^7)?&6T8DjSml4dIrQvK@A~y~Z8z9?CH4K|m2aCg!)IM+gzA+O
z9QxAtJ0uixPO03!=$uuR!*_Pw(VID@&X1FR?3iWf<lBBcvA;t_;7Qpg&ll4s&6u*`
ziKnK|ae1%Ac#f=T^WGgP<*_c#oL?LtVEo+r<VqeNyH}ij2JX|6mo=Z~dL#QI!Q{Ga
z&Xi&o562tKeeO<aR$WfdT-Fy${ExNO7hKbC;F$1#;>kSFb-8*ELPOFQe~2o+Yy8`6
z^ZV^8ldDhku}mu9bla@V(lLQWxTDF1Q^i3+MUhh}PAhJsm-em8QES&`tlfUCOJLnC
zFWs%-b(veYZQXilea2c{-T6yv)=qj-f8E;H+PcHm_Wu7l|1F<avV6Pueof?Nz4uk`
zU&k_6e_cG=Pr7VplhYG{?-HFw*}+^rek~7o)(XEkG~H2rACKt+={>hz7+WYG`f=ih
zmVbrEIWUsbak?Am;yE$w$iX%K@6*qVzulow)Nt;OZ0%IJr2i9570%DR#$$bo@4|1L
zM_%(>K5c6G|1zaIioIt}LQYALbCj{Cu5a9K*Jk#2EJjhMjtJg8(a{m0^<?**IMIys
z{Qm2+XQ(i2*`Gd1TIZ09fTmWXNN8Z($&OVvk&%JC_GhkrKF?v8+Yq99-lN&9(U5EM
zP4koIwX>wp{rvN5_Pp9J$4<2}&M*FOK=$>n?d)yE_kTazY9F<K*XL=ni{J12H`lN#
z`$=Q&?!283Cmsmjk)0n?dOCNzWcB|2Y30wa^823qcP*X2|KDHP0BIFAp#Wii!KpiT
zvMk;s-jV%=S@`YY+`N-P3X9fysz?W1+I5u8C3?Gu*@7iodwEart=@E)EhXC8TIQwI
zw5*~V4H?Xncs0xtUT(b7V|HJ3-PU#NvHm;jUI>YQ;=cRe`9ZD1rVj5%sez@Rj53_J
z|90Oa@Sw7>T=?8mv6O$6?<x&sEO!|%6>@CQdg8vSpdos1yvWs%Fu$o;t1Yi?St;;?
zTPpk&qm}a0X~C60LqA=+llh5H|9HifmwX|Devf(jp5Hk9Mv}qrP4fAIYFqXfWh#5^
zjc+$+?!4@yekJ35#)>Bg`mKW(hZ|R|UU$#TQnMlDbJgAj-#(P?%`=Fvy}Cd>&f8LZ
z_0K)rt11<>SF^>Jakp@k1~G=8ihO%(*NR(HwN{lqRekWiDeH6TjxRR(&1xrq*iB#H
zv1hjRf$%r!%eV_Uw`uu?g@w)76>@&AoA%dJ3H#2yp7Q(9iQGHW?Z1CIeR%QZ7gysS
zf1kVeOZMXahA032oTw7uIP>bPs66{#t;Md7wr3tmXRe#R^_HFVhuv#bzcLm~Fx;id
z!Y{-XQEF^*sm1*)ADgh<vXr@Tjwk$f*iJbiXyACE#f^bgEx6w2fuUPlW{(V`;_;N2
zsr*;Bi0>CavMuHA)UT}nh5x<Z6<7Y(>RrGeLI2F2@2ef>-~X@NZ~ovTyG@+=iJepC
zm(Kn4=1YNGzq#m=YX;w{S$}CwZd||<Y$ZLRZtJz>cbD8<%z10S?qMa3!%7caGX(XL
zPH#BDclbNgT(>=6J_i&(%R7JX^T|zfIydDsnPjtfCG8R_yudeUnQY7d&fLC}o`NU3
zQnbz_rgm8zt>pNk(qGi;xvlr@8_`qS7P@*Idi%X$uOf>tr#MfQFw?BvoZGLn&nhnO
z58oh~X8Aj0mfu^;N4zPs?9FGKZjMnt*ub-`;NqlwR{0k@Q-92SJ3U{&^3~=$>)pPY
z-!FTg_)6l}nV0fC7uMd2EtjwSa`5iit%~pL_ZwE7{dCdT{_nrNyZaA+k#4-yw7`6`
zhvwhpwr6KPUXrOYeVVyP#hUfre(5tScg&bBTd?}(6p^em7o6g~PxEE>lpI=Ne)vUp
ztM2g^FS6aYzQ3t*r7p<&(m9V8O<x18-2GUeyF8aTUDMtBwPyL9ml4ljo3zQy7TRw8
z&STHJ3f(2A*`g081+#c~f0}71o*tlgFX3?1lV=GDg}<~myYd_KX7W!my6gH)%x}T`
zLp;AU&n%dK$dUJ@`(hX7K-OaGt@Cf*xz%ShA<+1H%59(Nx!n(QCd@jYY<+W!)zfvn
z@v`r@?~8~Xnia~pp)u*|Wih^u%MK};J^R48F2UdEt<}t3Mw9RP&FT^sRa4OMjbWe3
zXcm+6M0zKC&Z{I|gS$IT_Dv58ES;|4yYucx2f0fj2V}(qQ;!`joVCheW#=i^qc2Q7
zjV|}urPV!sE*LxeV2LVk$_1(a59fJA9{#m$m#X&8UE<ex`g82cZohZ)ulafTz1`<$
zCwiWpH{-SW_TuYxTiq>H*L*YQ6n%`Z+njauMg8A5>n6`%#QlQz%gXmQKQG-hzdb*$
z>VbBA&9}&irF<8rD}LlW@b|97+z&E^!HoY3`5YOS9%8vH(#O?x+V;d}ndoV0Te2$k
zo|W=w)hnHKm>OPOqx<K}#n}h8cUS4K<z4dIp1&s3rgoF3_2C*hvD}1fdJ!DUGP(aq
z$cM$)T;O_a+O;PvGTSvk<&byLzmoa+ZtVNZf4?}%dU-GV&**>OG9NalZ>z7nV*cx4
zW4yid{l)j|J3cHC-J!-6Bdqo_h3oq#i~BsgJ#4Ctf|DQIFYs3L|MoP^JIQm~`MGCB
z?ASE@-XE55y~JJ87IZz^T7~Dp?0X#N^NjYMyuI~@$?1=*j^eB3j)*m%C_4Bt;>ZyP
z_REgyt5;wC*!R~$;G|qf3f~i!W43#?&D#1aJ(XdO@6(M=*L16mIyTvN7|YI|e^>I0
z>*=+OH{_3f?Y-<&60}0`O2C)C*ZsjRsa$&}-tov6Xp@ni%e>C_-Rnc;lXt%;d&qbE
z?77=9<vZ+!|8@S`bpN^1O~FS^^UC~|NuHQ<;QCF;nz^~3zwX=i=AgLfsw+Qtn5xVS
zv<4wX)=ACxrZ5H_@a_!%Ty&55%e{wP9cO<D&i<-gCZJ-pqkH)u#=Nuhn05y>#;!cT
zw@QSEEjRow$FioFg5y`--`>S0%ERXGxBRQ`t%`4<+m*FuicVH!`*f`Dy`O}k0Ml;X
z#dH3~Bs83@`?J%N&5Jeo{TBWl73qWex0z?m?nzRVn_i=;Ay$*8DSotRilW%6nXOL8
zlb2)$&vfXtpP<NV<jNd-{r=~3-R<|I_b1*?cRT;*Rruoccd?bne{J1fU-fmCb-L-B
zjJ-ckrswT^$!TZzvio(}zK_?=UH$H_WnJ`~J2~N*{J!VbB_D6y&f8mcb=&Q8eWvd+
z>S|u=`rCW1sgQrXCMW2Wu5`cVoAPH3W%^efx6gOnl;S1#)v1Nm%S$5GtwhB~_OWV}
zi@vv&_olt`Wc)X`f3ILl5nTF$WtVAel+(<W6OYfyZ+okJ@*CHb9iklt3nGuXNL`N4
zuhW-JKOu2s$IdBQuGOCIaerpSsedc=3x7IOcImUTUAjC=KdtA9owtA1d(PaBwI}!M
zl_h`scH{0%{<e8tdj+cXzw{Lz`w%bk%j?BV0sHKr<wvHbm{+e$D+_HZb&8Ko$vT{P
zE!Qu$knQdBlnZrzzQ1{vT|F{0@VsT2TI~6mf#*Hbmwo9xcCF87S@!p)bz65XxbUpW
zX*M?(`&Se37n*Y~m#e53Fs^XuX4d)TKRf2J)`!X<o^7H3ZhW-e*_LwSV|(wGT1_p7
zgD(w56&~2+hAdP&)8n*6bU~(H>>1zHT4}TR>o^7W`5!-#B)HX_wc*O|`J8tzT&#M$
z=w->T&(h!KF8y@+`<y-hcKxsUBAs7g|L@j?t-I&%dU(t|V|7{V`$MzqZoco@vUYi2
z{65#M?C$mUzy7_Dcl%!R*>&G5@85kkTV$`uU-<6m^g`B2@LizkLN=2F;S*9?Cugzj
zYx8P4b+zH9uZ5U$&5_2!stNo))8}6CQ#!lAqvO3OYx`c#fb2Zx5Vp!6GB#CTH1>aa
zadET1j4hX~o$asaD(!DC6#0|;pEjS1o;$y|?rP;J%|nyKRvKT~nKk>?(s!Z%ou|%S
z<({TIF<Zs+3&*+j&AeMQrs`kgu-Gx1Q&4rMTR^&1dgoK8wFe}bMCCr-VqR-m%OqpC
zmTl{LGozxQ!`#I$Tz)GCA5KX~uGt?v*P!v!8BLZ8x$`&jr)_%isq59tJ+||E%f(II
ztk<Q?kXg{rv6+R_aHrVwP#v$338FzKE<4Se%+2bk#ghCe@ttVj<2VsdpM`<PpPn{w
z$;w;C5O?!NRzbzp1dSP0K}R&EsT7JdJg>5lNZPb%&d~*#?@XSZc*?c;+_@+92kicY
z`uEkm^prSnv>_+v(Q1XApH7(j+Av=~wo^LE{K(F!8`oKEzjyWF!)ZIks&~AcXDO#A
zS9*f!Vpr+h9qOzZW*^>cUis(Fo;$N-OqZ+apI>qE>{+$&)bFdpTd#{|giBgoz5aCb
z$IW-m-|`fPCVVly#ZlnXTegfX@>z@Ax^3HTaoi3oemU!z+7XYZ7H<~J*;y`T9Tk{&
z)K7!spXB9qgE9&JnH)KyHgnEgYyLMWt$mr8js541XPf!m_}u=#KE8iJ%FVUmKK+I4
zeV5)b-QRUAQe18SwxY1_hppu}WNRPqJsxgjb*1EG*Sw3rC3*XL87}IG@*ni7+_76C
z@71OQ+JD{MR(#Hp3Nt!&lqX`t!=4B2DoYkC=w08w*4@s)RXk+!oOAin=jUzXwwxa8
zahzNAYTw+JHxB#XhFQNA=v#HGP)a($=9|GAp_@84@4MN?@g5d?&mVojJ|MdAOh<Ir
zH}P9RN_Eq-gSVLWZ9T>H)~~MpoAbximmA8wimi?;-O?MqWNqoYOaGqzn*BRp&b5Fu
z@8DtUP*)L_>9-$GNV&<n!MW(<6oD6NPmlVtIG3?L5Ig>Pjn0Wv70v~$4>VPyMPzRZ
z>B~O&70gw*<KK)&8pmZ9`CT}3Zp!)833@a0BUSb&?NR+;-LRWKU{;Y{k?gelMIWtW
zt{h!wy8chsnY$|aQ!RfM-@9I)SX3`!_d%bDN3=Uj-Jfac)gyk_<~dl|o;3S6>48Q5
zY?*`cQ_>EU+}@(>ZsXpUBYZYq;Xdo`IcvGgQscLsney-SItj5odz|e|%DC=)ub&Zi
zj-hzH{XhRdmhB}C^Jf)(wUB9PT2Z(|qo61^HCMOod*i#$nW|@>7gyHn#fRvev<d$i
z{I1J<zul*$?scyJKR52I?DYD0fxY-8_u}Fmsb9F+&Fi1#O*pyw_&<d>=9+n~rzKV2
z#~xjKn#r+IZO@T!x%Yfy&nh&B><FJ&XEbH&)H~C*Hrr^_&HX>?w}SnffBSw*SWf)9
zUFYuO)0Z}H`Vq9!Mc-G#^7EbC#?#HY7q>q8wdQqg`ER)=@*iwwR7|ovX1ntLoyY2o
zLYJAMd=h4_-|fBX;tWHtRi^qr`tQz{ef*f?c(H5G^hrw0Yx*MmW^8_8l(YKDhOA#p
zv!ZvLC<u5UwWnmeWlYYQzKn0Hp1$yGEWUMOis6qShKRnEno$qLZr^5pU#u`MsPPrc
z`ei#?elYG!+QDvPZqKm0I%dzxlC!pz!Dm`j746qEEa_R#@WeYpFX>VnH(QO*MXtm8
zu_nLnZujr|_sIMFrJMSH+or|-NP6l$zxvhp)8>1MkB9$ne!T48*Te5G+?&7Gce+ja
zpX1_h_PoD%asR#Fe_qJHuWHO}Uf<9X$tHA+`*qT*(D@Uc)2)RfZ#vxBHSMh`-?rIS
zzYKS;OkXhPC!-~gA=lZ1xy(ls<Yp{-^sb1-TjKw$f5AHH-kUG3S{e4n*SJ^V!*5gO
z@}E4}-S2s%dN?9(SIhG#FP4+|y*}~IgXEf3kJRF;zqOuLe#yJ%+bqGJ{8`iAKAvqc
zV~J6<cb1j>blFMHB^-Q?U2aK&enqSFuCDzQWFW%v(|M1`^TRu@Ja1gzp*+#sdDT4c
zNjdx*ME>3Jx&8ROAaAK$;RT(`md`HzUN^NW&(%VN?`IR^xx-JzpM^!-Hb3h6b7%a*
z|9^gM^4FD>%Gveq-s0{3cJ8a+|GjnP*RkK#v*t<u?X1w4v9;jo3vKs#60)_c7C)N#
zGWhlXA3v=Bht4`{#4X2qDDi*wjLCD3eC6^=+ICp+bc^_nNh`g!O}0pJd(3z?Tvh*>
zzG=wevnvg^FDS_5%yB;zYJG3fpW7Ax6CwgHsZQGYI7_$T^&xFty$#bA2wrEH`S43;
z;UDJ0=3i?Q-I`x8?0NfE(A7&sdg>vTkXOqtFqW_tuRXum>EO-vA5Lzzf1WSQZ)+U&
zyEpK=F^~BJF3#=Dc_N>*9;xvc7WeyHe!+OfCZ(Wl^5dj)|NDP<Sf174^secxW08K<
zdfHx0TK$X!_vWkW2}$-zk7PuCoI848@}Jr1_n(#Z>LhKR|Mkp?EQyzF6V|gk?i0JD
zUhr;Xg@W9ZFp<lvW$Io%=H~KPr+-FtQVt($!i3&wL7H>kJ}lm>+InfxqeD%cbK)i(
ze94;WSH4|T!iL{MC$7<&S6#q(#iq5o?dB7L0#d6Z^zR(FmJ~H7RoVKqTUl7tiZoG4
zt<cL(p|0T}y<%&36*UFqUb%HXV#XDLsXmHJ7n?TtO*_yMopx0xkJZM`{Y1ZdQfEff
z^cdHu#0?tDPXua+JQa7l6S-66$=ByjPaEz}c&O#Cb7m>0x<R!=`}!PJ^XVcVKD7S7
zs$gKd`NZX{NgM4m``<qgW@X(e$J6`v?ZPXE7qN)`u2wnv{Co8wjZ3zFTK1aD8ne!b
znIE>of5MxE8*FAWU(`GKz~v{4z&qoTI>qe|=Uq&;uDAU4;e*_+7uWfNtKu(i-l_fl
z>)n5sp52*wTciB_a=+L!SL>SlWaK4mJl6ku`nsf`;%wu8!=?4vk5jjs-v9Yw;>G%$
zw=*0|7fcjy^vq-X_u!?{9r=fEOdsYpOkR8RA>)eTXtw+ImrERSBvy6l1y_7#ShBh<
zV-jcB)(5q@J?|~1)oe_E<~pNg<MK_X{_IWY`WbC>^3Pd)llsk@&ffPp<8w=+G&{6y
zhjUFB%Pr=+mHan7%LEtBS#m<@lbEHe%Y4RGYYzQcvlDwfmBl{)yP0-x|BW-%YD;H6
zlQVk1_|R)_W0B);o`%1<$7L4#`%*8nsd8p==i5mOrTnA4sv80=wVAtfE%*Eo+FZ?W
zKAyocgsVdAWb%pb1V_%AZ5}dbo?9QV-5CDtlEm}evImzpwg2Cq`f+Ce3x}6ARv+e;
z1%ELzbgqa#^XS6lYd4CU<10FUOZNQFKX0)6f#3%2d5w}T9&+Wv=M=9${}OQj%aKiU
zuJ-X-CKzn|C-X!1aXF)c-0{|z+B^j}8!ofeupj%E+^-+Tx_|k%C!*mm-&n2Q;kCJL
z?=}59|DVoVqx9MC%JntzW%gGY92P#mbY!X9>f*{I=Ol-n*ES!m-d(l)d)@cod(8LB
zZR<Z|DOB>@mA+8A{#~i&K8xwn+$$&br|#(xbmeSKzWC<D_Tzl%H;fcSBrRJGtC;hb
zx~e?-S|xK+xaHB21uIoWzHdtvuaukgrpM}JoK|P<K9`$ER67@XWSMjQ;@&3qfwfZb
zowDGiFTdRX#okqp-1U6%vVecB{`365M=+UGDJ9)>_E{F$r7<(*WBaS3Gx>&>qmPtq
zd)U$&J=r~ImGaZI-?BEB++U+|`^nu7>!b5F-d~n<G0Rpz>TPqs`qUNIJ~4eb+33IF
zR#r-8&32*GM}|+|bh>eVZJO`+IUpv=>--n9Rl3fnyj&QnPt8B?|Lj1^sp|`G__Uv_
zZQ1?$g#WtV7gzVHdW-eVt;_U$|5W^m-VfQ@C*Sl<?*6}eQS;HlXYx6fFTSoh)U?cZ
zvGmI;x3`@yIi)=N$0^C^XKPbu<^(sy^BdaFZVS}&`u6CAnZnJYz<={kxt^TX{pr7p
z-XX8<m~97)7rO|tK4mc9aophUvA>fXcNU4MFE7#G`sv<1U(1O~GGdl{^1U1XZ+Q7=
zjW7G+7pB737A4<jp2@_x$JfBZZ_EC}VfRd&)VQ`LKAPaL-uQF#@u@3TY~A*7=F@{e
z-8Z-Fc6+?&_sn#=AJQu(Z@k}I=6rBIhre3nrghVvKA5z^V7H!fO3R{l*0nR-4?9O&
z9tvK3cl#ZtP0ucEEN^WoFw|5u{$Z1|*r!l?X<+%9l1aO_Y`JA?YoTnnddtEsckjmS
zI(IjASJJ82ch+jQ62F4pXqIm{Ql{8#*gw^=-+jK`P4U`&PdvU%oiv~IzE0s8&Wkx|
zeJ^-y?e15wBuXV;NMn22Qmk}x)1_5e3wNz?oDqNRS;VZEw=ewS9^V3;pEv(qz1mmF
zP&uuPr>vn5yY4tVdF5F<d533bk^kD~a_0}vGwlDd;d$iwc-uYCE3Kz&+JCnB=N37!
zA8Fpt6Pr0U)Y$PKyJIWVeX_bsNB@MdW7h54&pxXB_`vw?rR_u`6>Bx&Qz2g`sZKo4
zF2p%=$#bVy-B-I<-p{$RuvB0|aJmskkqwK>v2#(kP0yJrDXtZHCT6hr1lv)D;6yQw
zo&{Vpe2;%S$u;9j+7Ffo<~`pS4l#<~m=addu-oXVrr$;xjl~&W7dN{mnO<g+<KMpI
z#eo~I)js^Wk-7P|ZLVwZ>OyTr>-||?Ums@WrJJth+q{SQTEz_>|D{v56(p*xzvH)6
zb35~sr^}Z3yv%*ds_(VlBc?AzyD;d0-+#^}n@i7>scrX^6FI))vbt*k-($W7EpEG?
zIL_=jw#=k7&Fb^yk0;%X5AeCg|30Sj?Df1YshL7kvp&7uKJ#g%Qe?G|p8t%Q{V&_i
zXH8o%cdu(eQ&JrBO^N&dKT<9|{p4eHAb!Js_G`N$o@xs`n>(?<LeRi?+mkI<Bf6`7
zXIxH5f4*5)y+Hlu{mjs#X<t4j^{M8xIy+9AHb4HzW`iY?J?&mKzRwSqp5JGXU+{0s
z*ZegLr+zKJw?#EOe98A4%iq^jO<dOUInJXcT<&Fb+{T5~Zx_2pZr7Xn`|Iu5d3jtF
zcQ!UTZT;TVJuR;%XHT``s>hd3UZ3~t!?*6VOXl7}QJ%>^|A>a0#c!Ee8Q*>E-cx@j
z`QtnIj2CO$l%3+UT~+oXa3kY--VCz^%o8RyOkVZr&Xc8aZs)o^>`#avoL+EhV#|Xi
z^A@~GSfcv))TtfqD%m-ysWGjK*YEAgYb;x`x2d+E-J|g0oFh5^-xRFgZ@TBuex*OE
z@4WvszdOF=c#>Yb^{RD`cl|7Vq!zxvdiC$Z>v5^`cU^zVwewxU-+7O1E5oaQ?=i2e
z)Mwr1BkJq8yO@<Hn_Xhj@q_<DI<CJ~d7SKX;DX`8J84eqb1jza$-T$a&-~L~|J*s_
zlrZJwde3lW)^jO*OB1>-O;PW(Sftr~BJ<QCskwPYt&FZct1`Pj3eD~R7u)mINm|Hp
z_RJ<TV^-a?Q@Pw?dz3EA><oLB!k_IB7RhYn<$2SuZ_?T4-?p9%ejMt4iR<W-$%W@K
z<s&Z4+W%lvYTCCeXO<R}KQOsHS8Bsu6NS{Ze_8${$84OqEk9<K-^w&YL-~R={v8k8
zraUP5H9>Svk(JN{LE*z^y0y;aZg)z$W;kWm^G*MLoi%s+pZ%bJe%&*3%kyseQDx6B
z_ut+2Zu6IKAO3}Bh=uNV+&O!Gt;)WA&v&oi_fP1uLvdr#eWt(bC+nQ+mwLfARrpTp
zJFV|B+bwhrbPFxFN91yDQM*<!H);ANtqn?r7SByTKL2OFIRE#3zCWgamcO_idA#^o
zk&~t6$q3&SYTFd9&EKrd{%0rC_a_&0@@7>thQFUDo#7F)Zrjf5JMK^WC-AFb-nR@B
z4!(wGs)Y-r=dN%Rcs9|>H2J-Ok=*|Nkf2X{eBBP`E(!SFbVh#tD_i}YqFXAtP2bM&
zGqqj1{=)WGPJUe*yChd%uJvJmu_AEBhAXPaBCOorF8ETrg3DxKwS@1BGtGx$ldSdD
z+voS^#m}~TQoJPi<(oa$lTUry`jac=?6#FA#-*PQZ4-YQ{$%?T!^ngy*L6M@nQb!Q
z%CfwjlDotsWLgoArqQg}tr~~7q+0%#kdZiP5O~}CT876A<&(37)6yJxf4{go<H8}K
z^xKXC_Qy9rxiN*SXnK{6OX;zR@8)cpz92g!`sHdjcFl4r;hhS_zFEwkKE~$X)5~Oc
zzI;CW+TOC)UHVhrOB(Lm_;S{I+seON`|o_5`c}T~YvQT<rIE7Fe<tWX|9!H5-{()#
z_LhhKtY%I4oYK68hv{hRghz)gRRo_*`|vht_ogE^kFFR0Jw<Q1@`){mi=-MtxSKZ#
z&3O3q_tYPb4}5%PyqYaKch-u}rpI0hP5(K~Jz7Y1AMeJ#BU>+RJ!pJqW`~>8mDhaj
z;;msVznp6{9^PH}_KJnC@FUJpwe}s$CD$*~Y?!DRlf|2I?)hJZ;}IXeU)gWxwRySj
z9H#m2%`;key)_9nH?F$TwKH<DS7GK=J@eAzMKi+VBSMbWeK$5%Xn)o+Z#(al+T4Yw
zw%AGV3rC;a_RnmsgP-V>u$y0!CeKt|7If0=<_U#`ER!Z^UJ>%Jnc;WLBg1W3`IH?0
zMb#xtryAy*%SlP?eQ8^|Bk|p;>peMZHkM6V`&hweCI6A&NS4qmVHemQiEvx^^a*yR
zTDD8{?yNRh<a^P=e*Ma(`$G9yGDl}?-B$d+dVQ9@|EsA_-%1<1%yHAw?vR^MY}nfJ
zEQxE@k@(UTZ}i#!Tl@-_`f>LB%JzA+;dg6)uX?MTUod@V+P2zXZOb#Ff2=-i(*Eg+
ztG8Rd^)LUk72hsI{rYL0w!U^wX14u=hhZN>g_eaY{!L{UdDT13eYs2U#eXlR$MEl*
zUu2#1PU!o(7Y|nmq;}5`KE3i((T>XL<_j+=Oy~K*8mIK?Fr$>j=h@v`_n)0FbZonC
zPNTrKN5B0H-m)Aj{vP=3g3LYR(lpU|?>*IuR+R}z`5Fp}`0jLMnaE&et@`546T^ir
zr*zDp*Pi~%8}Uxxc%5JcdvVN+=AO=uC#xsE;Qk_TQZ;>rm(s~6Gkqiv-g$WW0n5S#
z7Bg*bp4+of%H~<%+Sv~eH!Sn+(y=^n>WWDGoEMYK{U)14R((Ee!l{&^uy6VbMf>9E
zdJ^v*s$T7uTaz_+)0#B~%FaJ8Yu$7+Ji!+b;^WU6Y4!PCyZpD~d3)0ye)@5yYntWy
zJ%{Xf)IR>TYUlLd`_`O`-B|Sd=2aiR7^5o5|8gfdr(I9}6|OzU&oJPb4v$XBHFgzM
z?OCDEbhxHG4Yyv-u2*`Fcgx9ei|bbQ0srN`_?*+%-e>Xu(WBO*)~Cv*oxEJU+<%qs
z?ALQ<N84u>zI)_(_tUC7p_9X=<my&0{&Dxt{wM#pM)0>UdBFH?=fg=Y@owJk#s@6p
z8dc76NX78KJ2pj4O(<@wo&Lih=YyvXd6oTB`+Vl?Z%OGZWs4#lXGckN%5Vqk&f!|m
zk<ZJWx}odNB%>=%iC3H+ZV}^JES7Y0e#EbND_bLUr}1WGE;J~1Hn0~FdB!ej^on`4
ze|U7o32$!CxIW(rmS&F6B3LBzPHR?N{N43k_x+6U6CbZt%|3W+^U<#BmqI4r-lGw=
z$Iz|po{f*G&j!JnKkvj{@wu0=DMw?v=JJ%wJ5p}m$XNO+<&}C!fJWiD4L&c0!=9b%
zye0LT;ep$RwgyjU8^wPu9h_DTh2e7ZUNfxmcC6<-#kc>ZYQv^g$84P^C^!@)ZhPNS
zR=;uP(!*cEDx#M5{aocbb7to1`K4iJ<aT{L*U=ug`StbXRrSASim$8Q^ZL5={=fH_
z`|npAo_s#0{O#oMBYN6vUc{IsU%$KM*;)OdU4Ofy&#(J^T>E<6T>ZZ<ABxw1x;uUU
z=_e=6oGP~Ii!QJ?@!!+du)q1CR#}{C>%6dq2EFT_^Y3KU;c8nPn%MsC67wF9PIJXm
zjLTomN;tp6XvL}2+h!{tnT0Q$v}#VA>9Pxlxp)^E3VS`AmdshlF7Z+0%-XAkp9Swm
zsUCZ!sq?M-$dU!}>o&}oDg4<o^fkxpnYBCoZ;Bi$xw7hI=x(RwPBHZv=^5b}Iw~zY
z8hl+CX9qBu)v|I0u3Ks%aZj_1=LW+vOFx#Ln^6z<@CPMMNwd%@^O$mQn#yklQ76u0
z3x7N^=(sF0XS>Fv%;bEZsKnR?KmR3K+JZfj)>fzQZ{6l-Gs#`=i^n>PQfr4M!ELh(
zjXgI#?)g~jH+97xj!D_43i?lMQdIKrEep79!@A`8YY)Akfcs{DRvx}yQ+)8lvaj8C
z!OC({mH+pBJ1!@+b5?cA?XPR+?=5^%IU%Z?$??jDS~jKPRXZ;)Sho1iw%zm2$ucg`
z%W6G&E{(<DSfU}bSWd-`-r`$^CDIde9M}}@zVK)(H=Q(5#TbN>q;DpCkG?Hsrf{=?
z$KjaA-IopbEOgQiI9a_hTI@UX+_jyNHy6GMDbsA9x_wG;m(LWLrSUgc+2n}Ih946#
zb!Tk%7qf_)_~ZF;zG&Sk+dj@;<RYZ%IQ5CsL=Jv#>(<yqi4S)u$cp)K$_Vm2l!)PE
z+I&`WC1+-k@PsQYQ+XX7mTKPc3f_?1%5*wBO!6kDZ(lKI-U7Ds9E_2wXYUC6EKUBo
z>16+J;rse479II?<wHeH?%KJ_*i=fNfB3NB!}9RBp9UHtwLjP%9+Q*Z+jGvT>f=Rg
zpDNGyT{jv|v)wU!u<>U9X2yGLF=h|^u5X+<Z9C(1-W|H1H*N40;6BRT>h+N?kjL63
zP>jV-;BU*WxiazvoV#93F}|iEfBlH&NzS{wnR6BtNPKD79S~Y>k=eKT+RZml=H~FG
zZ7?m!@)5BtynV9MQ6t?fnsa%#Zu8}X2Jc;RANBlVKL6yLb$I^<+w-&3*6zzbXD#iS
z`}ky31karpKI=Q;B6s>0&p62|*ZxemC?ji*mYk)ZPoKT|1o?Wu>5Z?0z53skrs;)V
ziqg)S$KE1(__9$sPyf2Jv*#Hn|0+nm`<M5SeEqM>^>P0jmOr#h{Ml~ZZ&KE@W4Gv!
zI<|NE_x=Q~^KU<N{_x}HABuLps<ikn!*@30tMZ>6`+Z%u9iDqc()g_G(N&qx-cMQi
zEPvk4$1}88VxNi@A89|j-DRQVKEKYIz8m^^qQ_kr0~QzU(YzDst?{He;i|3Ai^L)>
zm$<ei|Bvrja{knWFDL4zoqe@|C(PQ<-Ym`iovxaS?;#hpl$aAv{nzwV;%Zx-e-pSm
z<^Hrc`${FuRdnC};kz+W@fTmz#JY*o|J<2;i}CIEKk|Q;|1hreOjyZX=~sSLthX-E
zTFg>TvYVq#`2lB3&4RfrMT%DE^`AC&bgecD*`mI7k#O$3CXTEp99ik=uTs@trKU&e
zTMO!+vsrV{$NtJ`zbmH;{`v>&TL<b}&%AeR!W7}q{gV&brw6yJb?$lj;>1dh>+&}x
zZ;D#V2rAixOY+?OBfE*!?SvScV$4b7!@Kfwm(L3~UHyDTnys@b_qAQJem~EJe)UcC
zIqmn~aO&60kn6&EDrfiP-f3USSSEM<x}s-zNW0eRJxfGiPEz;VyXyR<+d3Z;lwaf-
z2#Ri(3R-!j+b-ep-35Deqc24Ldr+b+*K<l*mcRD);@S6NKAuqWmDP*2um8Zg@WsFM
z*T1E;^JFBSynAssp!~kSTO32uJmYWc0(h=GQVX;?_98W2z~BA%%{cC;Jvr-_b~^^{
zc{us%itKqN_b;mHmadt&OSVrdcUpc}M%0qH=m*gPtNL}sr)%p*?OtztMd+qNUVznB
z-hI3a&z(q<3Q@UOtGYiTW=-77R}Xg|(G&H#Q{XhAbi+nw;hJs-w-)UQ-*mTZb8wXT
z+hH+j_MAG?mYzZ#ZId&7&k}SR7$rD1@V{1QU}WNH5D^LUWpwtqmg4;E>6dS;+;#gz
zmlygNBrN1^ur-^wbn3+8Tx+f|@(WCFuUv2UCEC!-SI8qoVzNSpsBj1aOaJbPA|-PV
zZ@SSbTOnINx8pR|(upe##rAEur!>ja^VYGH-!oIHf4ltJ6t8p0DK6)BSf*(7)TxiW
zTo=6c?p(<+XP4y9BCf>GUlogvy>?EU!LDW~HSwj@naVep@BcRCjs3rT_kAhb%7X9P
ztjpf-ti7Fg&cEBf`s|DMZhik=ip}!9Yyb13f8DRW^8Y!OZOPpdeS&q>r-?bgil;a^
z>%C=qtCZWQc13D8kKXYaPfnd*#SxYgJLziv8v~imhc-W&-lpHHUmEi=N-j<={&~dv
zSJ%v1t{>-@Ue9)~XOCpH>2H?@F5e21&u~2D_SBV}qju)fGp^}br?+gMTYpOG>YQEe
z{Hj7iljAx2Cs!;I=Fpnu7;w?VQT5g$*5e_oR%({E?g|y<QPEaToqM=W{b|aPrEY7o
zjb)knGd7oozWx4iMUVHM8K+HL{!Wc~TG4Pt%rk6>iD>R;QK6z4mt;%S@4EU2Dz;y{
zly)k3nNUD)z!n9KC;<`8SxF^Rj6B;6>%&C<vUkm%eWm^4|BQ2cBn4+lzH{n6=d&<r
zIo~mF-=dYaorg|zO>v6dWN7DOvrE0@-SXp{O731V5A<)`RZiV8zb9<Qg^h924eCx^
zrFP8;+icBV@7r1~7rp)E+Sk+X8b{XunU%f&-;oOsiWlE~wEf+#H=Euj$NzctqP<*y
zj_D`G|2Hlw+yDF7U;l-B!s_k9hxYP>EDpB0Ja^ZIJN~AP&$vSm<tz-1(B<Krw8&bd
z{n5AAU9&&%y*lz#ZB@{w!;Z3*ZS#Na+*5r24zt6rrFQb~w=OOHX&+S8mNj8QcjTXg
zK~I+J9`|)JE1S_bJOAFq&z5=WTfSXp)?u8Gxbv1>vHuqNyw7(kS{~LkY&-tFS!=pT
zT#?*^<;y?D80y`+d{9Ml$*;Hlad%>?pN5LZ7oBVkXWi7g$ldJR{I4z__uLX?R$g!T
zHs1Q1-hY_~1zi(*%Ob5Dru*4-G6k43-&~;5tZKyXDC%n=RAZ&=TOf1pe8Xp>2X}aG
zc+BQB-@;khxF_<|(o=Jqw(VKBM|#S6t?i;V@BUZa^xhNAd0gqCCikg0{_es&&f}S)
zA-y`~I^ok+pPqX<_VnG?GOwqUzOs65b=~TF!Nr1&+jp#3up{Bpm!{NLLFws%=_dpJ
z1suHAbbclO&Ue~7_rLiZEEhb#sCMg*jgxF$?`v~Sy}|zQQ;x!YHm;lnM|`3;y)po^
z6}tCcJUu;j@0q}u7eTEv0!2jTOx~QNQ!!0k_i*pDjNC1jRi$5UzR(UlDSfu{o9q29
zF3XG6i(<Y+JGeP6DCjx3oN3K2x8Nz4Ul^VeToric+8tqz(8Qd$&o4r!_{Gh;I{9d-
zYSX5Kyo-xBfA4#HVejNm#!(_dljm9*N@;g2`!jJB*S8ARws7TV=9AR|Yc7XhN$_{$
z{T3p!{qSN5jr8)@BEe=w;eGqv6Z~h#1aQ55>l-4ky>#iC>}x(N=l*YD$X<4(MxTk{
z{O#_2%h#H;C7;yQTN@QvxT9(H+8a>^LpSiYGc`4Dx_2{W#%YG4>5MroJU7m>Wky(;
zT}czE2o$L*RElGEE<O{%{eUy^jQ!T8l4p%mrrdjWwz~U5)FmD*O{=T7I5Y0wsIYQQ
zZ&LG|CzG+s{Qu;Wy*c&@$~TH8<z}eejP5ggbk2VBamOi-{H?f6bE1k@KH}c=`KUwW
z#C1PS_8;@E%v1K8B4p`zl>33UHN*6s^Zr<zJYBw9X7YhdZOyO{P0b^oebbJ<u`~WI
zvcF*W7L&@)XU!+`RGzE(`0XQ8SZAw%=Gh`K(Ntfvcn;&6lD$WpB3C?YE^-T66<7K0
zc0yNomwNFV)`n#k{`ng=9Z0g6ZM?Q|(XG4p{Nw8nZ@tWA|NRs5*-~Tg_qlsNMxXu?
zyYApS>1(Y{Pe0y{+p~Y|@2Ar7KSlRyY^+<5ea`jg#6w+evu8ic)ja8WZhxKclGMu6
zJ%3!L#p|wEvpezUrgr`RY#ytdHh$k3^pR0$+1`q0Cl%K9u-K%ty*bhFlqcd;L+G^7
zsF0-wv$Po!vZn~WDq1~7UD4OGDs%&P#q#je%9U4Y<ydp)1$sSgY%05Gcr$SQmGu*T
zKVAEYFH#{v;oX$-lkHEFH>nu^J-?+j=T$w+z2hPhH}B|gWw<ljXfNO8FDcJh944hU
z&QjY}(-G~iRPw8M_4z_($JF^-m>Sgmu0Oc<%!4=h`h)+EEgf(F>$X4M{-J>Leag?1
zq7PmKUwwPcc2(1<=&2tR>RnxTroIwwJDcmbEpg%b1Lf-;>`e9R)?E{MGq~(_ZuPf!
zU)8-g$yY|~-tjsx?`oOW_nx}6-zT0+olf#Oe}}8;*^U5~!}s!!H6-V}=9kGn_n|%F
z)3cQ!SHxF%{mN`SEMF8@e}XeBiv7>zQx{nF8%;@E+-mgaR6wH28JPnTRnrr{Xdkw_
zqvNsMur<)V{jyxDMMAE0#Ke0Wx))lXvGFo@{uwbtj_-0oaL+`K4$H|KgALc&Z!_Me
zZ6+q1^wJ^FiY2vm`nL@pCASI^)(e_UNj_ER8jy3?(Nmf)Od#s$1>@IJZ&_LQda^R_
z^$IR&I-T!YZ2!t^mK#g-k6W{{Ud!?-q$M>yE3CddCuLq1<MqITqn)=G&VD%m(xur4
zXL%>J$qU#^{0aWXnA)PE(i~-d{`{SndU}Ue_)9EhbZhu=OS-P^YWQr^=Np3G?|rlB
ze4NFf3m^XQp1sVr^S9f#nzUDYPDj1pIeGQJ54;PSByMvuXa(#HO_Q6DY?I!2^y{lP
z24|~ZJ}tXpaD`)Ovz5x>tb(5BLWQ@E*eu-eLSdEjqDfvZM-_wobQ12UPgB2dvubap
z$c?6(Q9Rxs|6X?S`t&7hYG&^CxV0@com%X_A321+ZH&+Q>(m>+Y|5KET0u<l87H+X
zTSHY?;tRgIy$V*Hyt;!iKJL0o&?1qQS5szL%|8=-J41T=mBQ9dv(`P^C42YO))eEr
zXL1W;R_BCmznFVR_RsRC*0SZA@oMoQ??U%G%7yNC{dW5NN_&<2!S@yH!~gr#t*`U&
zTb*hkYwF~b#hK{dJKNJM^vD$b5LG70@SE>>QkJ`_q`fgJ`u^zmLXKC~ZQNmPehi1X
zrWGxEQM4&#tNG*x=^rw_a=w#_&TLDK3^ES6`A{R|O2eWREzd1B^e|63<Pc)8T$ZnI
z@uW3cHVcz>cJKNmvogf%=Bk2Ij8gY!3vKV3!x7+RxI^S@@xJfIZs*jKFHZb6@ms``
zC!J-lCCaQmMyyXum)?H2!(IAey5@}iVT<nkkiTU2k7?x(yNfZ|OCpzTD#~1HFEY>W
zaJ=VBbNA|fwTleYC;j<+@M7G;j3?VnYrEG!eCM)i3Wwl#=Fne9?DsQFnYzs5+4_3x
z<nEKXu2a@FXO^uA^m)%#kooJ0I*aUOku^8n<5e|fPlXtnY1ls2xBA?7{X^=Nf}ZOM
zQ3vJjvFI7KtKZzM=`?HolpcoF>3`O&yFPW@!_yV#S0?Xivx#%wnk;usF(EsxD$cF9
z+<05cy{)$|@ZR2es(EJRnpOMH-pKGg{4IN1P0nTUsf%aM(u$1xn*Bq{k@539$tBWy
zpN~CE?BBV!&?5Alf^F;dRp){qG1Yf?#VrWi?tRFZ!|EwZ=!MXl^DS%JOTSf3U3}}c
z`_}6>e#hOA*A6zmT*p<(yd`ADlA`Ia!e7n5T6x#t{{FPRQJxzZ=W3d%s&Du5P7yWs
zejJij@8>vGVW-G`k?=)!feKAeLgvV|`zzPkDX7a7rcYbmAaZJH-;(8BK9kce^}d{W
z_}o)-=f#Z&EN@%;@4r&Mbo<fmaqmjje9WD=ZgRT}`%>q7wfpva%WJ9n?QNN|quW;X
zUQ&Ezg4)c7x8LkI{L%Ga-F4wFp6@)LKVG*tWq!$t&&&@?UxuIBeQ5VR`yYPZ@*14#
zaxMiAx2w(cJh7~@r_jcG&5_Xl@DGA_6|K2a^B1<Ws@oX7U$)Nad*jCI!NxPBiknL`
zj&iijX8SYg)s^lmOZG)%1Wtc#`-}Hi?5<U-nNDzRlX-TiXYsDPRlUbEe;i-8Rrt;N
zOsm8DE3^)DE4?s^3<<gVuw-Y5@AZRC5gXi9><U<<f>wvFKmKE#o;6S8_n(s%$q2aK
zWPTm<;v37Iyng5JRg+gKGxQ4^>Yn6qPo4kZ!z;ah>GtQ$(hYOxrz|@A{Ocy04F@F8
z`iAd_RMOzT^2f!?bXMrC<@c5py<*Js^vb-JIlpf5xtDKFt?Vpe%@g^c@Mqo)@AE&-
zuW?(hbgN?5URx$V#y`nU8*D%MMSaS=7XLYSk%nmLpL^G4XbPzRV+g(Vo-JLTZS(o2
zSj)99neXQvPA$;yk!5fHWbxtu#zdo|*+1S~kAEomfpzz)OJDh$SS-HHv1v`J%zNDw
zJN5DM<2TPfK7X>U^0N8I3`^@*g*oy&VlF6V%u3$<RCCSjyD4hrC*IiIP5$+<;MwC}
zH$K{~Qj}ncPs-V!dBOPGExUMA&1U`+4bT6)IdUS%I%}#)|NNYs?atFP^ZxFz_px12
z_Mv@d*NNxdmAewY{B-ue$~Dzrwx;5i>+gB8vUUGfdhTZ^{kT;4SO1QC6ZQZ7(AfU#
zu=x(@Z}VzfBe&}J#JNp>w0lo_^!rcC=6kt1Xxber{ARs})7tVM$3D3^m6LULU5i`%
zw>9_5#_KJ@`M*N%))_2|`|;^T>L=a*KSU&@jg1+PPT!$qByTnOWcrEw9Eu;Ov|G=s
z)|!4g^yD8E_hSB{$`ql^k8dsCX!tj*Vpg_Te3M~pa$jfP-vob)Q)gxzeltD&(ngMk
z*)PK0>7M%j(R||UihccG0@uyddt|ZUqKU*$Gp!5Ece?H-OqF>M^?lNc53AJ+xO$bB
zyL;&R9IDb}6Yki3^4iDg%YSSCynpZC^ZOkBmruOdZP2%0Na^>7zb}n6nwLI{Eb@G^
zV!<_oe?lyAq1gulI^IpoZU|iT`=`{W<m>DIoy%zv{C52j@7oj!;cYYbDsu5<?N8i$
zttOVc`gGO0uRmW0{<^*R%h~_WHU2SfnHYIzJLm6uwg>#;$@e*eH@GH?oe|{!K7sXf
z3g354ZZV@*9V&<RrW_QyQh&H9_0r6Bj}?M<7>li$u-oNi)7^I+JDOPqZ_0nrn7<`q
zf%yM8?q?lu{_ke}taAQ;A1k+HsmmiS3!Mn1B87y5Ml)xvWA6B9n|+XLCI1oK8@jpt
zYZ|6$dc^nbNUC>>V2S9S>l%^tv{3wzk#@hkK$${J(*`Eyv(N5rO%QHZ%XxI6#aCw5
zh6#bkk1XVzZDEo)b4}0rEikFO?=Jml=2$KHxO~&bsWOf?rUt%CEI66Xk)4yHsxI)2
z`Hgm^{6hz~zY32Iwm3^Z4gB^-h4G=qx72Mjrv|F4GwU7rW!K^@XeO|a;o(W1vXq|t
z6E9BJUVJC@{8P=O30y|4KB|`)qI|AR()*FCQoBUl&N+qq<?%^33rrade!pw@l()uE
z^4*n*azC;sh-pMKpXZ<GxaU>VeZ3X6yfx)Xz6LKG?v+fO8gR?i%-Pd;+db~TxBlw1
zT-)w&d-eiZ=38%@&32#EY6xe%!~dP_(qD;}7yT8dGKel+pEkir#+iM~1^!ar7u%VC
zCFZVCdcAhn^g~ypG*ZjW4@$6KE>5a=ajf!7&6|oaWj&rE&Y1Nr)@!yf8yXh&rCHZr
z^WlAyDtsrl^>b?Y>V<F5et5$$EvG4JZiglFskdJ<8Vn8Jlsqop+i{!w<4?Uc7hTO9
z=JQ;h`y)3(dDCmD2s;i{p8CHpMP=r*@3v=I{Gv^rosqjV;_{q{w%vR(!iyXH-c0PR
zv^|&iwZ6OR+*-?Qr}aH;*BI=oHpn+marm1z$1z?ifAWES={ux+&Zk>#iRLvixEG|{
z^X7lNRrtrxoNNEzcX}<qwE1J`tmY{jBwu}Fvb$lmu5JI_YjgA*?tDL3v1?<y+Mdl~
zUJ_>Pg}Gvis=N>8<~>;$_Cs#I_2HW#3vSNbu*h35neEdxu_F^K7ccyxwf5LXK1K6Q
zuj_J>neWIp?N_r4d$ifi?e$5a18K3x{=BvRd%}C}h0|I&7v~&Kdy_4C>C(?%rt5c4
zJXSSf)|t5W1#E|Pci+zsoZPtOM&{S6xm!1!%3966Uwv_lW%;u;Zv0NFAMPySeEqNR
z@vFZcxBuHsGg^5n?lt2Q<?6RNR#yMtoV{mnwT|1k;6Pf^xm1qdo1dOx2zn%TBu@Up
ze({~_A19}0CGARP3iH)_wRzv!$e9L@pVxJ-zL~M!GkE<?zSSpFj_;3CUbZ)P=T51Y
zyV;LtJ<d|%pQc!6E%0tj*yqJIb$a)wEm)Jhc&_WIhxy{CG_D=5dh$dsW;UNj^5+<4
z(>K*m!)AxiS2kCB=wbEXX5E{$+=iLwZp)qh-<9&uTy^0@i{-toWzue8v(&CT&g{&s
ze!DxM`%8pS$sD);Q%kmIzJ9D~6TQ<l^OyXY3sco%XHL14`gJRt=BDe9CK=87+@M<N
zYkOYBnf=lInDp6F)gOP>c`uu3Yj85d>()J!r6m&zdDFN5++V1BN#fOko!=vaZcJmE
z8?lMAAUWvQj%(%t=e|dn1Sj=>e0*I@^*4(w`)XTFX7`-dvw~&*58CT@+fF%m_s5*r
z-+zo&y^)bjef;mva>;8xD`!~dSI0d5cHH86j@Reyd)rbqw*KBQ{p!ot>v*^lFCC9r
z=$NrqXRYd)!1YHq&M;-aY^r`rsF?TkT2Xlyy_cT-2cNy}-16mpa_JuS>S;57B`Nv#
zCnp&{Dm+|YESo#?+?&O5+{VIRGvp0(mlf_=(=4^x$mGC<{S%Ha`}6LI<c+HAYb=`g
z7<IobJYu>3Xl9hlwsjK6``7j#E1aSktY&B0vFT9E>Z#ZEoL_HgZI|ZCerdD3i`Ltt
z*L?MizNRmW`}aPmVeS2A&0CMWGn>4#pwu$LS2yAkL+Y7H*^Sn@1*Ys?&mBAsuVid}
zC;r$gwy!F~?n-o%)w!I-tovp^sM0*OW9N|r*=1W9UYR>azqwge#QH6ef9=+!vtl{B
z1---%<?jvcw>6aZns&gn`T0T-li%4*%YA<DJb0<|nTNRZ&WZCL9tku}=>K*?>ftKZ
zTl4epu5I2Xy}{P3?%MyDmf4pc&&lrH!dG}CDlPZiwm0X*bYhwIcQ1(3{ubX}Z03Hu
zrFaJS_p>{%Jm!cvKY8uWSzjgUZmqG->Amqo?9ly>kyjP@o;}Vu_R(CrPW<4B$lsqI
zyi2+waQ4F!nK_x-N$c+&lAQh4X^+(WsXK!<7n<>`=3y^p$ZI*j$K+kqhubpV-fr2#
zh2@s_<kzR3TYv7?yxtkv$Fz%0(;i<<iqS6HekSU)*qq}#_r~>2iRj<@s^Hk#Os<*T
zSF-!=E%V#l|Ey=?jK3SVo|WnLy?Si_1HsLrzyAqkFSYLyZ~JO>gi|^^d)M>+Y{`nx
znv0W8UCBK5Xltxna(w>%3)BATC70cIsK4)UJfJ-Oeahl>%a3QgjN4q6aUtWS)ElWC
z%T^a}dRTV;eU#;etv55?y?+&ZW?tltjZ5<{Pq=t_`?Bh(8&|EbKh02mEa9yGN|UY|
z=X;D6FI~L6ey!pD#pR**SA7kr%DjIoF8SZGbB@<8KiYb?+08%Adi8I%9`9Y@-%8fM
zdSSRmZlRxiNfytyT&akwtoEzh&B}R7BxhGy?`G>!H0y6WdhF1<(Ad4rvEowAv9WH~
z+os0Oof|vXtv@oWq>Oi+)QflN!bj|^cDGsWs%BHa&RgQ_e!;oj(B#6!n_CwqC+xkr
z{nz7-$>QgX=I6YO+Prdk@&S#^H*uyHj<=buT$`ORq13px=&Q(@D?2Ri3Mu8Cb2$F&
z-91yc&#$f;SUqN1yfi<xeEr2Md$V%m{f{Ti+_)k+V?lLjdHcm%jm0u1%fimDiMX}>
z<c$j(kKSOpESc01efPR`N(qnD-&khpUF~fN+qAbUSiPFAv*vK*rtW`@`_B2UZsU28
z_&Mr@(&NY<Z{NjU-Q1~|wc`AXH*#;<j~ZB2SwCEvw_*cVR_RwhUo)QFpZDFHr|ahV
zT}Alt%-pZHww||EDR#WEhJ6>?%{LN8#=F{&U(Su~P}X?a7T31R%-{@viSzoowX>_M
ze_0t>w>p;3aAtLC`1#E-{KMYN74jUbHoul?i(9dI+v?^2=Sc3no6{Qp{p*)652GSV
zg3{K!k!X4N<?FJSr<N_4wAI=9@8(mdcUP(Bzl*zn_x{zJcMW&uC-_?K)@q*>9xY<A
z^301D@87?CCzVpWIqlqeqvy(B=SP}~ZIW7V<g@N|bK>Tk<*}EqGUqf%%smmp6D@q>
z)Z4ftAM86)ICd~CDLELN&1RMGX>RJVSBwdQ3ZFu=t=X;}m?J4wy?ujg^YPw&Qx8b(
z<<XQqac#}B|F?8*G+42*|88iJ<ShBN_SP203HK6<;>-CHmbGlPNZjVO`snrbeuo50
z%M6d1Tz|OdYtPxc&e@TLY_3xyMUJ}V-+%X#Ey(0|S}yO5NxW4zj$E64cEgz)7p~vj
zJL_+mqSG()gDq^=rx{LbSQefq)pW=)EF+Nf%mx`XyBn;FgrX9%a}!_gaX!i(F<mV_
zV#YDYoVeTDAI6`V82D>hW1K|K(Z#h2{|j_p?+W9+$ztYr+~NM*yC<SI`v|>{xLNKS
z-d4fpcw`6D@xwn>)Xxc86WyF`oe-wITg@Qd{g?}T#P?=r2Ol3MrutcX{;U@`@FTZw
z@5Ng-<sYAx>V9=|UcGU}(w%D){r<`<-my+}UH9pp)6!z+^W!$%Xpqt^_3fT6b+)*7
z*RrL@n%b6Grn>zV?T&gC9o_p(Z1KXvi-+2(G_o^h?JYPtr)^o~G1U(-!NwVlY!6&A
zN(wh0wAwN&Yejx)uj#ezXXf!wFP(0plM}IL%b6LsH|*%#YAG(Y)>!Q7R-L>Vyqh*3
zjo7jzHLy6_w#1%&R&G|ttlLa`ub5vm*PX|+*J)<peKv8o*MD}ka&KI{OV!|)n9Th*
z&s@EurJkLQ&pDGHXR%z4OMhki#H+EJHr#u|rDj^480(xo({TB^jd^jlc2{}UZb>lB
zE}4FQ{c)ui>-qkjjk|N<&XHw?yLV<5a>q<Ns1q%=Tz>DKg<JQXS&^NYk;*ai_9dRP
z#wCY@&)(p$xgL_g?NC6jPlVu#L+hq*xz^vG>Q{T$DP#3i+c}Yyo1}Ak?7oE0cz>b0
z?x5GE)?EjG#j{_pcR7D_-~FtgQgdI(mwe*?bpGT0NAWG^9sddZ@8$e0^1u3<n_VYM
zy%6U=dsCsDclotKy#MwaOXaM)r!M%=U+K_%mlpd@j``YW?K`>rd$?}j_^D#_$1~-}
z<P#tM7fwukaJF#&I_9q}wSTR@eBPz@qc&F9#`??KmYl>@8yse+$FSVL8nByriTvgr
zzB9K@d$*|n152vL=U;3F#qC=i|HaR{^QoFEH7}*Oq$o8p7sSd>%HlFKRxnTiF>Gw~
zLn;eW74+Tm^Gdk%gG-Z2z+8}^0hhj0VsR=+MnOL;wJ0SqFOf^%H7_|oB{MHwLEkea
zHLoPIq*B*|OW!56I5{;hB{8oAq`X)m+R#M7Kp`lWOFtw(G%qtbKP6Sc&>SRWX9sr#
zNC_54fJ^|HSCm;$l3%1?XbRGX)h%%6I(xc+bb(xL#HH`-=@OFf?&;#2Sb%UPSU9+{
zxFj{#GcPS)!Nx{EC^bE^xTL63LBla6KPgp{OW(gJCAA3TISrWSG(mw<P>_?Fo0?am
zU|?s*r5~;kZJ-csXkcKV0D{IQhI;0fW|pxEhGq)UCgzrUmKFx4u^{gnStytr8t7RX
zo0}>aSt>-E7#Qgpn;2WfDj1t7M4OwN=^2}u8z~qlm>U`EnHd{dC|DR9=oy$>7%G@q
z80#4tn3^h>nHuOBTN;=t7${g6o9mev7#S;=nwaWYSXzL>&p^S<*j&%Zz+A!7#9YtZ
z)YwwN!o*C^%-qsk!NSx)&%n~$T*2JfNYB#H0Bn<mk)Dx}8OS&@3qw6K69Y2^3qvD4
z14D51fIMVwY^G;nXl4?tU}m8ZZDwY!XK7|(p<tk3YGI*gY;IwxU}kBlXJlw$p<rfa
zqGw=cWU63dWTa<oW(-PJ=7vTPSHc1YC6p8l4NNT{K7%VXvoO;$H8M6qm}{V5Vri~t
zU~XWnU}|ZsXJlq*u3%zns%L6uW}<-5XJV;mX<%d=t6*qghHz=Df}x=ihzoIBY%Efe
z1EnR5B!@_BT;P1*mzbN1l;YiT64Q$n%((O&L20~1!O+0KRL|Jl&=8jFOB9R@EcGnS
z3@o|ygG*9#!xRj-^qmt6JW?~$GfEW9jm-57Obsl!^gT-wb25`1^U`xtK}tYL*2yWq
zLLpk$)WlNH!ob8_LD$&8SkK7F$XvnD+`wGVz}V1O!O+0mP|w`l+&C8EKDW%AR3lJo
zGf)UZ@*5~lp?-7A%qdANQqXtHNi0cqNd;v;E`6WWy!4U`1w&&a3riT!P{GLD(A><<
zP61j#RLpr>Q&|(@`l+IHfAT$_zL_U$&-<uxathCwAi&X{VsS{c??fsSi_jzoCPm4j
z0%s+cz6N%M4h60_j$Kv{1p-{Id}RwS*&BXDG?u^Mu4uog(dX6gzN@tyzWev@zWw)~
zf9Dr|6<Yc=G&D9g_OA>(2Lp?PF~@|5>sA-=OK$IEQu)uN5SiumJnYT9{d+|g++Y>>
zarMrn*1TG^yF3nyHca2TYug%;uy;~?7i?t}{!~1@)7EPLWy{f|TE1!hVPRoYW^wlv
zZ+OevqM|dce&3#Qn@jG3RcBYlnS9>XeA}K~qJ~eQ>X6U(H9PG?=4!KTNZ9(P_~swB
z?6YrQGc(Fq%ohkV+kWM5?3w;}W|s#QU5qo{Tv{=?|MsC>KIY&4b0&!<%(oBe|3CGi
z`S$1Ov3IWR(|lo=D!lC~^HbXf+o=riEgBxkteG$VWyZ1hKRmYfG@t*upxJA}hUJ_w
z29ir99HlOVxm?_JVX+p6<%eZE<jYRmA4ogNyqf3k1HYfz5iau0casG7G<?wb<e%{O
z_!pfUt^5nvJ}Rzcou+VKx3YurqhQNd4q*Ygw8si}+5_4GI*V)i45W@HJpRM|aL$kN
z8%wIC%uei8@ak(yz9ennT_^F8sbyY)Ph8v6zXd*X*u0NaUI;Byu$St4X_kCfn?pTu
z+Lx7GPaPw^i=3G%rQn;_WLqTT^0L&RBk`s81@G)cqgNlbPyLa36khOex@!M>_9?ad
zLO3QbS-T<JhNHDZ-J3N)V@gx=<==_=w=$MrIR3rMr1x_5RMrjCKQ4W`=WpCKzaPB6
z?fEaax^K8&cSAMRvFTmy3pL+12~BCCBjGz@w{^LuSU<X6_)j(_pJkc(<(un;C(l1!
zBKyEdEQV7fSk?B`Z{COME$^*Uc1z8OnR}4=|B+Jrh94S-%v!1i>|7&sWgGVHFzYtm
z!Tk1%s#E@y-{wy(IyBN-HwoOD;s1m2_tz<L$9CFo2)V`d^b@Pc<arG37HnVZc}weg
zXFYj5VXewyJq`YK`)B`@`}S9$@#krQBi~P#PSBX&(EmhO#Z|N2xz5_~_KU-b(>C#y
zemt;uNAf$@pUeW&7OamFoR+caOrlx(YrQQ$z9mN=F#XSwJ6~yU^Xt!wOs~$>Nc>Jo
z{{QBI%$Le-VmY!VXBvLrGnujcp=wR-p96n<n4gJf%$I1XXi4Oltir!l!EN`XT8?Ca
zKIJ1`WgUz1AIrR0e<poL{-Sz=`wsv65AUt!{vNsP@N*6JUlO<VKk>T=#w$<EIKE!s
z+zaUh`$MZaa##4X-qt@OK68$2^5Xo$`5%*?U4HT1r+l6IuMqZQdzTv@NYP`yJpbo(
z`N#X5WyKA3%G_fm^Bi_wNT0dCG+~>1VeZYklxnBLo2{Q5{Cn~{$6@ya2Ww?(FZTc4
z_Ts?BSMx61<v$uz_RQS>kjP8jBZm(z*gf+n)4RuWB@V|m|K>e^xVTI3Ydw3}soOR2
zm&z9e{*jY1T$U@qbwFbuyY$Q78zwPc%I&yY_jmoqt5?k~Y`A~!`h&l-c)vNzAIaRo
z_qovi-<fO7xz~LU7fRhbnIzS%ZL=;h=i!1|JD<P5_0{Y5xm~x`h2Q?1btXxv-+Na5
zMe)KM-}-IqZ{AC(o_+RU(zgA7ukKiE|IXU9FX_(?mhD+~H`_KyKTKV7f8{Ux-eYF#
zPc7Z|{>k;4`<hq2&;7FDz4hJC9J(C(KleFDzx^<uRfnyhdVT2IQ{U$~-<|#MhrVpv
z)*5-E-H$C5bX&aA*wv)FfA6wCXeE~aqb}joro9Ji+<RZ{UgG|c@nz%|%kJ}{TJg8o
zxPQdWJN8r1W?rI>xO`x;n7#TefzA6KD!jaQ;O{OygVy7*$D-F=GnAVgZ_f1epy||q
z>()*cbH8!xb$qM9U&WlwJm+<uF~>JGzC4th;3TtjUiqiZ7pC?uozpCkY2GvOe}@g*
z899ANj_t?m-oE*8yJ@cGDqWtO_XgDoKDKK8O;dkuEby^se=f_C>1F)MCuZNuU%MyF
z<4W5nZsxexguS$M;lFH!nLqcQ>$a<5VDr*fe6M=et-c|nN4$Ee_*UcRu61(nMB~H1
zt8ZTWPV&z7H!?N+uf-gjl^#k;HGi=W+@^M9=8b>KJ6y{dU$Vt~XQ~TZx^d@G{z92A
z`P<@W^xmusT%;J~`82&?);2%RnmDn^8~EpOtMg0_RDY7Vhv(CA?-qAKyGsf3F<&qC
zUj26M^p5a<e7hO+67$MmDjaatf3!2J=6mH93;D&ze()XG;lEpXUQ<Ag=#p6BZ0im0
z-B(^P|NZ^-f9pTh8($f@?c}bxUB5oA+q3%bM$dWe+cX}0H0R5mb*!d;?SA{P(g%N6
z&9y$K&HH%|_w_kHrK5|FWXW7U_Vu{ozUSYP_q}?UzSH~9z2im4wBGIK(7AqS@4PIF
z9=p}eDm~wC7rYaBcDt&<V9LRUe{#o)z3%AmSl1uFcb&PNx!wQC=S|b!r_RyV{eJgz
z_1AwDpXPrsP2Vb3|4(>d)%n=w?VF<SA9XLVe`_dnQ08Ibee+9?OLlVA-TL0!F+HvB
z`m3YGmlF1UUw2B|KrLtK{R3~`+)3Ohzo1s`(Au`(8I$)jx1KUNb8*fMJEm<X_OGha
z<V=`yyy0U1&e(uueKL=fZm$;KescH3dOo2q>klZT8qPCxtLSBnW&Hlzu}eX1T7O6L
z1B>0$jV64*Y<sD@L}6yz#@$lI!BeI_Z+ZT~CbqTE(VG9q-M2-1-mQK5XrqsOoqZ*5
zoRdZChbFK1a~roBKaOoNH~qtMX!9qt0*!j73jX4o`afeY_U=5&^)cSSjjQe7rGyts
zk{9K+FP6RECU;4qXQ_6g$gx+NlbE=dHqH=kciLIPf21QlaY-1TSihsfx0QnIhmH1Z
z{vs^jlCx5}MDTsX>?J`O;?p1Os4ZBd8lbhW;pZ7ygV-46&_|hjezP6&D71WLy?aBA
z__x5C@`W-RgLG_k{;_Snl-%L3bmrjipH(y3D^DFhq`x5~#2`M`<zG%kL|k*J|Kr;K
zJojFI^)QY(``g#e<520|Xs_0YyTS$@QVl!frCwC7JM-+PzC$?sLY^5m;mniy7g|sM
zc%NZ%e{#<0uP=D|o%Hv|adZo?DT!o1UAoIzCOrEo<J{8s4b}p$KJ+A(z2G?`wx55q
zNkQ_yP;J%)HCLxQZoYqY!WGFKx&OHnw!P=c;k9Cp=C?0dQ*Ue2@mqQ7?GFm)1LddL
z9sX^8tMO&OW!{?lw}#K74wY7MoPNRlNbZZentY$`c1O+V@=E@1xA|;m<o?`a!5=St
z_S+u&$NB8y(-Rf0tt_%pv1M-lo4s<kY;hF(GyUHe_VKtS?4B&qe{Dr_tRnkoVYPNa
zr9VX;>x+KtU9IKi*B1F(&i3S`+Jbd|1%wh;37vUWYkzuY!ecX!C&@n7uI-<(cE6GE
zrYY}klyltp@yBA{mknvgYR=)CT>dFbYVUQ4kPA8g`Q1u`p2Rbq(>}{=VSMV?^Q-4s
za>!#lcO8j`p)K<`q6OD*OyuC?Sjo{W7?+T1P+u83=biQPt^Hq;_soCmnBlhJf_UwI
z#Xk!^eURHa^Lk)Q`-VTOk6nKi8dV|oN#LF93YQs;6S@po6Zf=LEAjlxzrC?$*3<Ti
zWjxL|)b}$~KjCU&PcXT6v*?N2lEVw!tk~Qo*0vl<{=}y-;qpU{V=I(*=}+7*nRa^e
zLf2U=!Kvz3POOcv=Y9L1^&9W8&yVxYu%CCfwCBIyesovm1g+}_oZ`;k+kU6_duLgM
zV)Vpq2gLSR%RDTf6P=(@A3lL`_TTr-89nb=mhNl*Qr5A&xc2sulo!i&9=+fH&8z<K
z?o@{J_T`@MAI+HbE6zWB)iuMYfDd*XnNENIyy=#{@YB@4QigTP{rleD){_0YS0~Bo
z)NhgBb;-pY@0}V$7We+QeG_yis=kc>ZRg`npK@=sKV`V@R6m!w?Bn+(@(cdjTrgiC
zR`yfTBKqizz908l+BcT(WKdyqZ0oyzpe5+qvs3(GT#Hm*i|kcYFwnS>VbtEz*6Qx!
z=6d|dv7_n{Yqq&m2Niiuzp`ar-<Q0*b0uw!Hdm#6e>L~=^8Ee(%z00g^2(T0c-*^?
zc-Xz?jJ#>pnHx>BkN3_uD7>WG>N<J3kM2CPy-P&Wrc4b#Gbc3CwA%0Momo-e_w4%B
zcI+p&m|oPLl$V>H`kvjsF5+g<?NwK^uWefwUH@CQ{NC2Y$IEt`=kH8^z4!KmeX`%}
zHxyrQ=C}QGV)1VI+nc`^KJ2u&`8j2I?)`tv?DOqPew;8qFIW5S#^>Yl4b%Vq_@upl
z-?v}V`SUD(UYmcfE%^PO-_O6_`_Ewa>&N8%HC4Zi1q%5Y|FF(-Y+Jcuj>$yplWv>3
zD?0j*UAniWW1m<2^7&j%3fxtS0UNkAou(Q1MCfhddfgg(DEiRvqzM*bbM*9trgyGB
z>ifv{5#L9}!v2bYnz%n6f874Kc1>6Fyu9>k(CU)(g1keyoZr>=%>2;bQXhGEZRa(S
z?6$4Tx31s1zqFyW<7#efN^G`mhHcW{gK9UOas|z{Y}7q^?XH>bM72|$$Bs-m^5Mvg
zBP}lOk3Jl^bfhcAW7)~ZlgplLc(US2?8$!h{S*Hzf3iL(ZTWfM_4jjc?)|r@!tm1f
zsq61Pch+6IVRH8N$u_QaivweJhX?HDXLWchqPSpkneK|avWJ{k$O<+eoqe?RQP7ol
zdWGFPd}{(~d}^F*bm}zfbpPob^{`!{v@#^>^ww;*w`FQ`Jbo-UJtEb4%X00^Yj(1?
zOe1Emv0mH0{$gI&vbmC5yRU80_SD($wR`W}Ewi^<mwlhrU0`_SyXxh0-&tRMpRLa$
z*IHe>HbrhHZxusD@11^rWtlHa57ip*e$s#IQm2yq`&_c#FU3a@@mtQfe9?bvzxDs&
z(|;Im#pl{T`n!1h(eL5+CGV&2yS%SoU+0I?1MiRB&(E2yp8fbt?w^}Q&*JC%TWx;O
z&8hW0=VJW#`6n$O|G4w-`lIt{_1j+fJe~P(`Sv+=AHG;MT<%vgnKQ4v%IZ<i<<tK9
zkC)E6Tx_@V|72bH`v0DP)sN0UR&(KZ^St2v`LlQucCdcGpSaJ}e&4S$$Lj_Qq(AO_
z%Jr}6*u(#|Y^Fj%A?q&OkJtYq>h^bcbhm+ngldnoP4J30N9HPqaG(9Z?0T$LLDk>=
z((&2By#dQ7eGu4kAoozv4W{^mT05Ap9pt;g%-_rz75H`P2F|*M`U7tZ_}3`1l)t+F
zux^j%ACCVm+#eKd7}p=v{=hziF||N^%3<jM#`T9@e-PWlss2Fa4{zEb%^$*hc>NFQ
z{E#y{F#n-!g}By3=^uR84&|(9vNRB1wUDjMN%su1`4vZ76DQ^~?W`Y6by|*Y;Fxy6
zD1xiqV4B&%q8_pBhqf2+^-WMz=?_p6nCMX;s5fz8iiD(}n}c;lr%#Csqr9Z&r;{2+
zvw9ShJLgGwFmS4{K1ur_S*Q5;M1@hKkILi|x=SXAOgx#wHPfr>q>0hoDHDQzh~87S
zT*5!o@sx+<N(Ez20Zz5e9;${y!iJLtESTp{4iIu%bs|T|Pst<Rs6Axz&LwSEgv>it
z0zZgUc$jn^j16>8@|5XR=Ug(+<iP$1=0CJ+9CeO(<)}<Fne;P-G15b9;?We&NUt|4
zohp+>HuY@Sal<E1Rr`VDrPd{rOfHF@J2X8-br1jigYGZp&p(j)gTZd;;ujeYEfYIG
z*vNX8P56D1d5P%bvwEKtDreX@$*Jx>nS8|Y+l0MO3O})Us@E&{Cz*VjV796MjXL`Y
z$4@4fE_{>oo^VvQ*?9L&dVa$2lZ~ZcoPz$OcTZG5xj#~oe3JT!t8(fdw>b6u3Fap`
zize-H{XNNk;&xB|NuGWabw2S`PX9A=kNZ7!`3d|d-Jc|X;{3_|bIKgG`4f$w6n_f;
z#A@liPvqT_l_tGqOZjH`?Y{W#il=b~|18hVExR-PXZcnq&WUlq&h5|L{vz#8^!E#E
zzr^kGwa}4Sc>85-3H#po8)`Y??}W=H@TM%jpkTuFxs~;hQ=(uk%dG_Yvx>G46>NC*
zC;D!X=Q|+(a`6VHxQ45T7%OIeQU3cf&#K`WmwvFgti~RvD$ey>>p9nR=X2z9skcn7
zIQGZ0Vz!;z_X~SJ2;cOPU+zEQ-WUEap1-DSkmw8I&t3fcMO~G{4&MmXHDcEe>@ARs
zYjJ<zR~2Bvdj4?XL)nM1H=O3P6!2=zvPk?h<KkjBp7Ss7YVS@DOY7%J|DN}<Z(Zif
z*q}+1-*lR-R#mh^+#q@+$B2!cl}+MHm)|s(Mj;RNc`FXK=3caNUvoB1`_;0k$?J5g
zTT(9D=gM*HTom{wbnc^dTF2u<{a$GFe{`6UzM}SnfLVbw&)-wb3+05KF`996%Jv#(
z&i!;M{r2ZoHW!;udwXp-F0lLLE6HEY!NRTmcf}GUa^zzYUrgi6ZDUYjo^WW}J2Rsa
zhKDS&v#xLNZ4$bodsq0;hYL?^*f!g)D^>Nl(f+_ALbz(@vkmWm{5lufaQ9Eh3NOKa
zn;VNCe~wyhvo45#&E{=O<@00fZ?G79$uvIw_UY2fjGaMKHuAPS*>j5XOkX9Bm)2T2
zLH6hU5l<pMYpq>dme#lDlu*sB_JsAXKTVW1+)=RgZN(aOmcn_*-+bUXEOuCIey?cM
z=S8d5thsS(*R5AKD~l7KM@d(UiHf=|Jg~O1Oh$nH^lV#>(9WVV@9@$~JOOb=v(H-Y
zo^o=g`R!Y~)-|2pHShF++0Q~B9h&lQdDz;ul~2Fz`E==%<Et0Vw(B@$4z`?Zjd3)&
zJ3*;;sp$c!iPxv_Xl`10?3{eK#SG3geOaN^de!X9T^=hapO4Q>73w*_XmibIHTyBq
zTN^X^szaVQWJmIq%S8(wjANZ%UAZJ>^4(j%gxPKi{r*`TUgTxkHz(&8r-bDdyDdw$
zmae#KwPov)tzR~*uWY-UwQ2jdr_Z<V`s`J3t;y+4>5cDac14`O@YPi=*i-do_qKF7
zgOZrUyftTIp6HAH=x)$!?Grt4)lvJwenBZG?ZYijvqgDLH*U}ndmD1%1*gaA8J0p;
zd3@_OrkSNJ?wZ5*ndh3v?B2@fyAJEkXk_*Oe6}^~CYN#2_r}vN4}8@~G(G;;^r3L1
z@8<o>7FT!5rdu8mo?XyC>C(sZ8C@J_SHF3!DENQbE~mBMTln-uk}@ZHU5sc9WMhB#
z<=;FH_Dd`K!eUyszm=POSXorA|80DV=}beW4OgY}&+o4+T4=g{>tXJYzGa%9nM+Em
zGgDV@n>yoi{LN#`+x~FMvRX-Oe_7COziY))!G8x@k2W1Tch~w>tApLi`3-S>g=qn^
z=dRhg^Q`N&p7}8qESt?=&*E(Tt+BA#n@x19YGUj|LG5Gt=a%-Ip0Oq&mDTK$g^tFa
z+BbsY4#w+6Et{vG<`aHkbM(A&K-r8{Hj}Lax#pi}oqllB;YCr8KW!JAxO~N)v~!Q=
zn<c#3#WTsf@MUbHNyo8mg2!&P&q*(k{L1o;J?Wm%?Y6zg3cn>@y0fhO=qlY=8(Y1n
z7MwkDI@o_s%no~j4bt_GT$*pNFZK^noweyg-r3F5s$*DNy}Pxdy}KfMq7U-CSA1i+
z^g^0><r>5F$G6Ser}K*Kf|+Celr^pERQS{;J*mC_ONaTjr%}oz6&-a(MXMua8w%%i
z_{&F}Na>AV^6=`6iLHwN#U%XH5-TU2a`!Wy_33?z<+SOE((FakCaG3D-jtvg%9VDc
z+w`B(CV@$U`bUan9<fTz^I!JS^0lYz@zN9g?l%6jFRy(V#T%aewRp>?9NzHE9YKem
z{;o+oT|C2X)#dXFOMf5IU3Yj%N_|F#e%p7}Syj9|&u*$sPTtkFeC3VuIaA*88+~nh
zzR^cvLXWGgbKrNw-#&Jy6OF3oUre|3a$A`CdE)G4MZuEa4La|Op9(l&H&OAhUE@NJ
zV>Vu2X8DS44O$*{>`iyV)Q7iJ5?>W8e5GPk<od+xH^<|ybqpUO_x+2W^fW(yrmn=1
zn5XX->#gfQ!7hDv+GGxOfqO0$%nwUj#09?P_;0$?z9Dz_)uQ*`LQa3{-8ij2hj;s%
zds4YO)3d`*Pg{F(+F6g?+a|5Oap#AB(f4B+r<e8eoo?$j<IYjZS+r7`*=KK$yRQ3O
zch={dS^8%51t`B;*L>tx_T}|gzI1;Tzpn3e+5bq%!K%in{rW%VS)G46PrBOgM8)~P
za(DOZU)_|y|K_7R^LOt*^7z}1|2nmmW+y+fHhtEao$$YV1;^|Y<qVzWvvx)MDek$O
zvh~l(lR1`sA8ZcIJzjHs#Yf9W)qPuRQ@8Dyue9v=n*NKW*~U6+v*%9R>Ki%DR5x(i
zRgTqBZV`FehS6c$zHHs{z+h{2`Ma-g{wA(}am&>wcx`ZOaI1Xb5mDd3Y0<OYqGk!|
zAD5i2C}J|zWan&_$rsZ)Io@YoJZa`#5)$66aYJXJVyy1VyFIb82Ulhuo1%Bn^W-s?
z>J3-Zd^WHgKX#Pe)%7?_tGf$ZYfBrer0=r>2NpbV_-5pJO|!8{gOzDvqgwLjiMyVp
z&D_<J)+nVYe(aH|w@H(*XLyaS*u3M?bNHv+sOvg<BYY!AtqAuMjcH9fk2p`V_biwf
z@MYhhkIgobeKkCRk8Ni5)%5R6@Jf_cEEiF{?tJ~hC!Y@;*#`G~59nlknsVr{%B;})
z$0jQ+G0?bM_WSKd*^t1A%J+ij+3&mXxKIC6iqWHWKa>g{EZ?_q-@bbvt><s!FsuH#
z!!h@Mhfb>2*P7;=SIjHt<xBouTg!2ASD75Mr_7ecOa8t7!sxF2+&sqk?)#I5Z_8Oj
zmhb-4IqMmNB@Yk7CCzW4AzyF)RG!v2H}U@SKR;K_|2FM+-LLcC|NeisIOD_q&x*@4
zZv8KbD^iba-F}->qVxG9*&SUw3?jrH7OPIndgyuYh2Rgi{F4_ezN=N}n<YQl)lvSq
zVozmv!huhg0sB95Z)mpHpRn(P^3!Wgr5xuE&;NL=MsAOaMBl^vI)83+?_MCl_0jAe
zYyOYJ536Nt`EKVOj(#kd^I7WKPnLa6@*PfUkAGh9dUxz_sl?o#w~J0BY?{`$O#G<I
zg^8>tEoX%0DT;Ua9QtTd&E|LDcoX}g6Mh!TC5wM2D)uy$d-^{Tk`vs;C051te%bZE
z1@;=x<u*iHss1fU)&1T)_xfk%{E4s3r)$;3SMUG&?&vhJ_ge3D|EFgc-Q=&i|G;D7
zhRfD>qo3q{*K4`D;nyXv`|bA@zkMk_{r9flH@2^TtHO8Pp~ZU#+x)}3Gprx1PF3To
zcqnagEZnQ#@QL!4H#Iryr`0vR-}24=faDLZ-z-U)ijm#lLTlo)m3V&0ANsTU!Rylw
z+v3=y?r^I8wcD`0lIKX#7K_`PbveXCCTI)Z+sCuZU`wjjvIIen`%Dt=f)x{5+1@j=
z`0WsC+VxL5f=6Ia0ITw)WiBoE8O~&fa5&y{*0N^&<@KVd!JzAdf!Y^VsW}WC7Tf|m
zxfHmH@2*JxFaF^6Yv+;&|Ji30Fy|fM-N9)7fbC9$G$!XqJ<pWdP6u|Q-}4so9pXC~
z!oqfL^89&E`sF0eHlLl-!{4;FE;}v$ku#6ShWGZ@10q)l1#KvwbK1pjftp6*{YlIG
zGS|3t&y75nR50)TM8^&L1Fq^_><&>2Q#it)FmLibX62OKI+y0D%{)=GKt|_|drv<r
zJKJ_Hp<14nn1x{iEa@LxeJ=mBTekT@&iOM(6$>4tC!d-&_vY&I^>KSA3Z0MjQmEa#
zo+sb){mo#NpDNuQPA~eOeR$FIPkip1*|&vjrZ0JUNz=eV;L1+7<u5yAL<FB)>Ak|s
zt98kjW7V~@JW*@1dAK-qIJ7v6*f||Ht(p8)CF6I*o9il^lT==$B(6!^)hJc+%b{>?
zqrhU<vQr^tVzW2TiG2S1%gK~q&)U8?N^WeZT5nbxr6Z?)^yrauEM|)pH+|6bt-ri`
z;a$)E30L#C?SCZeo%hksY1sscg-<StNnQRY8uiVN;bh~dQwF!DDhepP))2k%U9cs0
zl20eY&l0Ysv6*_Z-pemX?P@tCBF-lw(0PJ2DM_UL%gbh=t?6RLiRaea`E~TJZF`b2
z|JhuJ{%zck=02L&y}g6o!zSuwvB_24B+2h>71JlyxTyYA_EbN7JDF24MmOd{Os?lm
z`MpPPdp$E=AU}Dlc=?2_XKn>D6ft?NcdoX7DWx8~_uhhlB5k8DY>qLCo<;eV?$h=8
zFZxbYfAQ>;amneYl~&9Ftz5J3u$2fj&+D*?jOtmZ=+VNZ^nc#oIHLxYK#MoO&xj@&
ze4Uo_gCSX=(ZO3`;*3W}{n{5>s7!i!RzQ4K?SChGDL3!a2{Tp1#3w$wy6oHI<NcqP
z7s;&VfAY%xwWf&p%^aqGg3%09h4*~je9L~$(^$9Q6UKec?H=aucVAlRU7YFid;6K+
z=|A^P$XfDVkvmM5v3-4N{e+d}KN3Y}^Z$-3@x8+St&HzLyO6wSzIf0PlcOukkKKOj
zy2WG9(Et&1&6R->Ys{^ji=DHbXFDCeaA5{-<D#w6Zrdm2y~|75o~J3TV6x@*!<-Xx
zvu$moH|R~~|7sFz5ufwRQn={+<Fp6;a*{{+*b6O|99g2LX|g-r<9(cG<V?Ydf`Sv%
zs=d6XPZ6nBs@g0gcdR1v)wYvH#{AP;U-no14+{*m-o0o_#5cd)$4x8pqN?s3iQ7Bd
z{m!03hy8-dzwd8JJ#t}dZM9E_@7b9%jTc$gxn*j4+FWy6v-#Aj!)F(sGk9+s*u3W2
zmo;^@ee0s?w}j`XUtjXWG4S5+MVEaa3clbyenC3VDW9XQ;>G({Q6ff$+nUbt&GHv#
zJt-(Hs#vu6+>SF0-5Xyfb{~DTNhG4>gxcMMESJx(c-i{s^Q`ltlMPl)cD3FWyG%k-
zQ0eQFRX5MBa{J_a-0aNPxLeo%Dfd>-(wMw`Yvt?bCSRgAZP`+i``I_t_{IHu-{iDp
zt^`|^2A?x|&;35v>Z-oopG#LVqW@pNnYC!jqkfH42A<-hFU(U;=<ReVJAHPO`!W8B
zW&sB`G-|x@W_Js&$af84XiBLSwv@>DwbOQTYlF`6=I&F<4fb9u>mT)t-xt|@+x^1r
zThlK%U($Rpxt{-_-v2ZAADpR@c)~T=EG0l(cOlbKt4)rAB~1)Dew*!9m^(BWC*&|J
z6^c53AT3q;?!>1q@!$Qu^!$JN{;t@y<geL#u8WG>D))b$mzjSs@<+`j|Cq~;dhHt&
zoeMQpyP`A0Y`WHHOmb8g&~)*i{othnN7BQ9fEG2+(9JV!70k8GUt4*3*;mfK9sk{I
za@sBFhwI9=m#q40oORf8`UAnwtn)YbYX|D*O=4}{(5b<=o5xq;O?jgOi=xH_p(%n-
z4!zJ8n|<?x#E;whDW7)SpLcTkDWlB}UD|pzg_*Bgxt*T2a=Qq|DRh0m?!B`v`d`Cm
zkA(8p#49%%)MGez7%pn`JF<1s#pP#S?VR#jJnqlKN6{MZ>|S0uy7898Cw2=rg_;5u
zo_*Udep54YJC)#nYCco+M8_RxUB&H~n39-f7@1x$^B!ZEY<Dh!(?jr*>+*w=7tUYM
zPgqmel33`_z0dSP-e23cw~UE<d0gAnZmD##nfYWCc;v6Nyl`dqrgj(JrZ|^>jEgzl
z3=gGpCQZ>+V3^OSz-6^}0rv&(oZ2SE86G#DO^~ZzcR`lN>8;FBA6L2Wkw1zpWIC!+
z6!eZYpLm#X|NMrHi#rVNezcij|6$#Sd7u9^ZD^HIPChA7<nv=wtzc}err34;Id#i#
zx;(V|bw}{R&vQGNnw&03g?+msd+gKMDsAn}&m&%4x@eubneY4(4lhTulVOz-l8X9A
zCbyI+yDS&b;@YHe<0;Q0rN^F}g_Bt&dO5D{3=oYqwviQRsIu+7*2>^yDw?_Z#2vZN
zk_FOM0Vk6}y?c1yNVh)wQ`owWL3UwD>l*IEAGYn<o&0r^y;$O&_D7YaeCu|u+ICY-
z`=0f!>lNjb%vZKf;kf55lKlJeA(yhcv!819&QGax$lrRnV*1wZDa*XM3xv(z?Ow(Z
z`@?OoxBSxMUoUiT>uuuR`!G9PLz{cyvD5+!OY@mWl9u>A`uO_!=LxSHW@ucl<lX3y
z#xz^>%pcFHuczKs&Xv$T|0S$yd)51|VUyOTh|ToeR@piyj@f8)p0wSgYjHDony03%
zld>!l{d=o={`MI*E~hqL)O-J>?DYiY(_yl2Z|@I3|Ibo?{f@Uc>;4w~YLIGOTDqf2
zZ9_s!w_N_L%p8%{7rj<<?Xr}u=2k|=OPq8v;5TcO$jK3#ecEktsqe4mu*<BvH#TIP
zY3`MpF!My&ygMI0KU+0HXRWl=h8L6D|Gmpy#{IrRv;I>_{@)3Ce_t=-Up4dM6OV12
z;-}}!M_AnK&bzkQegEOLJA<7Tsk~pXLM3~m+Qyg@=Xtqxih8+Cj?TE`Yd+I$_Oe-O
zZsJEmW~Uu9naOl!S#+;h^0d?qOYbQ~9GdF8^V!B{YMT?x+FzQravw9;-nyfgW!llm
zM~8acW>3{z+G5hWFer-UsLsjCeG;{r-rS27Yp=Adlr1(dTI#hUUvIT^->>c^)qc}Y
z?J51dT<`6ySv@}|9Jbzlc6ZaZEi%&f3*X$ccB%DqT;lnBE$_ytPx@aMb-rD`G?;Vd
zOn#l3CvR=;L}u>L`)L#IRen^UkU5WghSRJin!Ynmc2*s2Id^S|_?3=|ZGUynKi4~6
zsd@kP7qjZQL5psb6|T8)>{IrQ$G>B$<d2&;_i5i;Bg|x;#$D;8oOXHPvSn$XW7D$C
z+IKm1USip0UCRH0MON#qPUGs?(KUAF+{eRXMV50U-<#2Ey!ZXriv9=j(vcgJ9>;E<
zC~6{>eC)VNYYSJqp6~sArH}Oz#sA0JPWacfS^I-Rw`jgRhe@X6qWyLaJufxC2e+O0
z+2v8HxT|oNo9went5nvqD<`*mExOYGMf~$gjg0|oMDC`{ThSq5;G(rLR!l^KWwA<Q
zQ>*Kq!~4$1PV_hsvdFpHm-S-Of<+k@o=bJ4>6aBAnDP8fYT$+aD>zOS9w_M8I6+|E
zbYZ2xOaBVn?7OGPenR1rbh2aa@4{QL6&&;RY(!7gcnbKPc<tCC=kD-jZerxT1xGa)
zjZ3!We~~zN_s#5^Q|{IlMBOp4Sl)cYbDOWlM`O3yFDE%j9lo$z{pUX|Iic`JvKq{3
zyV@idFZuFfh2W)*9ZD-T^7=wj=LnnI@6<bcSGVKO;iN*Bl0sI=>hhOK_um?@zU}Kc
zv0*}w*mL8V=X{cUwl2AJB_!7S%Vt}HI}gtMnQ|^gTD11)OM~Crv$xf_c62^*txobP
z^DlY3<eo%(gutfRhP7L|9#&*Zn<wR0t+#6ooVZSLZ`ST({$3~7NpJdmcve@@q+bWF
z?e4zkvHh#!ldwH`Gxy&1{ItEOVnb!ZHd|XA9h1GLNe&(%Pqc4OyVIVzCQeUoTDF>7
z@~z_hE!`Olovzf)+rhN!fYfwb=Mz`IcfS*SE%fO~;3<v2D_$sW{5ef?n&q^m*B*#y
zOPRje@V++fL&7uHhbIg+7AqZg@mY4Fn#p&kr%I>%)Du2lUHjRUd?uuLWqAornv<!b
zxmKn3$eJnheN$H&?^YB^|M=$S!e!_AzLrc8y6N_O*^8r_o}XS>ToLhn$;^K{ULHT`
zYP@Qh@6UZZ{~hIweE3%;)0pkv*1wIt&d=0TzxAA$RiTpjqC;@G`Fo4m_BjD*tG=gr
zxTU!KSt!eIm&VEO&HsI#PwAsy{@-f#>h#+kH6julv`d#Hrkt^vobdM4os(VOvP^;B
zS!R1264N{+;}-p3=8+pyPi-~}ag4ol=W|Zw%oj(^qRpb+vi9j%&nuYgBEJ87o^D;i
zx0Caa^UHrq$~?N(nL|!jQ}|8!oxtsT+<hOfc(}x#bI<3?8-G5QH7oj+r1Un4EARHl
z6VFnnOkR6MwNSLhS?0=)W9otJirwGLd6q3+da>=`!Noq4muj|kZVde-Q|lSwnZg{q
zB%dRXgIoE3M>luRJ=r9tqf2_iPfe+E4H7BLPH2gfzsTe+Jcm=IZ;QnI-tf<-xOa&B
zv+lhgpZhAeHS+E|d;PN~Uj=H$?fNpS=!wJK-^@Yc^*b*8UQ(_-)8mo{2j}NJ;k4b_
z;hIn0>%Km2xp)3o4|PeESuPW7e46xq=Y)svWw5=_DEX4hlJWg2y>Owl-sr=g4MKZv
z=kORwFeLRDPLo(AAzGZ!U04;6E5Pft{^05*ljGO@{xD^?zx=kn1<kiZquXyEiuBo*
zp1x3gW2!*d5w~8y`E&i1_Sjc%&%6EY<jW?}nL!KmQm(}OZS|IJxy3zg`#r7;i%qHx
z)7lo8yCfXhHu=Ma5C782cX;?Xo_ZD#Y``K|(y*du#Uza^t_)5qp_NY`y)j68mLw^l
zRw`S`VlTZzyTx1ap6<bC8!lGbYW-T+tL1%b)qFe8-Mo>xzJ6P7>Cc^d_}2Zi`aeGJ
zeskn*XTODI&;9?^J8~}l&3dPna4Sva5nsl{G6q9IFRm}DRpxSD|AaNK*NZ0PCueZX
zKK>wA(fjD8xkq?b)tR*P%e?1G{J*)j+iXIJ(oR(~fnZlz=ePa6SL=3tH}qR_$mF_%
zp;HHUzjyB~*^e1-7IrL8o;u~Mp<3~h)~<uU&L*lYHndoHbd&j{Edj*=-XG!?sCCU>
zmwCZ-akgW4dHDaWi{|bP*tOuM-lqPl?I!W5`wB|cSGv6k(Tw|$7wF{V#&b%~Keb5g
z{oK&q=8JzF=~+JibKb?)8SZ@V%se}GmrVO65k7xPO0i3<mG(4US;KW}QoNoXSHC?u
zv;Sl1iR}&bR|9vyUcc+(|CFnT|L+cUpZH_Z=D&YePHFl*`{^#TaE~8hdrxi)?J!u^
zviRgi36n^%?%BfI)#~4Wj!#(^)b-u+ef)>_mXq9t3~eP|oZWnT@|tTWZL9Ci$$32~
zW3$-Tmw_(T56Ws9pG+zc@?@*%-(LSF!en_)XjW8G%yqr&G~d{{*Hlj)+f%fDdyG^=
zSkgqJ>rW+|+9lc}j!PbI4U;(SEUxKW`0IpjTJQqHhjNxm3T8a4{ycqGx3kD?{OEDg
zxL}Ii_TXb(3-=w4P;{~Vc4pNFX0>O$^}9BuTn$Lu_OX7(_jBg=Zr|<Rw5nRA*L!cV
zt?Z6>Z%!DpW}duPa`L)G#+>gh-|rkQkA8IfK2KQLYHh6=jdM)`CoEl<?ly`jb6d|;
z;;o3hlVidr@s-PAhH($etEeyTPJcBuyk^{fmvC@NM7P@9xdA^eNLd;ee)*&5vy64#
z#D$WIP74;bxNe<&WRrUuU)p{@#{{c+8r>KDBsUyNJyp`zA@wXrrJG6YsM)Pjv9f|&
zO@^799xa|PS)S^%N<v@cMn|vgQnTn!?<ywu#e3Z3^%36_-LYZmx*o&zTaLb{C`!J-
z{&=av<++|EHf&ZG7|&auU+s8%;k@N(rl*t2&l+4jwq}m#!phcHT7O!6H)S4QUFG2V
zN$pY6`|Nx5IXew5iCO0)oRc*_KksI})2mx^s^1@bb7;e#d}du%_0@Ti7gp~npZvPd
zbjhES-;0Divof~N@R+^1I%-p-e4fwU&3_K^Z+f&hz503TlI3N*{2b=0_6L;qzK>2^
z_{HGJA&>A~j$Kn%7#@&yVD@p`b(fJXIVVTumDHKIbxwN>=V>@D6Kf7yot%}Hn%MBX
z(=d(4<Jl+WhP?&eVZ!QSZ+<#$w27?VIZajP&F-XI*6Q!~%?_C~d#`_B@`nwIg~3ij
zJZ_)wZO^#CdPm@V{D*5_wYS{9yy(XIu=j^*V)dsb%1Au$GCpDWX~hN2g;y8)?mD{A
zN=ol#@3XT(EDs|ar1+SkM8tT{tzMrTq4c1i?dGhQxlayWiG6=J>R-lR<MoqoGA1ru
z{CU^z>Pe@TE<U!ezN_xizjsF}PoC`TG*jeL^*qoa(l_Zu!E3<@HOKi`W+(I<nWG*m
z&ys8-B)9lt$&8SW&RrTOS8wcAStqn2!0*`wwoNTvf9|gF&3~i2f!!m-;L_0x9hTM_
zeyMAm91RkyeS)rjH(2$AC3cyzY5Mijd9!X;B+0##?GArfm?A02DR^4%oxo|mSRt4B
z{%03H{c6J6_ThfE<R3+c71}dqZCVp48OfCLwWCbUx@$Az?N2ss+hxz)zE{V0;DZTk
zc9Y;F*_$&S)@yPm+0T1eo+xQ|{*7zk4x`QD>rT8m+-V!~=K0;9pY=ceGI($G?VEJM
z4uj2)+mnqB{#Q1t*n4o&H|2*G?()521y}PgWe74Q&T#Yg=)ayJ`SPXI+U7a~_r;=n
zr0rK-{N-07Aj!&ZVkNOF$c)?3SA*s9Iw@Tzrn3)Cew!9E&s}m+>Bt2kzsD>2jn>We
z>K1UEZMoKYpVRh?EgXSg>io1%@GtSt-ojD%#nta|t-z_5nZ0Tn&V6o=Ee<L4iYdfO
zth{Kk%)ocC>XPT#TYA38O08}Fd1$fJ+68^jO``Y<ljgXwUtGJWeqF*0h5ctUnKw7<
zc`m-lx68+mUBTWZe8EK}l~-v6RufLH%)Xd0#drI>%Lm_tKPctT-og=fm(g$b4~zP1
z8D{6g=kTR|3lZsctJXR=CvE$|1Xa()fpV@>)n$GrdNsOrPgpXg*s5uJ{Njsi_U;n9
zxaTipZ`#}V$0a(^@lWTtJ^rO-Uu-pR{d=+AwAZWGEpFX<eYT0z?bpc`bB|mLzaPA~
zu=cB-U-{#=%d<?f?I-_Ns#CYtp8IA^$)xy~D)kA=zctRi#a_0lenHxQ+iPcf<Yr#G
z7@AtT_3Kt+={3#SukUOvUCJA})%5OK=GCj$mWFQDl76+eRP?K8>1XXzyZu+K(AHn8
zDH{?Ud+*}v^~bgt>0SDI<Myn(w%X2*%P;@f;~Tnn>y=vp;Zbph+qdNPZ7o~2b>XH(
zlUX*u%96g@6B}lIJvJ&hH1K|HNhb5Q$OPG#sOtfN;UTv(=0@*2aVsLeF}85W%&n%p
z*Dh79-n}R<FVxxDb!X`@CA*A!M*^8QZtD}jQ@ZtOZz}J#RZ_2;POaK>%CA;1{OXiY
z^J&S~+oG~7L-+2MQrB3kc|0!k#sZ$`&?_b-+kZV@w{~S*itk#l&0%Ne9<+*;TXpRI
zk6l6^pFIsV-8{ol`qipaGZtE(?YnDz?A38rkF|#)rL>-H3SGJSP~_=s@hc(Mr<KhU
zN!1HgUAtoQqFq}pMD3)d@AUFs`_%O_G*xtsZ>sCo-&(C&(o%P7=bmHb7Au+mI==B;
zMn(EzrSi9Hb_JC`RZ^e5=pJYC0;V)aSv%<kB5I23nv0fX39JdfYUZHKd1zMty3F#O
zX=>M|#0Rf0YX4LywQl9rABUtKT0ZPQ^!Z25?p<d^ORG2dt34~U{gByuF@QDo#x}86
zf@zOD!X$b^WOw|Wd@{B*gtz4Qtj2)e`miVA3)7}XgrD~o?YP<VdFPV5i2~nNxV^e{
z@pqi^{{3rDt-qeO*~zSLa%)lC&3(5+-|F`VA59H>d-93i@n1VTUVm`e{OM+-uWHfy
z^<Q=3@?7@*U3*&K{86LX3%g$5kgcBfDKz1+&Vy}9#wG=kT^04(^GgLEx#fwLhK25$
z8MB>DPhER=<^G)!w+|fGaKFcM@49}boKH(&M)}tK*yU2@)3?i{Yd%&ED_pJnpm^%T
z&%ZveO1-v?XYGv>YeUZ6zV>MIoa?(cx?OF^j9Yg$bZKwEvfj{x^Ur9nyEgl3c(Imf
z^-{$&ZNtUM%U*ki7N0%we{Zi|f806uSyvxU=8bu`iBEptzIU(QTt9Vn{bbe|YOC~k
zYwZ5NOL)9`*EHpH#_M~gRp0+=8u~V-s?}Hf$F6Hx{-N4a)AqMKedez{z0B_VvPH=<
z*EY?nezQM%p;w-z`8!+nf4UFq@9uP6e~0<5X@9xW-i~aG?$<Al35qFRU+-!g(^nJv
z-|W-Mt&0W1mFD&Tm0bRD*0<~1B#x!8+rMn-e0!0_siyDV%-?w4{KRfEt+>ed@59%-
zUc7Z*_U9?F>&K#}TFbo5lBs@HdOIdEdO_qS!M!1054&FfvLkNxxv)K9_q4NIyDc2v
zsPl<ccUms;-s5>j{CCXV$GdXX{=8dRvQuq-rgN1-ZRzaOrax<r@4Wcvy4S6pc_RIh
zq1QjoJZ<`6Kf{xU<tw>T^Uya1g7)VTv4P0g)DU^UQ0%0$dCdj_E$?kw`(G*^YG`zE
z@@QEi)c$WprhLN;RaY%G$)X2uv#UL{zBXJ;f8Ue7_1o!J5i9f3{_U1~GBfR3*{X{s
zyym){u`h0E>T^V1K3S={{nS1=+xs2oPn!hCuPpnpsmJjD;W>Vr<8Ca=Xydl6{5Lz#
zqx{t=v-qbsKm0W7v%fNVmgM(Ob4;&DEuUUhv$i^E-{joY$L5rO-efv!f7kg`6)`Km
z32uD6zR9|t*I#+X9kb*wn)cDc@~Pa)XZLr$JaSTR?Voj9wfl1{^(*o;A1qMzu;^k6
z;1XKEG^MF;!J$Boxea<<vPTtHu)LM!3{hL*^Ptjcnn<Ky_4O08D$39Qe_`$u6S?E~
zTtOk34V|Zt@XbEY(b?zPX_FmpeZ;AlX&%!&PMf0-*A>tHAo8K-;miZZeeZ2=#Y?T@
zRoEokRcq7Vd3yG>v>WeQcWU1LS=J@jUm)YQdeeP<=F{6}Vu>ZtPCRHVg@E^Jg0_)y
zQFH62rGf$4)=eYO*1;g8y=EXKSR4Uz3Su{%f)QvtVbCDnx@l^tXA0WBXrN$XYN2Oo
zVPXQ>OQ;ZSWM-jfYH9-7bZDYyXkcijU}6eo7${g6TId;@TAC;rn;Gkwn^~G7Br!x{
z6$~vEj4Tw)j7{~-O^l2{+dz#$wn0q;?E?jE^)$6Kwoov$Fx4|PF$3+dw9qpGsWvw^
z&@(kK2kAG`Gd40YQZO|)(K9yy<y3Q1Lp>8S6AJ|sBLm28P>>r<Ei6F^#MIPG53;w@
z#7NKF+}K3H+{8l90A#qig}I)gfu)IpnSrsMfsr|A&!(BBsh+W+ktulFDa0*?W_m`3
z29^ru#)f*9#>Qp{DFd)W4NNV}pgTkj4D?JbOf416jEo^xm>L=ASz4MIB8ga<>X{oD
z8!8yXf*h{c%-BfJ0%W(5xrv^Mp^2e_v5ASEk+B8HVQ?`^b0a-7Q!`@)xN<WCGpNI0
z*20Z6F*4ILH#N6VfIGz4(nQa|1WC84C1lqwA~xY72!@d<Z0jv3XhG=!lsrINO`%=}
zZ8bGih=y4M;u<L!8W|~=!u)G!WULSkcPc19fOhOceGK86ni%R?S{fN4Z&U^69E=Qx
z$Xbw%paZc{)znhY6tpiFX``yCk&&LIiKP)}Z?A!#xrL!|EW~|~jjBe5pz;J!c!2p(
zzv0`cYGi0^Zi3jTYGP<+Vt`!nys52B5OMuh5c<{d`^=f1MwV%6lUr0K8z`zzbg)uv
zY-xDNbJD@1p`k<Jp}@{-4-P6SDXpu}zPG*Ya>JTUavi(YJ=z(^!L>&Gl-B7@4r%+s
zuiib(Qh5FS_uu>e%T&f*y?Xa*==-|$tCSCMC^AR&SxmWam>+fgP^Yw-;*<Y8ivNC}
zRzE*)Tm7N#`AQ|nd0I-E)BNMEER<F{By7Pr@6)+i#-&DekDv0jFumol{C;M}-h_#d
zL%cO(-t#}-oqlG9+09RzZgPL0$KcU^`P+HsW$zd4lV0#-Qe^k?=cO{<jw_607cN`%
zQg-^8GHLOD(u({s&+KRKDrnqZ8MK;t;hI{GiMyAdn|J5q+~3dF3l=%nN7*h)7MD`9
zi~DiPf9<qS^@~(=7wuPHx9Z%or?c0yq|c4KS=?>7qV=P)tkN4!m;NZ{3KOSe$py9R
z3|DM%uRkPni|M$lN3)(YlTD_p<CP`>@kjgFV-nYX;;3|I(-Z!^bNPkjM^RrkJ#Z?|
zeDAiM>-~bCD#Er$Y#X*Q-(h;&f9PxZN%I$C7W<h`$-QelG5tc_-Uo;DG~O@&&d|e9
z5trv)&ZNUQ<Fsvq^M^ZuFO+#c_!sJ$ebUVkKC{a^qUFvZqb>e7I-Ye~21H%3`^UG%
zU#F><@9kr?g|BzA2d*n%uIi3wc&mTFHhrN?-?Pu}PcGdccS~&H)Ia<N-~BI&-CF)k
z+9WWdYgOVkr77VDf7i1}Fnv(zNu2(mYfkIN{-^)D(mteL^s{TwYb_G{&ozs)V&$^Z
zgI#5ln7-)zEPkR|Xa39h%KYnZoUJph|7*@VIj{Nmj+t+Mp5AGfArNz$=R03ZxrtMx
z-|HH|EJ2wUnFkIFY0PiWKEJs#xS{g0rFQYF1&`B{cL`iDJoF=p@z|D55tn_;Kh&?Z
zzPNFY*=k)JL&+m)$=-LtFTRRgNKs$=S^c8lg0r<EChr%hvxs{##<Xg@HDRAP^O4ND
zyZq1PPnsNctH_%+p)IcAQ&^(??8j9P3r)n&U3b{Ool&Q4+i4U2gEn@qx&?OAKgm7S
zZkX!Oe}2Iq$$7d0n=U9boImhWOw|9)T=Rvlv-}hE^h((G{O5bO@`T}oyS*yLMLa)B
zCttcA%=6r#yvV}od3(dN-3)O;0;|M07|zW7WMES+^vfdiOsnDL?-3I6CzrZD-0Qi5
z^?_E@^5lTVk29I3=rh=>UU+Y)A<XcIA>B^nGlLql2@}J-LdJSgF9qiSrpMtABu~wr
zVy}_UaDMhrWe0r;>)D6zJBT$LPw;Dye)C*fbHR4a1Apd+B<SwhKIatoV^@jvE%^_0
zPZ?*OtdROK@7&yTlRr&~GP?P?JME&Ofh5blAaAX5gX8LvmYhG>yxw`vF#e$P)O>4-
zk!L0ElZmHVg7N~6J3pO#sw2wiPheb#H>-Ho$@SBoM(+unc=mjvPM%4$!Gf80G?$3G
zAO4YOSHtq*Qq#LDrU(B1XZrV-%~tyl@0Z(&Ul{9Ie>J=^*(4bGgZ~2CC&gXUn68*R
z-xNH0xN?V;JbTv4M?b|?mp^E5j?;MDz_(Ljvc2O?uBVY2)0z1Um-0_}y~1yCRqIRB
z3%WchHr)H$u7Cb8yTmT8zVZBxOAThhb5DGkbSVCbP(`~@z1H;*v#I3)bv!G-&yRPT
z&%TrS&;G+-j&o;hKGn~Vy`tuko=N1h`lNQDgS$<X96f9}!-_<lq?E6i2Jo>(iMrhD
zxz*&`#ls}O!mQyD=enJtfAzmOf0oEUP@2Wwaxz2lX!D}?s~h>Z9g0|K6La*K_s{lE
zeQPe8bE;jqyx{o@n;pkfW6!rs=FSU$VHn^sb^T|h%aO*8^>3c6Js|z%X5JM2driBJ
zWM7DJGrr~azH!pFiyylmD+``Fd?<E-enVK7-OjE{aleH(Wv~3ZOHnA%h9Nn{X2~Ol
z2HW5IOP1GW#<|D+laOMKJ7dSiBhNl@?xSYA>)hf~+C^gmZYKWdX#b|0F}F<M*7CU=
z-@}>jMK8#eJ8(B+QyIsU{sl2<>HA!{e@wsN_bznC`~4I9KK>O6IU>Hm>maku<HU-e
z#{c!FDCIPKcDea%!=zhB6gSlvS?}OJyRb~)%TK=x>90*#-d@@9P*VTIdzOsdk_&iy
z1<M_Nikr+hDK&L|c;s)NQ}@rXG54+9li{{VgdwZ>@uHGN?^$CmrZ>F5cV+9rn2cy;
zKbF{^$_D}))_VOkKCt@5p7}c*CK?K#I2Eu(a-rOT0Dl{&^y!W(gTGj-Pq$!RpvCrJ
zj>h*dS?iN>pTE3yFZIdl|22Qjr|e&}I_Xr-KhY26bx(IKnmjM$RJyC}gQi!1ub$ws
z=v}<W{pI>sT3b{8czs-ROM7Wbo%mAA57J95r)-i7{?+@+P<yfRqHl9<6<xTx#cu9T
z7lt#}t-8BP9yk17`L2@fF57#(MSFNl&avGSXt<xfGXBt$rGk44>|*Qx|NZy-{-1N(
z_wGG?Vq*N>eGj%zeSSMD^#7mjpK50QcIEuWS2Dfv*L^GAA5H#l`vm8ygr8h+P5J%@
zj?@5ow~w2D8{M=%zn)?42Z0|w>kW1@?~?!WFs32B^z=b>`QEfFzJ|9u+0HhX%O-sO
zFL=x3!TgwRnXHqy5`9+jE1p^OcTS{c+JWCi7aiW#m<Yx+y5%vyP-J+-yg!QZ!otHV
z?GJ@F*0U69vQAXy=j>d<;@q-kW~<odjZJ4S@-WI43FY)B@z3a2ef`uz>afPX3dXto
zz5WjA4RalCGtQg#`gzS8iP;-tw@QDpOB7yp?G0mv=$AX09qMN?Oyk?kK5k!J_OB}A
zH_Oz6zty?RN=)~Q^gj6CxsG9fg4lo4Ir0wtAOAae|IlBUt0i^vKHK>d&ogU^pG=w1
ze68sIqUZzHwte>1m|rjdYZue8N|u}=0nyL-i@jOo3VyP`$X1Iw)t>OK`a<)c*BO%W
zJ#C+YFH8;Kd-PATvZbDR-hGbZUlOsZJZ(js4QwT^1g>bRG}ca6n3wMq`r+N&2an%~
z^fCNUFx$sf`l(?51<t3%Z+4z$Y<l2qclbVY-TBEGO8*URyegZ*cRhU5_djd`@ou%6
z7e3D6FR5XuGduR5p`>O_OZ82gBt=f%?sMKwwG2`W&orK!cQi-NRG;tsrabRmY{@?!
z83wfp%w6pf40Ha7UHIaB`e)*W<Hd#wkKfmD9Ai5AHlMNUcSM3o2dfvqsK~G4M2W-c
z2duqsRD=b|T-+FBv*G9drca@_K5t)iHAheLf?wscxDsAz<uAN;|B}4QA4Y%Kuz?}g
zsqpkY&->1qiyqAT$iG+qUE=k7Ep<~0IZ`tkyu3deN?b0@ka{sCR^-R^2USvB8#Zbr
z_w+S?;*>pZa$u@epH{|ymRRkk^D8~uf3J7j`A8$<HtPr8T`tNSes&!ynsTb(1Mlm{
zMXmDB0)Az0TTpZM@P{{dHKy*H|8@SV9?=xmFGtjsj&0|bvk~~C!1;&&mHPDyLN$wS
zF34Va-)iPGgZbT&^5-4jaH-Dh{Kj0tu#Nc$V+G?GhK~$k4dM*<g!VcA-pR?K{k?i|
zD(fxg5AF=QD?3~km@t%F4%#s%R++*7@Ydi{d)bzzl)m#aVR~TMu#$_1HG(OCeFN75
z$pxRb-*f+)`AWWNUOB@b&lirjTg(~1El@nf{NQ~p>(}WQlpI?=<!<qv!}?S@V@ZKz
z72}snW*_}uuy$DAa$LXW>HL;&){JEfCNAojClXumzGRD21pBYu!oPknos+&OP^j_c
zFYhf4wF8!0Cw{Tq;D0E_Vn6$@lMQy6J)b4D(hV<6eW6&RQpB^rbJNG86My~)S;8LA
zyJNc2`2%~IO-lB3>a@*N^?1R0DxQh$u8rg?&I{qTQ#>!oU-7K}()3JN;<tao@|VBY
z_T0b4YQJSKx9XOO|0V`Hc`a%GEpUwUI-~#7S>+eZ>TGTtR=gm-^=)Rx>@<BF{@P74
zXZc=CpZA>Me4zY;bcx@w8S3-;)F!PLyrE&@65q4!XwyfDTWs$-W^tBXh|zPp!K<(+
zLrOx}>HW*U&D}Ek9a3xk@(pI45nFv$?s>tkN5VpPJx^+`lv}TVcK*DHH`TSR)hEop
zZa(Aw`UM+S>{zm;{-!JQDR#b96SP*dg<t29jEXj2Q}?5zTiUHp$~NuIj$<Ev&o1N?
zj#k^c&DSk>**5>#btikg)8ovtzdbFsdUkI1{s&#H;gEf+_Ays?{&|(XZg1YvQ=zNZ
z#}^;IC4K$wmVeK9xBvNgt#|v~y5n<SysLh<H~;cqew!Z`4)@#qy7AcG=A`Y{FUIG~
za_?;_z5Px0eChi;U;n(b-}~XwJp0Ad<10(wXaA0?e|&cTp0C%p-*^0dzxMrKe!D*$
zwSP`7pI=+|fcr@I@x*2G7e4iH5xy9@L->A+`Genu;(ZfTg1ly(%zje($?|xi((=bW
zbLO9Z!nJeZozOc{dAjBH-^1TI-#cRdVeOx!fBb*6{)zoF`zQC$@n2z`^?#-RhW~m0
z>npluh(xu99+G;fR_yw!>q>R-eV@PXulDct%b#U_dG>qVPjOFlzw><xtG3?Lz4v<c
z_UiJg{@*O|bIw0ymicW|TU$H%lE<tWX`Y*xTVB4CxiYhH%dIUZGcOwju$?qWi!hdv
z<dpoLZZq?v+p*h{?#AiQ&Yhe4f5r2QTho6Sf1J2@;ye$Qw3n{4Z@e*knEo+y(t)(?
z;%VQ_`3}C>GDk73?E1ks*9!R$y)npt=Kit!N2<Z@uYcVB`Tb-3XZTNZ-|YX=|4r+I
z3b_Baq$O@Du$_IkXvW=TSN1RY_hf7J<HRz@{KoA%R=Zj6`Mp=m|E`~A?l^NUZ`$+~
zXV&Si{k!L;t)TJlo&9RIyMFOl35#1grHlXMdRA`r$f19MwNmznm_1Bioi%b2YwqxF
zu$|QU&TVqQ-<!S{<ostVA3q@eS9*%)#3LLolWqUM`k8*-{?HWpfb-e5)`!=(tnaRo
zw3PU%RHX3fWT*CiBbkT$e_ej~bW?#$%)!3vvVXoWJk}guXBw7gd*{#7Yt4W8+4z3$
z&-t13OuU=_oJB-k!sAAEzB>&U8r>PhWM)(^5IyyWIb8M!v-R#j2U6$X`~C8mf8CFg
zf6H~}@3z<ayCUOJuduPerGECGuhW!%o&0%`HPW{+r{VFjxVPDv+&6jsqh3n&-Z?dO
z_4S?IJ0AYm%zDUHczEZ<0KeyHN4EGqOe;M7|8Vf@)P%2F|F5inD%WAKqq0cUwqu>M
z_KwsHWvi~RMWrv;O8Bc}Y+Kf3@cR6XD&e;3``4J~vVGxIiRLB$I^MbZFPMMP{{>4G
zgKg`#g?nFQny~u1z7DjmV)k`jzwr9S_=~e&=)chYQf?yq);)i5`32(_LSLA7N$%~x
z=lXu3<O}I9vb*HYx=dem`a(`erJnoj3o<6+r3)%E>~=BfI&fc{`XYM^hpuDy#h@?j
zTX<~S-?`6yp>;tld~yE8?+Yqd7xJpjIBX+!L9#@Q|DbcB?mA~%jULxE2ctv|9xkwz
z>vMn5UC4Yb(bg<MS+3K4;p7+b6((}c#~&5$5bQthyF;@51B;E|_6MFjM7KXY`9kCu
z!}sH<6<qVWZhthfk)6FkGQKH2fqPq$^tQ##F9iAy^VMk1>zsR|RsYcRhmjR#`((}^
zl(mpkUyvRs?sp__LRX~)r}|@&IbF{mv%a|h!sM4wZL95#?ph1p_(t(Z+8>qnNa!E*
z{%G{(_)81s^hfpytHh^2Uj5NDL;PLy<^r>Gj_nr(Yjl4J)Hd3&{re*#>ma}I{K*2N
zrr*Nbr&LemIsE-W^~c%@-WRife`Nll_{X4*#lB1aFykMKIwt$h`G<D?$o#{Tu~=`9
zWd6bEk7j#h-yb;tFmFzK`J>n$m3yTBbM9}5KT`c+{zvZ}`gM}~o0=`;_ji4Nbp3<f
zAFDd%{hj}t?jNdG6@R$>qxBAXy#v1s73;+Jx8FZ5|A7Ca`;Yt|$$vQiiPX2*A7}p{
z{zJj8W&e@*hlhV~lnb9!x~bC6;-Pm^xz=;SlgV{U8bpd-dkSi*sV-2@SIFKed#CtG
z*o3vWPrQA?SEPRZ>|2%ciMvnQK8bth_fGF!-aEM(<9i2mAFO*IRuo>;z2oSU#4VCa
z7ys?x$aS~AaQcVX7SS~ywVw!<@cuIX;ePwV>Iw!u_5MkYOPZ>udMufAyW4xm^&Pc$
zUf+?vGy6{bj_n7I?K!*GSx&isvib%4k87WJeiG4B^`D%6V)GrLEwf7|o=xGt>9ws;
zd&kr}T6w0sm}Q;y7q(yYO|jlCzqjLC!TX~33wxhPwk(;_DeQE%_wlhl$-wBSAb~ft
zr_Y}Gu<*#uT(!jqCdcH9PY-;&{-giAjmM&m5AQw}e>ZII^l1BCE0<ZFe4c&o^jD|i
zt=qY`S7z^O)0s1I!?Lz}7gG64CiX~i8Sh>qeQUv^_1}Kh6sW$tGxgnxd0P#q@0nia
zIeGU5-g{?vR$p85cH1J&T*l<x`)fZPS*Dj~v?trR>EIcO+b+jl7Us5X?`~gyQ;{=j
zisGeg<6942tZ!SccZ2Wjx`V!}YpN&hdJ}N1<R(+B^TWP{-hAqX*;zt*UoTxY%?_*F
zZPuIBwfEKH<IkQwYl+K{cqD&mTiRKH{pBZSZ8M#`Tlw_zAA7_8&pP|{YqnL^tv#_B
zDZ%1x-(t;GN_iu1-$~7#-KgKBdAX8D@@~k)Cz~Dh?d0da=e;X5i%C89w7coa=W!;g
zncS0_8lUN1a$El<aJ|Lxi`u8JYF|8l`w!3c=Gi+`m}IZ_f4tt$Wm=hiZHp#zSk$lh
z7i+qC*i^2wKIoZyE6{eGd^9VI!iucT^6TZcMjl#yyk%BdQ|QNaa<{j%CK&BlyQ;F-
zDkl5ZOV)i!Yg@Kma;ti@RDH|xiv^2PzpKBUA`o?M-KRB;bN$~Q>)4uk)vRY(nefiD
zTKhF7@AY6(FU>O7kDqvDcV))qQ@N*~?%q6Q_tt`=UhCgDv8>_Tt?}PX*(%*r-y_OX
zU9z)NCHL5tOztgjnyO1Ba!s4I`QGBG?Mpj*x8i5o+$k#eH_E)5@Z{rqx$?Y($4<V{
zy&Q7M?iGQee>FAwj#?cxbuIHf#FLTpsXBYl+t^DdmZhFGzP80QxNdKo-R0Jog-(;t
z=fC~5E8agU+15$ZMDaq3O7^ScB_C&Qaj*TaQtLB6?x$yc`0DzJ{pYr<zPSGed+$HJ
z_2o&zceY6K`sT%LKF0n3C!=$)^z0|fds~VpFI@g?-P7PJ)srX9{%g40tzwGd_iHJq
zN-u8L4ZUy1f6q-j`^xoF-@OlRCwz&mV6xp*pYvn3_k{R5`}r&Pl$<?cs<{9B``2Cz
z^}~)aE`RnU?HY5>lQOGG&o4&A^cQ_F(A@a(dDDEU`a|+2{|<k5eEgALY2LN@b$>c5
z>X<H1+R8d>cj5fC0TEhrcSuz-aAX~5ZhS9QAezOhutVtiBBLGC8oLUtvW~p`veQd?
zS^+DULp7^h%P(h3j_HeKG}xUY`BQ&R>x%L>|CaN!QEX*&-$kWVZaWrz-+PDLAMiwI
zJX-0~q@lyEzQ`@*DDwpIh6h#^nQSFRf>Zu3&}lZ3KlSfaf>+_XC#OFD;ofD*SzA-C
z^62M}!yV7_4Gw!*>mB^5A@@!zY@SxoJgtyZOchpo=ZjUI7d&=1n91*X<TIoAM~Q?m
z=Y)4w25WY%X<l&2G5+a6n>o9eo+%DqDtYcbbA?!gvzWy`jt^!B#0%K--@iG=xRU>$
z)${kg@dsP>f051FBEu#3%BJN0LUI1uLXVzm`Te(l$aPiRJKE5GLQb>PyUek(w7a}}
zOX`zpeY&T&=iIuq_32z)_U$je=UDD*y%24+?YR1sid7qzUcBrfb!=;&a`CZ8zmM5j
zPwSBqKHo3*_|fs6vQLL!xqWti<@Ix6DQk_cLu{dBd|coG{xuRO_*Z@S*sLA&V^!D1
z8r24tfWVjo;v(BVw;pw^DZCi5Z-vFw`sFVYE`C&6XZ`8$wOq-qs&^+gM{ke(8}LtI
z=C+qQs<-cK{c~uo_Vz;?`tt9ddS{{Qy6x2^?`>9DKVOF*|0uiJN=)$d-S|7+OR8f!
zRWIFLw?ydWwu%+GJ^oseJC)8Q?>x8Z(57=mlT-ITw>oci-uGbX>2RI++RJBOhp&m>
zTDR48ms`5-#xtMKC|`=1yYYyTboKYd_t`s=-uG8`eh+;a+O#ae<fv7v$7FL~wP~Cd
z=Mx_n%SzT92t4-O;?a+s_Q~HZf-2{i8@w-_@_GI4?27VB0d^;2&+V3F-6Q<2yZPZQ
z*}Qvf7aks%w796C^XQz%j!I^GW8NF?3weL>{mSnz7+UUrmHX%aRW2`mZ~L27-yg_+
zmHQI2_xaQ5MK;xOXFmS%%)0aT^P5{QKih0S{Jiqz({LYw(%A|>%$#`gS_1B5+}&Ga
zKCw*izNe10R+-707k3Uum$59gVqc~IuA<sKr9EuD_S0T9CO!^#hrr1bnK-go%5T0F
zys>bdg~01yhM}`#SsQ<?`*tx@J8zHS(ro1$Q`bG!JiFl6>w{H|!aLXP^p3W7Te*ng
z@7Z{R`nm^9`}Ni>^IkL4aHsc|@bk;n)2fo#Cg-nvx#_~Lqw%r_V*6%E#`3NByJ+&y
zSNaC=J2m!q$X*Z?uTqyi&17-umrB+BKc1gB=b6aIKKRGFzarV8(rSW$K(K3jLCg*Q
z!b<M%mM-2JpT3`1_+e2&^^Tdpm2U^^5PY;`u7K=cQ>lu#Z0jfd6I-O4!SCX+asTRz
z@`_dexPN@Ice|a}9`V}q%GKBVzOMPI*l}?lV}6-<mE^53=a^FKAG7_B-Z5ui>tw!g
zx5BC_{^c6E`oiqf+&}OdP5LX)y2d$gO82UZE*(49HT}rvzSZ9DeA^*Inse=Eg@3mg
z)><o``~5Uu;l(+zj)!{e_SNbYSH4VVUYo2aH0R{4C--AI9<FP@@iy>_O;0vw&zrQ8
z=d8bW&-&59ue4wJ!xQNTneSUAZM(uc_?EbP-0<IcYP-RmMJE(n4!xaNf9b`HISTv}
zW?$T#qV`HOcJuRR8=seP{%(D|H~v`FEzR#D)k{RC+%GGOdh+-~=ZDP&=~)$}J03DA
z|KqjK-6Hmrt*Xo2`taI^&p0^sn>xy_-h6h#{9$?3664j%waP0U&ayXbif){xt@x~#
z!D0pXEAxfF8~ER`@I|sj-08UH^k)-C)IH{{^O=fga9)|oKhe6Yh9`aQsn=|=4A<fr
z8k9fy6r8&x8o~ZS^?|AA0zrlyUG^LjmR%Fr&TUl}ytLl&#0OocWt|M^f}5EB-?m~X
zQ%=#}WpL!G(vv+Lis8aeAHOS2*}$;y$V8(Z@{Ssrs!k_`Q#}L)z5Yu7*wroI#eD1c
z^-~iVlV3SA+;i2~t#1&$j;FEnKkGZU75QRL2j2_6Vt=erq8Rc;!0D*H;uZN@rx(;7
zU_NjmN|NoVLI`JWb7G9?WC5wDh5*@~<OnsV!-;>Crzu}ycrQD%|H6vn0#dvdlEqvL
zH%g1#_+HO=|G$t_;=NvjXUA+A+W%YkT%X6j^ZCJL_c`MK@%`tWwW_ZD{=@PgvN)-F
z){?a{nG-y|r)N%hY&r2mhtr3(=kF)A*Zs7ceSR7vJ5TxCI6rfH$Ib;#-zVA~d;7fN
z;=y_6rp$2>vE<$MLPhprkznlI=f$Q6lUsEUChM+Pw8tRgp1yo>-8cE;?CZE~*c7a)
z{<*LPFR%`jfAsBfc0|9Qr$0x#E|c3%nb!*pH0=A<bFK-KYgXUZe%q4U=AldPr3Be)
znL>q&)Vfa#NfqdZYnx<56|PR>o45Gok?s>p8-tUtC*;H&O3t;rTbynv<(o3+=!(k+
zFCJcB7U?g;&BE2J`}D&xu8KtNZ|Op_uf|2a5OMAGn8R1S=d|eg$iAGqr&G_myWI^6
zjEgs4@#mc2!*Avv9p|wBm#qno|DN>x(uezURYo-xKQCR+dT}O?bNl4voH@ozjV1~|
zo-@Z-PdL43X5q|p3nLya*|G54#5*T;n61;zGmP@E+R?Y8m2bK1=VRIe+rmH0c+Puw
zqVVk(4VkW+E;vftoXFTXp)kXF&)1X(e>O&U9*d6&3W`e7*HfxBGX5<hzU$2s37(oG
zvCM2&d8H!?PixHJ(B$7Q{%zmN^_96Vi{|`!;%t$f`MkUIm-*p1iJ!YQJZ~KRuE4A{
z`Olr;8S<-Zz49+6^rjs8sdm!k!sK61B_7K>^z3C>-11%i9b-nO<C>^CiMB_Zf9CE>
zn!onKGvTtYH6K0Biy!&U@o{2N)J>Nf+js++waTIvtSjPmQg;>d@l8kyamxzOJ+pr1
zmc^_uLeFvJTs)zCMA%$W<wlT%%QazEN3+;B{mP;b7fa7OsA*e#(pTht`GmSTeKM_f
zdnYl6M{=l%Eo3z1Si2&W!A#B3L4xOtglx*j{>xw2sLL+7U-m19UuIwW<B#tYdLz0&
z6_h{8_VoWKdqi}`g9Psf5~~{0YwMyF|NT2I|1eMHr_moi^NEFpol_1bsw9Y?JMcG9
zcGa=oA3`;%ah+dp`0Y^WX)98cWm(0s?SMp>Y<A>UcD1IRowlw1lg(X@ue>`eODp%f
zJKslhPJ1TVKQAmb*Ro8P?CN2D!z|PllwB});jM`L_5LgTOs!s*90@=EQg`aI6Pi12
zH>ip@O*;{p;^MZnE~)(@2hV%wyAvPZmiQgeRwT(2;Jsk_g}su~c>LKsFG=y-jkqP|
z^{Cfvg~zXeNfYl)cq05TQnSxaCrVSj%k9^WifXG5i48?b3sj?+Wdd~q+rCt;wD`HF
zEG8%@W(udzOMm8rLUZ}VIl>YhIqNUa{IK#vXZ_q`Rylvdf876f<VeZ?N7p>PFJBgl
zeYx-G+sV@=<{v6Pbp3H^1@AsVectkUckNzXw$8V&_}I~{pC|F{@UGqWWs5()=x(gI
z!CDifSJR>MLO<H~RmhpFqbaGyO=2rTW=Z5#9GJ{`vea*_x2j@dhlZ4;ad`JuvDwGn
zSRQRm=suc}cEezHk6YoKo8DSGEMwS@7rL#U+VgmqGP^4CQGw@+Bpzu@3f7pmBjlHe
z`YeZOma9*y9Gdv;0PEG%2h*GmL`OPqP>tZYbSIeMRsW_HH5c7oPlm@ZG{pvSDIJ|Y
z|1Zn*misFr=3m@CV?X!v`{!h1-<GKKt+4qk^x^v7hSu4wk56=Oy|iNDJTrbli;K@5
z&DmCRn_=Ppl{aE022G55wo*LH*YsK2l(s8Y{@T|MZRZd!>D_kih^MFS$+enmR~qju
zE1Z?vRqU6=9+~jEq+G3hS=xam`|i0N_gj(kBZD_`%`}@_1IznLkuKdwB7BVwsbtPI
zny8wxQKIdr;3LVlt#XUjUO8T{D(q><NzqHcVtjV*oY7SFQKVe2>!{1Em8V_rKP#$y
z@4I<P<t2^>fB5EqRZ-}blUT;k`OT<pe{$;<Ru>+=9jpc(SCyVRoT>})6uaarJVp4W
zy?p)W$k$8X``+06uJ5(_9(!N=FE{2W&)|RZW#^WEn+^wC-v4)D+q2mDWqLcpR#jcE
zzxcdfs@(hP0@u>%`>dwD>UDPvn$Eb7ebM8f$p;l!?y{vD+@2tLMo-^d#QN7#QPy_J
zEScuZZ0yp7n=j-@h|kHKAvY&---!(dI~G)A?%e%i(W~wg4c!fV7U!qAfBLkky|UzQ
z$I&N-f|F00`7Hnb{m@MNuFXd#+z&rhv1!WkJE2-ZGE<j*EB#t^K(zLNc+t-t`&Noi
z{p5D;?2bz(EDD2LmmUgs>?!BlB$vBUj+Z6pV``W~x`D)$k6jvG(OPd(w{U!$GIeVJ
zWBJY$m0y=<Y+T3`D<xV|Z#ZY3aFyiikT)-l{ib)DKj)V++wt%0(bIkX8+xp(B9HF6
zv#+wXvhs9$YulZDd-KZ@PA#~`AFXMaW^c5k?8fHsXZp(dtm}5B{1O&*X5;_x{=L19
zx^?-p6%(f~t9m5=GA79A)Z4NU{#)<mCrq8azv|GYxtwXaiW!##75JlD|9bFmy1ONG
z^(yAMQ3tbHSBS1%rCE~2x>|Hm*p`O;pK@E9u5wM(4vOk9xAb|rOeuKl%EKyB!WzqZ
zmqjI5EM9SO=Bo`3+nrP|r8zz@ky*a>g82*12$}xYj2@fK{~eT9{Lz{DGIvk-dgD%B
zCAP~Y5k>)w2dk>M=ghz7X3225*O&E6T#xP|_caXfl_#%KpJ?!OuE63wl8-xbB9a0^
zUDjMm($`MWTDeBm<1Tk~q(Q*F-~@f`#cro>9e&UGVA_pZog3$U?DV#X{>qtg|JToX
z^MW?*|NZ&Hm3iVHn;(k(c@Vhn+Z&rrE0_14I`dh<Si3>Z^2O)1cB1*2T=zCPSFMef
zzQA`y>^9r3S6i=cn^2bX&F8JqT0_;NvF^H}61R9f_gO1Wc_=+iahXu}J?0&kXSa7&
z<<Gk2aB_?ClxMjf2Q}|be7}^%>ZyqM+@h|TNm{KhABec?dltH=swzJDpqSsqx6%DV
z?apa2{(2YhicVlX5~g;V{qVJo4j<;!urTY|UUAN3{MuU|YvrJnW4HYLGA`ErNfn`Q
zv#;y@{FL<h#rZV8*uW{X!)0`Kl_p(oX5R7Cc535<{EvMPm1loAZXCBlCMbT!zqr8I
zFvo<z!yPm4`S>?YbeYGi|KR7FMVHb=-aia{DB<P2^o8ik0F#|QsgkXKxx8N+t@_2Q
zmwU8#*~EJj_hs(W{x$P%Oj)c~Ow6ARBIlgC4o)q2&h~cyqJpx9eU4?aKlttE6st%`
zD;@LcNV?^<vHP9g<|&n@JOV^lEqD`@!^>K0RguMB8&h6gf3r7Li+xI8PjG_qE2kT$
z8Tt<<e>3XxW?vL>M&+pMw@Z^sx{Q|3PZG=wVad{a5oaUy@4@5K+pn5z>&ebMv~Di5
zTiWZ%&-s36G|fqt-?QfHvxmNC^QVP<c`IR&cbLOT>-4X<u)@#EKUS|l)V_+n|KK<K
z_eWX7&%M1eJ8p|gYrS1i#2bCN9j}i~Q>~1159`yuUHrcI=+2w7HQn!XMz#H0t1YOz
zYD=Sjq1LPVi8HLkEtQo+wRm1`n78C{RE+<u6G;>5dNzpfi7oiIBaz8{i`ZKC-BSu=
zlv=h2?4P*&oVLfJy**ti{cCkjw0xAPm@wr!)0KXf@W%aH(=W9@S-Uy*j^w}P#%YRg
zBc(p-cFH_>FIMN)slh$<k)(B?nufUW1%<`YE0?Sm-5=$-_=>E1c4ebddSX=I{6&Yd
z(o>^K=g&Gc@f>I8!X*>ZbE2{rSZ?2X|Hh$>OLK2&KGXcB*_r!qn;rLA?zi5>;kSZa
zK2<zZcAWI`5__dy>WZl%*O|J%Ch40e>%Xd;>6EA6b-1ulV}*I@_g$LS$6loVo}hhs
zwZ}7Cqs5h>Zl6E72`8JZKkuS`K&E2yN{7913dWDV1vL8a;r-F?8fYXe7j{&ND>|{@
zo#D~xTaQoQdZG8}%CkGKKcDpG4%0e|8L~Pbum6z#`}Uu;k?Z#B=Tn#6cv1W20*{XN
zYu8iTUmkT;U3zrp%%iR^yKXaH>rdX-ac0FwRn@|t>fZ*}mey34|JZxjzLkIN{<4cT
zZ+<-BUb8>z<Sl!->WZJC-}|NJ7CK+O@^D@tceAYS!kfGEZhg?%_x`+K$*-rW>-hzi
z-hOUd_Tg~*^1U%y)5<5dowgG9UBB1lc3oi1)m`&`3P1l+p1SO7b<VR@>v|WcK6Bfb
zWXN_^==KsN-T5cdKR=ax+W2VSVdFM-w(q%*q8~>Kxv7^vSSl$N?d3REdG|TRWg1c2
zZY=xlpXKy?+F_n$>T8N-C{ET2S9M({ly<{;r=2;s_8ptO7xzwl)w&`n;EI!E@!KY!
z<Ex??GhF`7soFaI)TwEUqzu<4^k=oM@L~`>bN`CWEP;QC=@*Zb)SfzX>il_&D7jfS
zAFusdmNw`2_Q<=YkJa`me&s*6D&l`e=M?kRuO9h28ypYaD^s^J`JPd;U<u>3+ROI#
zdov!q%jSQ4<zVyimh(0x*WWGLV|QCFCw9v7!e=R#n*|RlPIzjyuQk=jNJTtPrRj!7
zhN*`Ck&bg>Nn%nV)4os9RurCb(aB&*>ymfwKMIBXEI%vU&G5Vs*fGsqqn3BN*Vm@F
z67D=hcaDyuH8Ud)UvDbEptJ2W_m6N>v2R*|msf}$<=WS%Zqxti$#h1hs|vIBZfM<S
z)Yo?D!zn8%-^<(Q-BotK!m?9PNUbsMa>M^GH^W}(8lC!><$5Vl|CvZPr_0tw3tQrS
zvJW4T;=TCtOVlQ=xc3ctB~^K%{gv$s9jA}{lsY8(QuWpR7phripT17o=Y0NUY1PET
zPEA+4j&VkH3pVdR!s#}p?^J+j!7ZOH47;4BOFx_x$HAd`h$C^1fp3IXMoSrUL`Dav
zL-?^^UrCMi8rsY{>^DjdR%YJZoZcUk@!de5E%58h&&76pA{jEr4lVg^_C@FR2P@B`
zw^AP(KfL^7--ndM|2JKqT%O0X;DFr$Plkd=EgwZ5Rh`t6n0w6bSmBb3H)m?x%H8R@
z^2)}|LFfE^uPzbE+_^`o_uAJzTH3dr^_JUS7c!kErr$klm$JPlUl*&l8m~~Mwv6s9
zo(Y?ZKi0I};&yp1>31Z_f5Mi<s~rDT%}(m9PvTPy;mcoq_oDZtUe}!BZr!6nhMv8m
zE|X>6KesYTyQMtg!y7XzvlTT;?OUaEpGNX-{riPC;ODfxj9UK_@)t~%?fJL4E5fMZ
zZxvHxli1fOt{I!wb0)3H2+y!MW^-EXXna$FxmmygFB`_SAyuiNC-W99cS?A3VdMJy
zSBqud*L-M9T-<(^>+Uz7itMVef~QyB8)ogak$7`C(#YihFU^P7H&&cgKKi%&gLLsc
zjkT}z-}s;4Su@Mz^EI2b&wUR~=jrx0YIQ%pblJ9VcO+-coS5<Qr-9~Pf9tL9J}bMo
zC?5L$VEsM4tDHBM2+QitSyF6aJV*81!9LDgYPFLqn@XL+q|I+$bQFuSk}1@izWan<
zQIS!%%U<rYtp5dr#f@e}PqbDK?=TJDwE9)4RIk_UK<(GA*(Y8sFfmXIJ|msZl426H
zmqS7~-A<jgYZp&ondxQy2P$8SI=#4C6_=jf%AB87qwr_FX71)RpUk7n+Qt6vIJoJ{
za?|4N{A(o*^FB;?o_?pKYFlNPlV45DrIwRxEgmn;n{&;s@|SDr{aB-wc`kn^_I|Ii
zEV*$(Gk8Vcf=?S*pB(H7x*$Gj^O?Bx{Zq~ueAG+$Q<3nel_Pr59{$OjEGEt?TzkUi
z_`4I+1JjG7gS)3}7E!ZvRAq`NYdrplvr5H(c6)z#pt$_gTR;Ar$IPzk%kE#vsT-Cb
z_;qtmQ3~JF^E1USEHu*3yIFJki*bHy_+!@j33qCK3+L-c-q})qc3rG_?FE~3zMsEm
zKa>^LYWS$-6@7Sp&5t)9XEoWSuRE(L{mb-&M8d@V>>Dy1`0bZ#yDbV;Q3_R-6WiVy
zp`kWspG0=$lA}>3_frfL4W*8}TD0PVrGYbRSYYGg6$f}kBV1X-0vV^~OK4@ZE@V1y
z^v|i`bo8mkkF2JvIo9gbB_6n6Y<8fw;G6uM)}{^nwQUx!ey+Ua%qrourOvU@32Y@!
zepX^mCOaZdXKv}pHVDw)ZvAOrO5&0{^9Y_99Ivjhq-I^4&=9%ekNu*rj#IDQ*WPmN
z`z(dI4?7(gxyw>pk6gM@QnaA#$2mFf$g7(x^uNz}!0rF$m1c|N#+{tZ8b=GRiLHz9
ze*P?>XU*2E&M@s42Um)3u?ouU^)#L&(cZZtt2VpC;y~ox#aVAI-xgV0mo!^R$^EIM
z(poKrAhzAt&pmN*i;)R_*WF;Oa@j+8`O_;WW(60XT<IwBoMH7}z3T1-j{-X$1t#PR
zhJ4}Fa*Ax-*A*rq*ZNsP)$QtP-W7}XERqSZGFM1Hr|HK1FhYap#_h>F%JqN#j{8*T
zFP~WNZ@!XsO&q`0Q)V^x+gg9c&t2Gb=B=ekkzuLbv7n-h6BK1xmN-2562o|HR@&>W
zZ4>St<WyObk{4;!^14qZp{irCSn$aQZ8!J4yq;_w@vW?^WS2VE8e0bU$Xy$kE0{%d
z>&0w5?|F9zf7Q0Ve~cvmeLB7U^Y{C8zh{PN3GSTu{>1h()e+h^(;ubIxWPSlj$5+E
zqmshHvZL2dZ{D)n__ow0>luqeemvT;%CJ7b^cnxEV}D${rdT$AWJ$CsOx>d@*L^w0
zq<rC|_M^6&+|N$>+V}ahNC{_q&F{yrf6n&ex!J9ycCJi4^3Zyrp7pg)YiAcOw=`Yu
zf34}^oh{X&mhl{$g)YpJZF%hIZ&=@)x>n#)gvpHXnG^b7Y5l8TzItD1$<!Osxz10H
z$#5@Ql(Dbo;mwQHC$As+cR5}|S=8^4NAHial{*6ae^37B)LF-u`S=+}?k~Sf2TQqR
zs}5VlF1AZ~aO>sv{|~BPaV{6;RNAwo>Ok<5Kfww|jQ>xa{-UAs*-@o?r@}ucSN_Q4
zvEtjje;f0ku*|N7x%sXIQAUPaUpTB>^}<`VD9M#?fyB(nb^JSTS_?_k_HH^eTQ{x0
za>-2LEvG)PgnkpX)lzL|nHDA<v50Mo*3^3zy<h*wO|4tK>XN)jXx6LN{|*YrN>1r+
z`(YHyeIn72<?`*WA2V$-Gnd7uZ~wewspOv0tc2$ar&TUc-5?))wtJ($#ZGgZ)WnKg
zemTd?A3e43dvNaFvDm6z>^7gK?`-69{T(db{5=1t+vJz5ZNY{`PLbzV@<^J>`A%Hs
zX6$7gX&k;dQX`35Z4tZmQKgMhGRkpnw~zSUQIzVLA@0f1FTAq$k`vFNY*!zXoI+pK
zIcjYM0r!_FylUxMaoH&9(Trbq@%{ChUwbb;-t_HU$`=!(s#mF1O`KDBS~7Z<-MC^R
zFmVGrr?OJw%{rmu#!8>G1b=D>R+bsB7n&H}dE)fJ#uIuQFMiti?Zb_qCT}=T+_aq9
zH6`Hlvu#^68YlZ`2E6$D|E6(<x}M7Qw<2AB|6Om?yFL2eP;X&h<nhDBqVLf}`RJu4
zavvKqnr-Edc6T0g`CVZXC$Tuw)MVzYoVA6?kJkF_x;De%`I2Pg=oQg#R6Je%9%)~C
zDO{ynqIP6O^@`0qRV;RjE5#p=>doz{vtPC9tA6O#x|kxPy>|A8CpBiK?Nn;^ekv;I
z6}lmhYpGG8XK7T($4wHUO%ZQ&nv%Wi#3mjse3N#%=gW)*?UrvY3O{piR5573lv;ku
zE;awU?YXW$nJ3a*TUk9k<{DIHeLiCR{l0Kti__%WYG#QK&-qSV_;7RkKCbTxZyT8-
zlvB2~^Ouyj+t0Vj{nfKFcw_l<zBjv5PW5<Kt35WcQTUVf!{J9TN28Z$|J?f=LdmXj
zZ>AaP74i72EWfh6$E1I&&*luF?g__MDN6O~E%Z45a*Npf<L)_on*yS*%r$S#@zX!$
zF7(R5rpwjF>iE~?D$I||O+9O3N=x>IIbY77dZDE6{G-($Cc5yh->}b3vB_>p;font
zFRbiY*KM?`&v2JtYRTMFFRZ@u23Q`N;cR}odS80AlV$e8W6mG{NA(?TS)7xrY<7Ij
zuHS!-&2m(}cXvy<{=dhkVz)ky`WF>6Yk$cl?S8#m9FFSwGk^V9AgEk*VEW0^`qfES
zJ1Sq!TQYAs^T9tez0Q>Ec52jFIbUq~1DhH_J@1tpuUKUTJMFl5>CKF0ebwAwnQf~-
zh_Xo^jDDE6`dF-sN@-)KL9uiHBa6-ir<N9_XC*<CJnhbj@$N2Tn5mFt5E!*2AZ6wx
z&1F75uV>tlns72@skMWK?w1~|&N*HzM;oW)DEb}0#x3h%@ZbEo;VWaey(j85>>gVR
zi5Q3*N@Qqi2Tu=r@lJ6jTS(NKPhFQM&1<nOkqy5WCFIL@WUhGKUAexNvk&vXJ^CG<
zyIR)tVPom!&s|L1?sc2<FWsuEWHj2e-22A+^V)k}pZaaDca+~N_;S#r>VL0JpPtG4
zIgZoNu2I5X-u#V=qigB&l~#N7O;4C#iej2wVPn1P#>JC+JlMN458kPsVDI_*LrV5$
zp-Z+e4;tlmZmo~mxLhTD#<pWo;^B`auPwJ)-r3_V^;~j#dE}!nOETxZY~1!BD7=07
z;oS=9j`zHF$E(j=yELkbVfo=_=N<*S%-3Jsu{5sRWv{+>>9S3WtW7t~$y?TPM<MRE
z=ApaW;%-LH*4lTTQCnetbbCmv2W!wKgNrc%37Ri76n4%0d!_Wj3oCJ3H)B4N)4s-!
z&Z*u0u|{&6_a?F1VrjAY(KAbDzwOhpJzLML8)_IFe(=)D@{{i3t-n`D7S3AgVLzRx
zd?$<1s=O!c((n1*!)82xv?hDk{aH3!|J~HAjz99${yuZvn#!0TyJx@uU3@#~<?oCA
zHf{3q|Bo=N+*Wg7rRU}AXXaa-d|O~$bg$;aPx;fu``6~~&2u|_CZ%|qae4QjcEO+W
z5oVu1o~lp{GdOyL>%Zc*33n9Fh<D2@-}=I47n^LmTEd~45cY_RlS5JtZ1Bqv$guko
zee%E(=hYp@w%-<+`QxRykzk@^uw!h!Eu+^<gXsH#&RnJDqW_)Gf3L3I*Z%RhU%ldw
zT`Tl=v+87<ol$3<J5lIwS^Xi0yajm{<}u}|ccy;4l_LC{CC&4dXpqWWZp}$D^JdKW
zJZ04yM^R(()}7s_l(>C;mu-^%YM6J*ssHHXj~;U87HM&HpP3%*EY`l!`qRuFHs#wV
z6MNV;x?MA#Ge6~q!K!ZuPKeE0P#u-H>QKea^-EH&*m8<KEqbx2Q|;fu$NeY299}uW
zw&Y63{<!_$<}O^^_U`M~lY4WYrAmMP_2b*5W9<J7i+)T<+`4#w-JIyEvX_sxrcMo=
z8k)NO%(H6&cUH~J7u>sBdd|tsM%OZaBpHMpbB*=6s`P1M!Ie*)6XlM6)#2eix^=;{
zN=M~B@$jxWFB<l-^4iafKUut|S$U3F_-4}sKPw~!Cpx?klU~`9w$HLJBm08Euj|GZ
za!VI?PdT%_L+^Uj7Kwk7I~c;x^gdoz=xsSM`}&15<_}h|E}8Zzz@hBwlO^W18l3sN
z!d@J1HMxBEbLx+f^V8oy{{Ep_K!KHUpGZ*Rx2s+Lxemw6n+3j{_}o&^WGt2X|5m}e
zz~d*qUVOVCTG83|qSEpGv$?-w?yc9q+WTPj7vC7|`zk%xd$07HpLvk>*|^2KB=?s$
zkN3}?zbcxW|IL(Y4_o|HCgCtkyG9mET=Q49i5V}QR&aJ7aW(Sfl=NbmYZf?rt?uP(
zS*(k$zNmb)VfF;>)I~xjBE2k6e9SXTlNQa;oz}TEX|+bzWyOqq%>@jN9tIp5i=w3-
zou2YE_^W)yW*$qcN6Woe^4R~aKExu=d7fwc-`<QvhZ1Xy_XXd$|M>0337NL#6W5<K
zx8<KC*77mppsQbZwqW}u)o|TBwds?Nw#c8{x{)_&&aSupdJj*n)_b5ff1l}}$LE{4
z^;zl@+@1)`KcwH3De~y?RJJKno3rK!S+09xsO98l``-VG_1~HUeyl3fWk288c+*C!
zH0j;aXWOP&R(gN+mXX!;F8=B=+tlE`+Rcu$&#tQ3%U3$TJSmvvaqQ$tPSLo1@k_({
zw@wq8^Qq>^60b`l(ekslTYc58T>W^Jre<2Aeqiu+m)>TM=-<g7JEfOOOgO=$SZy*}
zb+yDcY1hv5mFf#$NNwx)OL;g^qy3QIT)&XZG3MgYUA9L>kH*BW+VW!a8H?F3m20<t
znYb_O!|m{U?3+xln4fg`zs|otZBgW|;|rGhOGTvJO-LzywpTjlODLOIl;n&}#w)U8
z*%mLl!=s&a%{+-|+2ZH3a#F9!T|K_=AMaP~n_?3idUsCG`8$a#iF=V^$i_)~&oA*l
zs`_%N_#LyOH(gXG`-gV~&-0g=E*fL>Yg>7`|LneC`BSG)zLK!WIi6Dc()zNPopxx5
z?foCVUsrr%4fm^k;dR@gdQbZO*ty@IJgwZSdFe(=MfUt2aov}-O||A{xRyT%Iw&Y^
zUm0`ziJ*zq4bD9~<U~ScK0Qj)+}$A(&1Ug=@6{#8g5FQr^Z4!b8`fLBC-<h!m55J$
z+-ngk^p$PxVk12@$LAf13GVA<&D3WcEiTdi9VF|y@pn-F>aZ6rDG51=Vc)0bB<oyQ
zYt#2)o`&Vot#)T8hfQ=l<7u^am%8?@Mr|qc*E7yu+{n=4#;vsa@WtFEmG)`NGD_~<
zcKEyC*3!w78fR)vv^&WoX6%1=qI|hQ^VVDCbz6L1*6D4VVA*2G_%-)*RirMjZ%2^U
z?WewsQnUAzr`8^Ru+ZNpKQ=u1&8@o|QqSE}){iYe{o;6*`?>YItBo~ds|zZeo#WCb
zzIai&zsTpu+z%IP^ZDQ2-)v+1Q}@F1>2Ckd{XG-kS@R-2bH~y957Zgwq@62VsvgtQ
zeO7#Dm+-5C=6$#BJXqzEaqRJ#>5np>saEW>JeO4(B2hX2eC)xOI(5@-ecJ3h_u_-M
z4PKqhQ(OXeUzA_Z6|+am`nY@Y^9r@FkA_zQr|&GOx|vhqY^By?rMs9<*kAT@YAMfs
zfjx7RGOn%l=$>fZ7W~wvOm|JIZky)22GOHB%_k=v-gdFb-oI*3=|}0UrOJi(_TMV&
zyI^i-UU&K2TmGrKJZaahzB+&6YP)u=u8e!z<A18P-}u-4eKFVE&d;}iEmuK)vx6O*
z_NT(mDS_|K`M-OgTM({#y=wLm$)xts^y5d=R6=G|uJK(f^u>&w@n*->rN^st`K^|R
z>o0Nj-6ZBaSwzrM^XE*X)N`tvj{V58>~X4co%>Hg)mS%cV);v>pxg<ms%eY2J55oE
zOj%-4dffcB?DQ#1LRT&eUAb)P%5O0qr?*|n+^w9b>A=1)wfVv(pQY1E7p2Y)+Uj#5
z!@VHp;qC>`dNN-JE@fYND2UM{RqN7xx111rqt*=VCpm^8PubtgT`fJi@4egAko@^~
zw(P3={_bIS+r8Ucs~(?dUnfyysCQ^vDZ8GWozY@`yBaH}b$-S5-;QPH^Rs51>ydeS
z`$wt<qf+7gE9#T^XMFm}xa`xFgEf0s+L@+Ey_}Vq)g7M_H7V=ZQ@MWC$_10_W`Eqe
zr}%Qhg^&n`=|5&DelZO642iw%Qn2^@M61A5#*S-3cTY&iKI%!{vh$?-;%{8?&pY!}
zd*4}ynyqB2G&ro2#%JNTY4wwhtDkJtcA6@>$@td|N!vF*Ti*1@m3><?_rmmB;T7kj
z*9QhG8KrVPouGe!sc4(e1MBU5Z&<o2o{CJpyK;v1zPE2)H+yyEWzG5iz3$hwy_*l;
zZ~Ol6K&SrypECPWALmB*s=S<J{p;y-{}Z*^t682Ws&hny{<w19vc4wabg9QTYs=j;
zx`Yha^iN1N+j?K&ekERH99gjWP5ZULXFHr8C~R6?pwwJB;hNfvEgf~!mu!A<MnP3;
zy>v*7q)41Td$-=~`m`T2*BKh5nI@$DxGN@Y<gJ#y@}{fmxi?GmO*f~X37nnq&f7h4
z*{5TB#5T|U#{4{8<*7B}t?5619f?rW*U)&;d9AtZ)zqd!jTCRs9LxEZFT1W4ojN_?
z-y^3Fd>XHd%l0m}E&iBeqqe8CJpK8-=i1Aja!f8MoWAz#p6@xT-yiLjTwj}TCCFDa
z?-@ID{_jA$eetKHCCoLJD|}z{Co8u0&WAax?)>`0xx<xXXWFC4Lq6Ay79P&_7Jg%w
zK5fdW?6{6Momx7*LTXu4zD5_$aZ8?H5q#fk`7x!Wi_`Pc&n;SY;*H^{b9Lt;brMoG
zuRgaZHng~Gn}2`dQt3`kpW~kU9gpv<UwNO)hE<eRWx*wz1ztf4tL`)Th%oh>Yh1z-
znkN+U&LiM!bko#*HjS^g^H?>oq)if%*sQXl-%=<-eGA`l(Z7qX*|}|${U_QVa4+yc
zS+sj;Oq=M>D*c0V*MIgpf4%Zy!4H?uj~9Qf{l0a3?9=bd`*vpwt~j7Lb+?+|zHNMW
z+J3EGx_etp`SBO+)`!~<s|!E=exv($+V`D%s;a&wbTF8{{?0Fd>w>!W|2OR^MNy}$
ztIPL?FdFR;PFX4XW;VC}#77p(Pgk~1-aKndXyG2o<jLRa^G^F2o^M=n(YA2&T)9(1
zCnHZD>o|K{VD>Q<FV!_anlrO{HuMV4ullNaMn3V-vL)(yejik}s0zIPspLPk;g#UG
zNwv8>Z+82xa?j|hyOf+{K0BoU!V;|t;nQC)Oq>xRuC{A+i)wJ@w#iS!!jJ!VIy`T?
zk6f%7_k}CztuoR-{%k9jJ{rn?@#&N3^4r2f>R0<Ka*n*a>$`h-UVWpE^hPaX_39rD
zoAn#Ce}vtA;eU_mWWCswms<}lFWIjU7cY7KQ^a$j&&!j7MAH|m2%l56G^r`scr9Ut
zjKtD)za-vWJ=&QO+p#jcO85HlcMTTPO%ED=y^+(k;M&W8E280XzP1SgzMt9>-8sUA
zAM^wr>TFu@_DbSiwqxEqdwg$IxS7uroSDuwFWu$Y-5Is~jkm2L54~&HCF-<r`=+o}
zm!bn+>Yk7}S?1vKB<EXJ?vyFI?Ws)id@@U4?O}Q$byr;A_u&PnEPwGn-1>fh{++$i
z9u+@J*zPlRRBGPwnbVWid1G6wz6v*sz5LuY&+nwfHVd&fA5_Zp;r(c_FS!5fj<ZLf
ze7a+9|6Joq*Tlf-O4IdBC0_<De-iZc($h4JDaMC#fBoolSu@M0SYzVSJ;F05&pVOC
z(6!!W+86(n_@x`90{<vf3MVQ3)l=x(rxNIVe}YE9MUOiZu6T1radGjvt3D~1P+N6q
zoBD~4oWzXZPt92CH}+dFPW&x*dY4)F{5!M4Z$BxTx$hu<@Sa!kH`7h?OjXiTQ_spC
zjXnNN%Z9&Q`=$8o2!1=Z&WQ{)eoPjjOafCGrWT(+=Ft$ee7jZ@o8!_?_6C(D%zS%8
zOD}UAi#pXJEizZVJ<?~k#_Hei{Cw<xOso`fuN0A99IY~Cu3(pYQ{^v%Wr4!0*E~C4
zsNwuR@ag1-5%W^+Z;9Jkz5T@m-3B$eKWz-*kw4qxxbG$T#J<@2{@J15g-O0l@AekR
zEq3rbsxcvW@3$XwqL03v+qG+g(xoFCc1i?`C%vlinfp3*SKsjq-d|1H+jo@cS?k&A
z?Y<Q~_h(FBnmgOM4@*?CAFtkY>4yko^yIBUa^IdjeePMQ{MqVLOT2oL+}F8}G#`G7
zn9y*O%lw+w@3?)bk^(-qiqea-?RINMD!%nUb0=|E(BlM`)OXhNa?Tp4M2F-bUo^|Q
zTWQ@%#iz;TW^&xp{jI&nA8q><B)&2F${NF!(%Pw7Rsq`5E4EsHS~q9+=Cn(CYtIO7
z4!Z1jJUukmCghxfHOJJBJ##X??zmdG>uTYy#g9ui7w)=gaW`j9o|)fv>&T~np1fdk
zGTLn!8G7pEDh?I*xgSz&-zr6((>x`5(#L(G&CTSgYfi77V|t_LTx|EO)a*4LE7q3q
z>KxlTd9A6h()8x7dhazi+?;w|v3}*t)Pr48Mbl4bTAyEMoqFDH+q+pm?y9BNJYLaO
zEo~9Eu5U-T)UWjA=XS3@zvu4sQhV=dSJ$24dSb@YBR}I-u+KE!=!v2n0gumb*I6xn
z*KA$x9r52G@_Z^cTCLB0f7tSWzFkaB55M~R!a&(=8+KhNnP7CGl21Bz+BU<?pSkO#
zi*Kc{zq=l5t`@kr#w^m_ZSKzh?CWmlf4DPe|H0zqBh1HppDOcxEN(1f6Y0OL@|~f0
z;?@&}2SW4LZ40x06&vN<+E*S{P?fyCWVK;i%P|Qdsj0kPZc|&_c1<}RkniI)Mda3;
z(9P@EQxn7g={S@>5x#o*pQG=uxgnR=FP}R1=4)Zy&Ur_=j#zf?i8XC0E1lmHyD&28
z#JSBA`UB6MTaoH76e`u7C8DNvle^p_rGCD{&$y|rIZCJFI!r`7mMmUW-@(wAvz>P@
z+i_7&@uJnybsO#9-YI)GBi8Jq{-%r+Q}aJx%a0$r|KLaR{f8~n=k0jgcYOYi+Q*ZZ
z<o`JSL3@YH?FaiCA5K4PU-#!;wfz3yAKgu|<?^0iXTF;e_8~}fal;f#?mf+(b2p#5
zow5H&-PE$kO>t*uaIc)S!dOCfZ^(wn;hUcuJ(X#wQ7iU37NdC6desNn@NFEo&;S4T
zc={IWpQo=>e%buup5>R%!OxG~pJmm*?yXz#i>|DHzLsCO)h_-o7PHmLdY*n!UoL9v
z*4jV4rMt_o+uMKcb=F_IGxLh`SLNr|?_PF26)wN4;>L<IYYNtVc(1K>to1%${r_Y8
z6jN<iU%LBVd76D@`cGl6%Qu4(7|busonJGt+#>wF+$5Vb-o|^GHh$!sH1qheD_V}}
z#V0bOE_H8u5?=Z?|ML3%rjM(myrx}0`7d1Ze#Rp6S-(PCHfbzLoxeE4b=sq?|CKIg
zFU!B4^}l-8_vzEV|EbaccKcuSyX5abmfwoEHe0qU>-3ciyjzd0yDP3Q_344|_4`J@
z78Y0+Ucdg(DJSlKW$oP)YwUie$E$SzIXQp-ms8cw6LVyDRtgl}ytsT4^UO7B>pP8K
z=_DAlzt(N?lm2acweaMz3*9o479V!(krJIOC2Buw#fl7xP!k??sbkNj)U>3w`-zIi
zUa1d%;w37&tJ=42s@~jFoqp@r)f!kfp4$J^b;8v`@hx5@w~eRr7I-w7{rv3lU;hqI
z-aNbI3se3uf8AYPZgcaFzWMa%_1AkPD!#q1IemCxl_T?xoi;@+zdPbvxIW5Ws+jm<
z(i{~-&EV;i;}&T9ufN3WKVN0bj$=Qhnv=Poacqvsz4z_G7N+Au3omawu-hWrF@ZNO
zH|k;B)UWO}>5~{|3UB%ul2<9^H(BHLlBKD9UQZ*XCb~|L>P-|_{(0t1%Y`par0qDJ
z7I8YvaPHb&3^z~B=kVZ5RTnjWJoUh(+nhPcB}|(ib2eOftD~PDcJ$PmbyBmcQ#H>T
zF3Jd-`o37PSm={##*FC2?>aj39*2H2v=R}OzPe_4$k{5dSBH<}&E4d2H|kELPR0z~
z%NwSq_Rcmua!P4iR88L5h?^Or0sodYWUXBEv)p1se)r8^VeilWI_g@x==aKy%+7Tc
zM^9I;dK7!d-FCiSb#=$SpOe3(W*Zx)r^d$CoW8WF`<H!f<nQRKzi#dK+nW-rkREjL
zYGZag-_g+WJw^xq-+RzDu{Sg`lXDkK@%-C*>mw)0>%4tlzjw#FhmWN8-%s_qu>2Y?
zbDyNh&uL#czAsYQ67OZsm8Ymsz_vPV!pQ~VlO{dVwup81O6M|Myj3%5a;WO6P*M5S
zN_PJyO!aJ;y0Kv@>&CES9AVqzRxhlq;Pth*absHPwC?aHzM_i0AuT33FTD@{S|DF>
zQm$WZ-rJb?xp%BZ<)<!O@HM4zQn7~4l>Z&gdnS2I=4t&B&9waeop+0zE(QN-uk+7)
z`Q}dVdT#y8YCGIazT}p_{F+w%eRj&1y*rHlJldPME;CC(TiKJn;ug=myA>C#^lV&<
zB#yY872<VgS?;$Xl(TA0>7Vnx$4+uf^vW+0xta0jkhpr+&L3f=@BFmNoWGqoyXo$P
zzaQe`ZGZYphOGUyvdc_rv*zk%t(99=)h}9lC9$t@TIs^jy9F!$OxCn{yXwd1@Y-tY
z(&tkYig{0o>hFnAj6Kt45UprmSN_^~dfDDhw_o{X$;5sy`TH*QtFnDnd(DO7yE~3H
z-dXdId52b(BHN|+*BZi<epQ&?KA$>4*uo~=VAXx`IYFDP_FR+5<yjr6IPb)+RrMN^
z&x?8gFe>DTSMR#%G*f|daf_Lwz}+wFpY60fl)BI^rat5pue0+`?GHkWLccdk-n27l
z%-~!$|HRvgmrAb%DSNpYUlcmBSo)=%L0|XdWrg7dHq+01+Zn%@ap@%{w{5QXHp%bi
z<@vYr_M9j75`i6t_a*iI2k&^KZ_(0dectB8_BpXfb=wx2DzQAyYqXs9uFc_5iHW6-
z6py~f#iRZgP1Z&pZ8R)$JKE@GFmqn`zjK%UUp@Oh|6DFx`u(2y6T&ub==OeCRLFPo
znb8j)#aL+rk%x><rt8FyJyzQnDUm<JciD%xw`T4t`<vQ!^ap>6+<u4MA?ES>k4(r~
zvf|1PS4S7C)qO8+B<aX}Rl3`9@@0>bAY=Cz{YNaWd^=|*olkkQ?_7>)_>AW>ELASe
znCL3|>RiOcTdKm`#!u`g7q9)a)|)Z-&M7;iZ|%!A^u%^Wiv$=m=EzGbSn_?4QJ>ag
zU$0i9@#pI0hyHPu+{f>?2FEY@@hs|G(470neU~wO)?mLE%~xTbP`#A#p@)jrZ>z0*
zD~@iG(BpZ@<9XwtrHSV*yBK+2OR0wL9ZLH=bT08+;Jw1{{&mN!)z4NR&GOxw*J9Ul
zyihT5j@lCG^cl^!cX+p&ot3#;(tO`(!nUR-+0q?L{xZL0$SiryTh$i)hV4>uUfcsi
zL5EAOaZAq3becIiUH)Y^6aU!=6*Zm=vk!ab6=q8ntmZJ@HL-53*Z+A_Q?g7yDm^qj
z@1s=D`*+^Dr46}JJQv<pe!4Hs#Zp&VJx_m^<$8h7r~4gwzCHK<xb4G<<S+HRensx!
zvzL`~{^U_-(IWryXN#B7j}IY}OiSdKvporZnAEr;#z(r>=rGrjj3DX7kJi?NsD`%w
z_<#Av*Vbc&b3W#mm3{wK^D8-Wn$qbo+f~ZZffweghOVs5O4@m-Y;wfJLYd=ShF4#e
zz0aGy`|jI&^QHvL^ZZrz$bGIDppiMd#o>U~!2qUQA(<c#P2HBDUje@^h+l78adg>v
z-EFt>_uaK#pLBHXk+c8Op3Q!L|If|6yYruA?7yH{>-fFY_H6Jiy?+zR=GdM*fAI5~
zgO|O$`kdFsKYca1ASSdyTWeFusUE}D;;m0bEL-O<@?3N9X-WF5!mZJ^%Wh@K&ixac
z{QK+)<tGAG^_qr_^=B9Lntx<?-S_On-4EaE@67l)#rAw$!1@2yNB=F6+wocYr}9Of
zbB`~-<Ne|wwd#H0;+^)VGF+8?_FhPS@^i^Y5&N_~C(cW7A7gzdeLG0=AB&&V(TXO?
zRR^brc!geCpY|=SFJ<4%k4EA~vp)UJHS+nRrf2-=!n_Le#Mjbq4j%NZRPg1Oeq#P^
zjfVL9y8h|!*iOwB|M}#6*!w?x645s+A|;n?7A}8$TP>Gwso}K7y~QPAN8essI44&4
z)Q799rS+HBaak~Hgaz$i@@D!)CZG11r448FMQ8kZbzq<3w--yc+`Kts`H$t!8|-Ya
z&zyf+TRBH%YkfvaiH7-6zU6A|%iQ))s-AV0*N^{fuix`$H#a+rhRH-FeqA`PXXEVv
zKADOyC+xl|-m8Cc;l{*&CDql}A7}1yd?#~o<A3p8J6{$p)_8la@0+;r4%6BuyEPYn
zAN^-j+d0?2%|G^Bx~81g?&u558y0*IYMPhC>gve(YlHKj2L;)O1sd0v9*tJX+g_II
z=dt{_p?~0o;I3`1IaMZ8(og+4AF<-#O~!S9Uu|7jU~;!UZ_l0+Q{OW0mJ^V@y3_n_
zZN>T9@5{FA-MaSw%;LQ_=XU*K{TOs3UL?`^?^oVe>ra<2{`c$CgFd@g>vc2Il4d!6
zJZe(^FWlwxh8v9EGuExXuQuzl;Mx01vutaty4&U*?syiX;yuxX=hv@GdoTV7d{Fu{
zxXyRCs(owo!<YN=OK;g~&;2U5^*PV;x#^d@ZgU*y6SQr=x8Jw_#rCJR3F$J2I_vyY
z?R+0yzjpoFwd>dG{@t`*ee}^Q?bb)Dem$D{_58JUYu3kW#_fsF*<Zvt!)U?RPyVwE
zkEq{>)Hoz$qtGVt-0pwM<N5Yg{`<Flbl%qT`K967?s#`Tt0&9(&t#{Ux@*7Ej`F=;
z_|vlWyv)91rn!yAbzEWx*yZMHv3?4e@%f|H;ctce)>k*h*MDyQUSIUN?b^`?_6PO}
z|NVE{@oB}Dey0D&7?XOw$DMJFaI8^0CR65UdMvBS?eNl4(_>YOY*>SJa~#<Bh&?W0
z+P-=6hp-;&gqFKbnm$i8w)?(RU88ufZ?E=7zo-3zet|!)b4s`P3;QXndq?&dHuF8*
zZWy+pS^vn4!xnnW1;d0*q`nlIgU$5T%{kEV=(q)M^^dHc+f(H~Z%@9%nEu7)VJ>I1
zQIP-N&_lVMpZGeznsek&uX+{ES+0C<VZ8DlW5@f>-`sYX2kz^>^{??m-XzhFG9DM+
z_&#Xw{I|Zvo%6qQlJdgM6Cd24rjg(MHD35J`|)E(*93FynHA1+v`73$TtZvl^R%NE
zy<A!RR?1v+Nx1$d;pDbW>2D7h#RglLCUzMZ=<d#9)8|~TacI-rgb=PhyY#!c<F1;=
z9$%LlJ@u#B<jZ9%;|!V4Tnkt*<BVU=*;$H4QDVkv0=EwC2^SCDtoX`Q`sd;^i=MX~
zTElstZ<U|Kt!WWC6P_fWpKH^#l`-|tfz7X411#1>=vlWGEz*sX-5#(q`i9AumZw+#
zaB&&Laz|Tw1UP8j=H0wV^LDW|ui+aTr8ln@<&^YKy{&RDNLgvS%yyNz;%t77R;G%w
zv$t3HPGmaF=f(MU)tklxjw`2ae-mb7tSM4zrtJIHVZlzhu0vboetivy_%<ncgR1Y%
zbwB1CuaIf0vzs0r7k4gfw(Z2D_fEF*-q&Vb7N7TINk<glJVt(|7+s$g4cxqEbe)>F
zHv8^p{Z(FbcXhp()1F-kiBb(m<Dc(;Apf!d<5$N26ZUgwD-_6DawN~-n!(D><?-B+
zH{LZzJE3jI&ndGa9w`(lcAL6StY=-%IBn{Jo>J3OH!HS&+|{zObxOKs`b0UkAPX1u
zKo1+;HR~tU=_k&dqMdyzV%JtT)l=64m#dXBt`9xq&B=H2eBMQ)`uS?h4db2sL?_8z
zy_Uqy>Z3HB^UE2Xo3fc(eB>rxQ4BmkS*__y{)4T4+uVP-mx*;odx)Lh<NtP5gtQPp
z_i3?}xtE_Me~_8u^4=}C*`?S2TZG0^2N~H*#WPbx4emzeO_{!hb;}mNf7?2)9lo-t
zYJSZH1>M+HUsuK}^R>>H?z{5M@AJ2HUu(CtZM>>nF|~HrjY(UkhP|tu^S@sH?&Cbc
z<w4m`T9=eBG!5Fm&301V{<vUHeh+V@Xs1cn=P*yIPg&indOBsN`{RmiZ)N-0vum<~
z_g584MT$POdRF7bnz`HM+6`U1Nt>LK|2x`-sGa|5@$91^N9mORk)K{Xvz*xb+>fuY
zSx0ALuU%0_LgwWzDV6K8J2zRZ{Zks%{>Jz9q`jF>7jAX`JIQL9-P(Bp^2fgz1kKKv
z{bg3n`aUJshOpgNxc+f3Sv==F=DEb+BZ7%I)zjD<?eysLc})%i$KKl<mAl=X7%6t~
z$OMI?LksJJZnHa-ZBa?RsZ;UcE%)b0-ztI6vuD0fPMfh|McLF`cfozX_gP-h@LOv-
zukGI>X(4y3?PeWQ404U{b<Fn-->op`Nc(Gppzxc)@;PQsE%L!-5`RN&o-VV$R4lNs
z(s|$3^p9UcWz_6q=KNmR_eLXSLh7LlnMGAA?`Gef$Pu}1#hEGj$6qI1veB|z-`A4V
zcft3vv{cO93G3g^Z0en2bn1wk+G!*16SL}ndN`NanBL#|{8NSA^qpsB2&pZdq11VY
zFXWuaa@F8HPh&PEd42QAJh<h|Os@*PiQ2)-MCLt}5@~!eNh^Twkn}exmg%-7+9i9Z
z+C0gf_4R&Ef9wLm$ONqt1#gzb7272EdR?qp3>RNoVEX?hhvSx|0V^-=Y>MpJW^zp+
zd8XkL&azbxS1QII3U;1%r|D>}))~Y4qd#xGQ@<3mXa2fo|4HYQ>^iPp`kNK|KJDtC
z->eg#98$&-bH)k=3Pi-5p|Oz}$^oovYj3Yhwa&Zy`)Aj$#y9hJc{d0iIR5tA=4NJ<
z_ii}~4!1i#|922ee|xLDIk_lAGGorWV=vFDc9sXt5((WGyT1Nkbmiak@7~_t|L5!W
z|G#JdO`TKu|DpZ=@A>~f-`;<}KB~4x`}&Vx(LdAv|LL#)_3dx`zt8vUeqXkaz5nm+
z|JuJlivR4tSHI)U^!xvxem#Bv|Btu+^_99m-}cx4UHivj;ko>+b-y34-~ab+>C}Js
z_y7G^e{VyX<qf_K?-EQ89GP?Xyd{&*nVac$c|R<p8@|d+-`KgY{*Q8E@Ls!PzpsDQ
zw+LQ)xB0id%ZD!y3Ym5se3I-^(0sC-MW26P6pOsXUZx$dPg?ufr7`p?U6(WXsqkS^
ziGPZBZ^DyGm)t!5xNwH`S~oWZBu&(f_Rh&(mUs5b;+a(ipH}#!dxY8)y)6?xdZp~)
zlP3lN*PEtp2@;8pk`&rnBoZCfdh)dB!PtJb%Ih8x+Ftk89(<DQ`XNLqGuM0GcdePX
zcBf?BpY*QKa~FHZ5|=}49ZUYy_AvXdvu%&5jtyGCt+xEe)+OON+y?R!S4PiDaQ@wQ
zalyjc$sQN>RX>?!_MnYT=Is8ti%qu1he{UgzwmY{gWmK@SK{V{d=w4(|MR-=obU&_
ze{V~yFQ~8k^Vaz2$xqY&{(AqsYkx4)XSPY9VXSZDJRX%F_>}HdAY+hb7|NJ<c7f>Q
zpaYr>!q<3&=GL8k5vBIQEaT%R4p-SYgWL-bSTD2vjh(kWu)6%Ca`U@)58c_UzJFA1
zzBf<pg^l-y_c8}tihfom{|eHxFZ40+`ncp+%f=~+6SPt}*`^n<w0nn2MP-RIX_T%m
zJt!d=)p|_C;JC&<rf(9p4ve!`7v|jea%0{QCAjL%Vjur}p1f2()mF}kqoo(WD6J0*
z-Q)E5w|7gP>&38nOWv%j*s408|ID9$K`!I}mQDwM9*z06i^cWptD-ky7Z#apo2K_-
zEo&OzoHe26VnpX_-$>}4J@1)qkk8CGX;1rU=3R9;M^-h@UeY`7d)h~hg?t~<3iVC*
z?C;V{o7-^py&#v!(b9uK9dR34g~}r{xC70<g;>n@zQ}#cuf{I=!5xSBn$hgFee*Un
z9=mi#bWfy@)$4%Q*A_2WFgehTw|MQ0`-yg<m$%rpvPh?d?Abi=4#R!F2*)5->B%d<
ztkU%qta$&T@pe$);@lGonoC3DmNtHWCd>Kb#tuoQ`+n+d5B4hWmEBXmWpUrV-!2*t
zWQyM|db3@;KXj=|+|m1Sq313n?ibqJbWh=RceVMQDMx1B4v9$Y6M4yM-6iy9gJGxP
zmU7X;UktDNjQO9=w|*0oHO1~mVDA^bskL99{tfM}Y0Gu%u3@|H_qu861UvcEyRo+p
zIYcXH{E)FyxPPdR?bf09f?69_o$BU05t?yVYh#nF;~7b|jNf1He%pNb_r<*q|NniL
zxBsUv<Gn(;qw%6bUCM!s0Oc==ZckV2ReJf_e(~Jvc023ed_8r;PI3MG`Zwar?>g=O
zfBn7w|I_vRPp)?>Hnq;bX>TVz_qYD$n*aaXJhXo&_fDUC-=qIiV0>Bho83;ek>7v4
z_&oLg-f2JQeDVMP`q#JT|9|*7^-X@h;;omxmciC7;{VsHgs(ix__*!8>0ahzHAz+v
zI?iSNp7>v2>(&0A;~LYMk6k`AooP?w{Nt|nA*Kueq?(_X`<$AWuaL{Ti}_f^jV|_M
z%x|79SLJ`-Fwx@i&FYjb|23D*op)}>?x^Vz#f)<qe|ViKw%UH&?A<B81Zneg)7{PM
ze6^km<!G=@>%INTiuG8T!KBY0Qd^ojm--((YQ*roLgDkRDNkpGwZ)Ws`RSeav~s!C
z5NfmFMr`3@kz=ne&pg*(xAuJeyZ+a=o=+97jaU?3^|PY))`Nqm>Mu5jZhL%v-?A_A
zY4<fYmpWLr#`8&t9{O`Z`bR>6?bn3k%!^HbO-w16?(kx&_uj^f2HTFC$xX;}(CGLT
z()jkH@?z=zy@s+`%NOV6*c>&IpS9__pGEP;sb(zS-%c?~PkQP5&_+*ju93~TkJgcl
z8!z8@d3|Z{sZfz~*;+5YC5PL5ydC{fvc><L*wX*T#`4b>n}43XxOPt2sr$Fi#d|KA
z%VPgtOvmsClbhJthmDQStF07jof;<|Jorw@Z5H!irgc9o5BIBV-o>zZ#iHwl0YRG|
z%@lDiTRG4BPh=ve+`W$<d3(E3e#V{Zwyt_6@^z(#l-%<lf*<<kC9R1!Z)>xzdUhwm
zw=g;PXz$vRRc{vVC|tGZg->JX-aT=Fs^^{-_8Be`JD|1fa4PqlY+0xI+OOC|?HK1j
z7PR%S|FpADPbFgcrt?<2A3X_?iWbkvd2)4M3(M<i7K_stC}*qwZM)RJwQ2gL8)2(1
z%n7qGuan}q_T$CjMgQllf18tC|Jos8+Ri!=`y&nsXW}D$kAG8E=KuETz=4>}r>2U|
zikK4<$$NV5!k<mYiq|A1om{wd<;?EmGh&k0X06F>3k!=Vw*Eck&h5F+jm!IubG>%S
zpT6H{8#cw*Pj#Qs)IU6*+SdJeTUEKH!dPYJMpbjZ0%fZWuZ4`SXLrub)?`Zmt@rBK
zq|Nb%yt2MVY_$IVI%s9)?WXfr{eCZEDRwV9<v#y-+nj#Gc)#!YZ#;a=*8ll&neBzb
zA`6XB>lt_VEi|m$knoH3smYpO8!tZ7?pZqb;>Q55OS|UJ6w>t<yuJ2FWyscbbAz9~
z_Ujj2x;tAVZ_V1Yd(Mfadamz3Moj!}<KDAYJcDnptXyO9*2NQQp1mr3wyIh6#aiAJ
zk!;0Vf;H>*a;;q*`^ZM+T#&ie3%0X1j=w&ZRF%5E|8~o-^Xa{=dyBX1mGck$QWz%v
zpr9{4Q~xOMYTgq&FP;*s$$Ma)k#>Q1)=uA6;|#wZRbG?!eb(O>7s%D!eIa=(#wq#s
zu9lkHlakGQdPSwGx$b5>2-V=UcP>~Qf9ljPQ`U2`d%UiE<BNMbS-LVs_xi6Fx8FR!
z(!cHW&*=8B(=lsby*Bpj-?&wbU3Goj_Vysrr1Ai}j)skfvr6{srOv<Gzw}Kp4|}au
zR)w=>|NK~|r#G%%-F5o0PhgI@>9?(q3yl_C-mh7aDtO_e<*)Nal^J)Qi0#))UH4T;
zXw6p6m(evf&Mz5QOx4{c*Kx*Oy(hZ&@N3c3+l#q#w<mM8i-umyH7%>0`{Z`u^bN|Z
z=L*-{bMLivPPiHur}sQ%_p%2m%=-oHA8uWha%I(|z--qKr<4-by<Ka5P<wU#>C#KD
z?z5b8eq=Lse$E2vn$OF)IL$styS!)H+qLm)h^ziD-d*C4HM@3BzB=jYyoJ-*^LFt6
zdHXnZNkMw*-SSPp!WYTOUUaiiuVQ`}@*<MKuj}LAY5wPhZhZSI=kG7P{=NCfs##Y;
zkIcWkOYLR8?8BHjk`K;*KlkbD@@MtjpBAo8m;U)V^3&(b`e*gS|6M%0>EAI=-@kQV
z3)2)of3Ev@=FF?lY#+~@*;}_i$s&09ox?vObZooi><j9+CI}z@T$ZCyEBNp4y7$$8
zGxG22GoL$SdFAf>YyT4;`3wEbI~cEg;?Vgi+I3MI8Xi|zh3fMj54MP&^mzXE)Zo7Q
zsESpFYgs!lti7`8`FoFeos2(U81gH=6nwt)`TT;5^>tqaEdOPD^#1#zV9YH!|GPJ<
z&4ceXttQjoOV0XNtWsZnL0>DB_m^v|oYtrLTx(uW`th~xi!1+~+gBd{R@L3d-tYSI
zz=}!xYgzss>E2|2alhP`_p*+cdb4*I-%rusCTs90Xf=C~G>g5i>;?;kP}Vp;33J_P
zm355D9}oBU>^%NKIeEb>xrHyDiu*`&tBGhvPuwJ`$?g_(&_%HOmgin+?{bUw_8`ZH
zf?LEUSj<(sviMqVu;cD@<*QE@B&=-9<kS-v&<)r8xiLoQ;@>kRV)0kbRBP;J`e`@!
ziuIZo(z7PjvA+ClZldq_ukBgkv;2(c52w78WY)h}@=qwLe17nfsPygZ#hceHuyhgp
z!TsoJ#RcA}HM~!+Xk|!QdS5V^bo!G~?`@&ohA$Qb>Mh8Ose8C~(?1iL8<F*P(ad)r
z%jqX{PO)k-J!)H~>*O32YGU@qhW|T5@!2ia4LifO+lic8td+;};c&^d^)_#7r%gQ1
z^UFa~<^^-F?Sri^{N_ISY?<_|j#u$7-#qnSm*SqB3Hl|wM1FgR>{9=^hI$L7WtaM!
zUzn2r(&$}DkF_CZ%MNGb(>pFZ{yNgTcFVcEiBIQklfSU5Vm9{@f6+(NFWm?Xd9z`5
z!p^)NEn}w+>&badn(^t=cYj)PAy4;dVLDI8#gEU#s@Sx)u0Q1THg5WXO3$k4OT@ou
zMV-14ee#8aNMCQ#I`4wyq$?fb3%XA6rUmZ2zs7g1cJU<5;z>6{mdyUEc<H6?j9MoT
zp&O4IY8sxp2jv^`KZ(62?V*?UbE0b2K6baKck7}iO^YZ#bYj8R)fx%nm-Fn6R{c30
z{!BUkoWb(XK89;!PYE;aT{h#!yBQW4Yd&Z?pSbcZy-)5J+up0Y)~=d)J20YDwb5t_
z#~ba<vn}h+vrb(otNw!Lt>$%sY00L2OwVgY&Mnu>o1>eyPW*!O+no)00c%5q(*h1k
zekgyUT(W7~!UeKt^xys2HOa~K=cV$Lqv^K;Ijf$B)Wn@yc}?~DUEdplcTb6}Io&nk
zP-K(zw%tWi(&f_E#a^3nDE)cpQ@JE;s(H3=U+#j9B{KI}%->jVlJ>3*nRUVH^^{53
zb3=nT?VK$h-n|-hr=dYeFIIh{ZGKOQ<pZ_1<qr2ctQBO}|C%Ur+tz8zWvisK7msYY
ztnA`>=hK0Tvzxmzr@MEot7Mw{@zr6$l6~8D@<}BB7Q8WSHFwF{-SecSll?-M-1?b$
z?hupH(ieC29oNQMoIaYhe09>BhEh!?^VZM1M9!_&UUMxhBG-P}`@$v>jjG=>HD|>-
zd)$Au=Tqt0bK1v$_TAIm8+LN);~e!ROwZ#)&ISDvUE*&TcB_VU@$(nF7Qrn0L|nZq
zd0tOcJJ$5nKD6kmRph~MmQ4PQq0G0Rdp*~!xO&0Z=8L7UvALwi0pkMhjMTfi8n5$$
zBg>gz3a?lDU>P=Ly=KWK-IKk#I}2^jZL|+|KJQ?iw$w6g?VRFET_rLm=XmBd`YEoy
zH0R!`3F}Lr7hQ;`z1F^AvE8aeSryz%C%atXttv{?^jo*+MXd8l4jbmPJi8oYC-ujO
z|8=vG-MwnU`yDA!teQ!08Z1r;*2q0Df3alQs}jDNYMT>|`vo;$d7riE+Hl`+*CLLu
zUB3d$UEc@ERp_L;Gn+i$9Q?-r)31+LrJCO@wSEvBXTNEi<k|k7_}<*fcAK`TrM*=C
zvaVp7-nBOdlTuz@@A0hvs;vB>BH_(3+oM}<e>UU#S-}_hYTXN)d48{?i+By!n=UK}
zu$ub1Nox1+iOQ+l<?r5D9=x;WS=p5{do{bxG~Ex#I(((o@6Pff%dleYHDWJ#=AL3a
zcjfF)p{~GlLdk3Utd5^rrFP_oQOmsO@Ki(N8P@l8<Fe8WqSxg{IPEKQKHU5CP{c#s
zcYEySSC%Dmi=O?raAM2hF28H5qRRbEKWB1jZ>Zh3-;l-p-5$I08w;fOi<yUo?ae5B
z%>6^eJS?jGrMul+_O)A*Hg;zE9t{igw)!(`ir~+QC308(Zu!{R{>c5<=LK)wkL@r#
z;_-XV=1rT<Y-SN&bLX6{*FwjICG{IB^?w)W2CRv0pS3ge;6rPZB~R|j=X{#!F8D~3
z`Nh)JwXPSf9kpLLtk9TqJ;Wk^{V|cSzD3)cYF;w4otQo+Xk}BJ_RP~ytJ(X$M>NT`
z8s9Ks?^{;z&g-_ehy60oQja{J)D+Pr=jC&D9pd8szc90I-DJ_fOr@o3xmFjmguP|5
z3qE*THRVdzBq!$c4)fi#3Yz!*=2vX}?V#~Al=<w!nFpVi@3LOF=xA-slutVw^8zAo
z1=Vd@yRd-mu7Y1)YHHcm^NuSYtmRtsrl@+IwCpDaJAqwS&RmV=%KfS!`XFQdqoVgk
z&lERG73p}`%grh8;hxe`;(9SG@Uh*elgH(rs{aoBcS>sUb0Hbm#MHIti~aZ}*vXy=
z=?o2yD>3<SZ{dxk1z(b#%tNNgIHx)$^R-_6V)i3j^UKL~1yb+#HTY|O@zl@%HPIg=
zvh<tUvaJc#o47X~?tgN~g1si=<IMgowq?7Pxn7!l_ru+~lt2Fx_ZhjK2wF46xtwe6
zrWbbAmHsl5k3BkG)SRR6T(i~hX36pknvP3#O}CXFbbGx<afe|;oR$5=h_g#AcG|4Z
zSiMOlta`=Fz#ms^xil7S7GKaI^hSBZF6~7@YqVxq*Y>ZS7yid$)1@1~XJ_>lhr5Ni
zi+<XhJ?~SgdWF=gN-M6eGJj4p4}(vyVzS;uHc4M&)Ovm_cKej-yNfDPdo7Nh5xtY{
zle+rRlfS;E^4;?qv*vBPV71#=>BU>GU)SWl)^yKn+_&S@i*0&GpQ}FIz5CJCwvAu-
zg2i8#b#VVV8k*^+?{$0kl{s;#C)RaI%l=`zuMt?cxZG3l2d~$pgZVCY<rC~aR%&{`
z<UV$3?!;v;Sob?dEWBUgwJ?~oZ&4B3ZsSSryMFJ^klM|D!*1y&-<uC!geG1+`25I5
zh4@{L&4rC|zh^d`XMW;cbMMsl{<TJ3g$JA-U(f9L{YUSJ*qs>~e-HF>UV1*8#j7}t
zRk~-U@sZX~+S`rK#MZpy{?Sy!x28@dmLpcqBiHE9mXdc58bU5VT&}A6icg|6LyZ5)
zZOOb_6&m(36XyM}s7tvp|E;Bq=$y;U$*k$3J{Imi+2?tmY`HN#?s!|f{$9(KtXmr6
z9rCj7K3nR=eq*mjm(_`>S{C}P#xGdvPwQqqdpY&(ON;n5++NP{Rpuu;;usiz9(#9n
zg;dGsd+WXXnHJ;)<h~I65>_Cxg?-iZ1FM?yE*z{3y_Q~XUUYWjD}TeX1G`Gn{|0^W
zOXU`|WxHD5B=W+#VB&?PKWcV8Xsdl$dZB%<N8jeRu0>}z-gP_Yxx4va+owLq$PDJ!
z&-ykcqzY<(`BCyBPUPIB=jJcJNLSTXeGPq?V!dE;N&R1ryDv2ES4hN6;Vs(|e@j>+
zdV_MMVR5Kb_V3OZE?JxUKL$ynb9RbUvDdqPog4h3?QXod$k~<GVy8cP66NLg;AbZP
zmZe`VZomBYo9>rW-;{Rx-HKCLe*K%0-t^y7tsVbPU0(Zd&U==<jr{C4@*f;#{3iXQ
zpy4l@olL^>%TaDWS!;IiylMC-SMu?I!l}@|vp#yQUsPOemHg%YyeTgZomX9E8+##>
z{l?EdVa$(?U78x_uO<6EDx%U^GxLp8-cnJ=3AWPe$G)v9c<04b?lrS(0gr04(Nuvo
zg<B4H#Z|PFt}HZJBmFweA=hJH^~#x!g)dyaFUZJo8wVeq{%C5f`Ki<t|9MYd-%4F_
z$0R%SR@~CK&@0-j^j12(&a%%+yE5m*>W9ZKz1~x-<=2#VBp@QtT<P2j=@OHBqOR;V
z&TrT%HNR)Jw(snD;}qC8)zn95;-V_Qf0x9=cTfHJvskaJo_RjgHSrIc3AK!1#=;E4
z`PZ1PiBEX6N8Xb?Y(v_cq(|;<nQOd#b|;*T;M{-Y1n=b{=7V#b**Em2e#-KF9rv&;
zXzm}OoE_)ggAU$#uKd3A<<j{N7xF*t+Zpm!lx1Vy`ljA*Yr`&Bw;iesYyE7)_1skC
z9QUzH+iz(escv5#vu}Y^O_kBp2-k^s=hiy^EL$@vLD#D(Olzk12RnIB)r$7j=3idc
zsI>Q~KB=DH@WjIZfL2{C+sn_g*R)bnSbLdP2e&>8nWC_@{+*Ls*aeL}mN)F~C+adi
z51aZ$`c@s!B45w@`;I;PcgpGq=bB@I5snT&wkrI(wV>|b9PR)24=h*s#ahF)DE`0?
zi<D@-6Z5rfCzS1xldxaU%U-iX<eA&Ce!J)ioBnvb`n2TQovgEKui0!!D=0s{{$#Y1
zgp@h!b&)mt3wZuaJ(zqZR;4d~de*FE0&~80o;bNxI+^Ktp=Mr>s!KwxQjz4H`+`Mt
z!UZR7pQXlL`$G8Pf{(t3gGF4^x#MmwWi+40SGaA1?r#5S!6nCcO_^N2#@jMe|It&C
zo81-p8b_bov8u0K=J~*;?@%QltLx88$9%mK#S`7jl6@Z3%sTW+=3u(^pYw(L9;ay4
zYX1>84u4wlJ~!4Yzd7Q-b*5<#Qkc&>ymngiz=G2vczN_v%WIrU*CSrDC~mkl{gKKo
zJKK~6d%T!$Klj@nyXN-6Z!4Lz0~wbuPG4ZRqoMfEr}(K$zbt#P)lP6{+}CwFPye0z
z@XYOxli`%-?*&YEwC9OmdT%uSg?HtleGadalD15}7I`!{FE#Arl-q}Pgrsbb<F_<t
zThbV_^$N?m#hUYz=jMGrlI?L@KH>KrPNpxGaTXGj?s0wzGG|{Je(j~%_P-ldUEPC9
zrnH{(KDwz=Q+u}S(J7qPEK%FFdgls=Cx!k$;_Gx|mG*nv-_CcgS1TAds_5>rnb0>?
zcEY8Gr;T5j)=J!DQ2cf6O+!ukNye4lo8u>+^-ZvD5J}oT<J(id;%|HREMz|R+0#G$
zPt5M+4lhg^FE9qZxK$$l`PSV2nxx$!bG^^%g+A}u5bVaj)LMReK)`OnM+M7@k1V_P
z*841v)xq_>@<&&%G`VOulhaRcX?H5)-ooWOr<&cmy(j4zv(X|u`30v+;*WSw(Awc8
zTC>iz@KRN2$Ho`hFIp$-?nsnBS`@vZKZ$9zVe7WrQ?oa|3%Qmpf0SkZ_oXlHI-jjs
zHR&Q_)l0#XS}(TVR@ph#bc$W+i{Nux9Xl4r`UHP5o1p(T$zk80xK%xl3BOAWtF+j2
zrmu31VL5-`Ypi$T)~CCof1YG>Y>wv%kGg*G+vA7{c5ml(U78d3_r?t6o6^cmtCuCs
z3@vy%=Z%1PMZL;#r%eYqxn3B*?eBW@<W|=`UDb*Zx$FIpuI^}vYtmZd7HDPJb;`|c
zYJ}<3UY-v;H7lcBt*TvBzDsYb7K-pZZ@=WZy!TVBWX-u-%AJbl%0$0>V&SF!d}&FM
z*UR&ZN{UYHJv!ymeBYN(a`+?urm%->?oVlZDn8*}eDlOBhfXp66gkVha_@>6*O;zL
zdz_W9o$&7857WnGr4<QNjtSm~+BYjHyDM_D|4#Rdm3;~GYfqiLxRu@d-i7#GekQ;A
zWj`M-T_h86^~5XpW4qnfRwbOtnKs`{?*32Ho6*(}F6(W7{#=F6BXzOd!VD$uWpCFo
z<R`ol+s~?*&JpBe9n_Nd*5kRZLS9~O!I4d@Ea&<Qf0ge1FW%EDukQG4%imY?j^D99
z^VmmT-EmXQZ_d|tH7|s}G(GuwC?N0-!_Cj!-m#t!a}@tp8_!BA&36m#dSje$u2-vc
zaZ_Hv^mSz`XU?9qzE<VT*PC`iTx$*}e^5WNvch!sgauo>&wt(Nb$7)IX?}Um;@WM;
z*e%W1#Hc+#wl~x_cj3Y>nZ~b7)xYU%{^h$dFW7E*W6eu0krUJPw0hN^ROg2V=WajW
zu#;tNWusK}m0j5ycJH-v7Uu4JXXmtjjdjGjjemoJHk5tb$+EjgO4f$?J72I!=>?fx
zukJ5<kn;YN)9(Pg<;hkK^1r$ki7#TSfAKlF{^h4$(>cHXSjO+GWR^d*;ogCEqc!Fq
z7Eb%gTeG9)Gn<{wiOK6N|9E7XJ#fENcS704vP@9<ZGuAVWxtm6Z;Kv%Q+~|Y{WM<F
zDQx1L&*!x!6|;#=Ft7J)*jV^%)r*bazsQ6c#%3NkTJi7hE*Wi2rq;?T?bse!ulDy(
zbf^BAyJv5D-LFX#oVQ<E$+YU=`<JGwt(#fYS6`XaHA^_S?~>>iF;n9gY}XTc9WTyp
zSZcIN;qQ+_*{m;%tFE>BMXlW|EuGGGcR{{#aFI~S<CR-iAMV;!$A2{a_SNOL@}}oc
zIsPp<Ik#!=*U9T|A6Q-RiEYoKC%KwyF63W`eiog0wSAUk5~q5;bHt0edzOmba`<H;
zw#5JSJMSA#%^gnf4d*V}U}f|w&gf0tDK=}5{l`o=ZJZZN>De1^En_?{f4-t>y%1NG
zYiWdQAj_rYSNN9tum35d*xFav_^w#{^}B?-f0WLP+}W{TWl4~P!hJFSr`?~VuSK6q
zov^W6_{8)D6F8?;%wyZP_rht5dqIyh?=f&5+f&xSl6hBi^O>tHUyg?rKKv&&;XKc`
z=#_k@y%!$)T=(Jp#Xhwo@4TM>_02ffa>Liye5&JFKBHe#trfp{KKcB-X5%N`np-_{
z)-2BZtUTXLS^f2u+qO>rvnQ6EWmNW`GA-UX&utp}v26M22g-g<4E(NBGG`6*XS*i9
z+dWH4<RpH6S*dVzMZ=DtaqaFiKK%+~v1D!a`ptP@rqxZaIgaaMs!KTS?oIX7R6ac^
zSv<k@_+DSnhX>AVNq)hl{n<)$@Aty@)z2ze@Ag&SzmT!<DF<iR1iSC;QBKA0ZY>Te
z&XVt16xb^AW@r1H@bb5TcArD01x>%yyZf8Q^6w%GrA1Xe?q-OZOL<Jlw`iJrQTx_`
z-Wjans(-KTlDgd;wOxPV+cNXRFWK(a-{D%lGG~9|-y-%E>yEu!RB-PUqxpxs{{Ci9
zqRP|%zC81{$;0LD;we4v*4X#YN!Tw_GS&T+@5^HL*U#o{49)Oke_7nWTq)<myKs&?
zoe6<=x^teITb-Ex&CuQJgO1~ShL^#`XNoxO?tgV&xs+!^?W(GkUdil7-Yu`&tn{+!
zhOB?{v4B0Brkk<u4PNTcTx-4e@6t^Z8Fx8ub&vizr*O)7N%x;~cJI<yx4QUqW$NCH
zxQ%~!pZL#|JMmPE&qMb1pIL!l|9V_9w4XFn%kA95>phZXUoU_17RpyBefddwaoRg&
zH@SqGoW~`xa$dbV8g@^qFIT<9Wqf@1p;At>o0WBb6H3)jrpEmW5aFG`aF-_{>u%(q
zGgo$}Xm?!`n6&+K&Bk|a8^46P2;R#0S?;%f>uI5~aJ|OOdsQYrj&c0;N8)zS>!vS1
z4Yw`QcqO!&(aKZ(o3F<Ozc;Mr%VNr7otmcY=FZER5P0VI`K1MR-Vg3L{Hl4ev1Ob2
zmRhTg;lFaWuPfG!ct2^5bXmT_^R~OvCu--;z45#%HQ$w^D=j!VaG&9O_S^NZ-oCoF
zl>MrM`pN}NChB#PmR|F%EB-}1$|&DdJm;<7H)$`|z992mS9;^7&fgM!-O}9ZN3X`;
zzPiT`RXH0!2MBGMu5u*e1CNVf8cU)1rYYese+S)}P`7yT{fdfJy7Ma=o?W=jX_PLp
zKzhzi?Yj~yq)QUGw#jeIa*ufN!s|BsE4Mv~R$UYRNocLy{GOv}k!E4ssZ(qzA|=NE
zLR9ZB4!Tikn-XAu@^|((m#t6#<|nL?o5gox`uQUs-U63ReXp5Ti|+nC@ngmDJq}$H
zma>~x3svi}FR}BTH)Y1H^}24imObbVV9~lKcQpF-x!Idf%$r^;9K8GR+BCM@3N85}
z<KV^saT&b@0{(le??!0J-)ai|-ljBvC-dx=rO#KU&6_8^WpC8<O><a{kH5W|*A;&J
zyo~dH*%#bZ{m(;r{(gPcbT4X3&zid1h051du4`>s7nV9JZ2#QTE4HaF2{;&gVcJ6d
zgX!7=LSOhch};VJvGI!_Qw>}0`e~QawHbx>Se@#>E8R6^5nElew7bULj39HV7i_90
z1>7`(LU!u039Wj^c6Wi9pX-a1!w$mcM$9TdJ}5dCB!?*~uYM<H+<d<xi&0gBY5k$6
z&eJCyl4MG+{%yJZ`n|eykDc^SUBBrpob+tfn%j29Pi7V8n}3?Axa`BhCjrL&S{9kt
zr?@g1Pxbq@GASee6x(kpFRlsQHnt{;Mw=EJb@2(dM?0)EIUd(`?y0rG-<k}8sqQB)
zPKo2a&>L|nO<wU+hw-jQR}ZLsc_>tz_nX<~aByOfT>l$mXTAFymtXi+IBUYiJyY(_
zn7(OB<f;v=otKs$Tc!1TmT%J45I>9Cg42wCGl$vVblCdGR*Svn#p5RpcaD29%$~8$
zm;XtZdb@6^Re{63d%q_JmiEg_MxP9CyzoW&<>b>J4pf+b<H#{D=#Y0SJP^TW%6ehf
zgJ)ZAWLNRU-?H;{Jp0#nS*kvx=mpVxcB1Tmms;(y+}9_z)BLmakAU{?Y<5>3?rr2R
zt;l~cIjrvs&$|v&_MV=*8h<=?mA@5S#LhSCKv_J~?X?yqe>^UodfHgXUvqF#Afujy
zbouPE71Q;yd5;vi-PkJ6zBKmlhk&YM7e6<xf7kHhMezLi>3)W44}5-?b$*s|+V)K(
zSubYyuF2ll=Ou|GpBKB8v9xTb$eJtX9ACcMa%m?Q+u43jpM}!bSk5@EoOoSTC8M=s
z=a;nt`qQ0UPuFH_(0MVpPA66}YEpQ@trDS)(;r=Z>Gb;D-g2#0wYS?B{<W(;bGo)D
z^j4lf?~|&lv%Y+beF+*Vy=!{IZfgLW-z9d-2P#{CzH)lKM!^5V?y1MNEjGC(mnEY3
zCP*s#dVW#w+e^Ewqs+Jdj5_3G?KNL6>r2GNb?ddyzKnINp71Yt@{^cfwW}hoIhy|{
z>U;8J+8meL%U4^+del3-S;q4$=vuD7Vb{#=M^m@{JXM*RyRYc?R<Tn|tMy*WPP+H-
z_`j%4yY@@*6>_gM|DYLp_hq$O-IL%=yDsYm$}L=;Vj5fgW8#+gUpQ=Iqzbc-^#%yu
zxD{F4_4Xap?X_-l_LJhzev<gOcA{>_#^=h#bKcp8c&*+lP-J}EM8d^SvxHeJSX!Z9
zbiazxp9rrK+jCRc&M(u5nl5nY??lb#SHq-I{T+7Ad?`HTQjhi2+Ve8@tg)dl+V*PA
z`+PHR;qy6r?3I^_+{{+k8FzJAMd|WQ`Q-xX@1h+Y_p!{4b)0^Dr)yPt;00!j<EyqB
zvuuf-{@~bOO^vHo)$f(3H<ivkoBRLYjmhWlsD%0Uv2uQz{kS1?PGyPfMIEQ)wNv{g
zcF(%t`Pyps?K<Z7KGI#v8?EHD*U1Ifyi=%MC%2pBoa|En?@qI#wlkSOs+L#yyL{bd
z%k@?_^y@bS%I)xf+W0#pZmIYCy9cX3ua@z>5eO=Wt+Y2dz4wjfQ=E2G`mVrS&4)Ut
zw)1bOU6sZ3@^bo;XNAvhGdKsDteS8rmT_8oj_@P9yT<lTuiJXgF)#ky889`TH}f}h
zj(yRktivwzIzLXgyP*+x_ElwQ^D`fx9h_R}ZEs#rpA~m@{c3#?v(*f@=4tHjGMCxV
z(vkI0egBH9e`f_UuV(PGf2+SWI`*l1^}Y78)%gkCk+(}6UahFARM>j*bM~e0wd^VS
z&l>n=FEyWF?^TuX<fh00Ru0y~QF4mAT<-tf^0D`!l82@9grxaX?kxJUVUc_1@3mS%
z-fNjwG6^kz&l|e#_Oe+!t6vs4uV0zQw$Z*;RAA4n1L?ogHi)hd3y;WEjoZzjvcW2j
ztA^2I<(#XppNd2}>$CT=#db+WgNC1sPncd?$8I?%b8#q(`rA+Yq`j}!I2R^Yta%g~
zx%%1Z)DXww7v5|ceCEuzyQH%<y2?WL+zP%}t)hNjEbN-zQQp^AwT?CAUAS4xy5>by
zfcTw^1=4@^I^N88K3iGw!-C)B+lP${#7iEpoTYzVX7#hvrpt9xfAb#V-Ok0Fcj4(m
zt&&X(!xz4luSocH??TJ9(hofTU#s$BSM3b`b!Tb%i`btx_&z;-&pSzag5C#Fc~5<p
z-W$_*<u83(s~w*%ZR2<`l1V$8ZQ6MoJ<)o0kNJ6F)0ZAw^kt>edXArb6YT2qB@WfS
z?dpGUOyW@8@sKi;WtU`bKj2)m?bN<wVK=Yea8E1^`Ih>%if{FfzuKqR(gO<<z3$u1
zzO?J6+?IFh(le*cSG0c6Re7MuK`*4-!LH!5gVpz-1A5D3>r}4ia^)<SvYh_l!Y2;b
zy>|_A-$dK6I4zr&Z}nI#gG+77>dwlwb(+VoznXsM4F6YeOUrKzi<&RlEvwSlDjD6S
zBw+QvagWi_{9maWdbgQ7@?vj2H96Y*H23k#uu09AW(&K&*b(a1xp9HH3TueWuNx+<
zB5z*)oD&{qKJ{@9|K;beZ}qAf7F#wcRZnz!5VL*4L{pb@mXQZ}KOWu?8hC~AdBrDF
zebX{6=`}9`mBO;M{T4mDAm{PY&GqhrSU=I%QNfRE?y5QaG)o+wzfolU8|SIr{$Dh`
zjwyVQ-V+>X_x#@RB}Tix8?HQNHsN1zaI)k3u)<UG+|QI=nm6x!?!x%2XLXwY?<i({
zSgxUeKi)b*)_z{>g3Xs7HGF(?h3SH{#L4|K9~N>w<*ixaRLLyAD&XFM<;_<o?$tB;
zbE17xCVS8IC5g9wJlmv{svWdV>FI%4C4#?%y6<VaTW#EX;?1#R0x@k1wnhleHM+6R
z(^})|3K7%d*IkR=9WP=%EfTYBpLdhAbKl(17d|r=1R8E-KKfwG!=Q+_>t3)Pt@N?H
zmz=zS<?e&Um%R%PcWwM!`hJU|eDu^!(T3Y3Za18tBH?pzwN+PCIZtA$=#u|eL_;6!
zX^SeC-TH2xms|9@>OZ?a{yH!>WXYVI>6ccAO<5Xo{>q$tVaqoxZo5>kaqQgN6YH#=
z@7Z)q;$ZJZQS-FGJ2RpSlS_~GZf*VY{_w?`yUIUnrksB%V9KVd;_dO!&+=18?9{2H
zCxm}2Wzqk8<Kf+|jYrSKz6@<IY3Pex{^>wikM4#jt@K^|?w>chud8-Yf4uQdD9he&
zRcj@pr?_wWHSJC}U&ot}#Y)P*GbSnZyt!g5x=2*E&#d+H4KD2sdGG4Cw958|UOn^R
zXY%`pzh8XeU3xe$^*3|Q{EAYWb038t?U^EbQ<}$e{@Yc>eV<wOMs57X`iN=&b(_}K
zbIYD&mzwVMJ7+f|-2NuZ*)P(so;DitNAUe9(Xig^&sP>U$uGMuKdt>mt;Pef%YBL)
zw#r`e=|Az;!)nUc8<&hrybTh?8{ghzy3L$@OnSKkSMG#m^QTK){<U!rYf#h9?f#nF
z??2y}GViy|ciU<A7}qrgeluv9v9tQ^ve%4{gZ4;y7beGb-Ln)e@$9-5c;`m&iz%fu
zh3;$+m|gVPZnE#w>hQHo_Uw8c6jYTRIB!u?-iMX1MfU94?w|kS@;6QS+l`Yy{zz|l
z7Et}h`$gMcW*v=Lr?zRoVw-!?tIGkh9OkEvW4`mt<C~qP*g4wnEh&l$)yYWsU9;7p
za8qe&>a`hRtSgqKv7J9~d-=LFwwIT;<!VarF%M6A6SU`6f@Vl`ktU~{=<#1mYj)qA
zBr5njNO8Bg=;pV)59i$LGi<$eO>6I~1>rUP*ZO;9cUrv)eRI+z)G2j63wKqZc}B9D
z<xW*~^NOiER$BXJ%(YFNUj3l3k@r|PyU~3K*PHJhUfSp04*D4-uQ`$1%zj(o)vn`O
zd4=y+O*J=(W03IL_x+g8@^Y=YG6JStwrPsjTV1BeA8#(rOkTD*OJBKa311S|)f3HM
z9)E5Nel}S+$KKA#;@~&$nrFO4Y)ww*0v_!WFs*z0`|{6=57otP-oExaW$nzI*QJ}z
zId1!E6**g_I9L63ONx7!W&wlKk|a3^^EFrfrOOYwPuMg|A(h$5G3d6kNbgGxtM~ps
znr=^<HeR{tu3LS5&l6*DeW`nnrKZLw{=CfGJ16+N+)G>I*yed%;fuA_v`u;&`*~9G
z);%IC4%KPa?p_^L)TJY~Z(-rx+ABALMa|ENy{Zb|x~Fj2<Y~$lmGuo({k6XsrWQS3
z7hUPC`0jO-sL`qgmUpyItoIiEw!*UH;4aOsXG<$gcP}dU@>{p^h3kBw?~|jw9x}Lw
zY%lWEcu{<(R@8NU>7%oiR|CvnJf6Dg!tc)^eZ}F75C1Vt{q*V|!_;7wy5`kUyQ0b)
z)tC6~iT;?S9i5@@H$wbgz^}q*i~me5eRS4zTfCRsUJdJ4p*I7M&k!=M_AttLeofDG
zo95chdM-Qj-#;+V&~cd)e`;gd&x<pjEj;#|x94Z(T)rO#m6sTQep)hnT6W)khkMH{
z73zhH9L_!ZyTx$kH|3Wsx0PL39Sm|GTnJl|<9aG^iA==jhpH_#f!2%9g>U82j=z={
zwrgf`9K$Pz%7dr-pS{svAP^#VW%aC`-c{@uet+09>%p;{E@|OoLI1XjhTVRA#$THG
zTuGDe&zimqPpW)3=COu5TzI8B%S!s1>Wi(%FBjQGOV65f{@b<2*)un(82G(fvEs|k
zu8Jw;(OEhctahzom)0xPp4)IBD9Ma#m!srU$)@nIN0V<irAF+$c9XMgUFo#?r`PT}
z6#saaBD^Qd_oW;2-bG$P7qqzoVt3wPYg98!$Ugje=aJw23&LwQU%H);)0?7xBk4_$
z;o+#~PqyW+EiQVUClLIDB|7lR#nl(QIi_E*vOajuber>$h1NX+!4~aI^1mlIKmC=H
zekJMILM6ZXT8F-I%5}!oPpydy{+QMLecA5Gr}};ce#@RK^ZA9%h5RGQ`d@fTns}2R
zp9y_d9GdFLy!3y8n{Jxh-36Bxt$HErp7CbJsi0#)(~^!lH%*o(T(QNYh&hSt{%)J3
zXPn#oSsktmPD|2Pd=fN6!1PDhGm)STpBBuycT+y?-$}lesptR9V5?`;y#GqhqnFRd
z;Melg>m_?{u0Q#-s!qjTXs*9?`;4-xocfiL7w5$@PU8C|^I>8AOX(jM_J85+iSM5!
z@2Pp}qr;~cavpgeKGq2-DJ$eX)Bl}jPToIHZN`Q_9#y5gyC-gYTC@J--zpi+gOmE@
zPoAy$6Hqtn{ARnhJwYNXzx{~wTP^#ud!y)zUUQRM0*5xH+4bGqkr&@3eK^^5_U_0Q
ztEo3z!){F6A0hswDSzsTQpenm@Z}m^4(2~rWr>R1483YT#cV2TiVJULLYmbl`$I<B
zKe%qa`le<P8ThO4wuRo-cM*q9ya|YRoIOjjq<Q=5*k0DV56Wzv&+h4;^geLj!g<O$
z7ra&#{k$iA>B_?Gi*gRm`q?q_V!q3oS(BVzdvSfA_Sv@hjUV@{!~N_!3peuqVcUL3
zlk54?H`n|Au$q4hGL~O3JxJyPuhq8ohs3NZ*lz8cs#~%t{AqG^u-!Iu)z-dGOE-Zg
zWmNVWoqrMh^G5aQnd^72+OT-v6x}<~=VG|3wen=nr)vpWd#|xpSXQ7P{&b>S;Jq_l
z%Z}XOlJY)Vld`Der<+dAtI&+Ow)>`M-<9Y(&z!^+XcD^3R$<wnpiA}Z<_UcC`gPx7
zm)<?u3C=ytpA_fEPkyB=JHcA8+tgj~GGBjy$nk9Prwt$X9adcyE4Oe)aoz&sy7Z`~
zbB~t_U45+6xYqRLnTuQZ-0NMs{kF);Z=0gQt8sj`<vOl4U2*bg7H`&(8;q|n&3(71
zU|#gYJ*y67`L<sDmb~&pdb7w2r^8d!Znk{UH9voS>m8fpH`nQKG_P}hki%-u^t=qZ
z7U$>IEkC*3{(sRt*}HW4?rn=QH2V`-&69K@?AB`g?r(Z~`S8hb@d(omf0zG$V7XqZ
zitW_d>9clf{xti*^T%TPrgvsjO1Cduv%B%j{8?u#?2b>Hwwilxj(1VAcV13^adm~Z
zBg;AO%)Yzq=Pfh8AC&#_(5~X#>bR-TBJ$>)-fq4?W8absp+%RDFWn$@&q?#V>)nn!
z2WlGRj@fnHyE>)kfN{ZMU;WmI5BIjmi2r4~tGd6X=J?XfTKctG|Mk5;R5sjSptIvt
zsq~MsUlCha=da~mK4YhR;{I<NJpx*)M2+?}#yx#_GpF%$P??ECaotP9O_%pu`325;
z(BNNLd)|79<%8h3`<u_jOuN4P@~j>Alz*~)kv<{+-p1hB*Q@^0^3`^ADQ8|Ump_@i
z;M2t8pUtY48nX!Zxp#OU5piQZa#l6TT_-z#V&}};suDT9>cv@WIegCC>7US7T2yqQ
z;+t*XqVlF77r#Xhl+Uf!p0oXW(k**gPyG|q&#iad_ov{U>Wi&TRf(Gt-cH$hUA16c
z!lgT_S8B}J9rTUsQh)1l@QRgW(Iw~8--RZ&mdR^pe^)Kpv?!Wmrw{A?180?|A2>Dd
z$ywV4TTh%%g{)c;@ZYiKeDJ#qZ$oUSADVl8`JSu=mL|p(e<b$Y3OM-a+^=A}?V39o
z=RK57{{Qpq`Ty+89p6}E*%V}g*c22}S&*urACQ=y%B3HaTAW{6l$=_uU}K{nP?Vn>
zoLW+>5Un5J;-;V<l3G!spzoQRn4ancrJbR)XDpY#Yek8Ba7kiGDoC%pfr6=mfkKd-
z9hbgaeqISk%*{Z-5+uf@?`EiAXaQv!DHwuwC<WQsfz<k@rer2M<yR;~8z>kkm|B`C
zSeO{ca_Kwf<>iB1Vq>EZaW7baOFy_YsRZnPpUk{$E`6u`qLkDkh-QOWkbja(6rzoc
zjTFqyOcadGjTOwzO+dzh+ygZzxg;|`k4ryTK|eIelM6&BXk?U>6j<r&mzS68W#$&-
zmlW%z=a-i0r4{LGg4`L)rSF`dSCX1nQmkME_9vHqKw?p9UWo$KFQ6dLPs-u~%Yqm-
zHu`RvIVGt@3i@t2i6yBnsmb{%sa*O#sd?!o848A`mL}$Qb_&HMMX8CoTorSs*1kTa
zYF+g7|7Ve}OnS@T3Gpz$dzttD+XVyugkx;Z{5^mFJ(zpyZ|%%%-ORUIUBSz5OyoKm
ztEj2cDu4X-dHa^@@wUt5|Nr`K|L?#2bN$pSKM&XcyKn#ReE)y*`mCLQINX2!)BR)d
z|IhpSe}#V^+yDRDU;pR%<Kz4PU;lpm{kQ*S^%m#!*Vpga_viBce?N}z-?!_}$L;mM
zm1`ynyzZB%|MT{J{h$8F96#&-{kUC!XG4ii!rX+PjNL587N3RF6=xir`FdY$<s%=K
z)74R4;{X1A+TJ_k(Z|hq;*alFS|;&Xc+P+E=GVe8Y>mPS`mF~!CzP{oSO4L`BX?n!
zphfi)$qCcF9th>!XPqF<Xnwlfb)yU0;xjY1+?xNOOkjtr_Ov#s<c%fkH@<7VwKt$$
z{FTF#9G}Gz!7|(4m$0Z`DN!iml*q__qN>TFK24-cRhLJ7nh0a1g~XiN><i^7$ASue
z`EgE|e(b@kkV!$?jm}@>GELXMa!2?6(+xG^0iFrRxK^nA5$<O``7O5l?QYqyg}f6^
z-?*9+;=`+<uX80Y)?i`%=Zpy#_PeUSxIc60Gg*s;%$t8NH=MKdnX(o8Irg@_4i5?}
zyw4`4cCA<Z8eeC7u#$I=;(v{&rg!?+-@m7MPOtvu`v3QA|9J|{kk*Kklr^w#T=b9K
z;7_E`9QFyDXS`^*pdRUJDYHQ;q1DcF@z<N`?bEn6scPr>H{EEHUZBdI*D&qPcH7j`
z*KQx)ta>v~|NOKg>GJ2NrEFK0v~xFpBz>4eQO1AIoP8~iJ7);@2+UhkbV$O<(53Z4
zPlL0B+aX0OZeBxa)|MNw`ycdh^&U%N+M&E!zrntUhvPx<#M{r_m4q~`Iu`I;excpZ
zrw4VfJlYb_sP#@fwm<diqRFCG_v0mR$-3WlopfRI<k0O!at%NAd05ZXr)jX*pIh30
zxIm;o=XM!8@42Mp6K(e;7>qrQ+`28TEZsjGJTZCRmmZHfMtjvJo!@2^ShFp4l~If5
z%onzcCG}O0FkS3<9`saly~WWU(G|ahog0<kiQBmTV2$UnIqejmaQns8i#B}6^&@tl
zs4Q_VW~!c+Bl~8iaw1c==o!I9lIn9e?x=fQ5U|1XTHv9W?$6d|mRtCqzM5g+=(f~Y
zTAR1yt&^xqsFC5ybL)aO%Q${{#xZA>v}sT~Pf$>lc&Ly|{@jTUJx@;x94U)5Y<O|@
zPg=*lH|~;)zb9y1IJ2{?;NR@SlUHeY?vbu9F0piO`^lBgYUz0Gc(M7MDF)9%WJ6~t
z8}5JLzUCm0u&|tSahbB8-h;b6J9qq;llV+1^7jMxi9d7oexG_PxnAhB<TA<5r#u^D
zf3f-tR?D5+z4>cv(>{fO4$Dmr_j=_;zqHyLUI`M7715or+GGF4AXa0hbCO&UzYBl<
z%lo+R$#SRvFa6`?{~z1b65XV6wf8xzd-I74M<uqZzcrn7?BnO7A2b_3&eC~4fA8K)
z+suDleU@JDnVeMr|MS%+@===C%R%MA8@{02moe2Z-|H@!uYcdee&7G_<ATroF1`9L
zzUY&biSvt>$7lM+XcY1Oxtw1U8b68G{jcKwxu@;QPk&w>eof@X^53gn4^LPZUnD0l
zy)P%%ll6aD-S<=B^KZo2>uNlnzu+O$b(L>lPdDGt{mUJr|3B{1sr_^B3;ta{U+l;y
z{|g0;*+Rd6wZ3$pR<`4m_A<T9rT3qed;I@-xhdior?g(d+#~b$8~i<SN$k2dlTPN-
z`{&+w{JZYYo%B;ZW5)s0m-T<0z6g6q$3*7Vo(#5Y`KNPiUlOO3UV(4YXT>kd-qA6R
zAPIs0w)Ig0r|nrkTK>rtl0H)3xm0$YadyNdul;A=Px$wFIqSwR!e%iKtU7J$6Mr@T
zde0Re8Xf=9WWVyS)e^s(RC7R9t$(!t$R)Axu;}<tQ;yc3M>v1>(fZD%y6aYK+xJAX
z>;F7^-Hxa87yXd=XVTdV(!zJ$(me*dO^ZP`NoGg=-2QoYaq-K>w_h(eMf?N1|5yBe
zfxkyCiCy2gp#JFPpLetOeK=C4@t1oVBs>FtO<XFw?#Ag^VZU<g+P@Y5+oCY7?ob<d
zjQYms`ab^`epz2IcmMhfXn4iL!)txxOZ92ncEkzytFHZX`={*1|GzRFb^f#PitkX{
zxITVHT}o#6>px|#+W*Vy+`sIv1BII7Vb*n?Z(i#!laJiABQHw4MfXE|WZ8bV&WgWb
z-uu;LCq9d><>UP5R`#z*srnzwTfLC<g$sO&-o>x$kMlIEW!ZnG|D2DQ{h|1E{aMfY
zA54F}xaNcVhtppJ6Apcx{`2C@*az-EPJazdJ@j$<>&0hU9_wFspU8PU{+WCFk>mXz
zroUcXq}6x4@AvfAi;FWInZEoz{pSUbzzx}dMYUgy6n}Bl?X;_!StU~ctUqqQd*Q5(
zdj``bPb@osf6+R(1-|q5Pw-9NeI?%R+9yf-L(w76)r9_jv5ucR`G`Or%fGj`d)G}X
z*8BN(=lA^k^L3-<NgsSa?Pc=m;!WEZHP<)qeB7FQPFQ@)$NUQ=jc*r~C;eVle*Q4q
zZQu7@J3_@b=h}-)JN>v+Blq-`*&?}T>Bn;w-mZQ*@qu|xRpQ|bUtB#@<otvatv<bE
z%kp$N{xy2i{ddcXPX@d`>L30?GI8%`8LKqT+slq5Fw7`lskCj{t7~itnrj#Dt33UH
z!QlPP=UKn?uKYT`C#*Xm>eN~fsrRq89}c=VYw4cqm8JKqRJ<!K_`H8bu3{<Bd&hAw
zsC=6C&40-*H$4J{W=)y0RwYaSsq>BfB3Y?f=Z{)dR{T57{`1=5%g2{()?hE%CM<Pw
zy4gdg_4{mZv+vfq%|6{r=H~A&7uQzKJ8I;=<H{@dE&7)30=uuqtNiueY1hj8(%xKq
zf5fKe{a^Gyt-Sg9deigurRVRrzYw&nF{oFL{_Wwu;gjc*dd=m07jK1gUHvpa!{_0T
ziI)<8dUt-&R{hrg-v0NG8D1Oy&A(Ci#3uB^r}gqrZZA51ziqnz_s7p78Iqow+x6bM
zXK!>=e698OUndtv{y$;!ub^74en)+ue$cGOx6;$E2FEFV+4y(EpRViwBRv=kj>XT;
z_y5@L@BQT2TjlSEzu!OI{%uOoKh|x(uWM#m#4SEl<z2T<w%&QS%VYJB9NAl5iZWZS
zI%zg+5*2MIl5{JX!M#oO_lgVC)~+^d5DL|`%rv>Z%{ls8*FBj~=FDe{YP3%lh+O|T
z=hNH5_5j&L#WwXB#jTq;?sYs_lTv>w*y!fFBeiO)`rh}{dYf8Dadxwwb&*(o*yvi<
z(mlNC3)9<vxttT8khs=>$6)D^&;uEKott+vXkA>qxBc>s$i7^U?i9YNE!R6$pB+AF
zlQw16ynS0wynfiDdF|C44YM3w&CFu1Ufbv=cXv4+d2ryRo6OOP)B0XaSiab5=5hhq
zrzhF_TMjx4>249T<eatUiVz#WV;^(RgfPBz-IXTVTe*5X84JHI`T1a?M#YB(-H&^E
zc1c9LtVr>RIpgchd%b#*VP=~3oHNB64l1)xkUGA#XQtPrH6o9t)R*2oc4f}&;0(Qt
zuA*q>TbAm3QuuoIMDp8S_I>>CCco*<=>O*qf49wf-Sq5$;LZh>9|WSCwq6mc<&)_C
zJV|J+;{2!E*5&u;$^?6FlMFw(FW)Ec<_s^%b2GfYYJEHwGAsYCZRXv{W?{)MmREZ7
z?f#Qzv#?5@&7rcF!Qk|Ywi!zW<X0rsAKtd6>Pg3&v}FqBC8owVzun%jcHMI6I_rR~
z5x(ZR?nRrdu3ws;Fwgc(Ov&xfrlvb*K5Bh5vnHohrYY35<D{pKihrfnw)Zl+Mfs`=
zBU)RMOpDgdx1MTpKH{@h=HbZ17xUiR>3mAOYs8by_p!ro#m5zWTO`(;Np_fd`iPqK
z%;O?+(vMrt$!V1;-cXbNB05d)X@o)AqCA}rf4_-r+RvhFDk3bmWo^CCD84V}krwmr
zgElHXhnv?vb>CvQFZ@x=)$)W*@@$U_RMRCdd$pSg-;(n1x?vtKJ9&4or`C#q$lmR7
z)3ZwT=0<I)sV?@&;43QS>5cLExxsEW|CY~38@-$>k8SjPZY0qoQMtv?>iE>T($mjn
z*yktNr^dal);oH9?_uFn?f;f(<}c*D)pdy5;pdMhi~*L%ezbhDDr4+3dCxlQq?dNU
z(J~X?9d9Syvy9tz*JO!$dnLpEO=>+MADNyqW=;6&ePzRzd5>@UZc}kT__1c~?QM7e
zJooC`wu?hjWBMoND@&G`f8B6G+u+ziy)6%1?6_NdB6f+ta#&boWj)KeZknjXrALM`
z_XWS|a!(Olq9*C#)Ay-EPyh66P0Qe(7uTGmer=6g#UV9W+QF;*n$X3qTSXXKv?i`g
zy}hf{J4!$7{^2T5nX6ej3oJdh3C%qtEHzoDukFnr>(+N`R3Cm&)Sj@>^4PkN4DGGj
z*Kd01rpoMEvV}3~^$QW5Pfd%bFL6>R-Ya*(svzruOOb7Y`=uv*cG=HY@@p3xx$a$b
zex-_hS;Lu>?4Yv`Cc3+vlVom_n^*BP=kUF)8hhUFzOnFGl*qkZ|F>%FagW<A+Rbl!
zvwhy3T(`;X*CmdLMLzpH)15PH1*^MKWaE*AZl5f=_%`K5%idSL{c*R*Y-^E_6*_+(
z1}JAAo8h);>9jQ4FHtk@a&L{6*FNml-t=o)71tH>&#}#4CrPcDekEh?l4Db+*UY-n
zvti@e%<B6AcbV&)N&{N9*}O>2&^G5{40+V^db`5eH9y&ME0dTn30yU~{(j5#-2Inh
zw*UF|#GrfvoAoITKlg_meg_}E=zAs5C44>f&8Dg09UfBt)j=gStu0EEMW1GQYG0fb
zw(9b6)6885gErosQ`<I8H}mg?C8Zf_wNIVR%DJ)capLcN&qB<L;{08*FIIDR3w!rm
zjI8WA`_ek;$c4zj4Ylb@=3FoE-k79$_~#AN%v;^8%FO+XCeDd}X4<~_ip81;p<Vl@
z*iHWZy7$ewYwIe{Ub_}_#&1Qq>FIf&QhGI0U*Fe^{_khv;c>L|)7rNV1!uFr1+6|D
zbZ<fa-fVu^h-np*r%Fi*pMUOFyyWTOS<ZHA`cr%OUU!}jTOql)`C5ef@(XiT<<4Du
z?AgwAWw9+{b9cy`^Df#tZPskw8#CLarb#W6eVsHtH|10YU(oczh-2$A&rka##FzeD
zHQ~OE^?@5o!FoP+ty@yw?)kBC$%TkRwZFkssl`>PqLtSsaH}qiQT2Ov;Kc6I=Il#b
z&hKvL{hoSb&OW)LoL_fc$o8&WdZzichsL%OOHNjK9)0jJ&g+-Ka<270S-Cf#&w17M
z>ael@3YHf<0Xw&fEU=00=Zl)WcopN>plAFcy6fK5J9!q%W~5cWQ{XjwK2i2rWA0J`
zc2~_-i^GL7d%BokMf_4zJ+0V~^4st1O06evRHRNN{<Lep9=B{^gHh?N7BjWzz{B5s
z%T#829`xePb@k3%vygR*nCHWjQBQgpJbb$o7frr(N4IK%+VS9v*Tj|w&reu6)zfdq
z#50arsSPHUcLQ=`I!vwgEzhsD+GkksLb5SQ)4ld}Uf{+c>ARk~vNz2AW1C8wMcQ2b
zo*gLOl%X7~ls)n8qO9L;*%KvWztxIccc^R;yZL;T!>lu_PDE9lYCGt>EGNaMsAcPo
zeeJ!^GjCMP<Ci}F`C;_q0Oe#mKGRL6j?TR@wp-(h=Eaywot{y!Mvu+>U#(npX^ptP
z*!&Go(oCn#cE7jxSiy>i1@qgV?v^=t^VS@*x4-9IUbffrOy*?AKIMr%yB5hV@ZQ8+
za`M`YXNnDb4Mk1ZXYLAkrg%LgT3_>Qm1kzz7kyi6YyG?1)ruc{-_9p}T`N`2W;17o
zk4-6Onat{q7QLY+>^Hlj`c&sXbJb_Ay?n~G<hbyvn+y(>5r?-0z2^+*Yut99=kF=G
zw1U6qejj<atwvE`%T&(%dZ(Qq79CX&d6xW@^Xa3#d?6>R(+(!ii@bbynn^`o_q(Nn
zd<s$Ks~VCkmuri3+msx?dZ)9BBbrZNrtfv7)@_CJD?BaBa(y*Kv_ED$ZJRC?IWZ@s
zG(F{WPV>S&?B12%wO-!cCYQix6z-CIsrTipC1T80rsr*(in->ti+@Y%yceYu)gAVo
zb@>I4Yf9&1UDZE#TvIYWYc%J~^O<><%elj{)<&;PymN6f&x->x{|rBQ_}U#4J9(d9
zKr4QO(dqBsrYz6+I(HH8XH8b`%2(&2o~_I|9I>(a`kfWGW;?Gc`{8xf_}UwWX?rYH
z^7%T?G-|pRUtrqvPGa`&i0V_ueJ({88r>FMwVUQB*B<P-ET(ny#2n$dk@L52pY~Z-
z&E1lXKkm&*37aosic98{|G)LH=jE&kZ#Cavlni#uz8HM-;?Ia>dtAS5T*EyrAv8$i
zWo&NoTjipKH<T{#d?;eI`uDdW?VD*6Rl}b*EmgT)zSVJaLe9n7HHVedvmd^cIVLvI
zQdMnJe`@RoIS(oOt{RnezONg!Rw~}w*UT$t`fFcusa}NPmlG{2(XH2Vil0P<t$eb4
z=OgWlQSOs1mFk_hK44o=bdt*<HKxi*b&^9guZqKFodSzhS_LYrm@_->O^jb>b7tNB
zHk07no9z<xR}0Qv!?tCr?k44(ea;p#?*uj}>s0*a$WW+?f0L-`e>P~|=A|~}-7;%k
z;(NCptM>i=t#<nh9+NG3ORrsQcxoVit1Cn-O1Q6GH0#T+zKc<(P3PY}RU_wSUi*83
zz-G}bmD=@O{PGF&zD?Ly>DD&yymz-?Y`nzlgIrt9Pk;XqBz^bg?^zpiC!UYq_D#zB
zAY1>Fvx*BXU-al$%#63rh}Pd(cH!F;@gASm*;~FHb~qI1^t||*cTn@Ss%>}J*0o%8
z>@zHX5`8W@w7W*;T<4_?M(0JMD<b&9?psFHp3mO$ZCjb|jd$0I%2&&JKQoO|yQ^`K
zvs7+{(UQ>D_jmr<C%xqw@3wa)({`V=I;S1oJ2(A|PRb;oX9qSj8?_(J-tLyADx$u%
z>6+5#SrK#gajVU@N|Y9>{MM6tUP5(&k@99|-<4)YqCL7*r>B)JYC7or<Jd%x7OOSV
zG158FmtG~_eQ+z`_IAD*)t~2d8S&54aXTI1J8$D2rMH*oyh?SRZSsO)#hQ0^3#(kM
zw@eK_a$%bI>shbOouk)j>L1)XH~Lt4^t{4_CJ`H%7o@y1o_KFt?%hDs%P-cdSbsa6
zzE`V2g};!&yK1AMM^yfS6MiwDzirs-;?&dkQeffMH{X_I{XTc_q|TG1-+C9jmWFii
zk@LI0Q0b{nX4c89HS*K8%v*bAcj??pk(~SGHchXq<GTL{aEG6eJ?yEQwB};h2@t*I
z;_bt0mL7ZJdHUMNWH;;SoYAFxQiiJvb{^X!cGKY68YkshhpV`AU*Eqjc5B*umuCvm
z8CPc}ITc@!HkkC-dZOituDM^|Pg%72%9J(r%X|LmCW{B?HHWX8wk7GVePYf;&gicv
zG`D@YrpU^_GV@Ea85_Ut>r~~UV-FNB&r4wM?s4w*iCHA;Xv}ANseBWob^7X!l}B5d
zZ!4OG>t7MmxqtRq!cO+*_a)i6_dZgxPS#oxFw=&``pCK2-QOKIA9<ovdM|O~_A8Sn
z31^+WcHC>*#f1y@J>3$vk-5aN_`%nmP0tiQ-$+ybWV-wo_tt1<y~Am8sW%p;$vwOE
zJ3{sQ^xQQsJXYWPySn_p*Sqt<>$Y&&&R6qY?^y49M&)apUf#dk+viTX6A*c(+UcpU
z!ji7NruGYs@_GDMoLKJ=eXrxy1^wx&Nzry3ZJQP`TnP-T*&bi;CvItL`SF^`M-1mI
zVO|yC&AnD^edqbL8apitEHdNM_rBZrRAa`}n|qiKcciw>m)^7M*ZB_CQe7w2)X!7a
zF7|pN*8Rxmix%G<?_7rayCzMP`Lx=ip!?6Q>{~%~SNZO(tvs(Px9$CnIn1%fv)6j9
zTf1WI<Rfo>>a`oUdt6hh_Pto?d1Qy;Y){>YOHu}Elh5XzRZMy#(EBy<x161q{I>Vm
zaa&A}K1udobmP$aZkLR+*Y}^3Hjz8Av(#zon!F1JOP)UR`Dn$pP2Ah_+_iO`=dWE0
z+IlfDZqgq9>g!=w=55S#zh*K?HMhk5mg&cvQo(#>Z}xg|Z=Z6WJ^tIl$Fsz9+waS~
zjhHl9wqgC|xagVBliVMyE-T3P34i-w-uo!sr@E0FzZ_o0a@H}Mo&Wj$&s{xxEvGO)
zw)B_3AfwXy{g>Xws*H~_-4C8|UjNT|U+Q|!pU*5M`An_!ooY|-d9fjB<=IcY&b@N1
zucvL1n<FhEl@)RS@Uy31e@vLczWlw{vk%#(C8ckQPJe7!H?O<WLA?C8q{f!3vc(zN
z{5p&wW}32RMGaqbzxH2sBJ0_$Q_~jDtk1E0<zTF?&%9!i*3M@ucIB<yad1v^`vZ%8
ze6G2!w(m{u2b;}bRr5tRwCIBQ^MluCu3Wono$TDTd)9ZJjnh%Rd2Ok6Y3t0`oUf&K
zgEoqLH}BK_e3$?BuJrel+n3H+<N7UykKd2)r>X9(C~uythGl1~zty_GsV+_2_0qcW
z|H~~LQLj6-&zFC!5kFtPHSy`H3%9L4gf84(`e3zFzJFByv@L>byxhu?c7AK#c4ED@
z!8R=rt47^K?dEKS?1|b2Zy1VW8#lhUUc4_gDy7wGz0LjAPqZG~R$hN|r=wH$!xBSN
zYpEr9?#-_~uEr%RN9|)j@#pWQ3*nyx#ZMl$)S9RGJnO*MriXWW_Z;*zTW-8%8hbd?
zmT7;JSx&QkWPEUy^Q`;*H=9|b*ULrR_-y<Bh~bp&IY*29a`O%L#%{fEsI(w!3-3M~
z=Oet&VtzVoxD&&7;_IreUo4-w7hnJK)a{=A=Sg+*+=TaK2dI|wd|{l<Ez4f3P+rXQ
z$04GxMbVQn;W)qD>lJ6FJQO?fX~!krXPl=QG>vVqPk9{H<YT#pYjt>{tLU+QtvTjA
z??f%km-hTR*IZTo^y=mf#p`$NT)QRw&YGjQSLK@Swi0i89P4*>=g*n3_6O$7o`19S
z&NSI`yEo<=>_2TNFVc1U)PYEW)Cuz^uW`@bsl*rcdM=a0tbM}vI+@ScEmeH`rPckl
zy|G2~rE>+}7`%V+1YH(y7HY8k#-`HS&T7K$+rWRk+$B3wF7PI|sam$r=Z-GL-Zib|
zCPoU=-$<=>eSeHE?3w5p$8ymFGrmmy`Q(f2#TiT9$E^u)-{K^D^`q@}-fz>aK0juU
z2>Uj%$nxN&IT1pU-FMdX9&DbRZ^EwIv1y_D)X*1&{vS;h%qAUA?-Aeh?e<#MGgoi#
zWqlGj=eYQlg>g?z=PXDo`;y?pCnVFiu}SM%Gt14)#JHnht)pgmuj5ZjJ-IbHEU<l3
z*7Xgh{I8$1-!cESP;3)VI^*X9U+-Pia?9n*6Ft0X$^`c<43=BFrxfp-Wb<^VUPzAc
zq{%lvmCA=d2;FF@x$EGh2~*S~!kLc?ui@m}a;-%r>dEA*n|3F>Jr#cHUDuY#`+pfu
zXFb@kB=ml{tk|6e`78fr9R6gx_<C>5rn%o(vbQn+ns)I$Lv8jp=9=tn%}dtabHCG_
zs`vfv&v~H&{nsYFO<BG%yKbNRyl&OpzWDO&b7fuyTzk{Ln-`rd+cdRuYn#l)878+^
zhTYHbnf10r`%2>7db{~Mo>#A9d#76(*YTUddt39A(~WlycdAa@dZI{PBV_a3cWYD^
zT4rp!EFQG^rr&SQMU!flAD<sKZ72UPhoX62@+TNiILLe4yZn*)?hHNqwUehhNL1|6
zFcfBsyVjwiv6f4XXaB4xcT99A&$0E_wb0%>Y0mDiMkjB2m$<AJEZJW=Y4g|h+9z)w
z+oFB)<}B}Cvy52Jb9bv|K6#_LeB%G)Nyf*2{XQEI>A<9szhJp~$=6-Cc~hHnFNBpf
z@V8g$Mdi$IpOY<io4xY+q}IwSQWDpcYel2<jSszj-G5!^>c6KiSXNyK=h^l6b=0C;
zlf%}yIG+@&<n?>Bc~j~7Gm$s5e&rqhbhkV7q{GUOs~$@9ZPd=ZZ9h?F(&OJ=x3={+
zp7V`pwu$`Sxia#JrDb&Yiu{Fp7>Z8z1l-@%l_FbkZJE?e^K9LX(b+SPF7Lngsb==n
zN~<+zp6{Io;z(Nw&X0A@p14|l@75(5$)~rnZLR-omAd@GlV<l%2bC8ZW?s6sCg9|Z
zCjoKAZ8qOCzB5`c-0HE)`=aBwjEhk_P6@4bl`D5Eo^acxN%m1ujO&wr?&|LiTJ3jt
z2^TMOEG}(4ac|G2>B(-Edinx4zuW2y+~m%RQz&Y#JY6bRW?Z}c@XhmEH++|l+EH{b
zn)~#e^8Y<Xt;bT&Rd0`bw&%C_JWtQlbIP?>bU8n?dVZH}yY}<DtA3oS-2N<dvh0!d
zbIScI<BrxWK3tqs|4x0+<|w0Q#ht$ypT04&Ul>$-V}3y773&2bH~lK;ufBKVUxsde
zifi|uD+hR|9rol*S@gQMT~#;TJBm}R@}*d%>#?x%FSZhsxs@HVCViOy^*H|qnI5mO
ztn|MR;+{?Xa#q`8MgGZ6Oxxn-&Nf=BoZ*xIWA(I8DL?1!T=`OZt!vR`p0%dtTlK^)
zMs0D}U=cmryNRuGb=WiBIUd)ntQDqjJ!dyZ@x18a_J}8kIu4(#N!wQ4d-lvX#%CgY
zxxS|_w+m-EC0|nC!gu`p9{;3#-Oq<Q_A;w)5wn#LT@!I4s$#A1TGwk<7iGTm?aNr&
z_UwZ;=Yus<t9tY&F`4~wn0(;NWvR$_a}7L{BsiLvG_~4INHM6AI(0C{!)b;mUl6Bz
zj@Pm&eCLl=8(z6E!IN+Q1k1h$9qXRl59+xpbI|mLVwqg&Pu=L<Kl<;xtGcqYOn0vq
zTqiE4FeiAa*V~y3#ccnD37%^{b6YUaLSI;pWqPZVP{SJU*zAA&JVpP-Co7z8ZGUd)
z5;W=F8ks#J&adQmolr?XxzA|x$(RkQ9V*(Zz4$vWu%CHm{pRh>H!2#Ii!RxpOxz%&
zA}kZf_wh%<#K1R>@;5)a96Rx9T5O7$MC2qDo~nW;!n`vL4a8@@b&PwGczyCx->~gE
z{zhy!L)Xdg$mnsj%aGskBFA9UnUidXJI@wYn8i!Zf3L*)%;}QVwbnJBZ2BuiEd9KT
zj+?DKS}fmj=FBpiQ-_--8LPahn#3x^W_dWyeueeNiY4xEBJY0kJJc>{yz$@*X}dGa
z;$FYe)$;C{w7kl0M$9wA?2mP?g2dHCJ;m>5mLGdB8?f(T)KB+<o!?I$*4{e(PS=a%
zvu4Zs%Z+E+?K{!_@pD&*>aQ=U9OoZ|uiEs~fF;Rs`mzo;%cGL7*?Hdg)SP$ClJBTl
zz9!nXrKo1X!j$~Xg+>$qtVl{#+PP(&VcS7@1Kv-L{}-H{XUCBxBhPYFO!e^NgAz-`
z)>TL)B`ltPdE=R7D%SINdA!*^>2!hkq*VrNajK`~V~nT$TFAXk!<O&#HwFJ=^&h%V
zh%H?nXMgd6B=hE<aUwU`Hdxq6<W7<}dNUxw@`RMgWrdwSpL6P#YTXu?awMTd`m3{e
zl0lKwwC0^x&VS4}aWf!w^5k^QOYBP0(NmUat<j0wG@0Y@_S-URbauY~(wv{hr?9E~
zwDY7l_dZQf`MrIjVa=V0U$YKReP1eJnST2NbLSjGAvR4BxfaKDHmiR)PHnpDADi;Z
zDc)6;r|Q`L$L#xe?5;f>)wk%}(rasvp7n0;*?YEj*4nLSqg%giGyA^$`^5Bj{`Vg|
z{rAN#?abeowoi-eqiVih{`bYXZ}s1od(VnrIaE|%HUHn4zc2TCpZoi=HeuH9%hir&
z|GwP2;Mu<~ym9aRcgx8CihJj8AGQA5a^9yq_1+wBofzEuwmNfavIp~uJ$rw*yvpVF
z*U;aUmZ4p|`<=o3(k1=dit0rjp7v=pY|86eyy|9M^u~Y}(|wnTAAf&mPv-8OKO*@z
zFR$FEz0uwF{?v*s&%W3=ygs_gu%U9ND6flHwD1X+X;H;ndQvBJ>1-AQwco<empku!
znpx&@?(!-*olkv94=t~I_&p1kJ#g*9I;)1-*BPmDj|*zf@2>gAwRhXA?OL6Z8qYKT
z+T2Nw5`SGc@lV{mx($35=l@CUi!SAw+g{ys#=XpFe)-Qgzx~|H+iG&R<sY5oRGc((
z{oA*qR__gJ8=mUTf5c<C(30c+PRpq(ChWDV&rg2#b*{&KqwJMoD{><ie#;WI%6Z^*
zm~CCnjRU5qJ-#oqn1A{9=edh{Z&<n>FZa_B+qvWlmud2j|6hLw-d~$nd$#|VUf}Op
z@?T>o{WP_IwcF%#cHNi12lMK-yjKbq-~IEV@8Pt%EA_VP=Rf~;zH8FiKQDCN?>+cS
z%9UZm9ydWoozIII6DoU^Y!4dQ&*D7kyK_zq^RX{?q`s_Oer>_m_2>HYvZj4rynFZ4
zKN<Qf+SX40ym;U2@^}z=BmVPZ={<Agb3<#+_U}9R`sc;FRhIU*v|i4VzY9`l3y#wl
zA8f44!mjU6cbGC|PWo}V0KGpa{8yxW{mYpeEPEkr^REX1?Vml~^IqHSs@#yuoyHKc
zsVX6=EAU*^S@-OnvLe5y?RITXUDIIo<=>*iUTe*|_cR84?R=Z2>7M&q`1T5+o6j6J
zo><Ls)zIvG-&@JqPj~lUGwMlA=llF`5&I1JQ167}QS-Z<rZO7*zBcdEqiFH$uFs(?
z%2%>{4U<wVB6N6<C~ck@r}K%g*4y;^im(;Q7AsXv)I1$7&M0w9JZkiwxk6$3+=&lO
z%;q;6pP0PdM*aE1&lxi_V{=MoT-{r(@43~Qecsi*ZSTY8I0bLEGt=icHF|$w#vIWj
z3!f!CNnV;i-8OD_OaDUOYuCB!7HGejXg9(1+n392m%pb@<d=H#Z@HgD$<n!Y4_LH?
zCT^0L-^U-jWLwJTV7JU2PRcQ9Q`|CAQdjpB$%m%7?fky3DQ(LcjqhCR56&uBDws1h
z@ZH_zNf#p1rnG(9BQ-15tuiw1*RD$A33JvzTEjkP^Qp!HOYvy}dNWnGUca;H7vG`K
z*WV8u$X?&*5n*%MRsO_VwjRe-o%R<eNHo_tn0P47zRYg<#4Ywj<d#2;-BNZXfhQ$Q
zG*x+ah4?;Ow*1lwxi2wNoL-ZIueIK(xnMKfP(ZxOQN37E`?89LZ}8&nCuc-lnG?G7
zAEWcXBd-5i7H%+GnlMw=ebP04x8Lg?R@NwVYIAx8UH_)YaP-_d^_Q>NpZCffHfdGm
z*`;%CpJwJ8cE_a-5++ms3Oo(^Bj6#-Zun5ikhds7xBkEZv8AtHys?;c!|naQ_gV_d
z?WdIcmTZ@=F*a2T3W`Yzo^;1=-SW(Lx8&^RPpt0QGU-Lpl}Rqse@=3lp1fXVm(8uy
zrSURBDi>3gR4=M3rG}ao-g#Vl^~mD|dpx#oyVO7P!@RdMIrDYjooe|WlzXFUCTD*0
z<*A(cv7b)0Z2z^x=;2z|n3*50om=lyVO<w9^Fvr*xLVEjxU@snr;G#saZjH&@A|Z7
z*Z2II`=V%?#mb!r_jFl`Gw(Y%Yp$&ShCBTe7H*A6G!U2ie&Tu5LGuVPOYH!?nNMRP
zcm1BW>2*r<_ru@rI<7c<JyL#c<O*ib$7h!uR_a%@T6s3TLvF2Qf6qxJ|9029dtP5M
zbZ<r%|Jrv=@%xGMO-tIZgdJt)e=_NsW47H#<8J<*GwEw?buTUTu4JG3!F22ApI6zF
zi#BVlaQP;7G3tv_!;>RLYn}7%CfsXCjcR|gq)azB@2l;4L4zsk_sg9&8a$P#nl_bp
zk>T`=J)390SNrqt=x>d`^B#N;{AKG~X~4E`?#B~yhr<^Y3ZHEL6RMhPu;=sBwXQX5
zSNv^zvCib79P6~qLuMHwC3{O}6>N`N#u+WFV<#m3X>IDPg68R&hst<%UTS$OQM8mZ
zI(wCc!TQTBwogqy)%gkE(>B#F+-J-vx8}aK>34Rc82K-Z{MGNL&U(*Za^U@s#wWs4
z4PMNC{m@zbz2~{!#_5yqoqqIN@1D2iefbx%PAVF)D=lp%eoQcX`lRB=1=knyyE@J+
zlhI9gJlX5?(OEnv&}hMC*OyWJi4z?68nCTAEh*0u`kGx&O4FO|yW6Qt*~dL2yTiHm
zy6){ymUQGblh8XXbvN0Ay<AazhIu~!d*;|`J)zr6^qy{5P;sKa$FW;+`mH}T_kY}V
zX|J88%l~_go$NQsW}e?U$wf!`N)^SQw7lB-d7oqY`nlgrAGNh@>AN>y@5D`ETm2I^
zC)?<sxG4-GCR^*D_$ixoSoHk4OFPaoRLqSwmydb)>SH5M1AE;D%MCU43z!uWBSP-i
zym%y~C@=BkAm1X#ew$$NP3x~nHv9D3Uo?PZR?dGD_sTrlYX0|y)3F<mc2@8&T-F_7
zEB^k{HFmaptO>J4%x<cE4a<C#RBU}Z?(TcTZ;g)kKC8r@V2Jq4E~Qnhc=`P=$18Jp
zPB5Hi@S-y<EqGmiqF#!=a)qPnMva;J?(ZWzdELZ*-b^TINtyh6tJ70=k4eEPCpqix
zIqwOtwR@fP?U?!b%6F<(^W*PI-?MqX^L_O+%lEFPr{{cMSTW7=z2^MXbJf1*jGo`W
zcxX<t{ffx58^4zsKEF|Yd2aC=_t#fts`IxM_x*L)H!J!5RFmg7s<+QBepAaZr})j@
zF73=j)8lnp;?8b_v<a3<1be>RJt<OcJ?jCZHEs;WMTL4s_Y(GgcvI1&x>4dn)bcea
z75mdyl{G*85X!Jm^^4ns==0?a_fKzsD?jD*tl~{4PA5*Bzjb}v`%Ag^MJ1zSW3wli
zr}TKfJ}@JNZAJcCK8D_xB^SC>Wwkf%Fic_DVAuJ$ee=GiXQ~@bQjU9bp8Xh<^uspp
zRO$U=cU`iC)^q-k`}j1<^PaWO&Qr&~-C7&|^9D0B`#uK~j~Ba_z2@hU`SXZfFH1!)
zg{$oBv3mDypVuA?+PC_Xijx|{>C;B+4XRGh)FbXoz471R=8>^h(8%IRvHyFv>=u@N
zrcO-vr4$?Udnb78bUBeQ@p<0F`QKS2_IYou4Nvh=dXhNNJjLg|Bh!=B*L(9fumvRe
z++QlmFpWWK?v-cj<`|@vFJEA-*);QE&FL)1ER%hF$Fm$CU-@Arvzj&c`}N1K%O}Uy
z+?{ncyyot%+u=2Lwf<}G%TxU&8oxd0XV-f3Hs6}NMIS}uw`cwCTEAcM_U4pFs{4E^
zY_-+o0)n3SxaVnz`^fvhc-6RFTI=Yg3)61SS+@764gX79sr7L$Zaki+Uvekm<|)g3
zrlJIa8T;hgYfo1x1)Ve3ndiQb=jqOfjVTJg-OE<H+8zERSD733j5oJYGP|KBvhuTo
zUUJP=BYBOGxZN^0wMrV!d@bDh=vUvtTOVx{c8F*79Q<e-&r<j0tfZ6Eu?hp{?2DIX
zy*MItGHP1$58kwm3oKs<%bfH&%Ra4RqU)<Q);k(QBKu!Wh~K<GH~BMXpKWsI8OLv@
z0~W>v`y6y$m$)s-GllPtmHavHXM*<4Hr1!R%cfcN|Co7g>+OBfC305ztT&~LUY-2Z
zyU}(2e~E2hJHnnxL|eQ`?a_^~oO{^oe%aM;UVQHy!>{Ek*DcWA{&#tA`FrN3>drmf
ztH1xM$gg?#_2<1GcP<Ao6)TDcH$PE$z2hl!n}~hE#E!G^v1j*YMy-36$NMqr>|M9d
z*{0v~_QssOdu*vw+MbxRceUO`oxR)VEZTgp%Cvm-n{3na?7Zt)@9tLZoV9zo&H5mv
z?O}zRqWW|9UfH?(14D6F={r4}1AD>>y&kc>_E!AMIc;kf%UadXXAUaaPi}S3J}JA{
zwa(74wpsP)Dh09Hs2>}aY|Zg}eNgHBT_yPwGjte4+iT+VHa@prwDm=_!h!9}rX4+5
zb5G+tL-8!(_N6wV>eDJ0-(fzZDHhdzPeWYy6H~4CJCAEh<*DJ?)7aLgrmkjA?$%BA
z{^`)`dDU!^nrQT4#rdvxt4|3>axafapJKYUHpf#UdYbsTx4b|1h+X|KchlF6E(_hG
z%GE#5th|?CIWNrc%}LH(Q}?}{B~x;Iwp67``kdnP$@<4DTR+}Q_hyJwS?S1qVeQ+T
z-+iksey+Tbt>4+TMvr^%w<}i?nt$nh`6Zil-saC46|=+NX13cOsL6R@Q}dbO^iuz?
zoYxY6S2U&G=(`Xl-ZROyPHtc2mT9x&HoMlveXVFty`iTd7HiNoZA+AHrf%euzZ*_i
z8ys_8T<m({L+>*M<ui?IEqml|8k*@h-TiL+{pfe2{cc}t?+b=3(ssHK^}VM}_|+XV
z^PZ`PGjr~7rcSt?kQ(Q>B1j~hap#-cCLt%Yf?p_3ySi+`#LDkd(i+8<FHB?ZclLP3
z{pa#qp(%2_yz5}(Y10??6XdKeMlJcG8?HXh<(ks_+QbJ*8y8r5oN9Qs;C;!{)+=ug
zos9XmW4212@oO#BJD)$tiQk<3Cr<q4?8trJmVf&f&Ua`5>%*hMKlepuuHW+AapT?;
zZzZ#OQ~w)6wNE*tC#|<h^e$MMu=|W~UGt6CCtP%I7p;BmyW}|go{NQReQoV7<S^Pt
zJmLOvP$~HU{}-<LUlw-1{?`4QdFL**$uegAO?Gw(X4)qmud~eHUi<sU1y_5!lESM?
zq%FVvbDZ>;dG^PSecj)?7xwF^#CptYJMrznNxz;YzIz+m4NoXX$?LqT%{skdW+z*u
zp@xb^tg(drt`#~OcZ(PCms~$NJ4U2?(p6@$t!o%+gsvo9pKKiNvqbLQx7a=LJa>yf
z?rTVYe^>Jvzr?z3PafV*S@*uI`VM~0&Az909r*CdFQ=%<u}R|fBB9y4b~!M*Tob?X
zr0(Uk<LS*us@>8(kHwX4HmYC0!$y3=HmCVhe^&pWvGjZOlg(f1`uCj4{9-0>ZqlM!
zj#*2;|5k_yDq1yf>Gx{a=`!NA_3Of`R%FJm-%{RiDEa)dxXk>TsmuqL#bxSGE#G^I
z`S7l|%=1Tg$7QbHcB=7#c+rN)oK4#7bA!K2pUN*kH+7Em8O_6yU&@-l{yX}G#ru)y
zhOIXJQu7luojV<7+4Xj<RbAe^PgQ)@<c-@_ALlMM+NQpi;eJu>xjC!fMu)qctBlE=
z_Q^8*cJRGjS0nnvR@6o;?0YrgIJ4yB)J0Ez>?<q(cEY)A%K1|ZY@Zr7MX0Fy9L>zR
zr}HmE_c{CKx4T(RM>OtJ6?Dm-Xd<xIb#;B9&LpO?)f?s39IGmyCdJMbDrBxbt!1KT
zP_Mw8V?t5g%W9^5YFX%h$(F}<)|;CPEV<j|)>>XXd|~lvmz$q_7rI|-%!%<fjhq>t
z;4^7=+r`9E^Bo;W^JE*v7OnZOpg(Dr>GLVquU#}#5Xp~YJ?njGam9^&k58rBhaR#~
z*|@6ZruN<ho`|qRHc{)f62BQHgdKWQn;3TJO>b@3A)5oMy=Lq^c-Cu%`|D8EGjZ)x
z_f&*(CTkpLc@+MR&+4_=ukb~x`R(=#W0!sMU*UF2-Q;BJ68{xCi`d$K-pQ!j@>DeH
z$Qd`j+?&p;-fkCjFK(^7`ABM;>V7+KdHGz;4doMzZ(nAZmCE@+C%3XhhkN0T%^@e%
zkAJ#jboa7sQjrp8hT@v;%G#%KlAnK_Vvm@2QFEW^hrMey?mt*%uiDl6JFk6ely}&(
z=f+lTpX7Az-}TOwIcI$+qi@U3#k<_?vfq4Pa@Ob87CZL!?3qC>^%nXwtXEa{o|V12
zci;2AS8>UP?%LCGQtixRdLz2FUWsTcUKHuJH9W&5`m)U)OYu3+r+oh>dvS)z#cju?
z>@id|QQN!m@Ug9xyPwY6D6;m<b7h-l?^BqI4qf#A6ezP`T5CXctD4NBX{tZmp6NzC
zIqSW)dS$6}@Z}YL$)6L?*(O`wIH<(_x=FIReF=|6z)97FlWgneY*OWAUv+4u-!{D&
z-Lg7Gjn`^U#;x<1rQ;-iy1ai{zD(AaJX7f%Ml+eum+(!AN+~GTi!iV{F-zy=Y<2!A
zGfvEGeDg!^q}G;{7qb^TYhJtNwXylhoQaYvucjTnWKdCX|HVHgv7-8!6Bq8Q3~PCJ
zUd}2#rP_P#LB8VRL)-d&iVvxsu=kzy=o?RJty5}cr9<@2{MVdURb?8y3fMK~|L9zI
zpC_dA+3LeK?n`#q-ki8lSMtr7DceI#A9TcTcz<ENOthY#`*Wd(`|bzIoc(;`)4s<$
z%QsGUx7Zc@(PrD93|-STD>P;nM*5yjKFz;jO80`^6Bj2xJd^*<PGaB5jv1e3t%<l0
z;G()VYHCS_?o|ibH$Hm#Qa6?4uT4{$)$F&j%~{Uyiow(COJ1<8=aZ9ulETOIttU0b
zXPfwe87bL|YdV_E1mZ5w+8Z$YxwNwT<4j(*_SA(h?j2tjd4Af)NR3_Ux`8DRR<icm
z^w>n{dy2@WL_MCE-gC7`Z>QDDvwxdwOFSfOo_u?db-XjueOG_>=hA@7Qte!lC7$<B
zXPymP_|syJlQFNDjZXUuiQUh1qg&%XPkSpd!}Gq4;^$xIR^(d>$F4Danx$(Rt{)=B
z%W_92**1D=iS)$h7Z<Qc@P(CMue$eab9jd1|7m~b{+V5FYH;WE9#xBtQ&NN{PkL(+
zwrOgVW?0tJij|?W_e{$Yp4`;js<8ZEljrM;+umK3ERvk}$#Bk@^^xbrDtV`E@e&ri
z*?!1mT6)aJh$n>+mnQl0WySR_oSzo6zH<A_!n*;M%D-D)3B3^3a&~9e2!AR1B7D_{
z`2lgWX8t@sZLyTBd#OdA)CX;2y^PacFEu=+mRfIH>R6Q!eKXT(Q_8(!h6uAoo02VA
zE(HHDz7ZUA<Fd%%zi)W`!_vG8_Fqx%Z%EBJyYuZFg?no)_w#T}o7=;DVAEvAwUw7^
z=l!VLGHq?wyC3t)mr0$<E=$_E>C@fE&fL0Zm}A-E<)_UuoU`DWWA?&ljBc_;QR0o$
zRn%85cC{<#$a^wLJNbUd?E=-q(W1+xbnmZVtrJeZw);=tq@efb7Ong9o$a&Mhl#SL
z;Z4<>Ph}=;u{v|{)d#PF?<YQc3Go*cTAf*<aw*YGbt7Lfw_p49Q@`V~l2ygbYtHrV
zdHb~S`nnIi(^x04C0N=B&wKE7-G^^{^R=aB&Az_NwNC8ywzqRl4H@rmYMj}azt>Lm
z$F<d0ClvJ^SsMLhYs8b{p8vhso$IDH@9X7SXz6*TTJ_tJWg;>gKgV_MRe5$)kgZZq
ztkQG8dZ*8%33HEd-Ss@-d2Z3Vv-|#rCP=a#-F%p*_VhGK&!%R#k5jHcv3WVm<bRvY
z{r-ht-<o>9KYl?@{zUeQUb_VK9erjc`<NbmbUetfQsZ)HgT}^x7mk*?-}u`oxB9jG
zt`jax?uGnc*}X~a($C+e3}5q<M9Z$fTyJ~x{pI-TO~S_O$_1a@SF4_&k&=?Kcv9->
z<}*Rl>Y0)sY_yyZd5TN0+s|yhYe|sNfkl%Y3_mc(Iw=43(pj1FQ^r@Tc%kPBcD-Bd
zr|b8h|7XosaPCR9-0hB!E$g`a@?Wfa@TJY`-tBn-Gf$>Boa(h@cq*#o9m=|@LUgNB
zwAmH5O-b5s8)i<uJ^OJ6!~P()3YO!S?mRSEdw$Npi>CA6T5UJ*%?|lg#9gd^z9DOx
z?}?nPhW+u9m$+Uuho5=&Q%iYk*Ob@4S8RLVW~L#%VBh<`wO<+bPW|c8x21C5tBX<h
z+&TPIH@~^8(0}c_Qe-#J-HV;6_vU@i(EV9oWM}f)iueAC{FNSS!=4G&#;55$`Lp`>
zd!GBucOA+sF3wodq`Gk5(tRH@&K(!xW7u{0=G?6+M(mMWHT{w~&pQ5E_CQg3!OfF4
z3oTE)2-zgc-6vf2xu|%XS-Hjcf41coy;rQ<Qs(XB?djUo+Ii9OlBsmC@yzBcrF`mF
zEF*7A7ag18Fxf=f<ax}y#yRhWP92TRI(PS_^<>KvpC<Coy2&rL^X3A}_i_d`<<=f)
zJ-U-Td0*czuD|jms9iS8YeQoGzOqf_%|f|8x+%JQ5}hwPnmMfX;(9uvXHUuVg~iMz
z>o+=Os=R+=X5A+$<^5#I+^>@=^{>>KXdK?<XuHX{y^7~K+f*apouR9&_GNFG7L{Di
zHP?Dhb?};-%Pvf9Vh@gcwCKJ6=2g=t<_PWh*Ye7-AVWJ{QRdl8Ve_=eKkeIso;+Nk
zbzoxNE$3*l__7)41$Tn3&U(H5_BPpDMKzKhqV`LYEobFFd=m*GUUD5Y5>47r>z-|=
zDBAtUCTeSX^|d*6QN>$J^tQckx^^=7tWnPEsI}J@EIg62G4l3&)8)%bw_mIG-TBQ)
zHG5)f<OZ>s*C%X!@%pC!2A`Nky&RjLmFQ3Vd2eo~t3*J`si~XaTJx)K?J!jR^K|;6
zS3lxbPr7thy<}&YY1v16$J<Y%uHJa68O)Y!J&V0z-L+NQLP8gKWd%7%3570P>k@i9
z|9G9|#dinRUs=+y=EhmJOFGwiWcj}8MBXg6@ecd8Xx`L6)txbp<=T@f&tBkt_B-^M
zsq?Z@rpnV*{(gQJuN&Rqo%VX!!maa|8G27>MSiWhp5!@uwOaM1sEsGiuaZ}u7Pr>P
zeZw<@29roWtG3NsB^(yU=!zXKSaNiRZ06>)4E<@9XD`G(`z+J2&}MPO548n7NfXy@
zOwwF`?c8(2M)zz>_J(P@s^*_jSbpGeXx!cI)-|qqGmh*ys_M|rTXkLPc39TtZJGJH
zoV}j@_Ui6GZDjV!&lPHwv;2E!4tLz@l<Fr}`|>!?I`W^84a-^^x$(<`Ju0QIn=&KB
zeHL5jpL8!tIw=wTWk$o+&prp8#V+RDI4vRj<xBCl+T@am^^<b<sw}oVVV1X5(DL_1
zh07TV=f5STT&g}Kd%x9)KkkIps>|gEkA(D_r*r$6JvrxX!u#}Q+nuJ9jXLb1vtLck
zI(*M&|DNxYF4bhezu)>Ny3hRfnZ*_C>z*9g#B)tHQ*<)3=b6J^3+11gD!+MF|2*j+
z?^X5Vj9Sjz4o^E38cu~Zy#CH3!aqy=y4Br)*u^c|QYJrNv0?eDMw5v3w$`3y3ueA8
zWZ1tc>PqbXV(xnl{>?iN7S#tz_{Ds_w`{N4v%S96p=Wd}nq{u)EM2i8eO_q$B;8M!
z=K4H;awy>5BG)><B>5?)m9jTYDWC9jx6r%ElczoYYr8+C@SI%!iYp((*?qU=Hf@X9
zSg!ZdZb8r%mVnCbk2q5qeXrI!f88T^Vb2b?2W^{fE$6;}VJdgMbLz*1)@PW1Oyzvs
zn9?cUBzMJgcW&*nhy1&aa<5LVTE}2>;M0SU;!`vD{cL|tV`W+rGcC5;HEyDz<lI$H
zcdOt2?lAR3(*=foUr%ae=uZB!*s|9(WJTDnh>b3n%=u5R$e(+d|8zv(xu|EmUfm0N
z?mVGw%PgJbt(LXt%@=;-nw$QU_Y<GfREy4M3rdY{PBhCmxUF3h_T>G<^U`O&NzKl8
zvW+Sh<dYP>p5r1t^O^9I>hJUYC%j*qdhMjmfgsU2I>|S!KInWm57NG1KD}9ei>ch+
zpsj_vrU4rIKhA5-W}gvyX)QB|@iZv4d5NcF@7B+i{RiTn&Geb5asHrG(Xxph!AzS>
z=V_?-+uTglOMWr&(c+}Tae8GF=3M8ISeO*0$gMmhJR`ScThhmc>c1}pUy%7yWwLr>
z(?-|#f(<8BiYw+<ikz|u%P)EJQ%^*8hv~Bkhs<9^>suV&uzeS2g1o5r_DKJOArp1C
z^1NQS*)L81N>zmX>Vt0WUBAShtjO0~+<DDAYg1g%<gb%vg~xrGCHD99>+|)@hYmZ{
zgLa}rca^8+rGU1g8<`EU&HsqK_T~x(3PCvc+Jj_49wfBa-rU68*bZ&4ed_L_yZ`@+
z{AJ2}UDqh^;p4ZD`R&Y=48qb(>H^RID&D^`XZ7?fo~sdmFaExy<2&`$I;~i*kM2Ky
zedho8+J5m9`TzgE+y8qne_g+H+t<VOf7jdpd*1(lbKR?@|2h`_`=$GD$G<=Q^?wWh
zKi&WDbASDx>mMH5|G&S!fBwJ!8|yf(PyZgjZ{MHO_d#3j>v(@Y&j0_>y=LKrTm4h&
z{(!dHZx=}V`QHBDxBd5XEpu|2Z=Jd}ZGrCr9qTh(xlC!9b^CW6K64?gCgzpGuYXVT
z`DO?Gh`b-ae1DXO=G47A{}`KX-@DT<;~ZPX+8c9tKQx}L&F7Pxz5M0fg*!7I9A#L~
zJ1cuiayavzpyKHz=BKB%oSpW(BTBlunE%3^$tm93g`BtX=x$s%)5;`xdD^Qj2LflN
zO<iU2^oFI&(JL}K1w|5J*AI9V^>pc4hIK~G>C&~7d|;SRd~t8@9$}$rizk(zW2<<3
z<IWV1BDqP=RXvwYQ<@powq!S(XSu0Tr$>aTQs@7c&koa)w`(1L=g751`hiJ#=}XaK
z^BLhOuO_I?SX=uzXTsXr$sTKJ#X+~6=I~0KwLiboWNXV3o*gW&zbTm<UtqHJ$YiZL
z-<AKr{boFO{fPAG{;2)Se*gUSma}lrkJOsKzk7a&b0ysCO_}OxI&JU7Bl}H{*=ruS
zDP`E@x$0sMXH;NwR?ec0GYuUV<;n}kdK>Ry)qQ8}wBqpH23Fp8Y&tLU?^kx;vVL?=
zxTO5bUiAx>&+Z9-DNA#F{-&w6m`m-*hQmicsJ6)(ut^xcTat7@B3abq=ndB9<T*`;
z4K;atS8^~OF}bqin8Z#~&fd;rGJ!Q0Zz%t2$jH%4yl*t6XVt+~$*VW@-zcjpEb3mX
zrD@VE+L!IiUwL)%qp7C*_9wj#5aE65`ADNH-1$?b)QSI1YuP@{zmYXZ{@5i&j;<h$
zP45HN24?1Txn7vPsF7!mkEfGg*ZGq-5)Lg<e=o=ByllNo(fiY#kM4<Y)H>!Hv}k*^
zag3M8)e7S?OJBWPZ*autY{FOZ98-~pJB|f)#3geJZq~`>ULn0$b544|7pYuzyYq?#
z=iKINMw$QWnP(u~t9s&Og)xs+aOmS@E2Db-7WHiE-D<FJ^GA`k%%z;1X~KbpY05hj
zYpfGfo3y-qW?fo+N7eOM^<wsOv1g?!XK+k%ih3Hl>EpdQ6D8!kPfqywc1u#i9`j4l
zJ>T7|wXRkB=a^a~uaTYlciN8RsTv*OpYuJn(lpfK53X2{BK$S+UD{-!mN~NzojT^>
zv3{fSlmx?0&T|Wwu8>?Fl6;qAr`G=%pJ$T-ejV!*x^z4AOX#n6>y19$Tp}s?GpEM7
zH(RImOQqIpy-Q-Nwz6iK+O><FXy33nEBB%P4Xuq{r@F(0S6|rSnUre8)FZj-;<tj^
z`?goapVqrj|LgSY$N4(mD^xqO(wR4`%}Q@>S=(-T%KdG&+TUNxpZ%PwK7Ib;de<EP
z)7PKd9~V~^d+>aH{QQ5;YgGTdd8)1W|NH*`isk)L=dbTNU9qjduI{GmzmKo$bKAC*
zP4?Sg&$#M(THv3qW9uURvlUi4{dg%Ie^uXm*QN&@`(wTB-p_lzTt7<r-?!JBozMTN
znUenJ#z*fOcasm>U+-T3|Lui!^Ziyl%wP7JF{;k))`e0{ivwB@dvyPm)v}Ak*w5W?
z^uEt^<}H6}T0|li#YDvGz39L$XA?2~v3(Nv{<ZIQSYIy}-u7Yk+p30X^ZO?-c~9Y9
zz46@q6;byYS$j+WxlDyfG%zWgY7LEe-X9{m>B-m2oY8;QPWXCr{-@7^K^JaJ^4}oz
z`p?8wF4OkZStWMwSKVayJGjoyiHj@x6XP|}ck&xs?_VpQ)&$b`<7}C&!|C(x9*#-g
zb_ZXr`K-R`TDgN``ds_K)ZKCmo<3Jzz|c{YD0=Oua%ihg<=>J+V)fc7wcnP5JXNyo
ziSU{uR`pA?CaSKV?|0)-e&?F=|EA3EpU`w@T1}HEpH=-LtqD-6#<ltjRO9z6uy*SH
zWYGTFd`^Bv)cr`VYyRpv56y3XWze;kS7dF}{mHU=6V$&`(fm6V<X=^&e|0B9{Tpy|
zlK%!KkbfPZ{$+*vS19@uW0(y4T>F5n`!<WLneTVwQ2sV>Tsd(uMQ>u)mb0r~Tqu!H
zn)@+qTgm@x`#xQoI#p%%;<e}3)qLT7`|D-Xw!bOX_crYN)a;UZ;rI04i(h*vrb_*|
z7(RtterEhN_i%+w`%U}r$Zu_wpBewIpGzsPey6=x$Bw_LwI#l<zA67c{WsA4$XosI
z?yQ2__ur9Mb-DAes9r>%@b~FoFFqwg6u5#FaDo-Ey4?A<$!=H4jk=WjN`3!^p!oeu
z4^L_hef3&BAnUeaf7x5ltMc!+_GQoJtowB={O+>}@9)>$y!h&7?!F)Y-tJX8WV?Rt
zqvh%Uu57;PbK&UPnMXb?JC)X?w{P2P##@KJw|(P|pU%dAOZvWW(Q?JSsQFhr+&`sW
ztG>ZfR1qe3sqgMD-P`wluCuO{^#8&=k;NoNi>V@J|I%hPM!E0#GwZy|BJ-|n(tNmy
z<@aUteX|NL+3c*_{Q1c*&Sx&aZ!S!)vpdB3;X>h=DmUi3==+gZuKBB9c>s;sgCcc{
z9<Z!FZoKWs?XR){1>kgK9Ls;<(`Uf|1{cqWj~{08IwdqbovkmYI?1}?A9t_Ion!q~
zNBYm`=U;7m`S6#n?3KHI{MY>rY;W{sznr%|CuYvinP;Xs|0%NH9Dm&7eJ``sUAY`<
z`M&LMOBPr<)!+G~dtts=&qCSl-&V=(SNgZ(@8yN|7p^zhS2S!-te5y7bvfYi_mwZ@
zBM-|TkiR1~KlHSI+X_(yHkn2~iA5X*9U`Xu$xbRC&xE__JyP7!lXJv4mG!I0#5FIO
zCy6R5OyUjcJ-2M)It6uWDP|?hL+mQ-4hxDa7uQdC_NU=+DWBh?4MP6LN9O-vyk#Pr
z<=lJdbC_o4>K~^Bw%DnBv0f3l@(90$$P%Xho~yqa152}R`|$p3=y7@<bg_E!?*-Zp
zE4EZr@P2K~f3=|fxMYJ2NBpykRx_11N%_xNx+rq)Wp?wKpV_DG=IeN=c;fH{M}s+C
z1zKw~becXSZaVq)aL(l0e;i!dWqvS-&$5rRQk=TjTYE)O#jl*Q-W0{DhZi*1@Z3mq
z<aZXZtDMm!*XHMx`b0%`NtV3Af>R$GSMp!dSrN$6_)O=>!rBY3URO*x)~IIsM5WE4
z<%xsLhYSfVo=v+R&1p@!cELo{bkWC0j7vK#9*8D>30(0_)H&73sD4BDugr6+Owtwk
z=098GRV*emZH<J%WSxM;0dKWi&s6mFh_JOw$nz}c;}JK^J`mae!@&NDs_ui9rteFY
zlzyK7!RW-$oAqR|K>L@2o1}Iv_z+(F=j>_m_H<V5=s#CanJ@hwR`mPmmP>}wm!&T3
z2+2OpwK}iB&9S`s>chU9_qc>)*wU|jPTbMxW!K$glN;ajusK!r9_Owwr<$(CVuf3b
zmTh!AQF2)8^v2@wMO{lZ`i@Dd+&#T>r%mrwj>(s;S0|TvW}n*V*#E*QWJ=8DT~0Bx
zgDx(*D(0o+5PczI@k1$90Zq+yOSjs6aqHFNii|yMvMwU_aFnE~_A<2q_Ei>%0o)vW
zJoitC3JjZ6HKio_xZ};2D};)*^YvZ_s9t{-5OexqUvFp7l(Y$tryOvUH4yf>WSn|I
z?9JTSGPkq1pH6V?kA12#Y3;Uvr>$uLi}&zuVHI|MZKI*flIpa}ac03A&A*lNF3q2=
z@VAn4*Y>$t8RxbK^IjEbSlPC2qldQUPOVN+>4G_Vn>c>!h5q^+WEx#^AZXW=h?i17
zE(mQ7=H2z%NcFC%%hK%fSx@_F)g#wg-O-%Jf9IUblm)7mj@Nb6Uqmf2x~epFWmM^c
z7B(e*m$jbSD`TTP-xhsazgWX|z4Ldr(gRI`j=#3DO=N#&eo;$UO+WBlvTmsA#<Z)9
zTbIf{pX6V8@%oux54xt;9KLtzVngQ9%(LH?PO@JnTDw4I`;5Yi^?GwlkMA{8-M)`A
zH95-gt8BG)oL%h8|Lem}9lv$2E4;t`U>8?`3u~pT@B4iU2Q5X-lMFmQtIb|GgUkDf
zR^#!7D|VHizjx-?nZvL6(_<#3ZjA5@y2!oKX`@%)ea@NZO)n_j@{{&DnY3Q$v!LoT
z=k64qo7GaK3t}#63Fq%LKe|<9ZD8^<!QDa`UalKeGjlz|qB)9J>u#CPddumn<fKQH
zn{GMHOq<*Fe5I*nS^uQ$T90*+`<-Jp-*S3)ze;XbKz=Rv(f0=pwmx1JHRaPe&r{aw
zFP|0n34OMivh9hI?Df6z&x+pO<0-zXXl_~ibQ$OCBBs+(vYW!%d0sWlh%R05cdMmH
z;`e(qx+^yt3r@9anE7Id_A_Sx;LaruYnm>4Ol<VijLh`bESjWqt@1&V|HgC8lNO~J
z9>04;Zi>-e&YAr`J-lXiT@`aW>t{Me+v$$e@3>1W*;ABO3Ve~<ek7(p=HT`KEAy!i
z*?C>rTTf_gnzqbm!!@1bd6zQ7UPo8dYkNFcpgZGS<b5Zb_5&^7wl3k^mJoPYt4>k7
zG{dp$$-NJsj`v-v+_L1jpYP0s&Fk8QCMmJr>gt&oZQDA@D%>YNv;VR0y4lk2!|XmK
zM-`s)SvK|A(!En{I$xgdJMzGXTZU_OnugLv$-D`7boW+NZCX*d`>5ovxaD_h<IXOr
zF!hbUrNkY{E0Y|sAz6oO<BG4!QLGC;*IRm=DV{!Kx{{&3Gt>5{L#cdAKgGSAC$(FB
z>4I=ur=wdFMJ2w=uHBQ#uj3)==V)Y_S-D(g>(f)uS<VOd73I7Y3YzHStML9X<B7eJ
zm*pmyU(MMbbNEvEwJ$pjs;2nJ#$K{Dz5XoV(>@_HMjQ5*Hbqm;DQB0S2$Qu??(TYi
zop08LN!jeaiE(SwozAQl)ksZoG}`K^ee&*?XH8|73R7RpZV<U%x+L(&m7H`TCc9>%
zMK-GExqpbwnYMUJxo6P5a9+!W+2Mz_eLq&R{>08DBALn8#bzdCt-Q3)d-Au~S#rB)
z-`jK0Y|4>S69U~OgI`u|oXDzrasl5A*#;|_Q=2*0U5yaEzUr#jsqCQ8PwUKnJZZ`G
zdf+M?W|An-5agz|eAcZc>8q}77r4I5WKq^!_KUgcN=dJ#q!r|D;Jgww0YtC7ck$T0
z8NrTE8c!xoYT3GmQ(OIt-O~`w-Or1!Z`ry1GS~WCb$z*o_O|mF{}$d{_xdCEm*c{(
zMUShSHvgN^tXLm#L-^LlD|MIt{=V>IEkpE&@&`XE`qwhn?zk)5;Bad)rvjr@j6@*I
zj>%&7A6{rx>dzDqc33cXVNZ$@pK6xfF{YknQZGzp6l*rEU4QcrV@G4vjcE3{lW#{`
zirtGgZcVM$c6B?t<x)s`)XB%%Yi1qn(mDF&=#u5qaTiYuu^Gu#NW=!3@b0a7X0A0U
zX~m{;pR|ly3+8RwE^74N!Tsp@jH5nop-W8Gb<gG6n)Rgd^}mf}C%2{<9>3??y(C(8
zi7Kb<w+(w&R(i}kzb0U}Ug5jFFVEzMDD4c_sd?aeD~>65q3nw#HzsX*+pC`L9cDIV
z)w0{CW^da*`$^@dZT{NZ6aKV&{qK60dA4C)W>o5-7l%*HE=zI_H=FjB<v{qK_Dj=v
zUOAZlT|Fsc+p7cGVzDcewoPWae^X}CyQnD+o3Dz6EDN<bY5w5O@|4pPggx0x7dY>o
zraL1hy7a;8$(M{pKk&^s7*)EUi8t)t9`3~DQg;@di+mZi@!rFd#X)E8F7@Huqjqwu
z)zoFv)Iv9!tn6Cq9jfEJ>yFVAme{l@Exy_Tx19C7&ab{IW_KmK@p0MmtJ6NuYVQ8I
z_t^vH?HifjF1>ZKX}yzJ>O#>y%x@K=cfIUeyk%0>T=rj|t(Hh$(X7pyYow4ZV4aX8
zpAvI#(UmJ=sTSpLnYcr9u2lxa@SkHg)K_2sLsS2km)IPEoHuK0EKhz}np(qJdA2hD
zL<!T0FH5HewuYLDY`ive-w`|3%A<$$!uGB%Y=2|z6aPj3auTcX!zm(16+EN1&aT;$
zG{xnp$kQ91tNhP|GR60uSG5*f9511JFPr1vjjLJeYTc!$?ydD)y|L@i?;Szk!v)<g
zR(rhNKUr=5$_2VR=4WngH4?rcX0<K5!f&PfBsoRZlhdX&FS3qoKQuM3OJ=vv(XA=9
zr#8!cJ-PZ^{A%Bjx{Q3=b!NWj|EFJ`e(#oPt>z)4h{A@{sFwz_GM6^{FB46-VV=1s
zEA-1cg@<>=U&wko$^|>lYm@%M^(tge&q1SE_hh!taofLR&noSXYR<B%jov<Oi8IWO
z&Y7Z<xBl0=Ue^;|lMiHvJ?hx1S-IxZ`q>T{nya)c@5WtC_uekmrTzGDLGQFhX_G#&
zl`1r^>sqO)cJzwK(!S*?Q*BgNKGl?-XKvFJ)bu8{%Vljur{V{xDMu!Ss>Pkq@=7|n
z%K3P+b*+Z5&$Z$Yx$SCCZI||{UJ%>$HsHz)OP-^jWfljuS1X=o&zstLKCX<@CVJw7
z;$GLqY{oqE@>hl$nwo2FytC%@!rxCLBQxY27n$t}YR_3NWM^}Es>AzM9r3Nzil<rQ
z9AsaVRZTw-92gcfX`;kj!;{zEKAhd+`s+&d(o_8IIY$n1M+OCZPc{ovP+8cN5X!Xu
z+~bnlj=i=|a{|_UUXUs%TNxr<8IUhs74&emN@d(Z>ww(#Yj%Xa4LQuXtfxAAs#w%o
zs|#GRXH-k}+nn0yC@b(;@ac^(*%fbueZ(TZYqA}^vdsA;+eYTKro5`}r>)IDxWGR8
z(2F14U!U)nn-$`Dxpdv1GsnD(w_iJaaeDddmk&<wo_gAGR+v_E;<2S$V=sHnTDT!=
znf}RRNu?gMwuQ|I`W3KNS?h%JBb&*Oo-93O_hhQc&ofcKzyCX7IP2b&nJSBIOAOT5
zRgZ10*RP6C{9yL&NZRRqty7{?7hM0h_d%5Qq-<M{bzc`vv2N0PpfoGA?J?Wl1=VJ*
z<y_awPTX4_^eAO(tG<fQ(XCT@{s!D#V<H+H?zfe3`ERb+jj2mxm_A>cx@=k0lN-05
zs=O}#(e!gl@^>{u`N%%oT_Nq7cmLn|dw*8pVk;@vWqUg;M6QR0J&E?*_R2x}>Q2qd
z=Q^T4wN9<6I{c@3hB)&aKG!SDTsFPa{t>pRNGtxH_Hv<?$Xvz7sN9E4r!K938u{c#
z@UJUEOZ;^M`}V%m{t>q^;(GH@o@=$N_n%JFnHjZ7<Yei=7{Rb5@w>fryKn9_k!)J~
zn~SMpx?{x4qE(vCRqaVzTi<JYw8t(x@<)q9O(vW-c43%fw1)EPO_8T}H|_B^=VN(R
zrnj(!pGnwCM!|POlU2gz(Dvk0stx6mveyGuKP1{3r5&_dv(jo!rrDZ<pDlS0Nomc{
zIXsIkk#}je>&3m7Z11x~uPb^}bgI<uX>okw&&sT*pLf<@J3QGY`t?J{d3*Kkk8l2N
zn_B%o%!*;@v9)69tEv)yeNqO=a>^a-&HJ^eU6M`vi^Am(T+E9tMb<yM^wd0RhOJI)
zo%!WhW@VRKI$gnq#!XxoI$tmOu~Sd+2TyD}drjZ5q=3aa8_iB`6`NA!wwkl%k=2Qf
z)zg#tmGf>TNrx8Y`YhEccY0ow8>{%;SNrIKoNQUS4}snbbdR^ZyW6wdF;c7O)U>=R
z_vN04R*7V6dR3rxXw99J{z-WO>?yB2yhJC5vfopgJ?Y)bxg{N4y4kZ&U%w)=v^M>1
z^rov~R$lWax#)U+J|9`NEXJhZgKoRhnM2FdW@u<UpJW`e?badJy=#tSJd+Xnv8GG+
z=ql#$$aPt7gq9xG3-nrZAg1YTq?^|3z8(JGcPZ<=SXcB&KlI$6r6*VJFR}bST~YnN
z(UUj(%~sVc-)Xk0#y3_vbl<XT3hDo)miAs%+3URZ(=rD8)114aN)PbtjVgWcJ#&fs
zx=^F9RkPhPvT}_+t%&tA-721%EP6&hkU7`!%9fwzx&L_2%wJVDH|G5EJC9HMTOWLE
zverV|>}t8I(EBj0j~lmNy48P_tN8Dx?M1J)Zx{N%>ScH2Q-jAz8<TE}&u`zj=g^(Q
zpSY&fy1Ble8@q?yE=^o-`C?H+ahYjBG3js292K)NwepVV9A9?F<x|ewjlwyR#)o##
zd{-=XQcOELNsD9lx!=(fWiGRayIxncI=D6S#j{szk&OE<vy1=Ob^c{?U8u;t>c^g2
zMV{PPsm<&a*_9%?;#04RsBby1m#k0*cjyAIQ(lw4N^kMKw%BE@^q~y#T#r(ZYvmJ;
z9GjBt|8{A!O!d|EpF$0@?@v0o-C@(r$uDIM5BXnn+E~6#Y2g<~t}plWJ}qCa^fzi<
z<jY%gXYbfGZT1(w*Lo}8e|z^=Vg3fi^lPOo{tL|7o!<J{#iT~1zo}U_RYU!L>GUh*
za<BDP+W(!V@_f>yrz|yl8I&vb<u(7Bd~_G@EA7j3Xa6YKu4ec?a#JdcrqF7>nqztz
zzxSEf#FR#Ccig_wuy(^Mhr&(M%6%_6t?si~)oYWnd1b_|O#2g;dM#(p&8o0JaZ38L
z(rej@-7CCzy$w0ce}t#=R>vtGEgw^j_nMDCiP^C{3p}~I(dtiF>fLO{Tb;Vk?|FG|
zIJ;%uHs3#Cm#4peF>_x=pP05*?6QJ9F(Wngg9)rro3Cw-=?eSvFvx`GoWvfVW>MMZ
z*IcVhpBH5xldy4fEsWuMyvb_WB7^91z3m%UmaUVVo#*>(k;_&s^PhkA2}{q{H9dW=
zRHN{yXzY$pUAbP{N{r3onj_2gT;B(7@n!3@%;09*rTF66nuhzC6IbhMnz`PX`~63<
zy0uvv|ARcg(1LAgUfn+Vb?vT~V@>adUcS2|I<mC7mN^beux2gxzLGXYX{PJOr}s(<
z8=nVE^(dOr^)6>>=QlNn=og7TmIt5Ad3xjMso9s5PF{&w>Jb(h&$vf4mF;F0_uZ~n
zMP?_Q&#`@9)~&yBrpn#RA8h_*HuaZq*j+1%|6jU)#=B+L_gX%_vUSSmyR+jabT2b!
z)4ynT`R|8>Sr_9|E?ZxeTlcnCY`>q^&XW7f^J>pT2j)b&ZoPLlV9f`G)>7Tm?d9*o
zciy<u&JgP+>dl?+5$P9j={j!#kMQ+{{_;Nzf(|Ty|BiQMx$!l#S+Siz?iCijTz4_4
zZWYfTS;e)xZ1=f^23S;87kK2XTBsWMR95qF=#1mj6W_)%$*cS2oDDv?p=rX4KheQP
zIUBVkw_Opr9_APq-qs$It-EaRYm*Cn%QKI<*u7u7+{*ZU*qX~1eByWA5f*u3I(J9-
zuC|xnw@ul!ckK%n30rNoy#Ly&b34EO6P~@?>CL@$A6JX195z@t!@$S*?z@dE0?#rp
zW{t^M=Cy0>w1P{QRf1<<SrjVdxPWa|Q>3r?fy~LLU!B@`q36L*lUE0(*Y_BGd_Bqe
zq;+KKqs>W<hF|Z!`KbSW`HC0&%&TL3_nKG#S;ZO_U9nqDbDPQqv8ucyzj(FoNlw|e
zL~pO3)TOse5?}CD9Lke0USK7>S@Xg7w{p`rgx<cauG4H4a4U(mOR#JbpK1C@P;0sU
zVAG~aU!^)3;!K`x)$onoYU}#m?8yyVP43vG_O-72%8P4ut<8UU-DBAs+sRLMe$_3R
zbNbgbhufy=m8&I`&d+B{YFfE|N|OD8wG*TsGFwfxtMh7)h-%|ENPY2e`5YGS_a7MV
z*+?-w6xdU*P#h+~^!U<*2h6u-FoxAn^E=CX;n*6+rOvyRSS_4S-xgI&P&^}M`g#AO
zQr&&GR$rT7)leFf#$dv7c2Vns(lx9i@}gH=v@CX9583j?kumDmHl~>L!gZ4WIUk)Y
z@X_96`)2K*JE!k?Deime-BQB(^A`8*Uyt6_8SB{=B`Q4jvFbXMb*eCZ;@Y&BE>q_~
zmiYeD?>87$?(qA+Z?<Knfzh)k2RVL5+^WxB_T=Cqx0BAHF_B9dS?*pHICk=I$fKxK
z4b~5GDp}zcJH9S^ve2`U@AB-)?V6Q#OZnVa`}~ne4Ef|2Hq)Z=MAypfnHSSvRjt0T
zygGE{7t_+IY&T|UR&JOP{3$>++96t_(tzpd6GiP@&oJ4(^8c*Y+rF01u<=P|n`7g{
zYSX@kBl>2ee*|0Ug5Cea7EG}zS<06k?3}>&%HgDQSlFa)lm9WM&$ep&##YNM+CF!Y
zMdgZ9PM<xzCWe<Oyx6v{_5DBfo7G`QKPT04tMgx*AN;9c(snPoH9VT7D*`z)*Ixad
zqjz>v*GB*8TtNzx4zwhmC|D5Def&kn-4owix5Np2@!i#yzv<^mCbODzkq!RmC$s)I
z2jX!&*E#U~#bnkWLY12s;ve{nJ@7a17klvf`()N1UY}DK_q~{>lh9mnj;Tg#o{j^{
z`Es!jy4JgEoPK_tcjMuYOV_F*Ues@&C-&?9+U2eP%3o(Lyx+d((Vs`QV&;o7Z9_iZ
ziu&lcW8w7VuW447x8_+Ju|9Sd+^QFsv-f4m<$#p6Q)?QdCi29l?qT^LC3^V!PnGy-
zuWKer?Dq96Umv7$xTyD3g|Fw09Inr$hfXZ7*4>uB*I&Jd<%7!Fblq*-4=lA~y~FPP
znJ|s<+{aB5&8MqR`?mew%}<s4?%fp1c^MQPWX`nov#0atnyh*Lr;B^$H<>C`wP|bn
zo{fqwnzAo-@8+l7DY{pGGo8Ivnex_VQ>fa$?RQ0kjWsU6Y?-+JMERDtzh38TZGD&8
zP;Sw7IseKFNj+=##3>n98&`{;mRxsavirY1v-X``QF3?JP5u|BN__2?F7STK(3q#k
z(%{gZz*XaLJmC?$j8%}MY1`(%4SbBgGE9nR807;r6BE9^KYlU)rA6VE)%xo#ZiPMz
zm-*ZF;K;>wPWvBaTrb`KC}Vo*dW&1>cUfLm6mD6~08(=(T;{Fcuk{wUmOc`7-);4+
zYw`Yt4A~P`{I&AuC@XxckiS-9<Fvg~<vgUSwU1rA{N?HDLxGKP?!nvcl}xtqe2`tb
zvr^sQ`o$@0&0W_xE}GWuvet!j4-e;_s6#70ta<6%SYsTsIQvw#<A=LG?$0(qxfLb%
zp_1>@vgfmOqYa9<x0%mf@qSaeiIDZY72gg0JulTB-~I1KSoFEm$KR)Ql`m~oU9Bq;
za&1*f?p+nJ1JRRh@{e`A_*ZIvU?<0=kgh$aByw{cb7wk!s>$l~JzZ>75P#*yYnQ#}
zujEYajDOA1^{#Z$z3bDeKi)Kbkh8V5>6Dacv{42(+tje=9X%IAZcSQi^}+X1<%3y#
zT4$deQe2u;yfN>KfS=aasL<eAyLIhaH6Yf}8`n7Hn>?JquRPGNe>n8P@#BBuT1t<v
z`)KlU<&8~uFLre2y?wkqWS7;dzYPI$1}yhka=$g7&scB!`R6Jh;X?P?8DTL&yH<(p
znQfVuS#5mGrTmW3ULmjYJCB&-g|B`&_47{Q=`X8f);9f&HWoc&UUIqUT9Mr4)f2aH
zY2=+1nNi{yVJ@_A!YclgTR~0u8K=w{S0A#8to%IrYnaON(^b*Ntzxc%+uj}j(Xuq>
z<uTb?Nynb0A6eq@Zt6DkEDOhQZJ{pNocvqY<-8`opK2DK^m^0019w(2+q0wvF21nH
z<3VuJKE2mJPfc0-GdMr@pX8bO*G?^2w>Ega-QAm2?0S{*DeotVo)700zQ29Vr0>#q
zOCsN^yuTkYp=x)c)~b8;UXD}KT@P>leMzgvVe4h#8i%WwXa7AA?f2_z<MugEvW{e1
zo?QB9>zpsV_x4Sjd~Z+bw8=4{tB%y9TfXEy80lB^_jI=9$*o(i7fm|7>w3|o^Sd}N
zeVjJ=j^^jBbDl_D&4#L4S)r@G)9PE4->){NBeQ>A=lrYgbZB{L-m`r90NW=i_74gc
z+~n8jkz#0cZu*(n5nUtAB9p|#SMz|k?SUwNi$i&w-Gd2AP7C-M*z5N1%(Pn~lfY3Y
z`J7pF``&Ivt{2Q_pNlFKbczI6b{z^>{Nrh0g2;7Wx5x`@u@;jw`MDTlO?X3HW-n88
zkzT$~&g9{FS;qMvj25Z=*{S?MI(epRwAaiPP9<h9);P^yzL0nIXOkzl&l&UnT(f$`
zv~wm~Y76GIZBsmV`NFq@l~SKX7c7!5Ubc|;P^HwTqu+g;rCUCmJPH2j<GioW_VR^t
zkq1^wi*4h6`xs8R6SKTzTbNEj$hR=7!^Ypju6#@UHP7$y?+NRDKHv3v`Fm<+-r17r
z<+IYX>a#qay;^bii``y_eWuC3<}F{OEvC$4CnPU&KI~%%;~vR*LBH<pI&$aKuOCN#
zT=NNRO69)Wk=wPQ)Z@5%&fCnKy)RimExM9;x8v?C!=L_c-IbRQ8HqmbiYdwOt-QFm
zJLG8T-7tf#UZFnM^e@cvFwR+MIx$Z5L*B7v4f!S~uNbOcUt{#~lv7yRgyxjfR)+f-
zmn+)^d*<xjtI(j{Te&Uy@hlI{P305sCFWNC2%EHeqWScHev{sXO?4=qY_{#(ZSHyH
z&Jt@oZ*;a@b2;XDugLevfybhPmW*q{U(}fIGV`f1k6P1zEMRTK>cycwiGhc?jHe0j
z@wg=VA=Lbe`kG^toqzQ1xT5+^bo#ESuU+1;dHWt+GG|fOD~&y?tykLnPIUUOoa#qG
z^9%iBUcLIRtylWIF+Aqgt?Sx)wax{Pf~I$c$Gq}0TfgIrG}ng>+x}Y3<U3Sp@jLJM
zjgnhsR>hNZt&c9hFkk7)vWLgr_0C%JiZLfRa4R#mJ#arJz;yTDpB85)jxUT44)l9J
z=dY=_W_!>1g5~^Aja|E48YC7q=@sN~3sgk&Zt3;^(_r;srhJ0P@f{l6dQ(@P^kH1F
z;Dow@=#~Jso<|wxnR9(OBYjhikF#_96c+s{+|qPuNjU3;0*!Bf7i?L%NJrxzt6Lz;
z9lIa%uU!11!Syd;4`-}|`yqzLZ|s3jEu{V(SRuo}<bFhcPfVY@Os1Q9*^c&AYptJu
zVr0q^5nt?hc;OF=%+KdVOND+06dqcr@v}MiS(``D5}uTxHFpkvv52yJeR%n2_uD3?
ztvkF*RwpceKkd4%|9#EruXV1PnZ-Wl@mls;YWaKZ(<Unt{{%P(9Ewu!sCgW(-m&lS
zv+zA{grYNNl|D+HK6`z|Pu_!_(_`C1zyjfF>nm<v?FirV=2gYv9cQ|y$6hp@l{UBH
z=F&wMO<o^4eLtXKhtZmkuNkb^CTG8Vc(*5eS@z4sigv^6oh!<XbCuIB&wkyK!dbJk
z;o;oR(ds+zpRJjfHEUz0u<7Z0wkJ03PSkqeCv_!5u`1$<AN#VJ2d@uIIlomz=X{~O
zUK*zjE9W08|E*t_DXiD7yuW&$-G|ky&Kxtn^=wPd!WZYi96Mfc%`<QQ^Vc?06TGE`
zKIgeKEv*WhJE3<&@Z1S&XZj^e=04nfBXU!!St{G>q{a7t$BC5gEYt7W^(jt$XYHBd
zOUde|#g5$BC8sy{9=}lVM-S5v8+zVZU3{Zlt$$(XjXT^Wdh*wI+b{aQVa3D7=Y}cy
z1?oR$T$*z~`HJ?Uit1YRMFn?{XfG=8{VN){N6|vCb#>MHjzeD$uJ1Us^;Eda$A1Sp
zHSSnG5e?k2`GoeOf~~Kh%Dj()c#lN`Yn&P9ZJob*-DzQy2Yc$)|ILxVa7OL{^Bl!|
z(W?3b8xL-f4|oyC$iynYovTyv-ImN|hvmyIw=2Foy6`)D&0}tfquKTknI{RKe6lN{
zsw2JdguIfg%49xI#l<iFh5s^O$r3sHcSYcyDi(o^fBGDZ%WoRl8?4&KA7UaPc9fB~
z#dV?sd*a8(lVh_(q%`uX?#YR=$uE(3%-quHe1Y-9y041tPnh@a{KVKUGciy?)}^K4
zqvI;~%(_+HU*8=NbPCg$eoMse^+SjG%b)I&QL8Fvo}*{VtJz=r{N(gwS~gGn_lD{0
zJAC|k(B%Gi#Vb#`|JZru$>KjTSwbG?HyfVLeE%)!=k<-zCEve?XxUZFx$>KN*0-j=
z4+7R6uRCyA&cQ;4?U%t3WBs)EG4VMK%y0coC7Ql1w{lwW=ch0qv*HEz24>YCn`<5%
zuH9BI-IR81)yfLrIqw9{e@vd=_58<2w#IuIezVTBSe?Au(!h1k#IbkL5o>0aDtC?)
z$IEfL@&zkASf4(B%e>k;$kABaVS(`_=94aAi`_21eJEhM*eFv(^@?Y7m|N>Z_TvIf
zXS-Jv?XTvkF7^spC3|+}xy;3F0iIbdvp?mBB<~8g*(xL!#Nf4gV%KNKy!)2oR|K9b
zY}dd4T;Y59lHkHig_la>)3t8Cw~W27Fz0e<{KokuwbGB~to!|_`cmnAoB1Vo%cuJ9
zdZ+E6{MlytYw4EaUGIV~+RaS=y{~fJB(<e~tycS17MPwj30J@D6W)94-kI>`!}rcy
z@A1h$SGSp^ZmvzW`DA;(w!BZzFJADCesJ=_S@CY&XIn1KRsA5O^5J#OdjIcHFU69>
zy>F~c>twj6lh_eu-V(SY@#$H2@tz|Vo3G@|RNr<&_3rJ6d%xT#AKD;a5EuH8d6tM!
zO@m%71Is>n7LR{z-s|03DwK+Ct=?%Ls4BT*KKtvc9r_Qy3f#LUt*)W%bnEUmG2efN
z9%rIoctz;e1>0Y<P6^L@Q+X_B)=Ha9gR@U0Pv1KeZgBkGnRyq#q@9;g{g8d~|J^h5
zE?zhb#kD#+HzfMaGxT~;>G9yYX4d?7A+uz5M;$t0%*MGV@{mU3hMa}VS$aHf6iOZ1
zvE!x5*(Vm0pWMn}KeXiW9_4-8t1cCVY?YUJwc<Aajm?JyJc=rVYNo$1VqjVy?fU!R
z`>Jd4vghVq4P9`1^RBe;wI}D>u0DP7_U2u8cG$k&{r%$RT{G^_yDEC^ZRGxg$F0NH
zJ-ohA$l>|DYd3Cvyn2@JZOK&qTl{=adEc_fXmBVLtX%LhvBNs-zQP5`m%kD_cmy))
zU!1#pgq>C5<kkIx>~o%I1vTd1yW==z!J@7FJ+B&6@|S$&cfPaFfyeL|d!$c@gi7%t
zfhP+CpJp&|#GZZ>$$v*7VCvCTNB^#2&y&CKQ8q;4h+=)f@8?sto`1DoQ^Ib+CXWN`
zR!p(>9>$?l)PgPstX^p&<a8ilf%0lY0Z9!Vt7)G*1BKVl{&rHp)2jCK!PBW<ief%+
z6fS7;ToG8(@vFJ?d5>O)|D%kxb$*fDc2gD|og4V{hk&V)=hhRm&Hmp>@OrG|m0o*+
zdwE*dqtxJ~4X<4$<-dG->T_-18sSU(e6H0k*1x><zQ!>*vEn$5(BRKj4sXA&Q`9<>
z{bQMkmfxmxOe@#diC#S)sc=_ej<`o{eQ4nBIjlkPDWbBoHaonUePFZ0tM0uEt&7Aw
z%sHO32F>qsbG%;J_{Ey5Al2P;cl*qBZ{Mz+dFV*OEW?1kO3%xUkLq4OZ16sfD`@gd
z-;L3ILO(+H6}<M{m^|sgdg+tz)4FU{Cvvm5Ixf1_<+9eDa}PgfO~j#$%%xrrj6HX)
z-S)w_r!9|bzf-7<|HY)f#^5<zpSP;L-JE*$;=NghIh$`Cx~emoCGO0Pn6pOO6W6HU
zV~w8m^6XU|-o*B~v7J9R2rV`^zsT+Q%4IBes?Q|1ur_bj))wEpHUH$b?Ew+fRs}to
zvuu%ddS<d@4F6ZTuIH<{zVDv7Ix=dz`^I~o_lmZ@o)>&CZ${I?AHlcYZtj0j{8=;X
z<?Xzk{awF;4{q*PP&o62vHkan%jFiI=Un+@2_}LCbDuAn<{$po?w0nRHTN{vWarjo
zAFX!0{&v>dnPT&9-8=KS^2Y4SizmM<)BL{cqe4Uc_Uvu<wnT)ed=UDc7UyY{^DsHt
zb5YoAm$j*!d)PVmNFVyJB3&l%QtsA=8w^rrt>j1zY+37W{%7NLu`TC6SMMr69%p?e
zI{(fx&t>NMmwk?2+3Kvzq3!6IGj)d0f$R{Q`1L1p_h#0fU|8O|Bh9twR{PBxMYq}o
zZQe&E9sV>YugKTZOhedqwxDQm_{;41?_?HVnr1CkVg7hd*4Ea(bx)VwnB*A!;l`}1
zVpdzyt~MrduI4*px|(nQ=2uA%QupwOu3q#sF063k-szz+U$t^IR%?e@{*>7M<wL3$
zfBdp9A57=i{K;ow*W0!J!2#DFqB1))_BS!hzf`yQ!FKEXrneu?IiKZvyCYCQsOErT
z)87XIDmVD~5}W=uy#D@#-}%l`{d@8OcW3eBEI4J(`s0BAekS>fR)&=iK8wn?y?A(7
z;Jahd!FD^lf}$Fw;${5KJ}Q%wTGkYLtl*b;xP;@<lULRpjOs_fI4+*Y9cDMvf99*V
z%(uQVx_#t2^vA%()$QUo{s|{<+i^5*tDO+IWm?0UWnUZod!#a|w!Cfj_%t=w)`d@g
zMa8Q3Kd#M9{>h+tl;1+dMCR7FpAY1V+~zI`ZCVM+dKHg3CN9a9SD1WV>OkX%ZRaE9
zQ=Uq{n6$Bq_fqK!v6V-|FMR*>k8hUHQOgxh7A(Kw;yydvKfV3ZmSC+H)fWw?bxJv1
zEfH`!%x~u-V0!KSsd8DRTT7~~T%O!MYvuC9|ITZHiR;(D7PxrrcS(oGhHTyNebw{%
z1b@z0@9biyeqC|V`wxXW{qN_V+jHsHTG6z{+Sl$zIkJSGY%bTHFMF!m*fss&w_`s(
zc)hxRcFO_*-n1=2lXCL8{+zk-$05@AY)zEMqA;GjA%@RS&31X8)p*%*v7X`nO%{!n
z(m_eKp3A;z&a|4vVyBz9rD2Nb-E8L*?EB`Wel_$r)H)MvlCyA!VW{fH&_gw^ea)G>
zWp=xGMi?dsZ^_u&+RstSxhHa4z#NMyM}qo;l4>=4W7p5m-Rr-8KIfUW$%`sfTvRva
zY;Aq))LFT0U3-$#>naPSDSpMGiubFMO)_Hn^%X=t&3DK}DNd@>y{=Ok$D3I5;doVh
zuwYSA_nq9Ri}%g;2P|y(7<^9f{KM?~CiCyA-8Zz^?Q3^>Ube2?<$1gNnA$l#{(W<t
z(`)>^*<zoP4SS*4mh<d|W*i`Hc?I92A7!6pj(qf8D3pJmy|89#4d0_2fphGIH9zg3
zs_aD1JIcf}&TF=~AK38vp673_#CZ#PuLXX)<`{hF-l=(o`Db4+9=qqYO+fUC>Dj%%
zFRfdf>FR4xd-2FDneCyi#m0{pb(P%~pL3XN+P&JuX%cPcS5#bn;M3iAUFfr!!Q3sI
zl#@l$uQoHkUiKlbdbOSRqN@T^j><;tKD2}Rb-A(pq3e5j@BZ1<FFBhl(&V(*uKm&~
z*Q=)4?7w$GU`D^jOSxIu#u~39u2<Jyxpr+ef6d%2p8~xNPuvS%w`-x>>6MO=2W885
z3wc{=RxY=hdgPj;&cSI)m37DO+C{Ira^<VpgnXCR?>6XPNGa|0E-6WETJ5zg|Ncp>
z%L^Cnd=z!<)ReVG7vE(}smrzf_gHw^<R?F6%YP@Qznrjn?p}=@TZKj1kGXQ1+}7+e
zVw=%A;km8ngV^HSjCH&(gFokZC8?e`xyZ#ba*BrUhKT2mip_IZXskPTsc>z02TNAj
zqE!;FL^7LJADXFup;R&Pvgwnk%_}Z?&knt0J88*nKhrtqJ&uPu$SNpBsot)=9_$>h
z7O}Q`L5BR3-k)qNYCD|sp89g{isafNW^AUb7QQlj>nYEowZ+`)w(8xywD$9Xjcb3(
z^YM8sYuck(d+L-^^n}YX-9@vqFJ9=Kw{q#^(|@O!h<?A9d^`H*rNuA3zd!sQR#$p%
z%cNrSwH5XnD+{|1cB$MKd19(8`u(4$VXb3g_>wnCS9x6-<6Dg$FFG@Q(=MYZYsq&z
zHfzmEp1^!OK-4}-!t2QQxTCwx^Ee{DKJ4-K%8HG<Im>V@qpam!zmHe*@A?UrGz(o^
z?H{@6s1{e}5_8Q-iB*?N7bkw{Ic0cOsnLI>_sLbv%R_=0{jXhBcvc?tC2!fBmEI2)
z@LgHMsXfg=%OGP)=Qqz+?DiV659eO{;q!J@-fK&%P+1wFA3mp!y<2l!_02uMg22-c
zWLI2En08?DmPtJK9`2a?fLZ@q_+{2f%XXB#7vFJDG5WdV($?8?)QdI;%iAwislL6k
zNiBB5cf+-XtWiz@Ou7b<54OlmR(f+TI;QbnWw$lE*aUO6l&E`0Pf0(%5wz53s+#Fm
zld~Z+cvtN7KIAr0N%E5N^h}P!SLY<9Gk4u@7RlK9&G)1A4fDL_i1PE5-XS?FBiYop
zo~T?Sc5-W!>h-LvG1*2HYkk?&uKJ0w$f$9<<f`1PHd%V2H0#Xs5S#s*<-{wxg|@PF
za<siY*|u>;;Zm)}<(h$~jVv;rnzYxQ+OcnoLrTp1Fst<4+dm1txaSpo++gh&rFoL#
zU-jOu-C?r%k^J;U(?nczwYqjKoNlCdS)A2aM?G<x+%|omOP9ad-hFxBD)^qTk8!Sx
zsOzU)m;dMW)l1cSvDZfBRM;<XK6#3Z^WOUZ7Z|@LRVC-_7CKU%zv^rH>`Zm#8ELmp
z8tg6HUl*%%yXtb-(SVZm(Me37!$hLrt+-Qt^_fCzDSylX>EI;e<w+rZ4;#*2%SrVp
z-^i;w(?81lL3aBC-ajQbtFqge1<MWIbXjaydATj<fV%Ogj{Cwva?Y7oWdHA*T_|cH
z(t1|*!9LHU28N!J(^OI`*mu}{D0+0{TFg`)ZVt|Pm90*Tp8HjY80`taSG(@4aP*Zg
zmAOw!x0^h;C3<gGCgYOXX(pEizCU}suAp3-UpN28-CIVlcPwS7lU?vSuXb+f<Fafw
z{ve*aF-Es8_;NE|P4b)S-_CMx6-(XOk1pE<K1Nwqlqclh5LN$_>S?#h(!KSKmhHo0
zrRge-(={8f|FQKGdBE~k#mrb{=bSYrS-Ic#&enXZJ1uaAteCM`?o3AY3z;Fkm8VZl
z3cK`2*6!GEpP2H~CQE<&-1&BJr_JMUj8X?<1-B$G?0nmtWv}pkA_G(S3rYF59s0hd
z+f7ad&kN)UWboYd^;c#`m0Qrw-?fQf@3#8gSi0!qIm@gq#zJ)(QlE3TsBdUWa|_Xm
z+QzkD+Lk}Uf=uVm3SOBM)-j=UOQr9c#mdYltcpY~*B#)_P>9zv>zL&)et#ktpOam{
zMf;3@#dF_)TBo1>YA>mgVR}35&D!P6%imwS+<3WM+o~()SCCr%hDWN7m%XfiEt~51
zbynD!C%h@Q{;%n}r`>w@*CW34pb5uACM<u*w(ifll@>c!ea$&L<$1JU@Vxs|6|RM@
z<u$H~xNFdJF7?@x6v54@8oBjmoO{w#`?mglc{(|_K96Z3>$-JMwq||j+*Y!B;f}Y~
zJl8MGUH7QQ>D~f95vGu%S3>)ar@vaY@42z5>dGgpW%|!=wYL0m^-THmX6SOJi>a#@
zs7za96c}~6Yf{9fR~J6YMaZ9Gnfz5|Pvxy8dzNq6$a1Uc_w0o$HoliR{`9BT@yDwV
zYaLf^h)z|y5;Xn5W>L<(1hHPJGX@eJS69v0CDy`{cy^bZmD!Z3t<MBivKDKXo+#5&
zypk5q6gzvlU6!iH`UnTv7bh~N!`3so=HJ|9Yw$m4iT~cu4)!t|1=;skX`5~}$xLQ-
zniRZKh4GG6|6x%x%WqRQJ8nGJ+~@b|#Nt~gnyYSKn0#)r+R4vc_ZXdBtgl`$TQE1v
z;=q)`{I!?7v{o>$NNU~5vfcjnl#=f%FWXkKeczn>#4((^y{GT>nyzeJiO<Xbo>gdm
zEw+a9(Zs;jJ|!;<Pi3rMy2fPdO`o=7=PorwZ?jpx_PW;bb;~Eba<(&X3g7j->;Ap9
zTmIeh(aueo5f(Mid~L|{BMGi*iBXx!ceX6b$c?|UYT>VMD+=DR8U0$GxM9)db#0Sh
zY*{{4@R{6oo!8BMjzv{-)9=nQ)ZO&U(fs8k$=T;ho7xiIP24PF&F@*ha#K04*EH?>
z!UtxjWoZ|^F;o3;Z;6N7gahuO$2NZ2TVA~Qmh`19Vf(iC`f~5{Oq`b#9OE4pZ6P~F
zDe~xz+F0+%{#cdZ$)RdeyQ7vLdcA+s_EM|kdzCKUF^z6ZJAEN%rX$n**oE8PG5k7E
zJmH)f`^l}L)rZw})NRW)C10L4T~H(T)9El3jy)!wJHP7Iob>m~d0Nf1Bb5Es-Q_8#
zPfXgNxmLwrTj)%6(^es!g@P)Hs$Pe<jws#W`E+cF7H?<ew7mSM)vF?R{oeZi`E19P
z!Dh}j&Mz0Fb@zH1bm>J!cU=|JySjii>#^85vE7%ZWz}*|UukS?kg9j_m+6{Fq1`O=
zmW0RLT$HbBdOBi#n&g|c+-*s3wC1|6y>vJHb(KbEUaZm9(-pa?-AyZ<+s<EYGYw%n
z)@B;BbiMXEQ;w$F`Ac0luGsP-{I#KO)%JOp7L~u&gfPs*mT!4+x5}&g-r5;IZtUAJ
zG4<D_i6PCROU*nBi+GNn%-pbO?}`Z`o3Hs@Gc$^PGP~<ZsI+U(+)XmplA4$60{XgA
zUyEwRyI-@lpP%`9-u-Jn=Yt{+X_Q`E(YWY>tKDVkyLoSd8sDFJ)_cov^GD9vK?_c<
zVxAwuS#2z;&>4Giu7m6gpAP}6W~{LaU}AXXa6EjH%<htt)1sy<yEn7<yy@G}Nms>g
zxn?^ry0-M^a>cztQc@N_#J*g5VB;tLvu4-kQn{M*`r6CVUfWodY6?|!cIn<+#oQaa
zSZ23Z{oL78BHAijW-T{5Xk!wbKCLAB{eka)p0va_&H3m(CAiMB>fHINOXn|Tt}8yb
zZ`m|0-7O)OAE&G3t}%Hj+cnkvX>+XKg`=yO-yV!CU9j0dxavvidH<FmN3Bn*{2zI*
zakIR7=Vohmvgn!l?|zDQ&NBPI>g@iepO5?ermkE5>c+yR@&#`WCHX~%I)9V9)Uj$V
z?+>%-b9kdHcFyyE>0A_lBCA^aZ1y(&IKNlR^sOEwMP>dxw&l{l)so^@&-Ho#&g{CE
zw$bW}K;`yD*Wahbc<H^_F(bw!?(Cu+8&5UloGnS#)vR;Te)M>CX|!=}O+;Y8w}k4;
z`#b`4x{qEsyHt2F%RVLs`3i5L&uKHfwwB(Sko<kso3y=&+Ac=3HuZj8F;}9RZz&(=
zmZu?B7q|DP++}s$RH$|3n)Ej5U_-X^L9&xdB}EQC*E_CvX-n|c<nY_lv2(v^ao*v&
zo3>@I;rAELnckaDmDsqd-!R(DVz)GScX{Z&y(?Kx29(^tt)`dtdd3`y+gg`59_yHq
zu*u{>%$lhe4jcNOtQM8Muf}yNbmF(UySKdOdF8NFxckX138CWG(L0<v-}>HGySDz~
zveO|Y(>0dwtiF9@?h3DIc3V?4H!?A@%TAtLcwyJVm)%PuN*@##lucSvT;RCUd1E5G
zX!G`01vQ}o0%l8JuXK!hVWsxmc&nRa)SaE}uis@)YRukxukqX>#{{RXFPfJ~KNC_}
zbL!@TFv(xnw4Pt!I@heFeJXMTpQUhUK>NSwn}@|Wp9_53#a6df&RqW9+AVpi(Z2C|
zi?e<$vW!~8C(2PfXLf7P((BC!x%^{GT`$f$8r#)&P?C9h=7vSqX0eH-^1G_clmEys
zUQ{vl@P|m*;J_J2Q>u!;B^+BOVI!`(>Z{7O^Y2Sfx@}mRc5^qM>N@M{f~TeOyFT5#
zboNF?>=V0^r{CpVZ>LO{(Y!5Tf^1XXIj$dbV|Lssnt!s0bNBg_pP<D^d)u!(xpDJ`
ze16W1dt06dncNKpEl2X*HTB9aqX$>IjUI$93|L^c%O%%Mb5f*8^t(3)S?lJXEOMQ6
zIHV+fwa*q^rdv(7l|20n%8MTM$FA9<xpRWgUURdUiEG3+vwjGhBAK#Ux1@T->6;4t
zmeO}lwnA4U{W15}?)~;!?%m2Qmv;Y*h{}9jtF?B^SG%cUw`Tb-ox1H=aOTq7H^G@p
z*M48QWs?8*y<rcN?{y`eu5H_VaAv(?YiaGt_U&Gef83ZdNpx}7($@RWH_lnGeakLJ
zzm>t0542BYn)+0-EN9Oz``tnx=SqVXG3~o|c8h-Se)T247ffFrC@R8dEVjC!#n*I8
z!q>&OmhfaxHrgXBCI7>sFe!VUSDR=Hi&0LPhsI&C)sqsveG7AA*A=E#tTHR^{1AJ-
z!Km_bS7+?K=$!^n?{$6Unf20}eO*)2o@K({FI_XJeQBuGEPB^OlWTRT<z4sJ_lzpP
z|AQ<*GWwYRUH!1ZIvoQa<GrD&fs1c3xN&QwYK30P-TLH*#MFeW$x&Op*g38^1RJb=
z$z~CIf8#Ev$g>%fo?l+U{I)16b<y7$mQ(gj4qf)SuPfe4q3r0DDT@|WUyc24`t=^j
z@aWuyYZuKDi5AM>W;1+XK0!B3_J?Hn%hF2|^3-{q&G-6S_eciVw%ru@Ak(Cz!=A||
zd8P4^n07$b@=&WQb5x^^Rxr!%;5y}1H1Sz|y6K`#4uP|F#myGldwW81`RbL+uP>`{
z-IqV>M@jU3C#J2Zj#z7Xe!BBZY}eiVTJC-R(T_auX|<hLEpf%{=HV;h@0_CdE%567
zz<5_t(tfG4j_zUh8Ae||1p75DE&tK5u9~66`NO})GrwD->({MOJjgCFlP%$E`b(Sq
zCwUq3@1OX}S%2@u*V<p7-QKZ1{NuLn{GaE&G4VC$rFZUYv&nz*>+_}0ZtL>JK>R-2
z{3pNCe(ssL+tFhG#Mi+e_e^}Pec-d(yK<2Sw_4|X3@^+ylDXWK!(Xl4`Xe=eslfd&
zs!qF_?ks-EJz=-x^mQwxPgqRuTeM+T(VfVY)soYb&IX7ad@c8jO?q<s>pfR@&z#Jz
zoa`spGok;zR_@s;HW61eDpz!AZ{+bTH*G2WWH5C{QnpY9ztC1~nLAa%pDrwMXn%S3
z<l!kc^Ml$Khc0{Uy=~u~$)Rd~a+{J~MWub2IV&izWc}x`eaqG{hejK#@{1LF$*oG^
z&fr$%cUv&WCS|Ga$yLni{E<bu5%ujS51XVNIC(haK=FyL4O3-*w4?^G`^c@aD)@9^
zs?{1_-bTw6%&Pp6k)C>&{uE!GaebXh>D$VVdu3gZo-EYjKC7(h8h5jC!R=pSLMuQ{
zSoNrK<G$9(?61#jR$82lR^<<Cn__ikMa!0JuWHSvr+FT|vD}+gQ^0eMT+*kd0c(yX
zmu%6?_~8`w{`4=k*u&;G|D-TV+dbDgu>AQ+rkdv<UQ4mqgW@kInQA(1A{+ESsB?c%
zpP|nE;p^{{Of^d@H!;MQ_=|0Dv`A;P6ZIEUXnJnV{bSnPSi6VUl{ZGb`V)2NZWKTF
z-^=w^w!a50MS8ifW;f4;);*7EzH>ek^wpNjlUgRa#D;gT%xd$?GrOE_PSli;?^+Sc
zQt{e%`Rq2O?6pt0uXLrn*!4%D;ra@RedpAFZi;z6`N)l2uU*wsl_aNSmy}j{9ZCzH
zv0m8C?r!$R+Sj#Ki7E~1nYP&*V;RmzzKq)R$<B^(lj;0<3^$M2z5U7kz*p+QuDd!n
zE-l@*B#*`G`Q)}|Kd;!#pY}Xt#!0D*_KC$|vu17G_C%xhwASk<=qr)-UBI~#>D}#j
zH?z276}P=AsJP%*xb_HaAri+%li!SYukE}4`U7ih7CXn6Z%zyxB^=8Ru$S<t)g4%<
zEE>{new+V=z=b1<FZjMR@V_{vzTwyR$1k>*%(1w2b$YnWTdmL9eRa+Sk21m+#usjR
zy(_+O%jsR=GH*BMHI?kKxE0y}Qu9!|uT1@KxXjz2k6nvnWvh=~WM}=ceZBpEdAH?r
zYq(PLQqWFVu^6%^tXSebVFe^h%n2)|28L#6C#<Z}gPgGPnsv|JUETsrc9wSk-WDkE
zCkQzoXta3GKXdK7{B2o0S6`UUd~KBJxpddc5Y?$mKD_?%>u39ium0y>Uf=)sxcvX`
z{hz%hOY44||Nry&{~urLpDmwudVRr^_xTU6|NMOa|I_PVPuKtZE&u<A{_*wo|LgBh
zegEx$cAdq!S=aUBP5*!TZvXFNethh|U%&tVQmzT;_!{1`|KC6P`ajbjbNt*760SRS
zY2%bqjnm$dEk=yS>kYW4aL(BI>+LBnW5>vEg_?6;{C>XQI;ZRS{HH5r|EDP)opJrq
zpZgnjtUH?OP-t|(`{1LLhH{;}?2i*SRLr=>+qIc(9`A>sg*#YomKz@67B%-Q-<s1I
zkyF{X;_5!J?aW=#Q*tuHl1@xpr+Upacz4>X3qG=97Fw4zf<)WjSj##Zn#zh<Nb;=C
zHt-7K=+e~`>5P)-($$oD@bJK+HPO<Q?kYO0s_&=pe7Lk>ht|X;S5(gzPw_b$X=GaN
zS#GIv_h^TTLgLX5l|RDgm_5J6cE8yz8?@jo!}6W0Jy*||b#RYD@NSu=lYRMfcqhr;
zR}r$_XI$jV{~(3kfbYLa+odZtE~X8i6VJvqJSx!eJ)5|^D?a$u{(t+LKbwAR`?Gq=
z`j>Sz`|j%XJ>UOj{r>X)dPVkUno9yDLlfh;J^y$o{?N9x@K&rc3>2MZ=cs*ZA=he+
zHOu@bWW@e<xg5ls@7R62OW;+3ae`y>Y)0;1x5Mr&`u1(ZHkP|@Q*${>zHQvbvRBsg
zg5|7)`w~r@4<jBf`YqHaYG5UyxMs<s!xBz{9<3Kxnw=$@4l8Q$@)~k8w%iEapJq^$
zDIz6&roiPRtFhcgHWuS&O54uHo?IcZMrzuskAknf^!@S{imA3{Z8%i-_JVWV))f`0
z?Dy|)*rMIFYm>^t^rNfwe%kOnsXrFP{BwOoR*(FzOUD&8y4<Jb?$+Y<N=`n}bWegO
z<v~i1P*F%tUmA}aPt~QYi5F6Taj9J2CZn+~S8#RC85P#5)uxA+wnX%p9*$VG<{MY+
znF!vn`h!8vg5R>;xGrWNb2^}Lx{virZ=C44$B<)I`t=I@+~%K*HviQ#%|NnO^~A*p
z;}Wanz`w^9dV!8vne=t*h5eiViR{YU$;GMmIIu89d1qpdbz<rqEiRu`msVd<aXnVG
znAOkstkg<r{z)-WsiBiL-jkUqA>Dm&!bZ?BD{IUz&F=krtZ>TOuW}Jt1#a=yD?ZLX
z+!d;#9(Q)XrPh4K*%hpNo96UfZ{IkZ*Gr&i6_@sFWyQT|G7DKYbNUqUosB$ev2(`7
z-U;2C&fj#=6I_~qEYPKD_NRSC(QiYY>}DG%E6(rDU0!$AL$Ovat0di0tV@<VBrAtc
zcS5;gUzaR*{lTEl(2%e#67j9SdWE!w1s9wT=-DQJ{l<5(_ug@=zx?ZehWtCYsU@mO
zBlOdOb8Ld%=EYO`Z(aBK^>z7@kD}_&?W=!FT`fNu{?-1sxU$-V-`Cf#`Y*8m*)#j>
zKV0hn-`fA1u-kp>(&D>I@85Q>uj}pp^7{9Ft3HeJ$z}KVGfZ9oL2qf1>$-<cA8V|q
zXFgkg*(z@Sz7O0#-tNA&EOnRmQo%UsW82)B_s{*hPv(s1t)H3gQgz0@<`*u-W;$M9
zn!x<pqdMo~?MQwN3;VYlj^;0W$riOsTak5|27g#ia=&iP?5{ekpD*)8|45siw_xdR
zp`e7$qQu%()o4szjI0h*xV1N)%U|i$sNu2ZbMz{o%e-4k!kxHu0`=B3m)3b-byTjb
zyOr2|pHHgxTQJC;PWMl2VK1cT-VZQ+9m(}<x$L$NXU*<9c$cd#dGKK3p61Yq=j9=1
zs~j8?=iU!Yg*YLA!DT1tD3)ofT%g7Y_1gW`ygPM5(;?+bcI^%4@>g=1OnSatcH0l#
z3oka$zZA=<>0vX;d_&*9i$8foH_uy|P<Jbl`+g48c})FJWY?Us+P^sK8Z(#H>py*3
zw@a9H?@k3D2QxL|`SuW1sgs~U_%kiz%T526>smxY<W5>gG?vzRhc1|C0}i=HxA}jk
zyz}yKd^GXQhDQ?8bJJI?t7>a{eVH%%H}5P+*a>8)<R^w+`Y9V4Zo6Q?q;v0AG%b_P
zc)2b`(_v9e#LSX9|IlL-YidCuWYlN(18m&ViEj=$<uLc%vfak$E?RRd;hBlg%GfUH
z_4!|An9^H>74KzFpLERq`Z@n}_Sfo{KQw(6&355hIZr=)seZYf)=d4)mtGp)_WE`@
z^yO*IR<CELLp52~r0k2C%I9*YZst_K_eaAv#jo>X72F=b&WjUFG74^wPg`27wsGp4
z>8pcWkG!3}I>-r3IvjaBee)%ms~1;2cR2F=K%<wa;QTD!sYXh6UuCpz>hJyM^}OoU
z&efH*R^PiGT=vhpx!}{!Z?+QarkOR=?6dV&x%27H`@PZ2u1_;F`BG>+@fqvcwl=$c
zX1h`|#P<o`GT&#%%eRI7zHHHMy|mj!`u=y!H2aH6rPs=w+AAU`UT}ST%D$V+#7&a@
z_6gp6DfZ~&SKT}l&JR2Gss8$AGPi7Z+b)fVTP}XP%%9ckYhb;<_U81ZPj9fS+Xl`F
z3*)zD-Y^$@$+z`fVcC6`CDtX@$B)f@^yXaQx4tIXHD~JH^sS0~@BK6^W9Hu*vZ33+
z8G(_tRyh5Ag6p?)+e2JGor5H)N#%L=pqwz_ruF@URyVBg2bBiQu>~grSoWFt_zmxx
zYi3sa7iL}CEON%*I_Kf+++B^+-g$W(JXrXRFAS8NO<yyzwwBhpPld=hFbX_9)CI~m
zN=I*kQ(GD|*#uOmyibq?$?!qbVHqr0cYu<0*8LZM+EzuL4>GWSyP-87;&eq;c2KfD
z1WndlL?vqxxs!5hHmv-%VB^b#HnU{5ninT+;?tJ;DJDD@_%LU;lJCXy(^m%_@i<kt
zQ%hEY>6ZTHOPNoUZWgTx5h(oqbd`u9%a-_cUhGPF`_FhSKjbPE9<fs4(YMo~nu?FU
zoqqiD(5_=Yb@TQl?p{||*Hp@TyCCoU=Z$BIBmPVJMmc(?^Hf`8vi>z#I^*5E>p?dA
zF8z+`^0Yj>WvR;h;KZ5>52xI{Bz3vLdCGyq5#5>}Ev2Rf)D>B&WNCU|DVlJgc=~~E
zRi4Z1x-)%$p1)eK)<Nj1<gv9!Z<PB_%6`t&_rUUm^yR>{do-ngZdm&<=FP>F*9j`e
zG_Qpw$}L`E?RIzjRWYxNe#=asW~5slT69(H)FnOFmr-j1nbwDX+B3_sB;i}3@qwQ)
zZvwhxc3%zginCKW-#+ce2AktC39GY9I6g~stvsnEEYDyoa#u5KscyQ^W{CqQv$$37
zPg`(fl0&q{!W*;XQo2Lgz0Pla<q)&^RYCFF$r;;cZY?t6)mUyEe)L(+S&h^KVwOva
zZAIjZ&wA}G;@*^>-J;2RO)Bw>guStSE6?W%!uNOX(fFm8X#SB?ajF%6=dTyjuKl0l
z6<)Pbl;bI1tiYwkx47PC%&)upqbT>A=EB9ZgKXxN9N9YK@3dWFi~UP}>fS&4M8;?T
zQFc4^RqvDLc<b$ds;Rbp+03L8zD*0I-&W2z_Bhj5{cO(tCo@buBaDR<r>`nKxiwDZ
zL*5K8y{j5rpEI8J#&jR-Vp)D8<EGO(*RYneypHoX%+R@8k)b(zpZ2-?kzFcc+Co;o
zsjg1@nsa;Q!ryvLOxE^F+L*m9qV&d{uEd7P*%MViC>r{=hb&8Jx8Hj0u>HXg%a#3t
zt_Pj!dY7`6`95FaiEEac^OomuINzSsWjKqSX}xu2_Wg(c%Ir3ar>(!8QRDb@(n6+r
z?mOSj`QTo+?_KN1rxVxDPW*Fm{`%93^SC(k19!Zu|6r=rziy=lyTL2-Wq(*Q9?zUH
zsj+m0SL=-abjJxlD@1mOD9qW@)z!lM+RORl!tjfMH79m4UUFQz?)b;$bBtayT0B^=
ziam%i<=O`)*WSR_5xw?d4F)sk_bslsQL$;VpSeHG!9JC*cPZ0u=Br@}=Bt=l$~cdC
ziwD<ev%E=S;487Ka}eM2s8OJxieKO2NQ1x%rUwpz6>DbkU!R(oE&gKBndpNeqQ!ew
z>luMo!?P-U;Ei2S^rUs6+eG<m4S`QOOQ*0-vh35HnI+|P?t)2(K<=zIf!sN5w-$1q
zUz>TTn19xXJG<q2DpPEOJ~@akN^Y$dt(w~wwr1Pq2@=-VO;jSn19ZP%z7UmY&AT=>
zXZgadhsvacxB@Qpy<NUg6vTeCdl`fg5_5UNg^k%#za}!xsl4a@DUT<+U6Xa&_C3=U
z?X@aiG%x7Nx4c`IRP7xd?SwbX3*x%ppV3w5W!<KE?1zoiB+VLo|J%B24Qu?j<@4OX
z98l7l({k|pZJDn0g(jSPq~-<vh?{-n&Z${DuC4Vr;k_Zp@sL|+%TZ;`L(ev@Txxpk
zgrat7$Hfgx6F$iIihW+znyU3nRP*&Usn2Vo(^qzFbUArNDbz4(w?nql)eWuJT%sl(
znEi6L%)U6);NKHsHlI48&F#tCT;j29NkUZqx+5V%-iBTe0+Z)Wl3MuuR8!X6rKK~T
zFZdfcscWM7+RiH)FW0$pnuJ;&3*w&i{H%amwo=)mg{BktP2L_OZ1|zV)y0p&^7P5)
zcMJs6OroXt?sj!PVNl+ED}KX`1;@Hod>QTE?-pp8y1|%Z|HJ9Kj@11L3SVtkxAOGa
z{`g-G1%HCBU#a;MRDPlMPtg3_?eVXS-+l9r{rm67(swo=K6>B%`1PZ=JV#&rtDuh`
zz3-lU_IUa~2gbZ>V(+D<%--y8`D@wXX~E}wH$8na->Ldj!0I;nyqz`-1&L1>crp^7
zH0Tw~<6%@>;4X2$po61Pi-GS6|MD+~+N<wAe%bV?<`cK5>YkE72k{%*SvmHsWxI7u
z(tZKooX^ZXN%G>UjVXQ0PWG?|IL<rY7;?c$(x7Ya-4&%qZYid*d+x_8EHT%*B;C?;
z$>qP{;{%HKzq@9x@BVO|>&btn#V458>3>r<lc{>bx}WD>hgy$qVuQo)<`qS6c=sD<
z$uczBJ`&fSeyCf~H{-~O&AlDWs?1NtIaUO=I3H_t{#SVAu)XLN&nM0YIotO<nZB_y
z_Wrt*iw!=Xrb_eJew+6F*M~{<Tl_ZfX<p$n-8(GJGCXriard(PFVlZ7OqsRYmG|${
z!~p025BJFVajZULa7Fe{I@`tm8-G4dk4@tC-Q2hTP0{Da`t|}c^*2pDT9-v0k1tF8
z^l^G@?~fm+*Y$;eIc-yaQ#5vI=CzO0W3{wE8vZb|au^?ab)WOa3!k{~ITb%&ChFOi
z=t~;Ml&`Lke5E+^+LVhn(@kq1TxKcJKd&#+Z23Hx_p*8JBDI^lWH-G}o3U$mLv^mN
zc|r6QGtOY93Y$fbqHJ_PYu{BkZRCV1&MY&vtn@wkJL>C~#^rfC+-}dAru*dY%xk={
zvw}p<KaOGfeluwIkv)<VADn%@QF7u3X;(LuDgLQjTZ=bNPC30IOJd36fVJyg1E*(S
zU$jE|z47Gegn5hJSx0SCcy{eefL%$Jbf;$h5{U}V*tSa|o31m>?LNEJ;rS;+b4v~V
z`X`RP>khu%WI985PhDlte8X3d18u_Yf7FOE{`gVj&cc5mHRL$@+#jyGcYJX{?uX-x
z3*4U`UtFPOA=hf%USq>mF7~rRWL;RTO&5F9<G>vuH8xz~)^>77`9&VY{pLJg&Sie?
z_4QllgBsJmF>5{Gsa$y>xUsf5PkX}aKn5mD`RQDpdh0f1HabLJ{<yR|yYR)z1M2%4
z0{46?-lJeS!Do(K--6vc#M}SqB{>*rdU8p+KHvYyTYN>J$@j%>A72SNEcj`!%rYnK
zb46mvO8t-!0kNNqqAjlT9GDX)>KCL+|CAE7?vj?g8kqRvV9!6M#02pv4EMI!En)t7
zfIlHaW*s|MIL8ZFmX?Npjylnqr%E>OGE3lB)SObhl52j<<VTt7oVVq%S;%I+3X*$1
zQ(dw5^RDWP-(xoZ;FMqQ?8|ibb--kYA68dX0`~ElYA!imXK*_6{idXk)^DfHyDFtG
zny36VWI^Wp4WbpdPH$uKuVzS`%=6{aQCodC{q_1G2O7UE*D7)R9n7m3@aIpPvpYu!
zW5EK3`X}OcJ$$hj&P17r&hNbZ_K~0cx0O3C_ltAvnB8D?^5;p0#-36pt%}Pmrd>?$
zSp;4<YE5AEtybOtAYcMl*ZJ4ntEC~U-DO_(r6{cqT>Rq82SJm?LYX40R|5Ojv~W4k
zW?f-mqrd3X-#n>rNmB~Sv@GUm`b(R#IN#~Y2>#QX<&)mk9(Krw>%jW68Q1Q1-q}}p
zZiS+s(sup())RlLU(&RAY4LE^dgIn(@9kpZ72X^!jo<jbp!Q{w{JP(db{{USuekSc
zSH9N!g1g}jUWbe2*Xav<d$`NrwN`rG*XM^n@42KhxBF>da8ce=-J>Sq?!i9py|1Fq
zxHtE2ozX8j^P0?GHO@b0Y^u9X%E`Co)!n*yVQ=;ALfvJ}N5zVxUit}D*r|Ll-hX|0
z^}3Soech@##p#_)ak`0LZY)ylxx=fS?-y$z^!P;3=F~Sgl%|)gKltf|yf4??um?L<
zIk3(WQ3_d5evE->K0lL6{oy6z%1&oa*v#K4#1*hg#%yV+>cdOArWTHof|uTHlf9TC
z&)->TJ4+~x*ZxYsf%B(tb2UAt8O}_qTKL`IXo}?Ls59;czoX7fySOFow1mos;*<Y1
z(@tl+fZ=<wJ2xcxO*8a(u+sZMy4Y6#@-v~|Vs#QzB>6#mE;Sl9<Tzfw-s5qjK<dzm
zH}k3+ybUGKY3ww6)n<@sq2K>L&_AkAYa3Jiq2e1{Igtyws~SG@eT-dH%+9eVPc*0X
z{?;}3dB07&8oJ>0rd@~E-B8@WeT|;G{^?gmk2kIHf4w%f)NsGfYV9?rH~nkq4_{NW
z@8w?ewb!>D3*uX}`_Y1>bNW89Mkf~UUAXpuI4dK|KCKn|OA3F!;$}HDQBOZsrNQC1
zbNCxIt&{{6)m14+7}a++h5Qi?lh6;j^6StFHjhtkQPnRWZDL*2eJ?)6Fd%Wl8OGQN
zt!`5nb3Vw368m2DfT=MrQYY%p_o@d$jhD&;5(V17Ec#YH4YJ%_>%vx#1MFUndis}o
zSeJH&gj~tmCC90_K>Nakt1miAM8uXp-D8;b;Kj09BbP~=^5fRTIB6djms8{`NfgQw
zQ4QSR^KQxomO{0@Yp<+NM}1IC*L~Nbb=>nxhf12!)K%^Es|=QYRQ0MxTJCPFd{X}9
z^Tl_Xl#QKlO+R@j|4XXXcWKxAcazR>FU`uD$9bjhbrDNzrDdH)Yt!U4n;l-Qj(7Z8
zEaoB3@tZa1ew^qPz4XQ_;*pNc&vYjIa()n}@bzfiMHx%(CEP84nO6F{sxHso@9;~Q
z)nf5t<E+v!#&d7qE}e1b$YGJii>s>6`5XS!UAX?}lO=AKXVq*MQTg!s;Q6JdKl=ii
z?EO{jk3OjsJ1kbl#orlqR%ol3%7<&JAM!XCFP*B?*st+&+bt)#TZu2!zQ5M!dLA#g
zNYm}OCQs|nn91L63QZQ}+?5*^{lo0EMq~PA^ZRKtr+6f-oTPho%d^`$yos~t#&%Y2
z7g9DqzsT)nh%=MC&}WugP3LY(PVK&SYnw`T^a<T=SIwd>=ZkYE$s}|7@Na$B^;}c>
z&<`{3>~ANo-#!_=t}M3rRC3!%Nv`@+h1Ktsf85!lw^}6GJbvY(e<20$l{q++_dO_B
zYV)_nxO~~P^E0i3Pe1o@+%nfkcmBFh#aotF&)loCrZ~4o^JuZ-^Ov)h&JdgTD(cMV
zpBu$KFPfa`8~m>Fkt2h>|8<?UnHx2{A6TwAx@S_#jYFBqfs4XcxvW*=+#@SgVce3q
zD*c7yrQEHFn+;OBUJ9LB!_nRTraI5@x6S@#)!X0ibl$t=SnjNhsLy6+1AOLMUuoJ<
zqtSU*dl}0IA(8XRhCWM|Y)fjm>=d(A>E_$RIypDr9_E;5uDda>(ocP7+Z*XAo%7Ce
zbgg`;(e+NG>C&{*(iL5Wep_!jt;}AjwN2%Mm{0WPTTY(YVX`NtZvc0~K3K2TV~acV
zIbf+q)Vfqr@tfI^M?=@g?3OCMsinTW(3^XH`<4%t9^CPLb6fxOK0o04{jtmrj`}&w
z;!pdFA1K#av)eoTj@y<SXLm&-pii3By@l(I(hV+Y^@CwIc5rTEx_^Ii+^!w#_El(I
z*lWsp!@>N1$^&NEB)tRdaf%LF7W*G9?JnC>Qm8tK+iuIhLnr^aJ?qeq<x!bj)3T(n
zV+H?<hesGLJ-J;jz~tBU(RJ}V<}kaN-%YQ2vqIOoSG-)LusGv3`-vyH@+}Ux?M`S!
zc{_w%t~wyS*ox2g);C9$pC`7xQ<BvWxwHNKkHyxlf0z{8#ATHDWNv+{+{mxF(C?Dg
z!3&T4Rut_iZ1K1RS}>o@o8VA!JAFO>r)Sa`lRkWtT9REHy+kbD?e^*4))rGvoOcvG
zq<7)lr&;W`;_Rj_>kV?d-Q8x$e??%IFS}yMnh!>fQv&L=?$31D;!!@`<w^hSnV@y<
z#+@gwU!Uo+Wy?KPLC&(XPfsoXs@Hkqc#WFi&pC5EUF;t|?s?rleXix<U&}?(7QcLL
zw^X6&^Qq?LQ;OR!Mfu#jnHase-lF-}!>5^NUsp^^s<OPgP3`#kFK79uga)6v=_Ir@
z=fyJV;<P(Yw(E&mJe4%<{MqxU=1lf<q3l4Tt-L3%#HoHr<Xp_UWXX$tW-T!fo^M{m
z^jV_mkPX{mu}{*;fkLyxXXvkenUXNA_PGM*>1Fw!#MW*r=n9y8V09|@&(2s+oox!L
z*LGdHazi)ReEodQGiwu->Ys3UC7sOT{@p6{ImMU%XUnxO8{9Q|pY3U>$?Uziz|?k6
z!xYuK2~`=b9=EoJOnOpj*i!hYe=FZ^?-QN6McZF~`Zw=qs~*>j`csyV{Pulof0n-e
zq$$t*yK2)@zi$+qpZPt~z40)EO1-_{^M^f?J05EtQWt#gc-!+xrGiDL#k$fTDvx$N
zeloe^F<-0Go>HO0n5lnM9@z-Yaghn%H{WFrd(-5O$3Y)Gj}(eNnB4K1nU&+Y(}zm!
z8}}a1=AWu_wB)UW`O!Zbx1!GIxx{vx^DkO^bk9i>l@FKQBck3<a;tgpS$6XB8RZjs
zqPN*K_20VVDzxILV&ihH#&l<ic-??&N&7aPU*u-j<l1|!Y0;5Av#yo6tdieUx?O4E
z@5!5|+_=&C<Za$ASIa^t2EPD}cu}*Ro<YUNOFlg<cIC{B(|ydH`OcH$%CWqNz3)AL
ztl9Nlr6%oewUC|P_jxVnH&pvSQqQ=*ecPP43%Pq<th>x6YO#<{E1=<OZmTa(s`doV
z9EO9D-r})$*8E;~fL*we|4)R;heqaQYbN$wKeVj>N$uplFO-f>*Sl2l^3g8CRK>|W
z${VVRXKOxixPC@?Qi_})(_L4w_?D}exmy}9-HA8eAF_Zu@Y|tDyLTV3ii$b9(4~8|
z#gvNaW*LW!`$WuUg?8)nKhc#uw<<EcK;!SW|9c}E_WpmHT>ASycUblR>c$P<_fO}l
z{(n1s)$RXrT5ta5$8Y2|y8m(i-;dS5?{kYnmDFnG{l6W4==T4AolHLR+v}F^V+_1}
zwAQQe_MTZmw}kDlCB+q<%{F}BKKt5}ns&9u;~T^-pL)ELORZu4%r)NGUb~EA7MiPW
zPUMbH%nNwDWVasYYPYyKCFUw0!c;%xRr-AlFj`wExF>p-;m(8^*Gg_Lzba<ec~c}f
zJ#4Q2g_$nzxlP=frPj~%I+PYRcYSua&67_x_kM2@xy-lw;GF9|OC6rSW#dlVl6Gs#
zp7gM}30c{b-sN#THVr;IEivlztd|Q_%+?!xZ(Q!2WLNyAwo*MeI%o=Wh1$j6$COo9
zuGIAQ^}Y7x!@Zvq)_PB|**>lFx=-)LC#IL@?)h3PlFeMzbfL`sV}5s6|4pewE$<Sx
z3p3pNW%cNM#?Ok#^EuBeBG<jJi<{Pc`S|H71&g?8r#JOaf135}`01jl-yf&iipuDp
z4qeng{i)Qi{^?J(K0;M_A3c7$DE(sp^smgU7WvmblWS~L?`*cdcFE7JMmIHj+cY(q
z&9%BqMgK2QIN!Q!x$azF!=)=Ym+3}L()zvD^<j+f{uPVPZez8ZAAQI>TH?#y50aw!
z5_2@Se)3roYqjk2l5Oc<Zmp>*_~j5<ab8%(&btY;fx}1sL#yFs_GwA`vRt;Cm3)?d
zwk&_wy6sWhF6g$lKZ)|5^!#%5N5l7ym+qQgKeo{A_?{yd+;im&J~p2Jyu>ccP-fHD
zl03O98kt`L7AK^M{}Afd)T%sgGUdp#!r+6`bSmvObF)NuUAdB-d{EZqbDK;2f{U-D
z;$7}s5tx(D`17%KRO&6A6`Jc**ZQ2)5}wP*d1>8Q^>ej{f~MHazsb7jy$Wy9rp@9z
z7ne09rJHFts#&{E?C0Ms@M(`L=bp@UrDwP5<z`8Rdg{m*Z93uTCuVs<amLz@3eykz
zg=}e>wdCQf{I%Ry-nfKbxO%dP<6OB+O=H}~6N|G&x+AU>e3jfIv`bRe3v||2r1YhN
z)ByGm9nTI=+4oY@J=l3e#A}Cpb|<7C^A`9N7~VcL`%>6sk&Khe^1Wv223_}>IQhw$
zXQDByeK#$QeB4-j`{DkZT~mBmD}#Sbxx%rwea^G2372Dd+w!*fn7;FQ=Y3&HbGg6+
z6IXxD__t}df|L$Kd0o5v<@B+;Qy%I0hx|=z7WLexb;4BQgoIe?WigR&U#8TqnYHi*
zgI)P${ZoHJ!s6Z1_ielXUW4m-!HK@Zfg<*YE>7)8cl&lp>hip`zY311s+z8U5!q$9
zhEewB-Gh%;-`~^heu3A^CI7biNwL)$DwD#NdhE*dT^V!th2&D}9-T)1mEIRuF}H^}
zGxlG*qVUXEBdSX?ElbE^1+!@Op-rki^8yV|x!ip4^eCT~v&CVlgIAWl+%|3T#oJo3
zO!9%f8zsN~XgRwiQ+_MUwZ^y*Poat_i&Yv+Z>aimKe%}-YnR$`t#xPDWZbt>$+mgH
zxK-<UXUN+t$N7()zE-wsfv5PBz1-O~jn5tjFr5W&<5;AWb4+)iL;9UZ=Nl!T^fJzz
zR=(|%o4uL%N}ruxzGp*?MbntI@+NJVx71_TmJ^i{hYC#9Z{KYA^WB+i%Z-n||EzoR
z@33urHt+GY1vi2wmH2o~`y6p{Qub1hbyFAZ3|sm+YE_9(*IXSA3m>tLsQyi*>%AtP
zzA&SIVTIjdIr$1+p{-nv9J}6L+_h1n@TgMbam7IIOO`7t&D;06#>7i>cD&YH%5!4t
zl<5xFgJxOn(mZ<iM$#|Wz1`WGdS`w9A78q{%{5TAYf;*Zr5&fYxE?Gy?KxxV?p*H4
zUpC~Hn@`v4)qH2^W0>ob>iTKV&M%sL^`^f>%zv5O{9tpm`QWJ%&O7G0>pC7}`tDwK
zaLY1r-yFlYDKg7ulo|PC-&sH3)7Crt)~Xj>?<&Qo9oUn0blPd{@ALND^hlhSE%4#j
zgd05zC8i$QcrZ<Ko6!<!bza@h_md|aI4|48`s1C~$)yrPN_y!xL<?61UdmnCz|Xu~
zu1;;qmED(Coc>?iRVe!71lR1-2WvfC%?-UIpJ}94Snja<u;=lSpqME<#vGg}GuBQB
zXxquEdU)q2y&Yy{If0j-@0>XOZuGKe>pleea4Vb@d2BHE*}45qX>Atoz6MP<6}c{0
z%K68}VA|c^nrUoLf_lVMq<2|5UIK05IGW`5-nx`?j~HjoxsUcc=0A$EEXXhPT&U@{
z#B$Of?uwv*6X&?gYW<eTsD7|f`7o*OSSQb%1#^#N?NXjRd5YWFv-_6MICL*Zvh`x3
zS?%R%k_Ak?ZWm`<U*dL2)Z~9d|HD(Ar{67A|IWB_>7jpuvz9XPHNC#OxaWA$bgrXe
z3ZDfTndCRV(vOW%U$Lor*Ppr;w~~pBo>H%$uI=9B9@P8&b=1D)oT)dCuDR%^nXyG!
zXx~n$-^Vlf6IjpotO(hXQ`!)9>65<$hlM$NfOnLl)3uAwOgHugu}vsV(P&$H0JMdp
zE{N51{<`ljS~oZ=7cSbH@vk=Xn!m_{o+sy9SKU^4u(2^&_pa(3yQRBZE-x41bv4S>
zoMayHanb_KrLwibUXgp3i6~bx&-`ZJz34kn;`D7h4oiwYu@iZcxT8^ff3k+(IqQ?t
zle#|ZF4sJl?<MfrX%(w6&+WyD5>Hc?tw=HS_t#yU`Fpe1169q!GjILl<%)k73v%cd
zn5wS->C~Cvy;-X3_P)CXyk}q5G`XCRzS0=euxN%=zxz+0xyKjREIXz#wI)vdVR0@S
zyT9RmfvOYNEWNL6nkpgNZ#Ct}qEI!i?5r@M?l4)Yd3Um6c@JjjvggkW(|oUZJc1?n
z;NP>#tM{e%JpNo0XZ3FN;XNfW4BJn+tT?LHsIDz^=fD{$(;0~u1hriaOZ7N753Mq_
zonkiS3Wx9C2`j!XyP|k=WlMmxFK0>Kyk9GxI!7JldF7zF*q5n4vUie9?~xPL-q+qd
z?EIyZ`>Kbz)jG+R@6+$DD_3HkN}PT$>5X2i_<^+_Z^T?t{Vi8ycH&w^z^f(SY`VVM
ztk_y=t0`~lHBWp4-wUN%E8Dg)z709dx9m%`_eA9_5v332T+oTWy|cyKzkA7U_M6*7
z+3lv7hZOR*CuLn-m%@6V(cIwek7a9)rQ~v3{XHq<c6<J{d52kIySF~C|GjpG*6#C0
z+qX`M={-E<(oaF=nPKlj_D^QNxw|(z>cH~1YVud#m;bt?cg}QW-Rh@o@A{(r9y!_^
z*1mFF&`0xFNbIQ>25)Z2U5@TD{KgU5S)taecl67;<SA>@1D+<!@fKKVO<y(Xn9b4c
zUwq41%vE1jy3S{aGdaIH)G=k%RS~5%kx!5Jgj^8qnN>BpwqN6=ob%Rs*MF=M)Sqc}
z{^3ubxza|9-p^3^P@*x>WrN0-xE}$FQ|2A6?$WmXqH_Gk8IP~I=gxSD&e-l;bT*4S
zK4YQlrKRi67FR5Kzi?*O)K1~BwYdx1=Pg;LmR<ED*4?srsm9GolTy4-P0}qEj$_bw
zTol&D61U`}Z)ovaKF^5DwdS|YeNVeBD6uJwnE2*XWbK*Hin47oOO9+Rb2F+?zF~E;
z(|)-c=joy;DIYvEgwON|?Rm5#>(DASo;^ZZ+de(JJz4cx?5w?&KK>O+?Izz<WwInh
zUhgQ{_~o<LlpM`#h6h!zF50>@BKKjm{}PApuhAAs++NXLTXjXUqqeu5XNcO}wteju
zg+}vC(e(}IWL1}X=db5^`F5(}*;?DOV~=%pv`!k9T)tK_{Zc7&sqWKaiDkO6WhuAb
z9a^+p#Md$KuUNM+*YcU$rcByBE$^_>bm_BO?zXx5ztq#I@+wc9czU(APSu55ZLa<w
z&2*}|UMlThxI@x`^+naB6+bGE+Uhw!544`Y`16XpK|bs6hMwG7rSX*~OnBS-`(68@
zC)buM=iNH-%C%@M|5BaLJFDksfAq-8IQ!fE&qh=E9bW^x7wDE;Ik&}awe;kWC)yh-
z18%dK*(JJinM9R7SpB1Cr;_o_rX|u>7-!yE9CS3}YUB1rZA+>%lxtazPRlkvdG(6+
zhQgiGwty}qDER&UR`#dB?xG*dRdj<-Nm<+w+ogM6ia$lmN5rFivT?|!TZha$B04Xg
zxvBagP$YU&D7)Q?@R0kK9?f%`r$n^vY`N6AWVw<5qn{<`rCnI=y88Xud19u0xaHU9
zYR~`OdHQ7j?m2(gzg4)N5qH~h-7+vS&H3Cv)f0wci?;9`JvCeAkBa(>q^peP{N17K
zyIvc3ciY@&{xUPFE96Pg(&vG*=47pVa7Z?pwawnP?Sg7n)sJx7KiWL?yXsTYtL`QB
zzf$${%l<g!(VB?R+b=zBmS!mXM(^T3k<|J-w^H}%-z{59%FQ2LDl0aBbm{%Gydz8B
z!ikb%^F{veMPozsxxaMj#rUynKYDw&!-;v(%h_e(j{@%So&4szvGd8zsVARpPCdur
zZ}=^Cb4vGAQ$x`f-|OO06LSu;hr6!N6`r4c_`=>wsc6RihuFn`Y|VX?B-fm%^|bk@
z^EcVqQV!R*b!tzloY-#fk#wzOy7NkBmfVH2_birDy?BfF*3AsZMb~%|UmQBFcU3X!
zwxiH%=Wn)KrrM?4zrOC&WvR<Yx8!;zM88;+e_N`#zeFR~Gi)Z)G4^ZQCiLg!a=%}7
zL$brnPA99vV3XO&kkz^+`#mQgRw%XPxwK)$!sXR0sv9eLg3g>))VNYK!RKtCm2~8J
zRZGv<)1I%Q*d8}Z%ioM*zh!oE(mNxS^RrE7mF!ulX}dp3c>cS2s?Q!oUD)OsuA~_z
z`(xUKb;lw&i^O!UZFRUEw8rX#sY1{_))<dnY%YBlvL7E#eYJJ-Lo0UHIX*ov4t!oP
zmsdN#XVt7P(Oq9{woRAkI&|Rkg6ZelrP#h!6rNc+J$kKG&byxQPwN)&z1_|<|5<E+
zCG-4ecl|+R>?=$2*grv+r>!qA&AsRpwZ?3_{4a}eZb|3ahZ9(%jCrScU;Gjm)3xiM
zWbFLJ4U0b8`X-v*w~y+2*|>Ot#=P*tA8Yswwa+~J?e2a5#s6s81-ngy!xnKxW?c{!
z`<bKZxlJ#&Q`_hE(^J`Y{VF#u`P{DvdFo~MIr{sW<4+U~*>fGue_E6j1|3+x;MCP=
z604Nnbj|v+Z}Hpe?^TmtSkL@;+;M8A?`^fn%dsYRT`$Kjjhwk&{U`H}Q?AAAANI%w
zF1R+^C6`5W(nQhdb-L2xKlTXU6Zf=gTVx%Xx@a!%1+hCfJBpfSPFL^Rw|T1h+mjy4
z;&x`N^9afmsyLe^p|V<6q|3}wdWl|obN1<D({FT4dY4%7Z}xSot6%=!d-pDC`SObD
zwU;kdl|zZ3J-e@EYTk=|z2(c^-PbZR_wK%Sa(Q*!YZZg_ksDLvUVjnUe_z6+-|y##
zv;!}bjg`IT2j0AN=yv2ZVTmtuPwit^&ip=<>Af3QiE6<1+Q(a&7i$Wh|Eo3sosiD6
zEssO$)Rq+a<?nM74Y25mSaV3w?C6CibN#7WsTRzZ@ok?ExiRi}Z;_~M8sEm+(&Apc
zW<o%lsfg-fsnw67e66>wn4RY*IL*Iy&%CESS<`}eo?MPPWnG%Bd2eZeZ}hIM4+18f
zf0>fW{pS5L-P~^yYc9N%j7&7m&;5RJ*7j}sYyWp0byhSpub!6VrE1LcIGT5t=Cbll
zI$0(9jTf1?W)@8>iPpVo*P=QjYN^;+WfLaT3nD#Pvl#uNQ^LYER=o`UR3lNk;I8#*
zpDia%cTFnaa_Y#;wDzP|ceFmulu8aLIlopZKKOaq#UP)=?xS<esuv}Bv*bFev%O*4
zbaWN-{D~98)XOr<o(axcD)IUAE=jf$@gpm^e$;%qs-Cm&)hpp?4ze0K8=01#mCFox
zp4NXr=1O9D%Q1P?&lkfPZL-gJht0Bz-zBs*dwT8m6>cwVlpkw<y2CA05`7!A7sO?)
z`xKk)+gc|bT$6k7dQS0;lhHo~GUHsf`g}9^`t<cA{rG^LEGrx=-~RQ_6e#u$V03OP
z`=hCT@Qzf-f^bL1L&qxX6^lh)F#Wxx?8N%Thd<%#?vi)kE5)~bfB*Sc%l-GCf0_NQ
zn_u3zp??1L^nZWt*6Z*4T^kqg{O)_@-^!PD^RLT`egC~@U*FyLpMM?x1XH>EQQiFO
z;SIlQ@6FdZu=94@{+egEJC`>md%Y~U7UiW^7w3KQsCjPZgk=ib6K*j*N&DrhX~Ha-
zercX)nDaO5O**E3C#|ncas5zpIkU0%;Nh9pe?*EuB&3`<*ev+zoA2_aGn&}DrC9l0
z3ss-!z0_+n;FD_;3SSY*l;7@>yQ|qhn@et$NQU`Z%L<7}&z)ZtY&f;0*7f>yP{bW{
z4)WPMO)_@bu^FOwKUeHqztS-BkVeIZ8NnX{R6vK)Rv0ineW0kB+ZiTnQQ<Ku`|d4k
z9=SG2HW?cpRvTGQ!7^8Ny+qC{jLqz;`DAQNmhu%t4y8Tl9JE*^)$&j9#TnC=nUub(
z?6_9e_2|LE6@s&>Lb_^P+3oIL+cv>rtx@5J0Fm>Xx9ZB+L{$47JnVN*t73!Ek_!u2
zRF`D0y_Z_NZd%Bf+F2nJc;+2>C#Vt6b+fPHOW!l)fPE95Ev&5fnEtpu=bsBBzn!1R
zgG-+~nPMLQ>12}Q@Dq7Z^hKC;htN+K#&rkm0~@Rl)+}NO-)|q-u-at4#sSg0>Rc5H
z7J&`kN7cDL%zbXn_2Z<4b?%`T^7i$U_idT-PVCoy@9o@w?=QXG`tSXvw@&-HD}VjG
zzjOu9^KBo4x=#Auo${!&$XWmQtE(o<oF8sWFFLkcDNF8lL{xBDaCl0r_D{R4NF$Rc
zI*rp8NZ5UzToZZjkIKbz*-7uhmU!%XDz$gNl}h4btuyIu6aBw$z433$y;KR#2Z4R_
zvNzskpEv2!){LinYwJ=p@7daK`m*=#=kJZ-mJG>LZwbx5GVMl>gQoq;?0NiWKPOi9
z{kxpVE+|*G;g-{O`OI8T$6M1xmU^sPS{1&)Q@VdiuluG`N0#rKos`9tdMj1pXID+-
z?R9(o!lGZqutl`5wf?)HO|b8(*e>I1s}4Ui<UG1nrcCUodD!Lol2iGz!=oGdV&d~#
ze>9z2%E(gn{UHO#6qd;gnU)@G5toq)a{SJq9^E*pfvwEZyrFD`!}Y&RtLyLg*DZPc
z<Knt~HGeX~XWG|&VLteAact|q9~alX{P*Lc-fO$ME$4SJUi$baBb?E$Zp-QxdHY*)
zzu4Dp@jiOIzpV7lWB30KjOSbziS3s+YA!5%r=Y*|#l~k_MR;Gl+-SG-g**S{Y5Y>`
ztX0dF>8yPzQ#9qk`KwQt&sd*ts-w8wKvrn$6xA$Cj|V%w9~>2Gvr9KzdvfCXw(OD<
zKVt-9x-?VmJlD-V&D``{A%EBWtD9QirEguUxp?2nYX?1YW(U4cmRr1}`q%D7`Kxtr
zKYhG(#-CX5qP!w4@4#JV=M}jhZ1tKKZrt(WOPTS3pIl29id4omZQ0QJF5MQoEN^+s
z?=`>XNq)5po*b%H7x*}!<a|$6eDt$No9!DWUll9T@(#%HT%fyKJ?t;zoHbS-R6PQV
z&aOI~Z#gxsC~<nwM$2g9U4`mXtIp2$uC+UNT&3pgtn+ia_N^7XXECwu-QBMa`*@yz
zb+CI@EO_nx?v}epme-uN+AAo3x5#$cGv%0d$FH!QlHK*-`IFUaKlFW@p>DH}|M%m*
zD)Xf~mXzEp{2;RVe$e%#FP(b(RjZ!|=|dLey^)RH`)Atn8Fyx-bzQVP(Uuo=Zq_m7
z>f@!)zjk{YTB`X9UF&f<u{0~TXstNs9_eMDJP#}~=nuQM<*)P_kFxf!(~^pGH!0=J
z>;K5veezPT^_H7o&idDSPCPSp8>{J@1>K^YKl!$qzRfOQdZKvg+37cI)~Fk7e|13o
zc=VMMTTcl6m@wn~;i`Q`s@8v2Zk7AT*=E0Xs%Px%$n|!2Pe!rNy0_LScXCqgyz{Tc
zYr)I%b~w*|<#+ErcTl&a+xG`i7eBC0T`$U8f9HAB0w%fHS%O*@76)AoE0{KU9@n{|
zN$Ul_7ftd%x_8bO;d}Q^dvfQ0Kkd0sOEl?Uon>a@hIqeEZ%^-?^Q3=EwdKk5yL;!T
zM3_5RohzDTpL*}K=f4HJrcV~*`2AF6epj{S$?F@dEnlj03FJN7{@yvPAjRa)nR=}Y
zxu-6MC6q6?#r4FkwBdl>!HSoU#Ns~(bsT1pv3SV4>jCIg+Vr@%f(}N-0M-MIi#|k{
z$|qSZ;I{g7KW@d2<Gb&>vehp5xrc#epAu_G-yVZ28g;TF5=Xb|E!N3ses^P%rf_S6
z-mEsRMZT8>7M<Phn0e^EF_YcHo$S6pYTXXV!&l<nS+JMu?=h1v2~T~T-`)7><E;0Z
zYt>S7UR%*QnJ-=*n%Opw>zv6GEeA*IXTHw-Ea_53N59W(ljAsN@+9cv%(fWW-#*Uv
z0S(69%X{AkGYH(76KUnG85c0+deEtdFS9kXs?BrDZ~m}*BALmjANnRLQX;PFs!i{1
zk;_k4wx#Tg-a7Nz?(jp?li+LdG(WaKy1Az+lwp0_a*=)4)eN_9x@X6{Ph|4+gqu$4
zNvoA|)L#B*iLI9M&#qFn(Jq~#o-{p)=ilOsN%yvF@NwO*lzKNRd0y#jozOzL?V>)q
zL86Pda&J)!;*HMmT_Vc4XXd_>4_}8GZRI~{y4q*YrU_RJJla!EpP3Qg5ZrY>KxnqU
zIR|t_-t|*W_pQ8N7vxs%SgbO29ovVkPaj^6?H0;dRn&8~ruyLLG>*llg4P!=%<{N@
zGJ0L7M8zH@CH01%LUZ!n*7FKq?@7yEd@=NN*_Df0ZrfKp<b@ndEApXIbEW@{J*8jN
zbN>BUs<%;o|COt&`r}^}eSSRMPC#b=6;o6B{a0j5<o91mzx{Ulub$n1gTnXQ*R8bX
zulW;HUQ_$$5_{9*>AONeyiGrUEVU14=-z5ulfJCEK<}L1(-*V(qWvt*PfnX$&-M1C
z^IEC89Zxnf9B7@$Y_OnpBJ-{X>Zb&l=KiZWtf<7YioxQ8@Y$EG{MUCKzr_0V=M!<Q
zb=piW;;bc&wb2a+Zf7mXo%50T)d5TU0~+571I21Wm#G=cIj~mRu?IPFrykJwR<`)s
zNr{P9OLEid8z<ab;gK(3<Td%8%7I4beeb(39c$X8@LycQRj#0Rqy5H*7nJpXq<(NS
zNqob}%yLWKWomN%kJiAK3><F+_ebm$iQ~z1Qr>3SzRJDa>nAHymPou?Gjsc&$1B?F
zwN^|%(cUD?XaD;T(?X?5Pc)flKG8OpsCuLO{_8{C{~0sWD%k@&^Wtv2nEkZ!)MfKi
zKhG?U`n4>1PWz;nHpgDxK4rs`^}>G2<A6i6BwhYJm@nyKpZNK${_i7Vv(mo*+jRcy
z?f5u_H-A&_D~N&x^e5kr|7QB=+w@x5^)IGd{@bL#%j@!+d-2~^t}r?K?(ft28V(l9
zYv%12zHo7-&2+hGNioK@)8*zRl|Aa)I%AvQ<jk|*TU0n}W;MKd`tz*MyX7-JuWWlc
z+bnQ$&RxEn<;Ffw?*=wY>AIA6-_lDw#cn6OtY+QO!=GfnKXjUO;IU%k{GTD-*+rjb
zP5K`5Rph|==v1+F7tNNZa#z+bGqr0oHr`n~?|hBc!D+WtpPlVsS^sM0_ZFR&x9>P3
zyELUwXK+7HQa?E@@T$QKcIm&@iUY4azZE0$^{K7#&e}7<S8Cl)iygT$OKzXl-dvSs
ze<mh9cxbxIc=1j5GQA5wZ=7MZn%}?kq+{hzW&W%gAMWhV;eEy;A1w7az2{ejNdMJx
z8?Ng<p!Ihv>Y+>TR(=1d5hMNQqsE=UpC2{marL=BJf|q%e`v0&om}hcQ2G8xjSnhB
z^hD+R4_)o+cmK%D`eV&soAo;%g3hG15zR=mU%+&3!gj8o>-FL+_5E3kY`Gj1o<9y#
z+}~}TQxtz@*X1=X;@=-l_`fEV-R<M8^B<d@I2iqmGq`&+z0hNiV`oaxBoU*obM;53
z>jf;%c<0{x=&Evq!{>T84vVwTJ|0>T6u)AHg3c#qEsk!RMz%wbmTS+xw&F(Mof9ki
zxSIKczMw46bI4z}=fMOfqpo|qTsU6HAK5hZ+3md{{><M5COKJ7U-e<8|DxYEXP-Yb
zxVTI5LCK1h-j!#J{r8zXI~rVf|9aO^{vQ?cS)VTM<v0Dwald_5&6M}fzDzGS%AYB^
zH9IUv=6>e(jCbo-hJ@_sxf0a4Z13T)8+WcHYk%0nE?{=jK|eO;^CPClI8kPqjQUkh
z;#=&m3NRf#pKnpp;vmYv&h^2)?&0C7xA&Jg8fRY&xg)&%{?WO0Z-NV#%j*lgXnnro
zWY3DpHM0c*4$f9v5hzlj-r(?_qfsa0miAB9_NI`4nz;CgyA!x(MKUry^(a>nj_j3k
zUEbcmKys?bVvPlTRVk_=5_JVUiWl~DXno(Ed80dU(dt`;7Qyq(vN&Qrdoz%i=s6^s
z1#R?y@~yYnjki!}XYJ2>op<af`W^H<&Uw9duBJ)d_lLij66M$Z?y7Bn?JfSh;I8<6
z*>%4Uf9AVh8(i7`dLL7W)V$vXwT&D2uh(k5y8U6zzYl+|ub=;)KlXmzO3aPC#s))m
zBd@Wcf`LL1mwrHEQEFa^f-#6^X9w~jX#Xx)7R0cz(Ra(tDM>9-(09v8EJ<}qP0mkA
z<<j>_%}X!IP%tzyw=_oH$UC?8c3<w!yt~!)NB=QyFWt}J$WVUHvaalcgWZ7+UKR_+
zod5O{Oifp3WfgQJhq6lF-CJGQ^~hJmH8ALpXk7h2#eM%wz5ab&U;qEDeckT5m7CYf
z|NC73|J(k$zxTfe>wgXB`TBbMkJrCG+yDQ0{qOYuf4<-U_i_H=_4WVPukW|N_5b!S
z#hCbe^_8_hkI&!#_woI>*nhu1->>VQud?Ku_R{$Je}A|C7jx42|M&X*|IZtrZaCQ1
zIF)xAkIw@g>vLHNOzD|*yLUZ4!xmN(^-AI2zhBFhmx<J^KY#sYeuw7LP0gqOZ+Nh+
z`L)Rdo)g(yAMl)LXZ<cKvx(I|<1X)xj3=xUuBRO^J+)6;VLi*cN$=Z|JjHs9wlCSb
zvANpd!Mr6AR#|7dQZssab+0UJwb~k>uC)D_$!e3Mn!nE}YAt-$aN=a*g0(XPCnbj@
zo!sbk=}}11NzMt!6Arp=XRB2|9nt4?-;(*$E!`cOQ=ix@IpaOaN!OKYE6>St-bwGd
zv^uA4<kIT=pYps>=XYM{x4X?D8SGC?%1d907PFsPE&6JLv%%vZ+crBM`{=86@MG+n
zD_<DSSv0);aK2c}TUT)<V+_--y%`4#HN15{rgW{>{2ISc{=pu#dl7Y4f6aRL{CU2-
zVxRc_p6mAVw*MR%&oD0uoGG&5jYH6Xwx0Th4C&0bG}JT|zGSXh#KxM#bYp@4;)~n9
zXU2Ln-;~mRXYF{c&3b{U*d4~T8}IKseJ$#JN40nI?#1tPdFLm;)9t-`PUpv**p7TZ
z#TJROJ!UnXiS9YfJrd<%xd$YYMO}{GXl+QI<8;VSle>2%2kQ}&ko^V{lCxTlx=8ee
z)e0V4{FPDgSj?u}(*ahi974ATnA#=X{<(E>bWUjILdMW-@iJ9mVYZr)4<G!V-O6|L
zV!%9=zC|gfOXjF2{9E11^lX2GhK0Sfce{dx*TNIqoE;Z$x*^j2z})pfj>^nQN9IhK
zBiwT^MclUXyN6jym9EP7ZF>Ul+>TnswZk*&#oK#lmI(#1=BHf`D*YaAcEpEw#jnFo
zjmo$6dqf_IA9LEWT1STanweX$$@v98ShLkF&nsq}OE@pGw%In?f5yQi&SIwgwB~am
zq5CtnG;S=p8h9+?^s#aY|C<JDO%@*H5fojYv&7`UcHvNgkc)?wXzo50Tf}njcGZJB
zSJzBrcbOn^No)P2gVmqASZdb9@-*fz?_sRSKb_C`KKFQ_<9l0Ok&JB{%R(M+KQecf
zi{qYI_1-~-&W&HYdbzyXR-9jVw;(Xd@cFV8ha^sZ;(mN0Yr}y<N6sx=x<Yb!h{Rp7
z;?RFP51dkse0$i!Yuf#Fi`HK%ub;YhPU6goYv&x?9=zWm=)}C`Qg>bZTDy`P7d$A|
zaI`yOvC2a1--ZCs(4e?2PHUY0s(Fg8;mA1?aPZb)+i!cH)aveb`v0>3e1H9fX#tuY
zU7H)1iljHEENr(trT*4*^0J@5yB~g;bf89e+UfU;pa0^l+xoM1&ytNB>i>Mb`b55{
z=izsw_|Fgb|NCpcv-L{VzDfFzllfnMzy9FF{(b*0KU@7c+xz90-`s(<Yd?C`{4LRq
zf86`{=i5_P*UZ-wul)aIk^Zgw`|PZ@oROD*DtX_m#;{K1@V~O!?_EaaIoJKwFTKgX
z@TEbwzGlnB*F^;fL|@H}`hENB+=mZ-y>waomv@%jhNu1gI_xK=v}^ZNEW7q++dgN$
zYyRq4XY+4>wWU}(EQ^U*FZs%2?ccY*&J`5=Em?H!ADb`#jZeqj+n5he>DJzSR(|KH
znHDE<KD)15@RBk5-;WbT4L&<}Fx~z$akYbTC0K`8#+QfwKOZZfc6>JR%#Keo?6cF?
zy?fu#{Cm0Z)*rJos}4-Fx7#GcB6ZR|rZ?x`k*j~_K3p*I?ED=@5Svakrk*-F_2jej
zF{##*-p}{Da_jyk+1h8z|9qVIbiqZBvckx$!(StpO`B%)<IROn4l^%rI8rxx;=B8|
zwD}^9ql`XR??34=`~2H-_TT;&J{&7$wKQq9+kZ!X@162Rk*8`(Do?lwH~xL`v_<G=
z)bGG^-;{qm{ihLe=;QR)i&NKjvMv3)!u5CH<`(@@RU_TsfjjD$bRX-lzv|<e+S(-V
zcz@~-Bm2KkR!=NbuC4nW^y%)WUoQ<WJ>RZ=<?*!ePrnwY*4^IJXDs_|`|I8MGw<G5
zH{Wl|&HD>pGT!!mf9RX*`t!}rZx?=dxwEqSs#*KC{!2!$@8&w$t~oz1aMy*q`%{1L
z&c1hJ-6zdwrjl}ADORVx{?GAj>-)XkXTPoQb))v|JL}}?{WrLE>z|5yto$eLcK4p*
zw0E~AFU)^)&d2{x?_JJH!L0ooMOg}2ejQ75f0SUeMcw%G?|o^@^H<%K<j|47w>9DC
zoNszBq;D;@_~2SCct-qdXhhqUaLxRules?oeYwK?zRZ51;rlD$)*t+=`OjEST`&7)
zd4Q<Y>$#^7?o&Mc^3(_8$3+r_saM%1_TJ99wdzuJ`qQP?FNaUr?!A1yhI9EL*PB-g
z7yXltS^sE{jrX6(-BCBoHf{W_eg4Ziw(M&AYuV}5+rNb#cXTsbU9mw{`)$<+|EoP~
z#qNE+dg$P^x8@)JANN}y`^P4`P`#BW;g&x?!?KkN-XwfF<1HMYFppt@>F<9U6VLBz
zzWJE>{+l<A`QJVtFyCFVWX_)IDJMQpIN=>sv;0!ZeNjnebvcz!Z9O-8<4xFCalcz2
zRQBqC#98iSrWrAnlY(ZyJusu>!QXO)>+d9{hkazewIND$PSe9nzT#VA&ANUz?AdwH
zp|3_X`d`P#+v4@67P}L#H{|iZ;oIHi{O?V9Z09|_>r;=t&7FVE-Tie?-S3F&ckjIW
z%3dV%J>*Byk2g{21_g_E-Q>MvbzR^i^QVS|kJz6iEI#O<XVzyPyClWnhF(zZWmhwa
z6?d{j`&aXK393w;Eb84n_sOcKho%|Tu@u{huiYycV(t>u8u31V*N+dZb>hi;E*{;&
zmV9&0GVV_ot~~)AKmS_ERXb~y%<8DSno_YBM5e7dc%gBTdD{F>(wqH{76|4%4K*yv
z*v7GH-^H|5VY5qYPDE|BopM!&O`5AjJ4?EQXSI&jmn!uYneOJY-!{73dNr#&PA^(N
zedmd5Pjc2wKe<SUEj!S~d7ECxs~vB4ENH6Eo*c%vG@~><yQpPhlu|BdOm5YW`|MF=
zmN)d)oUBzo6D8S|-nGg5zSLC4X<J*L^?lhCB(%=OYqFJQuGZXXQ=fnOE$6W_*S2le
ztkXKHN_hhV;|}w04S1`P?cMgu`t#~*e{wowx5}LlTXj9Hy<zFWsOhrHr^?I{on4wC
zGVk1)_5<2&S0;OJes@ADmU|kv^s-Al8OniNyIwT^yqx$WN_Oh%HOEdeweTcx2{Sjm
zba1<QP-Od&jm?@Kz87XCZI@B~6tmFuXrHH&eldISlSoIM<;ntGTf$T_ZM~k<dOTs4
zTztiA>WTD8HH)_fw1_q2gASoL+RrEUCPCWb=t_<KlU_UNXfF23xzTpb$x%A$wC3kc
zlijBNiCn32Rqg1d1*WZ8vJ#Jv^oX5y=#_o-v;2u!ihQur{7Ij3)*NL^Umv<NYi+H!
z+kL0R$W^B%tUpzIu>4$6PwL~UA2&8n`l)^I_Cb-Z(2{DA*K@z<ZjQY^XVdOPuC_<-
zi|*WumUNo6bhci_>|`maoPaIg^hDZb-n(ERUH75)!ivaMIUBCFPxIND61>A~*|XLE
z=DaD4oL<fK_*NU=ws&Q--w8Kpe!Nm<aQ=BBd+{aCsLz_GbS5t6TdNrvqVh?o+#r3D
zgN}*zH5Jd*zLTzPa=F*+a<9?QO3-@I6X~@NCrB`Dunn^8PSRn$`F-nFy_7ot?~fD|
zSF~))6x#AEch<_5s<)f8k9h@1?LPNM^NFd}%;j88TUYJ~VYF0zB(>_v2L8?6PdD%{
zPPw=B7~82idF3-V<tO`;xw$1<sZ@*Hw{%O@EjRhl@Ul;2$(%_xzMZPl*&EgOUWm#m
zm~l}?W12&;!pen~HR`XKer&R}30wW>sn=?br1e|64A#GXGD)J8wRiHP35vEgGcO&U
zu4!AttIq$w_rU?x@5UAdod0<EVkX%)GtYm~|KI_8O8@K?Qg=QaIPfy7J;m;U0HeJH
z3+Io6iarPUGY<Lu^c7$En7wSz@th+L&p&lfY@QpRWLorqr}1giYwdd_7Z1<YtEyCP
zx4Y+2v?sZEnR%?wX|<yqk(Vc|vAv*LcrjzLKHCO~H%n&Ri?~vIaZbYLeOY<`8@AQ<
zEU;)cxL*>uc0u3vLvQ6TZ0kSjaN8~{V2byKMayaqSUd7sf62IgT*&jPOumc<U;d60
z2QN8Xbf|1rJZf&DVqK7N`+0Buj`eQBMJFn=KzVLYVM^zcT=~Ol&!u{pALh>AY`cQt
zNZ;0+>|~wzu-c=1s=L;n{uOuc{zm7{M>5$?+qhp>TRu;$)o(R+vySsRT-uWw#l11q
zux!&dwt&O4ITs!K75w+w*08!Q)f!4dkDqBN2?>|Sa*JG#d+kuh@9N?eqaFKmi=Bud
z=c(uyUXyZ{YS$|q-@5L7T<No@YxV)g(rY8WH-5SsD?KH<{S)7^7di>q((>zEYrntR
zlEiXKBY4sVQ`Wi*=B(P;Gq3G!+OcC=rd=lMk7d=nuI)ORA1i2iRkGCcXVlT3Q?@Ib
zUYjhEH9u&@V$UbSl8ae_!fNhIJL!FTEv4mH*%cT#PpPBz(Xo)J$JTK#{&vmG@1*Ou
z*hML89PW$gF4|hq88H2XbXV)6BMVKYRZWq4?HrjUr4h34V0chp-^&8_^_L>tvLEgU
z2%2~CYk*J3x^`u!mnOw+i4GSPcFFlEh@RYDXgdXR?tE%oqoLj($M*>nzfa!xH1D$P
zU)#^!X9a6p=Bx|e(Y^lYg+F(4i)0T!&zr2h>9<X<K$PS(kFL8s6YuLDxv5&Lb40MM
zK>X306nXB#GM?j3G7n|5jC<yD7aj>%p>jJ}vCrV-w~ha*4P>|rTk4`W#K>?LvWS-}
z_8Bzn7I^N?CJ?SvQRVu$u<|c^4)cVkU*!!{Ctu=wCa~yjf?YrJ+RDk9UQe{$Dx&1O
z-C~|(9=&>5yJB~8%S%z0yM|5PxAt~FnLKTo%e>hxaSevI_#+JuiSM{QbDL78h_XWF
z6mG9cpV-#E?6|_Q>8r!kh*RkkrDm&7Jz>ebVqq<#GH28&b64M&ldfKB4BcnAR!ep2
z%qf%J*>cX`QYjU7|HkA3*RMO(A9B4e_CK`rWwHMu(Hqa_9pOLGx7uc>%lDa+ckrdW
zl`n9d`?EnTg4y0;&B71NMU8h83W{DX>W(fs&t7A2@kHadJ<SuD^=EXc8QtyloquA=
ztJ!)*RhM1o<?o8%U;id&QnJaSwCfq2OHLQ+PJAM#%eGJHd+#Q<y5_{F+)1-dZY@c5
zw9xi`_fG0!V9`}RRj+lo79QEXCD1tTjYs10n_GUp+x*0-R{m(rz89-xz3%tzH|H<t
z+h4oN?$P_+RmFeyCR!Z7f1CaJkK5*}`hQgaejro-yDfI@hq*s)%kP)}`2E;X%YXL_
z<~+`y-`)S?w)vs{AHUVv3XbmBSYh57r}&O->+NT}3%01sl^LYRoaTG>w;;p!VEG%N
z$}Z~}M*ZPpJ_`G_BDY@)DPa#<xLt;;qt!1xOrf{?U0ceU#(g_p<as^W>-mH^)$jE}
zp0&9`H467jUfOS2cKqOls2?h6;ZCukrTd)11^2GMFr{J3;o`imjiI5>Z{LdI|7o;8
zZ_UkvTMqM0DLxmX^<~%Hg!G=GWw9@-L$7i!{HFI)?tsK|pREyUTb|9y43IjlsQtv!
z<5YO>-u3U-)O!0BF|1drx?lN3N7qz5bERY~|NFWAH+QLN7Ju=XW6Zkzq~+zw`@YtS
zR5R~h9JRqZ>i@STPa-Y|rb+Yh&0*mCUiH6Y`gx7lGvCh9I30R7eah2IUnEm)CFW?H
z7QLB1<!RKn^eIoJ-ltFbTJyjqa-CqUTjaXM|9dvYDF5r(B*)`7<!RAJ$<&>jU!+g@
z%FO&D!tCq%Uyg^b9ba{_y`0(pUhl@*f_>7-zaP|?AM0!Uwu8Iw!0tP39`~MalX#KG
z<IMcNl>am1{QMf{6vLtivhRPgId6@<VZCUT;-qYa*V1~otfh7>Y;0O<ci-bvvgs@7
z9#hXt%eH!I_3*ovPiztu*}F4^_n4bTO3`yA&-+h;HpN_c8se(09XZ=3e%{9Vf;~1M
zn=9L1HTk@&sBD{*Qk}eIW%Od(xOoe=Sl;8zidt<KH&5}(-1|EZ=G=Yo^AnHZrgx`}
zMcTfkrQDsK-qBbbKTpx;-98)VlMDAqTHKs<=jSJ$h26hD^}KEV{8VzcOyBhM4GZqg
zzjY_g@RobMF?+4rFFBsF$+vffojP>0(c$-tyHT34tsjqZaPzi&-gs_)$2((|T8VO}
zfaxEza*uI4%JcYfyt0~^<$H+R@$Sapwc?+g0<P!TJ6~XL7H-<bcHzyQXRQnL#OEun
z$ab2q_=2BD;n{1|)$7+PS+lpwT50reaK5?n-Gv<4qc;|sL@YW~^Hx;-`+-WwGuMO`
ztSycA{dRlRqMeTWuen%n+xq^lUq-gtbjG4>ZRU+>R(Ff%KJ|LH@J;B!S$C9g3Z89F
z{=Mu)T>FgLi7s0NR(FRUe5IWnx*;!N-&?=!Z2SECcjYC#=DDW$Y^`Z5zub~5Rnv_2
z3uQEY5>&nK?48SIYPHV$5Nqb^p3VI=v6+u1PfMDxcKx4QZc=ljxw1soFonk_YpO4O
zKV|u)8@oQbbS(9lxt=LpahjHH>D6sNnqTbliqSAxxK^-ei|M|PDyu)vy)c8XdY4yL
zq;#-b@}lGufxouOEKkx=*Zds%K<n4JON!}p_G&O4<Lpv?u}EZAVb`M6wwbMK&Qwo2
zv3uIB3qjJCmdEwiaP>}AQ12Fcni9B3ripbfdn=DcU|`C;rH^;TJqcOz&?Pi?Meq}W
zJ@d|qaK*m-aQ2#pY~PZLXHSQIvYqrqdbyOI%(TAM62%6B7r$OuT3~BhV#=aj#oqO;
zci-Ep!z^ms<}rQsRbRd-Bt!Rt`P^HpE?vu-I{ArJfZCF4yF|R*pC|r4_OO0M+hixx
zU(22bhbeDiwLH63WBE?8#{AbaqpWt`DeqnuAsaPa`&ZMaw}&oF%L**ls4RameXg}b
z?!v&JzhVozOzw+3GgWqd|F->U<GgLh62h0f3A)<2IN^!Sg80>+Q`fBPTc_Myw|}$N
ztmFx@#{;I?BuRK3eI4-N+O2oa3x0m+^3KY-E3~um?WSWlPP~-zxc}#x>4c{IWS425
zrY()Q5a6M@*K;aQhVODtwi}Y6cg`tI^w0F>Jli-uBv{e^MV8Lf?~7hAUY@nm`^hmG
zjy00nCuXpQ8>m@Lh`9g5@g>Lm)L#87>wdbOzxZ|&+g#@9Z`4hXy$kI>eZy+|^U2eC
z%Qtv)8-Kpw+E+9s<*}^a^KUGln)c1g%gXV}dYv%uy{wTHf41(<la)&5bAG+)TJ7z8
z&LZ@}lI$<FG1qo*=_+cpiWx`V$h1^DdSh>1p=j0m=sT7hBx-N7&b(IcSbKS~UZ_-X
z=A|I-%TA`785?(}<cO@Cq-a|-^T3R=&qU_%YSi%uEfhU&e)N4>&Fx%)lJ9%+I=ysE
zPajw!X4!vLX=&K%DN$>qvV7UrZ#{Wn$)gm<6K7KrJ*7Rj$@xka&7Jkha_X7)q5a)^
zTs@<Vxdo-Ssq-Yi?a~hIwDI+fns(4pd%5M8yItBl{dbu(TvD7PdrI?ytXJ@Hh84OT
zYc8zcx_gUrZdTe+dp&nu&AwY9GNliuhs9jDrj@op<*bhFhP5-7sBg24owwg~S*bsR
zL9UDF(NDW<{xcrm-(b76*;d!^%6fLqw@In3Eb$4^sa5Ma=3O(}7R!BPxvA}{_Jms}
zIT)7B<;lqX{yIGN=e1eewAvn3#~#<x$an30+IMPop`;V{>x{Jr%$F@m^HW_RbGUI9
zZ;#ay@AHk*&xFtNe3IS%z_D)E)f(p6vEQvF%0lNvPpVlgW|aE!@%brJjt7X99^cP@
zBdyUn@X8&=cZXN;3QxY0=o!>r-tbykU)?k3!K#voo=H7?+*&7JZTPaHq$2%Z?aH&0
zBd&beY4&N?Y=+1mat5jnRt;|rV&AQ+F4`lk5T6j8SW|si|HH>~OpSkbZGOOb`QR0v
zn#*iyjQf7}@O|*@Z0MSDS$MItQhumXeDR*A(JOwOlPS5bePo@=#OoeKoo6kzlCDeh
z?^7xA6snvlRC(5ZvWwxQ1#^$E-JN*)<f%pP&hFDU(5>d?I<=0E`-^XMnw!wI%n;wo
z(^)EayPwIQFuZ44c-^GBOj<tu%Xa?0_X_XiZ#Wjn>sQ!4_>+E=|3s}ybEEgp<FobN
zIsZA&Ui15A#bsARmrD`r-|t$Hu5`6xe|}rttbo?Lwd)S4TR&fM^4zqKhhOX1t5r({
zUO1D{+jS}I;0)EJ^^1-sJb#vPW|EOhSjm=3-$jcjF=|^Ci3r<2V3~DMfB&m=-T8Sl
zw#O6*d}{0dckGjW*0lO0hU;E-&({lkmoW;Jy;%9+OXEB)KY5L#du!W2neJj(Iy;^*
z%h+YoDz=b|R`N?6f6u=#E$q{#`;C8RslH;U%bd%<Y17R6ohGvnZaw$?_lj_-1J5g#
zGS&pHzZ)2@^txuh{-hZTw%Ym&uQ#2WG1u|lwbyI3gKJ&aKmIR0<DE<EwLROpq&Du{
zRVq7c!JbghTcO5k9<M`{_8VzB=`8kaJ*ROtktwsr^FqkBZGHdk6Lwju`?*GWxlY{n
z$zWf^HR-B-XRhB{wP4SJh!_8AM7ZNQRW$Q2ox6VR^|e{w!Y&5AwA!LDQTlkYak_K&
z(Fkr?7U%t`m$e+N_Lly+KmFDz@t@ZwU7WFFk%{)H@PjMuty3RYtyr{Wwc-vfFV;_L
z>Dzmr9dLDb^jcf4IZg1Y#z|+sgEmhE&TL*47~~X`r1>Jc;&te)O2c!_M!}cfihkjX
z35-g)|3dc1#utm+JROTI_T+0EU6kIOl*a6R%jNtL^H|M&t2=F8)cs%fCDzd3>7<KF
z2P1dgiCS`ct?RBkT?ZMb_Lxb&x~g{f-YU+o?w)UVZI!!!wI^Roa_U6)tIRuQGUjYo
zI2^FVl!s5lpg(A#?%ZE>+uu~ScKFp?FV{#F;&#Y<#;76tl2zmC^c8i}<tsDn<}A6r
zpgw}}ZGcc+^R{CPs>4nAADoan+T(RjIAhx}n~Cw!3nf;)s<8dG;6O3^<<3nlLJKz+
z1kL$=>B!Z`drb;Och1ZHU|PA}_Rl_Pk2}j4-XA?Geq-H>>&^3+D%-DZNs<oTCZ|wb
zy`yyR{kM~+F`f9MT>3Mwqknz#l`Tv6IB&MixLvlwck;S3$C#J4cP@yx&O9c2igS*v
z*E?&+=vfgAUi>E*u2`inxOq&$R`bkWtv<FbTQ9yjm9yiI-;}APa?W3?ceg)0>t^V7
z_4C{tKbSUGdw9)y{m5zl%Nd&|J%4LE@7nU^NoEFjvu~u{Kh}2QyN{;n7U6HUmrf`}
zaaoomYlS@%UQ)Ja=7s6Es?Me=_pXz330}N-Q%3flmkV2F^;ph{EB@G8wOp;{iR-PO
zw?ssfRt7CRIpgrl4Xf8*ur__D_2r!Hj|ZCV34ES`^PGc|B9DjGF1&Y>IsCq4yM6vW
zua&7X_gyUe^7#}t8$AiVt~=qnl4o|H(Y3ZqH>}oawOGx1BYoU_Y09z?Psid1m)8XI
zHaBf#dhfV6f8pYoA~v1KsH~Hhg1kK^ZD~qcIJ<0v>E0DKORvnj5@Gmwc3%FQARXsj
zdyNiU^Wj`5{BG*?LvNKAEcQNCrt!SITti;5aa+j^##@)pJ>lCrwUgE0cGC*38Mz08
znP<J-_EvP$&kNd`It!c~)dNyrM}^%`Js`O9-|56qwF4{EZ<TpESgb$gpe9n6@?!UV
zvmTaDTuMu`9kQ;jU2b%*;%Q6G>)7^>HJ@V>r|0k2e)Ea9LiZNSQ)BOa%R^2^UH-Xb
z?cXK6CQ_FVNbKLItQmjZGru<2=ekO!rT3Ga+O6vr`0iZ1P-Irtv?W^?h|Ib$W5+)^
zTh&~1#mp^tRo>bxH2l~W7^-Z-p1Ja7ME70EgPcv~J#9grX2Ko0bC*PfIo`YWD`bND
zgvTZa^WU6woU&SmZRf%Wjb++GKRbd{Ev9~m+^dqh?(D*hVvS=meyQ!VciYQ8{k$|x
zh(~EQM|5cCqEb1pg{w0PvvVg-U(~bm%8EC85<&_qYNJ*zS+Mm&T-fAkQM<NW*&3<3
z#LQsYqUvW0ww}E?b)~44<HCveau{d2FP<c|*eR}X(IRWvt!qQKnBF?=6#Y23t%z-%
zD_hsrQyztLg+(4*Q<13c?iJO3HT%E|o18TffeXd%T&OIV8WG%f=fd_IiZ>SZh(;eW
zbh|#kq%-FAZpr(f)}9XTijNaw@VY+pZGhb+=G?bUa<@KJ)wP%H*5u1Q`D9`IzG{&L
z-$c^F{(M{TBlg)FuOgS$N}krrnY*-CoBG=2_U6xW{#w2Mx?JH6+nF;`UW+FEzM8U9
zgF8apFE8O#bNbyXuS?ge&gxHI?WnZ=!mkSJQ*7H-$82F)cd+|Z&2_z7Zc?&*PE#**
zWot$643GKOz<1$S_3WH*-c#-U+iqtRwqMF@<_hro@Gijm_WCv6pZT7ME$BKORi<&a
z<H9tvn^q1l{Sq5)_3&QGF~7O#&>hwN%s;oz&T;m9Y-Ro0JDKn3#VXkx=iGKrmcN$`
zc3yfRJ>yjK@<&?F7P$y<f6Kir#VWb@*L|&M^CffQ+A_SBmG67@a(3KjmfTCNsmDY#
zBu!MGF4p`Ur_SH%lpe0Nb8h$Q_bum|zC8#EaEkr9-|qhFJk|N1TCN>(=U#m2#@zLl
zF`}}%Ec;&G2%XBOZhFPsmdh~ZHD7J;vP>3JuWQ*SopfHv^u4eCxg_-q-?WX^@sGEg
zU2|eTv~=k+71`2bH(TGCpNjR&oh$x*>9p*SwmBEKe-OJnrDta35w5E~%4N5%oKs%>
zc|+;Dn-=`DkIjnwWc!pu*Rk)t(301Y?AKi#1Oiu-bcOUyn)Fmd^O#JI*U}S=F&8Qe
z_Obn1W)pgN-^*7^HB#@jr{si~vV>P|SWt7yF{GKtCX3-xPTO0*l|R-7-v8pk<|bFx
zwN_&0B`za%)vdFZKiPfa!Gm)<b{MS><=*Pq9=p5bM!D0m_th>pw|5%9%u^M4C4WCE
zYR|3`r}I0VGk4`P*xtFlD{)(zEJM~`fh|vM^RI4Wb1i<`^=#=4_NpD*zc$JV3+LT#
z47s_q^+`rjbTzZ!wx!Y?T}eOUY<5hF6RnailK!_|@ZG1He9_%ZySI1kKX6~$ZpFo3
z{=<B>a~IVvSRTBEf6BAs7t>eAi9E}`R<$6k+*IpKxX{_<s}iH5SM%qt-5Wdms`M4T
zR8@Coi%lP&ZMA=}eXfFMb?MovZAbHEoP%xkgT>Y=e>k&#*Mb8trsm}Mo=;Hkv{}4o
zWr(e2>RRoNTHp0LvmWeb?fi3Vg;>pZrHSQJW}UTNVEVyn`^tU64A~EpF0W%dUlr-9
z;2)^uURxY_cuMW_WhwK#rk(H(-?nX?cJ+ZTFS<W+FK=C!zjC#KV+X5j`&wSF*uH;X
zH+8+ga492bMX-17BE{QB(=@m$-JUxdGe`-?JIYMm7k;<teO~djp0%l)-hV5a=vRC<
zV9(Awmk(<%GWB!3Qhs^L;{1oD1p&$>a~FMWcRW_vF@fKNJ<3&l=|-U^Pj=}=3l-N*
z`B$SmxprSSUntixt(v1;vy@_gDlXp{RJdqSd-#&u(NotjRZjo6XTiRm29C$PR!<5&
zQR7t~r)K1~JR@~ai1Lb-zEy6SCtgojn}1@p!NKXbcHO^`z9#93;QwE1C3aU$f3#NO
zH+NOf#=ox>7rr$-w(eePma4`X?PLF%<dSp5KNl6~h4S8>m-Ob<U7u~sPQ8llGE;G9
zwy-*OBkwlnB%XTPqc`#%TOX_YlCK<U!r!-X_o8ZDao6lE@?49AH=O0yPRh2rFje&v
z(^^fZ^^q%o^=*u`-kF>;|Gk{*Cp(q<i@ly?=+w;Q3GkDgcOmqCdC%X5m1Y$y7M35s
zVfSf{$|s$@zE0B*E<e3{(ofms-zR#nFUZzuH0-)yZQv$YHUCu5<qJuY8e-DP{x8d~
zg-v<S_g><*=quUeZcYZ?n{F>QdOdkz^J7aysI!4|vXVicP}fG&WLAmA8j^F_=clw?
zyY}>%+VS$d;BR+LpT3B;=;+I8S$8P8USiFuq{f;>mKUbPPd)Zd;`Y_=vdP`nQ<mE6
zORWA-sQmK$dx1NpJF~S<mG3O?dHelt!J<V9QM>k9ANw|u|K)k^SF@X6sQjK6d~y%l
z%k%FgemmwVf9XitC|JcbHK1kQ62<$DTe45A{&9W!Ev<idkA2_1YVW#Tw|`ehPu|M&
zo4e}Pq?-%cql3*}EDS4YzI57x!8S(hr$goCtoEX%dRw+CR)o%|4w5Oo`ToGRZ<{<O
zY&Ly%Q{-&1)+~_EQ(gXk&Yj@AanCBp+IiQf^}Mid-jZppp`0w@;_bWc`pMAjvk|Pv
zev}qvHokTfYuuB)vh;41h^gB3(tha~_pVBKJzIU}w7Tv>!;haI2X5<IAhbKe=hh4%
zDdF4`3k{E6w*4Y~!|h~-?(r-G$Ed4Gj@b(}B<J#7pL8;D!Y&!Ma=yFn_m+O%@wocB
z$aU-5Lo+Vq7q-ZWBwH>>Uv&Fhp~QvU34y#1a%?UedcOPhxaXKlXrM*4U^446yXf^Z
zSIfApzH(;1h4H!kEnhN%?ysKa^TjqG`AbFR<P+&((`J3unf}!zylKl7>xT07`p#Ix
zGWHMaoV+Im?S5Q6e@oAlV7}Pzu}jWe7uNchv!RdeSKA(~i!8|&XFuNDul3tZP;jr{
z4b@Mb$!Dfjx2{;Sjq7U7)H@INYfsCH;a7ceFv#-Hbg9)Zsya+~x_-QwpBI}lC$dm(
zvDS`d6U}|2&QE%;=<aE1Jkix|>ES#_t94>ayrhnus5!fI%ayi7UeU&xsX}xAu0C~5
z>YU4cYpEMe)35KkwpIGehg0{NpC%-<f7)l1V0Y#D&%be>pI*}!jc2+NH%U@7H2lfd
zui4@y7p~p9BDysH@2%L$Yi^xe@N4b@)+jO7jGXl`{R_2sU3+OCf93U;`RgBt&e+m9
zIWK#nnLw}L9KZj$Yu_r)T%@T#>r>Ry0PQW?K04+kq?CB7MR9F?=POxnvdw9Gl-bG)
zl1n3=1!zUSwl#dj%r&(vWy#WYm+kGIa`txa^_?^&T}12dKYP_rmsCD+O}X5}*ZZ>K
z=smV=ukS1iz0{b$uaQ5rC~D)+Wiu{Bb!^l;I;r`~<(oU?cCB^&^=PZ|W9^dIXG*{P
zf>du-s71XOy=moqe@kXi$$i)Fy}~!X8*RJ(df)f&%RlerpAsjZYyG8!^BtRQOw;bf
zWvOTQwyGy;CoJ2s`F+6dC9(UyH{P0~^TAv4_C{xa%bRQ0o;}&L#*hDNUVwFLxN2{x
z*u%wf>_2Mfz0=%Nq4-d%`$J`4hC<E0{U`SsubAmo;61TNG{ofW#mJz(v_qcPl_r)O
zIPR0%cVgeg2`}y(UU5q5on=%*piYQb;FL4rVWrH$w@froh39@`+jjmziUGS_GPl&?
zTg)=wZ2T8(4M=46ID4$w^LJ}YU!#UOmu+m7nuht}|5JW^nYjMUviy~=1=i;4-h458
zoi2A4$GY&Mn(UL2eUqx^eVLe^c|vmU;g3CU)rxls`>slvyYZ{~#L{EewofZP7G`j5
z_M2)J%_|p|9!m>q&QP_hE!Ifew7__q^UbJE*T}4cC!4sX7rcKzcV*Uj)(!2(q5NM$
z-ru~lJJooLZLIF4Bf0yyKF`{Ghr4(>cX57roZOkcF_o;p{P(v#)B7oVU_I|N_JWc#
zc0bI&h#$@830&BB`p%#3cgh>i%)TgmVEOL$8q;GkqVd_=Be&>z2E{G0x^~xjpWV9?
z$EHV3mfEQ-{h#fBU+v|$iZ{${KL{?_=RW<!#c4m@O<WYMTvT;C!b|t)0+Vg0T>tJ1
zev|cNnM%9krESxC)<#~saLvNfP_-!8XZdPRGXvY^OG^SSM!hka)w6ZZJ2}Cgg_Z@j
z8dm(p`|oT0_+nbNT>Q`O7mov$-2KU1U*)NA<^9~87w4Z&YM;!@|Hb5T>GxF!d2;=Y
zW6SlWbRrY?rR`!rW$oWE^PUCsib5maTTxfPEHEg4bG>55z0li@Gu~=eYOd}yxjj8A
zWxuxje$!>;>vl~#zANx<_~lh6U%iW+tnGgPZSKU`iE2xq&S-zLTSfI^XsGIsb)iA`
zCN24MD_&&EcP-8LH)gH#$@jXOJx}<TTk^t}^=5aYjHWRexOKnL5S_Is<b@ai53X3(
z@O@6#ZMHYAT(!!x;H}sF>_&Z!e2-bR&&AF*KHE8Q%CT#|;wP9*Hd>Y<;<Y_Rbm>N!
z=110x%O7}eS+vMTJ(KTd1-mtCdM2N?;Je>jOIPnySnKC0<)?IiPE-8r&He8)L*8C^
zEb@od*6(2a1)uj{-vz9D&iG>Crpo3^zK+&YxOo?>U0W#8wU{sWZN`gD_Z5H3Zo1$3
z_txr+1@UoRNy)pvarnMeTvRE;J>T5mZn5RU{M`#q`@SsP`~BJGy?*>$r?Mv`t&Dw{
ze7E?ucFJ5iktyF-_#`epY5rklNhR~;?1_O!X6=)rxNgjv<n7G6XR7OW$=%C6!&iJa
zdC66poBF$F?cP`HKEgGbUMp6cMFzwzU$Q5Z)9lx>tBb-;c4YOe-J9k3^US0zmQ&A!
zPx{Mvds1)pq_5HLTS9L2v;`(@S2Oa{vtfTMVSG42^`^N&uDZMDteFXKM0$;RRCj4_
zTUM>tZq%OBb8=f=@VDN{0)h9IOSx3O(5znM<tHBbODbAC^4GG6Erz1WKHrXR&|trK
z>frCg`xh8qjQ*VAQ}cE1v)dAr*Iv}Uv|Xep{KeXzTI>Y}JG;7>nm28|)a}yO_qxJ+
zS;s?zoQ3<+gBLGZl)k9^-Nh)5IZs?dzlH=Cu6lU6*~nrA>)NAn2P2o>UM(?0;8R;!
zp8WreS^1A`ICOGz_j*67ZnyI9*&AJDV(x9knDzY1HfR5Kt-sr{E1!Ma&Gxx@=DFMN
z0;0oqwQcggy0w1e*KBb$*;}`?q9=&z`fOMmTjkNm=5<(4FJRKQfYgb(s_upi-X#?V
zY&Wf%7z=uH13pDnr`SasmM&dc%DCU5@7vMSvse<Mt~K1fe4Amb=cQR&CU>~Gtvnj1
z@<~wjQ{d8L7p7R0YaBnfOXR5e$5PEM`(?trr0%gyeyqN5YeDO~kf7+Jj{BCbQ=Yyr
zAb8@mUGIDZ<2HGD$CfYSc*1My_Wahxb1Ta@M7&Icl|5(j>t4AT^15eVYjC%7XX@UG
zZ~G_7sAk^u@iohzIr)wC>5qHm4t`7BCwEY+=JB5+{J+$eZmdpxRQ0<$@zLkIOT*6`
zlhJwVT=k?!STOdzpvryLuV?wy{9J!peS7ga_JVcI`hv=q^;=#pEcn?tk865uM%%WK
zYcY&oN-Sr}CNljk+OpUA=Mm{GTR9^$vSS0-SG{p~+i}zGTMR>%Jb!oBV(sJ4inj!<
zvy1$=D&|Y!`V(o%Gx@|-Z<^0K@bS<#-k&cIZCkt5S8TCpz^Sbb2Q(vN8jHNd7O&Eb
z?Ac`(rpCSRqF6_f3ER1qZYw9<oaz;J>Z*DB)S|DR(VF4&H*PI_*{zzH?U|uF*GzA-
z%e<xg!vFT=KVMzvKA|n{am0S*CD&#Jy;ybs<6E1|Y|mp+8j03Z=dOS3xG&<`M}>Hu
z)pf_^Rd3EXys|ExIoK~W%KO|U<J2qW=_!snAqS#oU;5tV`zLWj(W-q;;V+b;zN`Fx
z=X|Or#MJB4h1&B=a&oVl{%+f&SMnirlah4&LRWuN*17C=PfSxuX6-#0CO5@qYJm4d
z<{cp~XLfOF={#NQv9EB|!!;UP{>9mT*ND&0l6kdL{zYc@-^O{{Zpgn_dFpNBJdnuC
zl^*-=bLGB#WS-%@orfXxT4kJdX5DR5fxC6nqxJ6X)?~hQ>&)G$wI5bSP0iY;5x#Vm
z{^<_3f;|h%vwit@d2GA(Hc>kB%NbU#D`~rmF0M6A&TyV`Xtm?Eb(gk<@7$ixr9E}4
z;&P{LN(Y^9MY<$Ey!<3`RZ5xal_kBJlF3$g-)kSx^m>w^yXSbEXmU39z3UN9#T#ay
z<UISZ;@sKoS3=pgZ(UZL=g7P0%9enOQ9m|V_8IQFzujx*ddYjTY^&!*@2tqkHLod}
z;Agk^^}`B*rD=~3UQx|Fw*7+P4n<GxP^IIN9Z8#_t}^U9>{`x{Zo;0``|N;u1*@r-
z(K+X`WhafjE-jn4wRzsQW|@VoXBBTQ;GWxF8}ya$$GmGL+hkj^Hv2DC;dP5%oclpT
z(z*D7^qvbcZ~RJUd#N5hqiSZltiAr=!}I1}%v7h9x=vp|sq5FdZ>f7VYEM`37Ipi)
zEoE7e&y-vv`SO?|Pql8ch4hV@WY^YP3wADYTKRt2;p_9JT3%6nKFMlH_!^6SneBC6
z*_kii<=*%0f8X}_cGZ(<eiM)Hp4uJ1!h*5t#zOhLz%#R~{s^sH_-pUBBW>~FOu7En
zU+hA)J3e@~TW_&_bAf+**`nmzhxz^%oDNhwb?V(F@s*1ibY#!p;Mu+;dG5xKtef&q
z-l$lX`(>3&(ep)rovz(cd8(@I>t@32Wp-UtGTS%kp5uyZ>FbTn_;37rQ#$!7+p^W2
zm-)7Zf4SGqy}!e(!Rw98-gT>P9SFI9TO|49i`kn_9x%Ue+tU;HQ-6Y3uHQC>%!zRi
zPH!^p%h?yR!{gYkfW;~c_x+sKqcV|yOYtsMX7&xCoU@o!W1D3Tl$%9f`MyZ;@+(H(
znUCsaRKHxY(Yo@inR`N7bAQj{+3$BcME|~KIKy!Nqt3&gSJ<o0T=dQNJ9pvRjK#C_
z-f)D-7MJAh7ria@(tJTzQHkt=ZwtHwOv*E==e(4A@laHE{(Vu)oqzmtypJc$Qqo@Z
z@23Ly1mDheqGxx+xGqld+NAjOi_qF-GGEUaM+PYERksRXw(<2fS<l6>S9L;-1T9l9
zcB$kp^^Mtgz3>9B<<vkGhTDR&%Y!nUiWjiNzdAJ|Nbb~(YpTDSHqM&j73Mizf9sV=
zF87`&c*RDY-u2DlgYDu?(^5pT(kCk%ofNpxX7WRUEs}Fvk`|V)TVlCpvBsj(&Q0$x
zT{Vbs4>ZeOxN5GVXZ9uQ6q)-fTjNq*3#vYK{`I=&+&u4Hvy6^f^FLG4XG}MkeX%nr
zxm@nd{PMz@&r5V=!%tp1$IVy&T9%8iK1yn_<%M}U-B~Tu^x7R?t}vXvNcz%tkt^n^
zKbD2Pc+>U1>zPBlXHtMs{Q85xnpZ3;f3W)1QpNB&e}8VOe7QsG+`lsarD2*|OJ}%z
zxSL`Ub~Y#Ba!PEQsp#5PzKc9BXTF*;Z>8VMnNb#%%ff&B*I#e{pZ|UPRd3L~5!5U0
zjE#oa&KSqMy!?`4g=iZa{gBFnR0Vyo0GEDnX;KN8?~|FA&86>@UzCzsq!10-_+t>u
zr5}`<T%r(dZm3{vV5VSXW}skfXdcU@@2G$<C%GguKaWd4SV2ED$de01C}?DqloVL$
z>z9|8>*b`TXQmY;<|U`<rRSHH>7^CvC#I!kCTBS3r=&U-m1HL8r0S*QTW1xg78hsc
z=VhkY8km_oI-3}qnHih98Mv96S-LtKT9});7?>Nl8W|fH>Xj6vWacCqn3u&H+b3tH
zgrruKq}uwpx_gGWMuZrEfSG}rrKyFnT4oB=3b3?eP>3f;*1*iz(A2=lL@gz;Bo(6D
z$iUFl(8$nKEjh6yH9fy5Gu0<EHP1FVGesF>FuG1nJ3BkOST23%{JfIXypm!CWAGLu
zE?gUqK(fSaI5IFXHALQUG`05js$9#Wr`2^we=;s#E+V+gA$i4`HJ>)mW~q0$Y-V!f
z!n^<N_q;zpi7P%b;n+R3m5(+gdv=}f2x!UM{AY*Vzu)bjKGq+8d;I^e{`i0I_1Et|
zlJlDX|JVKXKd;OG-}&!~ZQT@YyZ>Qzd;a~N|Nqb9f5+?p{?`Bh<NWph`v3Lw?f>2U
zcmJCFy6gJy>udge+HPO>^Z5RHo}Z8V>who(bJ8i-KI`wt<Mn?&*{@su!~XA&$N%?a
zmf2<~U;N{^x>N1fm-P7)GZy*hKQH_E=CaV)^Lvgc{QURrxTEjaU#9o=ud6>kFYBxN
z&HuAbzV+;zd4g@Od&(xq=gO0RPp*kn^Ut^|e6#d9-&}X^CmKa>8qPJJh&^>TK-Y9~
z;PaVV&E`F+Q!QE_q${gC?W)n1qitcYE_lt2S}AOOK4F&PLW`$2%0!oj?A}n!CDF0<
ziE3C^Q1{dcYo@Nek|b)SAFj4LkN4ZUNCWLt_tGv@e(}jWrIP0S>dxwrRl7r0@oSdH
z1ifRJJVhs>!Shu7C!2(#H)2I^>O7mvUd(y6PH*v|(g!x1g4#<Qo&TTP+_<oQvgd{U
zw%NYc8x}IBf8TB?8uWM7sm8yDHiQf9jNw`tR~GPRM$rGKzd6qxKN9`N{mAhW`~QD#
zpBH&PWq(iq|GzRH&Ak%txqLdcs^g!^q@VIfK3S_;@F$&1TBUSo2B&DDW|Hs`wq&*L
zZO>;|ZZWx#>r_~8G{x}F!rLtm`0lFx`L;aIxXQh9o6il|k2y1+$b7zO^ssE!gyOP=
z`z%|9PJMl2zFhxlRoNWjo}hV)p0#Y8BH%OiQfrg<OsB(3wOXdVI>fM)&s5JsIe4{$
z4`cb6XW9??E!jjq?3{J`SAZGUgH`FPKJ{Ok_vzWmwOazhG7f~wiO1@{UKPGnyJX+~
z^j85wyrQ0`3YM-`{A#oC`TkU`FMq0+Iej?2^Ghjb=c}ii-UeJ*BoN)rU76iDZ?anU
zRNL^S&$;X(iZ3Rg@0b$2tl#O=&1u|6({G=d>O5nK(|gIYpMsotJJNPe>q_5qN;56@
zz}5VjTtZI^4+eY0eQ2GuTIWk^Pwz#M^Phu0G2QY!U(7L&_k+((s|S|uPRvJw&WkRJ
z^s~xdQTRF}<Uq={iHYl`ezrcdylB=l--rteiyxhG%VJKlE@br-6;<<ncxu-ajz#5t
z2d-URlgMo3;guO0V%TvnW}-vS*`oqS%AyP#Ud(-3+Hvn@zs%zAXF?uWKELJqbNzJn
z@Trq3O#fGfS~ffHowS+B{KT)Kw{5PT?{3a|#8tdRNB>9Qwgt|Klb#2Zn?9~+D1ScB
z`Dl9ksikSJo8_<S<cHs!{ylxqrZwpr#yYPhldOBW=Q&l(JGDFZm(v1$0nsEr-3j~;
z-5d9Ph+gKkZdKPJ#+_Wf(W>DAf=}isGQ7S1_V@CmzdtN@{Qv3peEWa-I^HW(I}Y4b
zIJ)q_%>`+%()z46e>0qX?c?h?@{tZV{%B15d;Ow)%y0Fdi_flq>@2<d`~3fZGCuK}
zrTzJ3`0>m2xXE{%vhK!p>pQ<w+}m{`Ui-y@8|*dltDWB}i&{*Pn_PFu`_~`gsBe$w
zr`Q)gQ)QQXr<yOo@_mwXUXOnDPmRwV)AvjWs$8&S*E!~=swWTb-SQ-`nRi0<Oljjw
ztBxJrfAZ?vts8~b7UZ0nq8MzR{PfqpPZ1$IrTVA3)~{8nX<hS3x;X7-a`O3@`|O{6
z{%kpv{B+eW!}BWD>GO>DoqDjbWB$gM?OBEI)T>=)O4~k{dXXek#C!I}1F5;pT)E40
z4cw%sO7{rbOZQydws3QuN7;Y2^BX^Q?@^VNjz9NjOa6-uwaxSQy?p-t&urg<^Hws_
zyPsd3xO1ZIX;brWi`M$cb$_cgE9}Wy94m7=H0STF{c)yW!p*ks`Z%}d$04)2S=z48
zC0uU@?3=lMbId_A)tk4EE&FM1{pX48HD8(AZ(bSN?>uxbp-1c1#)DbwK9v`zu1hd0
zPF;5^KJ-m^(cY|^f23C}EweaNdfvR?g|tjiZm#s7fTKHKw)6eTsj<9XIXg!8@p1E$
zQcG)QTTXv-bzfrl**UY5yUX9HpKsnbvsiPo?ChVmw@d2QKELraXXm0@M|SB{Px1Bp
z^!?B5^@S4m4<x>Ml(=r~D>b*&o93U5K5m{ly;x7mTIN}kg4y3crvK9>s|SScIOukA
z|Ib|-9lp7aW%rNxNM(!jZ+^48((?4a&Y8CFJ@Plq%DuI2{pnR<5#QF#-*%G!^PhXK
zt{3i;{OptbwqS<&9rLSi{nz~4xvg;3-qrJquD|v?dm_H`?e5%p#o7UxqB2#>LK7DR
zEvXIS+<v0iP3nV>=yvDZF`n^V&--Ti*z$+ZidlMo_ADLi*v!Q-7iMe=6Tj1cOG|vk
ztZlQnZ&~!mE<My0yJ>6U^O?ovCwKB^%stK*K5d`&6Xg%@AN|N!zgy4FX+O_P^VE{3
zQmP9Tvvc{DUa9iD_U_d86<4BSD*e|^+8WjV#-_Dp&%rm#{;XbfJNV?Q;7N;5ol{<t
zu-0qoHod3sTp#W!yApNpqioc3=Ut9RA57dBwtUNs*igos1{D_`UKX0P=3okk+O3i;
z0Zo#AiZ}oA9(38gP;u`OgKZZC&y{%|6wuwWtwES``pO%#v_dQ|&X||!<8Rs*%o`eX
zJs|Fp=Jf@&msdXdmUXH##@}?_vRN_y4`ZC3hMk!4%2$o;-h|>?{#WKK-g{CdBR}ZX
z6o+pjvKmt-$w^J0)5&z#UfDEj>fGxq-^k8z2y%QF^zOiwMbCw_y57VbR^0NteV&ez
zuh`B>J_RRSgHG9e+V^6DWVp{vV^iMtvXe7cBxX6bcXrR|lv<?Pey45n(cfQotf{tZ
zI;2=R$6ssyB4(|*7n<gMK67b-ZtF_*se87r-j?lW<+a7&=dx#3SFi5S7Preve)v@*
z|M<4dJ6m;2-c&l=mN8e~vh>y?Cgs3i^}ecwKbhn@_^l>J%@$g%((>fXeHD&(i(cNH
zwMxlAHQ!*-){Oj(CpQYZmN4y@$&~SO`kOtwMRGFEwU?|hy0~EHmmM*YYvL|_ez)l5
zi6~v6?5&Hg6*2W^EHsti(b%IHk&-Q6^hPAO=%c^|EB#|v#U`1yFl%ltUuoLnY_~4J
zu<V2BiB%iImS5Q!8}vM^>(Z@QQQ3`YsVB~@?%@j)Tp1#|^U_Yms1?QT=Uy5;oDkJL
zVJ`ctIqR6sZdSVgKiAaj{qRoEha2y%%~gNP{W$8L^{yvRs>FSduRIo<v+(f}*T$2p
zOA^*!@_sjW*W&3rJoO8w$30Tq_)Kx*Gl{B-)`+CDw?pC{#j0l>UXq}hd$RS_ly~og
zxx}XTtPFf2BF&+8Yw4=#Mi~h?5BF};idNrpfiF^HNt^R)o2xD!YwkuTr7tym$@bmt
z#_rN}$-B>dd#Af8Ifk3ZHpJP#bL$MFC)--Yw05q#^mFgQ(sf({y7uW0)_bkn!RNQV
z>i3eMO#%*QkB4b}nUfxpGkf_F&fM~7-}zVGhFuO^wDoGqo64y%$LEPF-OmmF60LfD
z_N+Dc+Fw;RtSj=75B_R1d(*|ef~6r}_6nA63EJ5f6t1~&$u8|pi#6YMy_xKDb%CNu
zrgXN~IoZ%z*8IU%d$U(9Uip63t2NW=JhzrO+&q7JV*Jk+KQ1qSnRV;ylD;{n+tsIT
z7n&CmXH*}w{j}2jkhsSokJ+~QvU4-vdbZ<IgLc#{gQK5!h@5wRmE{!u=@8!)o*CTi
z%l^jY%;k4k&-2itB=Y66K;_h@lOLPRoGRLR|H&H-J}*Ue-)T#ha!bsfvqkawlh#?E
z<xX8oWxcw1<7tUgw^CnSE7s___j|AV<SR{cpGR)@Pzd`{5jQ)7OZVyp=NCaAmhwc|
zipad<y}Q^m>r;-^44I&JY-=-17iO<r`2I4}#}`4_mqkV1YMoM9_V@Or`uy`!^OGy4
z<|U|YOk1YTF+IY#hi?kgvKJG+S4(S6H46<~Sy}dK-GYq89y{AvHu-X<%oaLP=c({p
zweiiZzqUK=b>&N*9+>xF!gM{Jh{aAfRA<~NJ=Re0;A-o-2M>JDHT7jE?kp|&uyE?E
zMb2V6uI({ykKdeU?JoKMyW`!?&q`axLbG&z*wz_ne&3s1ou<3xj^bVWpdttLtkfcb
z88QLAb|%@(Tc`QEWLvbfIbSZw;Ao#Cv%N@j>lT*wJ-Y%_ug&sYW7@)8_|DZb@bgB=
z=<Bxf>x%Ub%?sJLhxN*yht-bfD<gM1NAHs3&pjC(db_{mhv(V$1&!&K^a@<p=N#Oz
zMV80rdAI&zjm~2MF|}tV^S|1jb#sT^_2r+weyXxvIXmi`<J~Kp_+KrXRvTcx^-c4x
zm8nN}Fy?Z8IUu^0wM=4reoobso%}~X7aaXOAy<9N)AVx<x?1Mz7p7<})jH-iu}n*p
zcPe-45r(NZ+g_bJx{5h_&mxfvv$PT)%;`6qEwU#5l+t?leN(Qrx!io6@p*Ict+weA
zl~Z?}KlgdJXLxAF%IhIk^=~h6FTEz^wc+~B)W)q@LD}nrzDpXK-Tu(k^G&U&*z?_i
zovAzBCqC(%^SpbfvB=GJ-YcJeeKMtCk!Yu>cE?tmk70LrW?u8z?$-S2V^T_Paa{!G
zwJxSl+1fE%-z}T)%gSD7QFEfn@~iDDBWEADb>6rx{_MrS=U;nGo1dWVpH-)qe)gjK
zs*~H;a(_nY2D~&e_~H{TF+b$g&0~|jJlET=oNc=>{rt}&p)F@O7BYlydEIQQ9_y=l
zaf;AX@2-;b5B`?azT5gzxvg%m`Kn{<ocnSw%#s()_0n8#tC-l^q_8mc+loz}FBF+i
znJvfgHc0pGlBlZbYLa@9&Ko{Nm4zo?=Z?BO>AkA$gLx17vnpi|3tO${^eOqw`M_cO
zx-(C1m`%B+wJ7!TLY9?VTg0MXxlO*X+4IGLFDscZNX?xh?VFYBr1ErW-jS$zz6KQ+
zR=v48HAwehW1f7h*UIv51$nvCgH}oIQm|e4&@20yQ9-1~_w5(54tloDKf(1>^;+r<
zb6Hs*clOH{59;5%Wh%4B!=UozsRi>MIBf4<(!Our=78kaFCJJ~?dap{yV#g#w^i-w
zv6D^WtC!aQei8IeMD~To98LW~7jD~wWuEMPN_XvrqF&@WSq8GE$(1CXdGbcSLu}WQ
z$Gf(kzN6^$%tz4Z3rm_@&4fI!bJdgQW*fLN1wWIyc<9N>f_r);&3j^^x|$BZemBYM
zj^Wk?Q+IZ)QQfj-O2;M3O>^(WPmPh6{C`jV`l1`Ny)w^DKJ|Uh{E&G@q32gWsoK8u
z@F9n#vs*40@14mMvTN$H9Z@?k2HuMk4c9LGwd9$A;jBsJVyYLTT&jaF?<iie?faxx
zfwE7Tq%VDnYg|})v{WN^T36bV$Bv;dpTq_IRjJR<U07q+n)GMO$>v>^x1KoOwaNXo
z;M4NX1?g2;KRusDdiVZrDzdcubGc#lp37gj&Zbvdf0*;uDj@vlta+O2)V!wbZ@e^B
zO+4bf&-$y)?)PUaFJASTN$RBk+Wmb!b|)&ES7h*r@HRDRD7bqXELiS4OJ=uY_GxZu
z-YwI@k6ruJpu}(aZAH)qL(y|_+rNZ7@0g}@<F(412Y<eP>Qs4sO+x?2f;rkdSBt8a
zn|5Bw3NCx+yYt3tUH_|<B~O#Hiyu0k>*oG@DJ3QMbINj#^7Y;|hdQs_YZk~k)$x7T
zk?%6r`xgf;X^)y(6g^dLR~WzC+RumDUT%zaD%91R)7+kzv+$hr`5KFp6Rus-abC?H
zn#G&Uo$u>W9o?n-CD+=3)AnPbr-qfEX~-(EIV(O*o-Pr+<7+_HN0Df=`?Ufaj~Z_K
z@Q6uj%8B4rstu;Qen}K<`Y>hVlWV@qtosrk1y{uGY+Qc9nLjx$NY_I6qpodukvo&{
zTZNNr)Vo4ny^a)p$hJN`v?WOSsqReEIh`-g1kUO#D(c?YS`<Gg>jjs>Gu<iD$@dOj
z|1fLIjR}*VL{(dycUd1?vFLMKrjGoj$({w?1vl2(u2{q{S3~~NVUuYmgCp1M49Plt
zMtR>>laEzi|0g_;@z<LFf?cb2-z(3jn!(#-9hL^4b2$62#pd$aprco_Gavb?-enG-
zE#2faSyt6cG0AuH@xu7!AI{mXpYvK*@UE|s>W8Qri_;;embTT|hOV?)zhY91Xy}Al
z_j4ReFY`J&2-Lf6I&tpq(u6<}hWA+?bjl|S#LPaL^rml}<JXwLdBFl+F*;09pR{9A
zy{6aI&JA4gbRFCIgG)k=-g+H3h0AQKmc^BpX))eXS-Rpm5(PhQP5E;E`d$rHiAAmQ
zyG%|-O)uP{wk79Yj^Mx8_9IbqU1z0~EiK-i^1*<|w&cyq9fxL3T^X@i>+XS9AyLN8
z-A}E|d>v+*%Ae}wxp*l2`BLG#S06;?%~`x}XVP!GNLP1*c_DV*AC~0Ji>(e?d8jIA
zr%z+y%Zoe<F8$@XT5No^c(&I)Jyj`<z)xE)iiEHJVwtylUC8$x{blQK$n~GRqrL6<
zW5=VS$=THp7fzfbe`S$Rq5s3@8-4q8Ez11l1)Od(-%a<vZ@kAs*DU3^@9Db%@8;N*
zOwM{KbTD<sn;M>zw|Gp;d=nPQ%G~_9cR{tCSZl_^&vA;@<{QlY9|o7bTQ=p_FS$(z
zDto;*iN%)9yD&-oVzkEpxb~Chzpax!w(M{UC!fe6=d4^Wja#W+x~~m>?kv8%@Oa4!
zL)j{ycDc(7j~jgXkZ6=?$PGr>myTb{G*rBy5wxMv&Q1R_!}FT_DlLWTCg-@~y|aQ=
ziQnB-GtvJ=%c7)gE8VnH-gop<1Kcex+^`d!5WC!X-Dk<;Ep05XXBD#u*MDB&HTN~B
z@p#gGvfdjT{SUE5$y`0Udy;NXy%YHLMu%9`jUz{<uMchCR6gTMREB{olki;A?4S*0
zC(q5+u6Ab%j;ruC7Ob6eLN%L1Eh+cZ45`i9Teol@KgV6Ing26e?ftV!>$_GxUb!Z8
zr<^~xZpyyf&p3K)^ZiO}tCktBzc4K>p=H~bqq-U1>u=evyq$V^v5V~1iR;zPP2Wus
z@}1COe~H=W^PvozlRFLeomMM+<5eEFuz26esHw8utxN}F#phmpp1>ES-=}5SuV$H_
zF)?P<H}9f*2a{rMW?U1{Ub0oOv21;f+}3UH4$eEiPP}if@t>wX&*upa*)=EGEYF*N
z%bGklT=V-b*XnDPUzM&l1vZD<Ei~QxQp9;%UTEUlZ7bi@PWL_D5N7x;;GwZkrKfDv
zyU3L1##5$CB=yEGo^?tk%xPnqYu4F<Uk_J#_2*XQ%s%DKqplGp@pajrBL)Q*wPO_1
zW3!|3j!4zNzP2>#nCexd7%nsYPO&-9UTivPIz_m0V!)Rvy-z+ZENlJzd&Zfce|9Qn
z@09y8Vean`udfp<XDG{POw2OUs+xZJcWmg~&l~uPKJ&`Gbm{vnAz9*e?(rnGPVZ+~
z3xlsaY`M^VG1Mw>hR@1FOV1r%dX9Os+`bJBSts?~+Fi1?+$i|xTKgd?^Y72!XN@iM
zwQ6Vc-M;kX!;(w8LfN${H^2J%G><>)S^%?Ft-IK<v$ORWuhiT~)0!9G`2Ec1Y~42(
z%Zk@Lx>M%2^kk9g(Jxl!A2%qzU8Qil<kceWb8+zup>y|#*|9!vdv#9JYEi=XO`D{w
zcR7`1UW!>N-a0u{u4CiHTU#C)PuRNWq4C76bM)ebyk2J<ZuW7PUc$Vlw|{ejcC+}y
zLkwLd76%Ozo?JSz`_rAR9}C%ndGGFu4SIKN$(_HGij-weBpp_L9-Ndbn`^N-je~uk
znttKGUs1iU_Oviv_PTgp@Z(oYDaQ7#9}A~d%a(}GQI5)}<9sv6&yGj4eD$dX%hH)%
zSG}<l3G!v<_deLX@8Qa=Z3(~bE$sPK*^&I+<^1ej)r+2AoR+mled@l0Rt>YfIUi`n
z--~K|G<nwhJl2Av{YgycXD=6g{n5aWy;H+}M%Eohp{ESSjoMaIZeHE7KL4TZ$&xhY
zAE$0!sZxKh^QlUGy&S*9)Gn^Y=_Pt6XDv*at>41kyY8y%!Jn@SE-(IkSKE5g=W8NN
z*Ee<<vvePGx|pER!4_xdvi9Pqg)2A4%kLKU+uaw+(Z7DWTD#0{Kh+y^W9Rs{{8F`c
z-!dT~Q1$sm)txV|NtkDFt`|R9$-egEt49-}q@$iEdu=%rFc(z2weUMl%)8m>`6IeQ
z!sbQHQqOBXhYl9}QoJVPb4dRWuV(oS5uW7=Q8h;_JFc_)u3EZK_~P$|OP$w#EeLq!
z&>U2zn0}x%?QxFK@e@a0H%~IvpR~2K_npr6>xz-a2Q2Tun%?;OYt-N3oT|WpG|_t#
zKJPK>JlMQHO?`25a>;_y8JcrXOx~->uYF1-yY>B<C=tmW*O(qyYOP~+xL7$gF@NrC
zfn@dS{C#Qamu4MU**5J%lGYNoUH0{F_@;V^KNQd{>CN-#R*cF>uM4~RbBb8@^eqv)
z%fx=KD(ZY})M>vmM$GwkY_8DqPkC#jj;`DleW7Ce*$XSO?y&YKm!>W$)Y@j9rED+H
zWt*Qp*+TTNw#%OCbJ^2lzwYs~+jFwjOZ<Y#(u+q^pR>N5V!eKuLcw)4_djdAV;61p
z?wOL3p=5ru(wMcSbc<ujy{*@*iu|^6GR){V<7sUxee#><a96<t{zC8NYnQIrxVp`G
z?Iq`Tx1Oxn`jzQL^VXQyi0Mt15j}pf7Kaq|54D^;XF4N`DLBkqI!IT_NA#e}>t&oi
zCC^u%+W0&m`To|Eh6?L8bEnU}uRY&=>l$%~b5`3~md#1MzHUO*b+zXkbG6n=E^3Wu
zSQ(VfsT&fz!1EJlLtC&&troYk@LanWLD|BKo!8|E@LB$@sMYdj(L27fZ8f*#jy;cT
zrWJpY@_OF4QFXuOzIz`8*6cJ{p>FYpPkqkDZTCJ1BySJ+_U+!3=@ru*zFkzw=3rmv
z8<738>A;+>tp^@BO4d1fcb#a=Sa_~GBr8O+ib+^_o$nJB$r;-N9zMRrdi^1bVOh(S
zsKXo0<!=Su%%83&vDo8WyV=PJKckk+?08qnG~>mUk5{K$i#oWoW!{e$rxx&P&&<E(
zdX|6By2`hcPp$8?Us)q4b?eeX%Z%NXX^$P3&Q{O5<1lY?q1Be9`n|R*Q)aE(a?!Wf
zx?y$Cvx`&B(gHvEZD88p-H~%qTgEr?<vl*DRoQ!2Rk)r1rFJ+{b?K{fx>F3Vxr@6z
zzc<B;dr?b&_l_%4i#oK8rq4BZF`w(o&-$<QMofv_tS2=YYZYf~Yd?EF`MURZy-?1w
z`L32u8<l2!5~_7I_^3X6)~EfybxsNDevh28IYIHTn{UR+xyn&1-n?|}ySrPaTIA`%
z*Fx(!J_s)^S;w|~%M8V+ACk+KJxH)H{`kgd%C&38(&=j@{rvXGikwP%7OHu*#%rgb
zZq2MGle}_`=B<D4sQGEiobPH=t$egZleslZXC0cQIOD~E@2Zn~zrI+c<b80D*FhWK
zkS(%TRGw>Ydy-}FRJ-!81#AD?vI{#ui`ZmXYb=Q>SatK>rrOE-%d1Y<`Aff@SF-W*
z%AG%#yqj0D@$pT=_Ic(0yKa1J2vrE5tsZ;M);!pD`^qP8gBCRk<<2XyEdCm`aQoxV
zjhSBeiekIgPW7GV9@pM4Klgcga2)rKG8@kAeDd?J?iBkV|KzT@mFx3mPs^svwtFZU
zq#L*-iYYpHSH#mByjPqoE6P`HU3k^VLHEzH*>cspg1lV~3e8@6z5CjFe)G|5i*u85
zddy1ncD*|1d#tC6v3>JNHEaGWm42bORju>&rv6%Gd+y%;Nxlc8<Tn-bcyD>zSlBsl
z^1%y-Ppb9!cAuQivwYeE2k#F;U9XuF(zmY32`b4`wBEkbCrK}T!PK02g?S5)_vtSS
z&D{94^y22DYqGm}Unalq%`;pcUlnwGX2&KiAJ-R^6SdT}))y^`n$CaTtMu~Pwcb1L
zF1gdUHnaBr)ae!4rxx6M@@3z=5=-WryXPd;dWe5{7_?!frMtn$>0v%EZN7vEYi_&n
z*2%J+ZBeWEhwe=`sy08>Dc>O{eeuwA{)-E~)NWYzMt0%WwuDo&Q!c8?FkPM%<9%d8
zME6ST`9j&RIp1%-qx)31vUQ(G>(;i&JioWmQ&&EzdKg`hH)F<=?*|Ljl+GFE|Lokl
z{?*>1n64a$r6R9ApPv1vJ~ch$g{Az8w+>6UA844hSpU-;^Itw+WrFUteR`IEj(2JA
zQ*QU%l8o8&cU9!J%)QNbp}6gG&Z&LEw?6G-F}Zgyxb}mqc;M0#uh&d>xL34jvF0_~
ztDCo7f4m?mN1ChlwbW}#m2%a}BllxH<rsI!v5U?%*DZIt`K~Zv;WWM4PwQ0r1ERJ^
z9JwKU<<RXZp_#e1d{tqmtu)Kp9_@OfbZlMd%B4y(ek_^sOy;1As_>##zpY6p9+qeM
zl-*nEdCgX2p=k^AeP_pOFND^dJeMBs6+1oQyjtY<0J$f3f8R^rdEMGH>5Z29-miu$
zibG81?5aq5eQLq$Z2zX>>1rEW#H#)VpPSv5ane60;{BwpfvVZguWPdAF0a%oo~O3T
z#POHv#8;Xp7tU?<F02cm^#0oJ@+`Tv#@QCa9|JciS(Zz_v)z*Lc2d;kjE^GGMYFD^
z78OkIN<U|~{NZ<}Rfm4Ya?3@ttEq*&nYzw`|BTI#YTtzoG8WSXvek-rmioFD^zGD*
z4>nx6Rc-R316P{%&AhVoXwnJIvbooUlKm}@9&@=C<aJdqMYn$aP7i~vTASykS)2b@
zwP@Af1;<3Q?N&}%QIg@kUB7Xc<=U^yig-eDWp7`)b!zgdes#@C>Au;%#v<pr3*Fbb
z1;+4Z%-&maV8@p#{}uDDhkSX~_3pTd!gH0KBB}p(Ygl#dk$Z3XIaWa7PX&LO-~AnH
zz21~Yyv{lKbzA=g>n}IfYE?{YyS8N0GL7W>x3kmNW-5rf1pU0d{m=ftKkw!5Q`q|F
z|KwTk-PfMkJa?X<S;lPsxzbyne*YA5KD+nh+0W1Z-ZMV`HptdI!+W*T4Kq~@*@|-=
z(ihBrKYY<;)u<gM+PJOeo)G&oS78~;#cOvMUEceq@XE8Q-{03v`uc6XM0KiozESO0
zpGEny$7_1_{yy<_@#mVPO^t@z%^%1;xy!qQedaXVWm|4AY<*I#_Il6K3%7E-p1&^b
zD}Mg^>pkNuT5jB02MuFB9BSPXakSy!b6wS->z}35CtnGjCF5K4e!_g#?5GXPSYKaa
zy<X|9cw>Uz4!Q3_$>#&|3f5=KSZ~kPxOPo;+vfIl*LNTJ(@^k$d1`3oikT(MhhI2&
z^D8zl%dDQgZF?za%H?lnTg>+_&~B{JkExmT)B4H@skJ^HTP@t!clCy<&bTHlkrd=!
zoj?D8K-0p#nf113*-A3w+N$$+m0rH-#k};{TcP)t?!B(<Eq3|V_-?+n|H0;c&aomh
zWS$HC%jpd9Ua~T6H*1}Uj#p?x)cWE%Tg%>0*dOc?b)DfH_uA})rkUYtdrn<j7wH{*
z_T6UH=Pv{})b1V83wo~k<%#Ib7O`DR)c*dC`)0BHnz+;#{h2y{cTZhrvn5pWo7An@
z-<*7(t>k_CS9oRo)sVkmlFoTe`t?$B($-~{{NEpw_;N;=|I41+?RDRM-p4YVKF+dP
zX}dmyb<5p7SvAvEv`<>$933UT@<OrG=L3bGWzEB5?uK5Ty=U#LUoRzR@6NKC^<&+v
zKBN1gmjho^>;Js7vo+=H>Puc9^&*|86a=<1oDq#KZax3|#>d%nw(qRI_+&y8@5|Ef
z8y|1Jvst5GPuR!l{EYY;v%EGfWQi`nBeL`4xz(C;@2lPn%zhnwNh$1RfM3b<6!)d~
zRBu}PxSiM-J$3H(Wph>}1t@iY)jED`!<5(as?~qpshV}gvZ+(s?4?WF#LjqG!=tkv
z-q~Wmr6#X8V`0&SEeRcBx8Cu-Y!Wllikf`6M^WZe*P~rWzA3!d+h}_tWYWT*Onu2G
zdOP3ke3G&;PS*1Lt9gr<MN5k6V&}UAKAAB0v5V{U8<$*Mt4~@4UR?N8@v2bh!qi%!
zr*Hn<Tk^a5REE*c(=)2VbJDl+NCwMZoOJL>@T%0kRz>e@^ep>bHBa4}xJgdy#S;<f
z86tw&GsK0n+b&zr%{;bZM)dBUm5rVkznv9QjF@$N#l6)*8`RPd9_Z|vZ!&YzXT|hI
z5=P68xv<~6R(<^3ZPo6nU(-%X@~u6gxh?UU^V-)TV%ci1w@>3*S@Xnlp=$W5htiX4
zLVeC%zW8Bjd!^OXxP`jwy`68zuC(-L-#wl0-j!Ix$|ZV7<SXM2md;xzzvk#B<@1k&
zZ2Q-3F`W3^N49JASCv!A3AdV=wJ+uc85!Dk8l^tps&(x8WR3o7TiCCw?8(uZD{8*<
zLp6WiJUz8L)dl%RZ#Tsky=e<rV7o&p^0jlBUBJqnH)Mj#?3V7$cH*APw@>8SyTgam
zr@LEx5dPuYmwRc!)uoQ_vsXOd=*-r8tIO$C?fEZjrs>Unp?CA%liZVKa@DhpR>V#Z
zdKEiaR`y0$$f}nD`4W#;n(nd}l~+se_+9d$P-utuHuLN+Uba$SzWYpbFq@<Hf-5IG
z=v~~>JF!YvFS$(e-^M#V%QKiW)_JPKH}9mgg1RvmXI{Ehb>!cfTeTHG&O}X3JnuW}
z$+{PPR^`(z_HTc2uBmm-9owVR?notb_uh4$rQ$0V@_{jXOR;5a@7{Ym?6pnxG{47g
zs-5)t-s38bpe^f+g1K9mRU0!mEyy*Jj8;++dB1vryTuy!H>}TN{Wdm!d*-`M)AIPv
zmit9h6wTA_N4)9&bzuGDuj_s;xzsv`?TXD>$MYhIsptD_(=$q3Yb_r;FIuvHdahjV
z<d<=czkQb`Z(FA_>q6Q03x6u_d=*^t`M_$XiY?1-w`REPn$59x`~4F_0xN=F7Kbu4
z74M%i_j=pK$jsMQoiA1{Sh<pk<7DM^tM@BRPd(h4;LL3ndnnQGX{6}G1Me^RU#-*)
zTKQV`m+_1&U9Xj|%ND-4v+B(qC(TmZ<j)y%x5vgPmB!lHwD*1$)Va88x5-I{trvbC
zWNf-9zU|nQsM*V|Y<kshd@by6!MmE;q|d&3^(RvdGEVNync5`D#((Sfg@cEKJ}d~X
zaNXIM_+f!}g+=#=!!6U_?8%(`#d~4u+=s%&j}2Ce_2`D^C*_><K4hkPE?$ID&3#MG
zd{dFjRZ}e+m7_As4=sthW^KBt*nFv2xn!{I(P?L*PV77q{9>WI%&HXKv&lb2;-&`{
z?oHBXk-ji1-^`1@)Te5Nfzz6c?^xLMZk6qPA|qwdAIR6=*gfgXl&^34e$3SsvnpU^
z)2n+T$GTWQC-a~a_q8nvnnr<zN}sPdZ24gPRdK6X>bnho4D+JRdwlL!-~C+r^vA#2
ze=nXk9ao>aUdv|X9+96*K24I|a`xl(#5-@!T$m;|RjNyBp$gZO>1JmZJU@H(D0^vm
z(9e|-aUGUfMXl5QwQ4OTbUg0=i+%Wb#i`O$@7DBxU2uBl+pjyGJEv87)}6T4#<9?!
zxjE=ZQBtr~^lv4ncP~ywWj}uGcy9TdT`qN=$Ch2U7IY60<y|>VGDvr|R@LN}n-*%f
zTxV&|4K2A6b+qBY^CxX@?kve(*IbZpu+}~F+{0zZ#5Zb*Ot|i8ZdhiXy3tB6bz|vI
zj~OW?t<%2V_+9y?^ry!}$CY0;Ra`WT@n>i=c8HURo!;+~oz2DfI&ab}hgD6FszRQ=
zQ7sQG*)rp0=AnXl56<VGoKPL^>b~Y~=*7rviRc$@22Gmw_qUgYx;&St`XspT>yGEm
zKKb>2S9dP=Q7P|>Nd9z(<6HW@VEbpY;<=yOZkGG9h3)r}PuG7mcwK)qFQm?0WQFC=
z=E9#dgtwesUc2his>Lpz_xgmMR$tW!{CDo`(h}2!y1D{!(}RxxDti$rzqH|m<$)<$
zTO%h)zC36V{A<tV$%})oZFfF;BXH`W>yz`-z1OSXKXT*lRM%@8c@)2&GVAxyJbCA_
zHS4k0YB&Ae7q35Uv+|GcS@o&vei`2U$+jz>eqaBi=51};T&6?W+HZW99$H|x@~4V-
z^S0fW!}{kHCkD*Ba(A*?|F)Zkt6x<rg+HlW$QBnrqiT!V@f@!wPiOEK`87;WeEVj`
z0>dhUquoKLiq0Irv1O*vq|euzo<}Z!UDX?qWxnzX-`Yy!r5Zfb9u~c+^jzw<;l?-5
zW_C;e>EXdyk^WM1BBSR|uv(oOyS{SrXWxrm88`EmaUArqdcG^}v%>p0n~Dw7g#WLY
zw3T6PAYW6UYJAiRiLg)8T;BTj*)s6iU)B_qyKcUG#r}S_|DQhI|Ia>C=S(=3rL-o9
zrL@VA<&+B1Ah93?{fNjY1tUuZb5m12Q)3fL1<;aIxEdp(6q$jJekWv-1rdtChv5@)
z6L?)PRz-I3)8{LSQq#B$6pT%|z-v*#go2r=sj;a-ngU$R&{P2;lLr?wG&R5wGcq*9
z5HmKw5Hqs0FhN&mY+#8lW^80>iEgj4v5^6$n27<pTa1lO4UN$3Fg7tX#878qY=rJU
za|1(T3pBmv21e$X>MSfV)EOEYqKjFWm|*zB!o<?h9L)|3Qv-}JwJ^2B2zv`NLu0fs
zFf=eXwL~+|(7?jL*b>zaLnA|DbF^?VG%_?dHbzrtY;JCfDQ0PgZl0;BDZ2X%O-;=~
zcN%~ai~=;h7@8Yc7@>u|p}C=fu^F1Z7RHta=<c&HF)>36dqYbTOADkhC@D(J%t<Zc
zva!(*&a6rWC1?Gh{QMFHBT!!A()Y|u%U1y3!eD2|Ra}x-R02--hL)yAMrK^9s;>TS
E07j+*!~g&Q

literal 46230
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
E0KRtw6aWAK

-- 
GitLab


From 750443040acbf4110bbbdc8d661dcf753b465156 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Tue, 15 Dec 2015 09:29:21 +0100
Subject: [PATCH 183/197] Enhance ruleset.xml description

---
 dev/codesniffer/ruleset.dtd | 1 +
 1 file changed, 1 insertion(+)

diff --git a/dev/codesniffer/ruleset.dtd b/dev/codesniffer/ruleset.dtd
index e307d564e12..276626a3a16 100644
--- a/dev/codesniffer/ruleset.dtd
+++ b/dev/codesniffer/ruleset.dtd
@@ -3,6 +3,7 @@
 <!ATTLIST ruleset name CDATA "">
 <!ELEMENT description (#PCDATA)>
 <!ELEMENT exclude-pattern (#PCDATA)>
+<!ATTLIST exclude-pattern type CDATA "">
 <!ELEMENT rule (properties*,severity*)>
 <!ATTLIST rule ref CDATA "">
 <!ELEMENT properties (property+)>
-- 
GitLab


From 40269c3c70e89d3bbf2483e73710f4b7db9568c0 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Tue, 15 Dec 2015 09:32:09 +0100
Subject: [PATCH 184/197] Fix Remove syntax warnings

---
 htdocs/core/class/dolreceiptprinter.class.php | 10 +++++++---
 htdocs/core/js/lib_head.js.php                |  2 +-
 htdocs/core/modules/dons/html_cerfafr.html    |  2 +-
 htdocs/public/test/test_arrays.php            | 10 ++++------
 htdocs/public/test/test_forms.php             |  4 ++--
 5 files changed, 15 insertions(+), 13 deletions(-)

diff --git a/htdocs/core/class/dolreceiptprinter.class.php b/htdocs/core/class/dolreceiptprinter.class.php
index 5bee14b74d4..90bf948e215 100644
--- a/htdocs/core/class/dolreceiptprinter.class.php
+++ b/htdocs/core/class/dolreceiptprinter.class.php
@@ -80,7 +80,7 @@
  * <dol_print_customer_points>                      Print customer points
  * <dol_print_order_points>                         Print number of points for this order
  *
- * Conditional code at line start (if�then Print)
+ * Conditional code at line start (if�then Print)
  * <dol_print_if_customer>                          Print the line IF a customer is affected to the order
  * <dol_print_if_vendor>                            Print the line IF a vendor is affected to the order
  * <dol_print_if_happy_hour>                        Print the line IF Happy Hour
@@ -520,8 +520,12 @@ class dolReceiptPrinter extends Escpos
         $ret = $this->InitPrinter($printerid);
         if ($ret>0) {
             setEventMessages($this->error, $this->errors, 'errors');
-        } else {
-            for ($line=0; $line < count($vals); $line++) {
+        } 
+        else 
+        {
+            $nboflines = count($vals);
+            for ($line=0; $line < $nboflines; $line++) 
+            {
                 switch ($vals[$line]['tag']) {
                     case 'DOL_ALIGN_CENTER':
                         $this->printer->setJustification(Escpos::JUSTIFY_CENTER);
diff --git a/htdocs/core/js/lib_head.js.php b/htdocs/core/js/lib_head.js.php
index 15a25bf10ed..b843f83e1d0 100644
--- a/htdocs/core/js/lib_head.js.php
+++ b/htdocs/core/js/lib_head.js.php
@@ -940,7 +940,7 @@ function confirmConstantAction(action, url, code, input, box, entity, yesButton,
 function copyToClipboard(text,text2) 
 {
 	text = text.replace(/<br>/g,"\n");
-	var newElem = "<textarea id=\"coords\" style=\"border: none; width: 90%; height: 120px;\">"+text+"</textarea><br><br>"+text2;
+	var newElem = '<textarea id="coords" style="border: none; width: 90%; height: 120px;">'+text+'</textarea><br><br>'+text2;
 	$("#dialog").html(newElem);
 	$("#dialog").dialog();
 	$("#coords").select();
diff --git a/htdocs/core/modules/dons/html_cerfafr.html b/htdocs/core/modules/dons/html_cerfafr.html
index ea9dbee01e3..df6f58af77d 100644
--- a/htdocs/core/modules/dons/html_cerfafr.html
+++ b/htdocs/core/modules/dons/html_cerfafr.html
@@ -151,8 +151,8 @@
         (1) ou n'indiquez que les renseignements concernant l'organisme
         <br>
         (2) dons effectués par les entreprises
-        </div>
 		</font>
+        </div>
 		<div style="height: 297mm; width: 210mm; page-break-inside: avoid;">
         <table width="100%" border="1" cellspacing="0" cellpadding="1" bgcolor="#000000">
             <tr>
diff --git a/htdocs/public/test/test_arrays.php b/htdocs/public/test/test_arrays.php
index 2801ebb8855..ac4d9eb3c54 100644
--- a/htdocs/public/test/test_arrays.php
+++ b/htdocs/public/test/test_arrays.php
@@ -65,8 +65,8 @@ else
 
 <h1>
 This page is a sample of page using tables. It is designed to make test with<br>
-- css (add parameter &theme=newtheme to test another theme or edit css of current theme)<br>
-- jmobile (add parameter <a href="<?php echo $_SERVER["PHP_SELF"].'?dol_use_jmobile=1&dol_optimize_smallscreen=1'; ?>">dol_use_jmobile=1&dol_optimize_smallscreen=1</a> to enable view with jmobile)<br>
+- css (add parameter &amp;theme=newtheme to test another theme or edit css of current theme)<br>
+- jmobile (add parameter <a href="<?php echo $_SERVER["PHP_SELF"].'?dol_use_jmobile=1&dol_optimize_smallscreen=1'; ?>">dol_use_jmobile=1&amp;dol_optimize_smallscreen=1</a> to enable view with jmobile)<br>
 - no javascript / usage for bind people (add parameter <a href="<?php echo $_SERVER["PHP_SELF"].'?nojs=1'; ?>">nojs=1</a> to force disable javascript)<br>
 - dataTables<br>
 - tablednd<br>
@@ -181,8 +181,8 @@ if (! empty($moreforfilter))
     print '</div>';
 }
 
-print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"").'" id="tablelines3">';
 ?>
+<table class="tagtable liste<?php echo $moreforfilter?" listwithfilterbefore":""; ?>" id="tablelines3">
 <tr class="liste_titre">
 <?php print getTitleFieldOfList($langs->trans('title1'),0,$_SERVER["PHP_SELF"],'aaa','','','align="left"',$sortfield,$sortorder); ?>
 <?php print getTitleFieldOfList($langs->trans('title2'),0,$_SERVER["PHP_SELF"],'bbb','','','align="right"',$sortfield,$sortorder); ?>
@@ -190,9 +190,7 @@ print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"")
 </tr>
 <tr class="pair"><td><?php echo $productspecimen->getNomUrl(1); ?></td><td align="right">b1</td><td class="tdlineupdown" align="left">c1</td></tr>
 <tr class="impair"><td>a2</td><td align="right">b2</td><td class="tdlineupdown" align="left">c2</td></tr>
-<?php 
-print '</table>';
-?>
+</table>
 <br>
 
 
diff --git a/htdocs/public/test/test_forms.php b/htdocs/public/test/test_forms.php
index 7fec8e895b6..a697b371438 100644
--- a/htdocs/public/test/test_forms.php
+++ b/htdocs/public/test/test_forms.php
@@ -16,8 +16,8 @@ llxHeader();
 
 <h1>
 This page is a sample of page using Dolibarr HTML widget methods. It is designed to make test with<br>
-- css (add parameter &theme=newtheme to test another theme or edit css of current theme)<br>
-- jmobile (add parameter <a href="<?php echo $_SERVER["PHP_SELF"].'?dol_use_jmobile=1&dol_optimize_smallscreen=1'; ?>">dol_use_jmobile=1&dol_optimize_smallscreen=1</a> to enable view with jmobile)<br>
+- css (add parameter &amp;theme=newtheme to test another theme or edit css of current theme)<br>
+- jmobile (add parameter <a href="<?php echo $_SERVER["PHP_SELF"].'?dol_use_jmobile=1&dol_optimize_smallscreen=1'; ?>">dol_use_jmobile=1&amp;dol_optimize_smallscreen=1</a> to enable view with jmobile)<br>
 - no javascript / usage for bind people (add parameter <a href="<?php echo $_SERVER["PHP_SELF"].'?nojs=1'; ?>">nojs=1</a> to force disable javascript)<br>
 </h1>
 <br>
-- 
GitLab


From af85ade7ff7deecce52f933c8d30561a9860bc48 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Tue, 15 Dec 2015 10:24:31 +0100
Subject: [PATCH 185/197] Minor css fix

---
 htdocs/theme/eldy/style.css.php | 1 -
 htdocs/theme/md/style.css.php   | 1 -
 2 files changed, 2 deletions(-)

diff --git a/htdocs/theme/eldy/style.css.php b/htdocs/theme/eldy/style.css.php
index d17cd7aec1f..54aa64a8cbe 100644
--- a/htdocs/theme/eldy/style.css.php
+++ b/htdocs/theme/eldy/style.css.php
@@ -3361,7 +3361,6 @@ ul.filedirelem li {
 }
 
 ul.ecmjqft {
-	font-size: 11px;
 	line-height: 16px;
 	padding: 0px;
 	margin: 0px;
diff --git a/htdocs/theme/md/style.css.php b/htdocs/theme/md/style.css.php
index 453365f3908..76d5e8147ac 100644
--- a/htdocs/theme/md/style.css.php
+++ b/htdocs/theme/md/style.css.php
@@ -3202,7 +3202,6 @@ ui-layout-north {
 }
 
 ul.ecmjqft {
-	font-size: 11px;
 	line-height: 16px;
 	padding: 0px;
 	margin: 0px;
-- 
GitLab


From 011f0fbb0bd05c089f3b8b1607e0419a346e52bb Mon Sep 17 00:00:00 2001
From: Sof <virtualsof@yahoo.fr>
Date: Tue, 15 Dec 2015 14:04:52 +0100
Subject: [PATCH 186/197] FIX : Typo error

---
 htdocs/fourn/class/fournisseur.commande.class.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/htdocs/fourn/class/fournisseur.commande.class.php b/htdocs/fourn/class/fournisseur.commande.class.php
index 1888cdc8adc..236eca113ff 100644
--- a/htdocs/fourn/class/fournisseur.commande.class.php
+++ b/htdocs/fourn/class/fournisseur.commande.class.php
@@ -996,7 +996,7 @@ class CommandeFournisseur extends CommonOrder
         {
             $result = -1;
             $this->error = $langs->trans('NotAuthorized');
-            $this->errors[] = $lanfs->trans('NotAuthorized');
+            $this->errors[] = $langs->trans('NotAuthorized');
             dol_syslog(get_class($this)."::commande User not Authorized", LOG_ERR);
         }
         return $result ;
-- 
GitLab


From 90dbfc487049ff8b53efb186bcb0084fd8836f2e Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Tue, 15 Dec 2015 15:52:20 +0100
Subject: [PATCH 187/197] Fix: to avoid confusion between amount of payment and
 amount distributed on invoice when a payment is done for several invoices,
 export of payment can export both fields.

---
 htdocs/core/modules/modFacture.class.php | 6 +++---
 htdocs/langs/en_US/bills.lang            | 3 +++
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/htdocs/core/modules/modFacture.class.php b/htdocs/core/modules/modFacture.class.php
index 807a2673849..72437d80b90 100644
--- a/htdocs/core/modules/modFacture.class.php
+++ b/htdocs/core/modules/modFacture.class.php
@@ -242,10 +242,10 @@ class modFacture extends DolibarrModules
 		$this->export_label[$r]='CustomersInvoicesAndPayments';	// Translation key (used only if key ExportDataset_xxx_z not found)
 		$this->export_icon[$r]='bill';
 		$this->export_permission[$r]=array(array("facture","facture","export"));
-		$this->export_fields_array[$r]=array('s.rowid'=>"IdCompany",'s.nom'=>'CompanyName','s.address'=>'Address','s.zip'=>'Zip','s.town'=>'Town','c.code'=>'CountryCode','s.phone'=>'Phone','s.siren'=>'ProfId1','s.siret'=>'ProfId2','s.ape'=>'ProfId3','s.idprof4'=>'ProfId4','s.code_compta'=>'CustomerAccountancyCode','s.code_compta_fournisseur'=>'SupplierAccountancyCode','s.tva_intra'=>'VATIntra','f.rowid'=>"InvoiceId",'f.facnumber'=>"InvoiceRef",'f.datec'=>"InvoiceDateCreation",'f.datef'=>"DateInvoice",'f.date_lim_reglement'=>"DateDue",'f.total'=>"TotalHT",'f.total_ttc'=>"TotalTTC",'f.tva'=>"TotalVAT",'f.paye'=>"InvoicePaid",'f.fk_statut'=>'InvoiceStatus','f.note_private'=>"NotePrivate",'f.note_public'=>"NotePublic",'f.fk_user_author'=>'CreatedById','uc.login'=>'CreatedByLogin','f.fk_user_valid'=>'ValidatedById','uv.login'=>'ValidatedByLogin','p.rowid'=>'PaymentId','pf.amount'=>'AmountPayment','p.datep'=>'DatePayment','p.num_paiement'=>'PaymentNumber','pt.code'=>'PaymentMode','p.fk_bank'=>'IdTransaction');
+		$this->export_fields_array[$r]=array('s.rowid'=>"IdCompany",'s.nom'=>'CompanyName','s.address'=>'Address','s.zip'=>'Zip','s.town'=>'Town','c.code'=>'CountryCode','s.phone'=>'Phone','s.siren'=>'ProfId1','s.siret'=>'ProfId2','s.ape'=>'ProfId3','s.idprof4'=>'ProfId4','s.code_compta'=>'CustomerAccountancyCode','s.code_compta_fournisseur'=>'SupplierAccountancyCode','s.tva_intra'=>'VATIntra','f.rowid'=>"InvoiceId",'f.facnumber'=>"InvoiceRef",'f.datec'=>"InvoiceDateCreation",'f.datef'=>"DateInvoice",'f.date_lim_reglement'=>"DateDue",'f.total'=>"TotalHT",'f.total_ttc'=>"TotalTTC",'f.tva'=>"TotalVAT",'f.paye'=>"InvoicePaid",'f.fk_statut'=>'InvoiceStatus','f.note_private'=>"NotePrivate",'f.note_public'=>"NotePublic",'f.fk_user_author'=>'CreatedById','uc.login'=>'CreatedByLogin','f.fk_user_valid'=>'ValidatedById','uv.login'=>'ValidatedByLogin','p.rowid'=>'PaymentId','p.ref'=>'PaymentRef','p.amount'=>'AmountPayment','pf.amount'=>'AmountPaymentDistributedOnInvoice','p.datep'=>'DatePayment','p.num_paiement'=>'PaymentNumber','pt.code'=>'PaymentMode','p.note'=>'PaymentNote','p.fk_bank'=>'IdTransaction');
 		//$this->export_TypeFields_array[$r]=array('s.rowid'=>"List:societe:nom",'s.nom'=>'Text','s.address'=>'Text','s.zip'=>'Text','s.town'=>'Text','c.code'=>'Text','s.phone'=>'Text','s.siren'=>'Text','s.siret'=>'Text','s.ape'=>'Text','s.idprof4'=>'Text','s.code_compta'=>'Text','s.code_compta_fournisseur'=>'Text','s.tva_intra'=>'Text','f.rowid'=>"List:facture:facnumber",'f.facnumber'=>"Text",'f.datec'=>"Date",'f.datef'=>"Date",'f.date_lim_reglement'=>"Date",'f.total'=>"Numeric",'f.total_ttc'=>"Numeric",'f.tva'=>"Numeric",'f.paye'=>"Boolean",'f.fk_statut'=>'Status','f.note_private'=>"Text",'f.note_public'=>"Text",'pf.amount'=>'Numeric','p.datep'=>'Date','p.num_paiement'=>'Numeric','p.fk_bank'=>'Numeric');
-		$this->export_TypeFields_array[$r]=array('s.nom'=>'Text','s.address'=>'Text','s.zip'=>'Text','s.town'=>'Text','c.code'=>'Text','s.phone'=>'Text','s.siren'=>'Text','s.siret'=>'Text','s.ape'=>'Text','s.idprof4'=>'Text','s.code_compta'=>'Text','s.code_compta_fournisseur'=>'Text','s.tva_intra'=>'Text','f.rowid'=>"List:facture:facnumber",'f.facnumber'=>"Text",'f.datec'=>"Date",'f.datef'=>"Date",'f.date_lim_reglement'=>"Date",'f.total'=>"Numeric",'f.total_ttc'=>"Numeric",'f.tva'=>"Numeric",'f.paye'=>"Boolean",'f.fk_statut'=>'Status','f.note_private'=>"Text",'f.note_public'=>"Text",'pf.amount'=>'Numeric','p.datep'=>'Date','p.num_paiement'=>'Numeric','p.fk_bank'=>'Numeric');
-		$this->export_entities_array[$r]=array('s.rowid'=>"company",'s.nom'=>'company','s.address'=>'company','s.zip'=>'company','s.town'=>'company','c.code'=>'company','s.phone'=>'company','s.siren'=>'company','s.siret'=>'company','s.ape'=>'company','s.idprof4'=>'company','s.code_compta'=>'company','s.code_compta_fournisseur'=>'company','s.tva_intra'=>'company','f.rowid'=>"invoice",'f.facnumber'=>"invoice",'f.datec'=>"invoice",'f.datef'=>"invoice",'f.date_lim_reglement'=>"invoice",'f.total'=>"invoice",'f.total_ttc'=>"invoice",'f.tva'=>"invoice",'f.paye'=>"invoice",'f.fk_statut'=>'invoice','f.note_private'=>"invoice",'f.note_public'=>"invoice",'p.rowid'=>'payment','pf.amount'=>'payment','p.datep'=>'payment','p.num_paiement'=>'payment','pt.code'=>'payment','p.fk_bank'=>'payment','f.fk_user_author'=>'user','uc.login'=>'user','f.fk_user_valid'=>'user','uv.login'=>'user');
+		$this->export_TypeFields_array[$r]=array('s.nom'=>'Text','s.address'=>'Text','s.zip'=>'Text','s.town'=>'Text','c.code'=>'Text','s.phone'=>'Text','s.siren'=>'Text','s.siret'=>'Text','s.ape'=>'Text','s.idprof4'=>'Text','s.code_compta'=>'Text','s.code_compta_fournisseur'=>'Text','s.tva_intra'=>'Text','f.rowid'=>"List:facture:facnumber",'f.facnumber'=>"Text",'f.datec'=>"Date",'f.datef'=>"Date",'f.date_lim_reglement'=>"Date",'f.total'=>"Numeric",'f.total_ttc'=>"Numeric",'f.tva'=>"Numeric",'f.paye'=>"Boolean",'f.fk_statut'=>'Status','f.note_private'=>"Text",'f.note_public'=>"Text",'pf.amount'=>'Numeric','p.datep'=>'Date','p.num_paiement'=>'Numeric','p.fk_bank'=>'Numeric','p.note'=>'Text');
+		$this->export_entities_array[$r]=array('s.rowid'=>"company",'s.nom'=>'company','s.address'=>'company','s.zip'=>'company','s.town'=>'company','c.code'=>'company','s.phone'=>'company','s.siren'=>'company','s.siret'=>'company','s.ape'=>'company','s.idprof4'=>'company','s.code_compta'=>'company','s.code_compta_fournisseur'=>'company','s.tva_intra'=>'company','f.rowid'=>"invoice",'f.facnumber'=>"invoice",'f.datec'=>"invoice",'f.datef'=>"invoice",'f.date_lim_reglement'=>"invoice",'f.total'=>"invoice",'f.total_ttc'=>"invoice",'f.tva'=>"invoice",'f.paye'=>"invoice",'f.fk_statut'=>'invoice','f.note_private'=>"invoice",'f.note_public'=>"invoice",'p.rowid'=>'payment','p.ref'=>'payment','p.amount'=>'payment','pf.amount'=>'payment','p.datep'=>'payment','p.num_paiement'=>'payment','pt.code'=>'payment','p.fk_bank'=>'payment','p.note'=>'payment','f.fk_user_author'=>'user','uc.login'=>'user','f.fk_user_valid'=>'user','uv.login'=>'user');
 		$this->export_dependencies_array[$r]=array('payment'=>'p.rowid'); // To add unique key if we ask a field of a child to avoid the DISTINCT to discard them
 		// Add extra fields
 		$sql="SELECT name, label, type, param FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = 'facture'";
diff --git a/htdocs/langs/en_US/bills.lang b/htdocs/langs/en_US/bills.lang
index db2b9ea4b62..20f6fe0619c 100644
--- a/htdocs/langs/en_US/bills.lang
+++ b/htdocs/langs/en_US/bills.lang
@@ -269,6 +269,7 @@ HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad
 HelpAbandonOther=This amount has been abandoned since it was an error (wrong customer or invoice replaced by an other for example)
 IdSocialContribution=Social/fiscal tax payment id
 PaymentId=Payment id
+PaymentRef=Payment ref.
 InvoiceId=Invoice id
 InvoiceRef=Invoice ref.
 InvoiceDateCreation=Invoice creation date
@@ -296,6 +297,8 @@ RelatedSupplierInvoices=Related supplier invoices
 LatestRelatedBill=Latest related invoice
 WarningBillExist=Warning, one or more invoice already exist
 MergingPDFTool=Merging PDF tool
+AmountPaymentDistributedOnInvoice=Payment amount distributed on invoice
+PaymentNote=Payment note
 
 # PaymentConditions
 PaymentConditionShortRECEP=Immediate
-- 
GitLab


From c1e77daeb1208e9c944e93725cbe5cbeb775f9ad Mon Sep 17 00:00:00 2001
From: aspangaro <alexandre.spangaro@gmail.com>
Date: Tue, 15 Dec 2015 20:48:06 +0100
Subject: [PATCH 188/197] New: Accountancy add a function to remove all zero at
 the right of the account.

Thanks to Florian
---
 htdocs/core/lib/accounting.lib.php | 20 +++-----------------
 1 file changed, 3 insertions(+), 17 deletions(-)

diff --git a/htdocs/core/lib/accounting.lib.php b/htdocs/core/lib/accounting.lib.php
index 0b1bfb8f4fc..502e83010f7 100644
--- a/htdocs/core/lib/accounting.lib.php
+++ b/htdocs/core/lib/accounting.lib.php
@@ -99,23 +99,9 @@ function accounting_prepare_head(AccountingAccount $object)
  */
 function clean_account($account)
 {
-	global $conf;
-
-	// Clean parameters
-	$i = strlen($account);
-
-	if ($i >= 1) {
-		if (substr($account, -1) == 0) {
-			while ( $i >= 1 ) {
-				$account = substr($account, $i);
-
-				$i --;
-			}
-			return $account;
-		}
-	} else {
-		return $account;
-	}
+	$account = rtrim($account,"0");
+	
+	return $account;
 }
 
 /**
-- 
GitLab


From 5cd5413836640b17543e8266897de5806a2b5747 Mon Sep 17 00:00:00 2001
From: aspangaro <alexandre.spangaro@gmail.com>
Date: Wed, 16 Dec 2015 05:22:50 +0100
Subject: [PATCH 189/197] Accountancy add a column in table bookkeeping to
 validate operations

---
 .../install/mysql/migration/3.9.0-4.0.0.sql   | 25 +++++++++++++++++++
 .../tables/llx_accounting_bookkeeping.sql     |  3 ++-
 2 files changed, 27 insertions(+), 1 deletion(-)
 create mode 100644 htdocs/install/mysql/migration/3.9.0-4.0.0.sql

diff --git a/htdocs/install/mysql/migration/3.9.0-4.0.0.sql b/htdocs/install/mysql/migration/3.9.0-4.0.0.sql
new file mode 100644
index 00000000000..f8a74fec247
--- /dev/null
+++ b/htdocs/install/mysql/migration/3.9.0-4.0.0.sql
@@ -0,0 +1,25 @@
+--
+-- Be carefull to requests order.
+-- This file must be loaded by calling /install/index.php page
+-- when current version is 4.0.0 or higher.
+--
+-- To rename a table:       ALTER TABLE llx_table RENAME TO llx_table_new;
+-- To add a column:         ALTER TABLE llx_table ADD COLUMN newcol varchar(60) NOT NULL DEFAULT '0' AFTER existingcol;
+-- To rename a column:      ALTER TABLE llx_table CHANGE COLUMN oldname newname varchar(60);
+-- To drop a column:        ALTER TABLE llx_table DROP COLUMN oldname;
+-- To change type of field: ALTER TABLE llx_table MODIFY COLUMN name varchar(60);
+-- To drop a foreign key:   ALTER TABLE llx_table DROP FOREIGN KEY fk_name;
+-- To drop an index:        -- VMYSQL4.0 DROP INDEX nomindex on llx_table
+-- To drop an index:        -- VPGSQL8.0 DROP INDEX nomindex
+-- To restrict request to Mysql version x.y minimum use -- VMYSQLx.y
+-- To restrict request to Pgsql version x.y minimum use -- VPGSQLx.y
+-- To make pk to be auto increment (mysql):    VMYSQL4.3 ALTER TABLE llx_c_shipment_mode CHANGE COLUMN rowid rowid INTEGER NOT NULL AUTO_INCREMENT;
+-- To make pk to be auto increment (postgres): VPGSQL8.2 NOT POSSIBLE. MUST DELETE/CREATE TABLE
+-- To set a field as NULL:                     VPGSQL8.2 ALTER TABLE llx_table ALTER COLUMN name DROP NOT NULL;
+-- To set a field as default NULL:             VPGSQL8.2 ALTER TABLE llx_table ALTER COLUMN name SET DEFAULT NULL;
+-- Note: fields with type BLOB/TEXT can't have default value.
+-- -- VPGSQL8.2 DELETE FROM llx_usergroup_user      WHERE fk_user      NOT IN (SELECT rowid from llx_user);
+-- -- VMYSQL4.1 DELETE FROM llx_usergroup_user      WHERE fk_usergroup NOT IN (SELECT rowid from llx_usergroup);
+
+
+ALTER TABLE llx_accounting_bookkeeping ADD COLUMN validated tinyint DEFAULT 0 NOT NULL;
diff --git a/htdocs/install/mysql/tables/llx_accounting_bookkeeping.sql b/htdocs/install/mysql/tables/llx_accounting_bookkeeping.sql
index 660dd4745b3..dca4b70a5d5 100644
--- a/htdocs/install/mysql/tables/llx_accounting_bookkeeping.sql
+++ b/htdocs/install/mysql/tables/llx_accounting_bookkeeping.sql
@@ -35,5 +35,6 @@ CREATE TABLE llx_accounting_bookkeeping
   fk_user_author	integer NOT NULL,
   import_key		varchar(14),
   code_journal		varchar(10) DEFAULT NULL,
-  piece_num			integer NOT NULL
+  piece_num			integer NOT NULL,
+  validated         tinyint DEFAULT 0 NOT NULL -- 0 line not validated / 1 line validated (No deleting / No modification) 
 ) ENGINE=innodb;
-- 
GitLab


From afe3e6ac27189705fe871f4bda35bb60e27cee69 Mon Sep 17 00:00:00 2001
From: BENKE Charlie <charles.fr@benke.fr>
Date: Wed, 16 Dec 2015 12:38:32 +0100
Subject: [PATCH 190/197] fix ErrorBadValueForParamNotAString shit one again...

---
 htdocs/core/class/html.form.class.php | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php
index 18580c4b6cc..a5643c26dc5 100644
--- a/htdocs/core/class/html.form.class.php
+++ b/htdocs/core/class/html.form.class.php
@@ -2017,8 +2017,8 @@ class Form
             {
                 $dur=array("h"=>$langs->trans("Hour"),"d"=>$langs->trans("Day"),"w"=>$langs->trans("Week"),"m"=>$langs->trans("Month"),"y"=>$langs->trans("Year"));
             }
-            $opt.= ' - '.$duration_value.' '.$langs->trans($dur[$duration_unit]);
-            $outval.=' - '.$duration_value.' '.$langs->transnoentities($dur[$duration_unit]);
+            $opt.= ' - '.$duration_value.' '.($dur[$duration_unit]?$langs->trans($dur[$duration_unit]):'');
+            $outval.=' - '.$duration_value.' '.($dur[$duration_unit]?$langs->transnoentities($dur[$duration_unit]):'');
         }
 
         $opt.= "</option>\n";
-- 
GitLab


From 3568b889bf571241ed2ec77ee3e025899b90c1e7 Mon Sep 17 00:00:00 2001
From: Francis Appels <francis.appels@yahoo.com>
Date: Wed, 16 Dec 2015 15:42:24 +0100
Subject: [PATCH 191/197] Update list.php

Fix page offset calculation
---
 htdocs/product/list.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/htdocs/product/list.php b/htdocs/product/list.php
index b656b88efc6..c09100bd198 100644
--- a/htdocs/product/list.php
+++ b/htdocs/product/list.php
@@ -61,7 +61,7 @@ $sortfield = GETPOST("sortfield",'alpha');
 $sortorder = GETPOST("sortorder",'alpha');
 $page = GETPOST("page",'int');
 if ($page == -1) { $page = 0; }
-$offset = $liste_limit * $page;
+$offset = $limit * $page;
 $pageprev = $page - 1;
 $pagenext = $page + 1;
 if (! $sortfield) $sortfield="p.ref";
-- 
GitLab


From 9e6698c6ca5283572790c55efb546447bf969956 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= <frederic.france@free.fr>
Date: Wed, 16 Dec 2015 18:18:02 +0100
Subject: [PATCH 192/197] Update multiprix.php

---
 htdocs/comm/multiprix.php | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/htdocs/comm/multiprix.php b/htdocs/comm/multiprix.php
index 645bdc580b4..fbaf00e53db 100644
--- a/htdocs/comm/multiprix.php
+++ b/htdocs/comm/multiprix.php
@@ -105,7 +105,10 @@ if ($_socid > 0)
 		print '<option value="'.$i.'"' ;
 		if($i == $objsoc->price_level)
 		print 'selected';
-		print '>'.$i.'</option>';
+		print '>'.$i;
+		$keyforlabel='PRODUIT_MULTIPRICES_LABEL'.$i;
+		if (! empty($conf->global->$keyforlabel)) print ' - '.$langs->trans($conf->global->$keyforlabel);
+		print '</option>';
 	}
 	print '</select>';
 	print '</td></tr>';
-- 
GitLab


From f87ccc97e2221d5820e48ce9c87572dca2ea9108 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Wed, 16 Dec 2015 19:26:50 +0100
Subject: [PATCH 193/197] Miscellaneous fixes

---
 dev/skeletons/modMyModule.class.php       | 6 +++++-
 htdocs/comm/propal/class/propal.class.php | 3 +--
 htdocs/product/card.php                   | 8 +++++++-
 3 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/dev/skeletons/modMyModule.class.php b/dev/skeletons/modMyModule.class.php
index a54aac470e5..ed8f8ed976e 100644
--- a/dev/skeletons/modMyModule.class.php
+++ b/dev/skeletons/modMyModule.class.php
@@ -166,7 +166,11 @@ class modMyModule extends DolibarrModules
 		// Add here list of php file(s) stored in core/boxes that contains class to show a box.
         $this->boxes = array();			// List of boxes
 		// Example:
-		//$this->boxes=array(array(0=>array('file'=>'myboxa.php','note'=>'','enabledbydefaulton'=>'Home'),1=>array('file'=>'myboxb.php','note'=>''),2=>array('file'=>'myboxc.php','note'=>'')););
+		//$this->boxes=array(
+		//    0=>array('file'=>'myboxa.php@mymodule','note'=>'','enabledbydefaulton'=>'Home'),
+		//    1=>array('file'=>'myboxb.php@mymodule','note'=>''),
+		//    2=>array('file'=>'myboxc.php@mymodule','note'=>'')
+		//);
 
 		// Cronjobs
 		$this->cronjobs = array();			// List of cron jobs entries to add
diff --git a/htdocs/comm/propal/class/propal.class.php b/htdocs/comm/propal/class/propal.class.php
index 250687a5c02..cda28c80b37 100644
--- a/htdocs/comm/propal/class/propal.class.php
+++ b/htdocs/comm/propal/class/propal.class.php
@@ -2901,8 +2901,7 @@ class Propal extends CommonObject
 
 
 /**
- *	\class      PropaleLigne
- *	\brief      Class to manage commercial proposal lines
+ *	Class to manage commercial proposal lines
  */
 class PropaleLigne  extends CommonObjectLine
 {
diff --git a/htdocs/product/card.php b/htdocs/product/card.php
index 77b14b24c7a..50a12726822 100644
--- a/htdocs/product/card.php
+++ b/htdocs/product/card.php
@@ -184,7 +184,13 @@ if (empty($reshook))
             $action = "create";
             $error++;
         }
-
+        if (! empty(GETPOST('duration_value')) && empty(GETPOST('duration_unit')))
+        {
+            setEventMessage($langs->trans('ErrorFieldRequired',$langs->transnoentities('Unit')), 'errors');
+            $action = "create";
+            $error++;
+        }
+        
         if (! $error)
         {
 	        $units = GETPOST('units', 'int');
-- 
GitLab


From 9973315a07300c4830e37fe108f5f1ed861327fd Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Wed, 16 Dec 2015 19:38:40 +0100
Subject: [PATCH 194/197] Fix we muste have ($limit = $conf->liste_limite;
 $offset = $limit * $page) and not ($offset = $conf->liste_limite * $page). In
 a future $limit that could be overwrite from search post form.

---
 htdocs/accountancy/bookkeeping/list.php       | 3 ++-
 htdocs/accountancy/bookkeeping/listbyyear.php | 3 ++-
 htdocs/comm/mailing/list.php                  | 3 ++-
 htdocs/commande/list.php                      | 4 ++--
 htdocs/compta/deplacement/list.php            | 4 ++--
 htdocs/compta/facture/list.php                | 4 ++--
 htdocs/compta/paiement/cheque/list.php        | 4 ++--
 htdocs/compta/paiement/list.php               | 4 ++--
 htdocs/compta/ventilation/list.php            | 4 ++--
 htdocs/don/list.php                           | 4 ++--
 htdocs/expedition/list.php                    | 5 ++---
 htdocs/expensereport/list.php                 | 4 ++--
 htdocs/fichinter/list.php                     | 4 ++--
 htdocs/opensurvey/list.php                    | 5 ++---
 htdocs/product/stock/mouvement.php            | 3 ++-
 htdocs/public/members/public_list.php         | 3 ++-
 htdocs/societe/price.php                      | 5 +++--
 htdocs/supplier_proposal/list.php             | 4 ++--
 18 files changed, 37 insertions(+), 33 deletions(-)

diff --git a/htdocs/accountancy/bookkeeping/list.php b/htdocs/accountancy/bookkeeping/list.php
index b6f412d5480..951a07d3171 100644
--- a/htdocs/accountancy/bookkeeping/list.php
+++ b/htdocs/accountancy/bookkeeping/list.php
@@ -44,13 +44,14 @@ $search_doc_ref = GETPOST("search_doc_ref");
 $search_account = GETPOST("search_account");
 $search_thirdparty = GETPOST("search_thirdparty");
 $search_journal = GETPOST("search_journal");
+$limit = $conf->liste_limit;
 
 if ($sortorder == "")
 	$sortorder = "ASC";
 if ($sortfield == "")
 	$sortfield = "bk.rowid";
 
-$offset = $conf->liste_limit * $page;
+$offset = $limit * $page;
 
 $formventilation = new FormVentilation($db);
 $formother = new FormOther($db);
diff --git a/htdocs/accountancy/bookkeeping/listbyyear.php b/htdocs/accountancy/bookkeeping/listbyyear.php
index ce6d10f9730..fe185fd1118 100644
--- a/htdocs/accountancy/bookkeeping/listbyyear.php
+++ b/htdocs/accountancy/bookkeeping/listbyyear.php
@@ -36,6 +36,7 @@ $langs->load("accountancy");
 $page = GETPOST("page");
 $sortorder = GETPOST("sortorder");
 $sortfield = GETPOST("sortfield");
+$limit = $conf->liste_limit;
 
 // Filter
 $year = GETPOST("year", 'int');
@@ -52,7 +53,7 @@ if ($sortorder == "")
 if ($sortfield == "")
 	$sortfield = "bk.rowid";
 
-$offset = $conf->liste_limit * $page;
+$offset = $limit * $page;
 
 llxHeader('', $langs->trans("Bookkeeping"));
 
diff --git a/htdocs/comm/mailing/list.php b/htdocs/comm/mailing/list.php
index cc7bafa9f5d..20796db24f4 100644
--- a/htdocs/comm/mailing/list.php
+++ b/htdocs/comm/mailing/list.php
@@ -32,9 +32,10 @@ $result=restrictedArea($user,'mailing');
 
 $sortfield = GETPOST("sortfield",'alpha');
 $sortorder = GETPOST("sortorder",'alpha');
+$limit = $conf->liste_limit;
 $page = GETPOST("page",'int');
 if ($page == -1) { $page = 0; }
-$offset = $conf->liste_limit * $page;
+$offset = $limit * $page;
 $pageprev = $page - 1;
 $pagenext = $page + 1;
 if (! $sortorder) $sortorder="DESC";
diff --git a/htdocs/commande/list.php b/htdocs/commande/list.php
index b35aa1628f3..b7caa472425 100644
--- a/htdocs/commande/list.php
+++ b/htdocs/commande/list.php
@@ -67,13 +67,13 @@ $result = restrictedArea($user, 'commande', $id,'');
 $sortfield = GETPOST("sortfield",'alpha');
 $sortorder = GETPOST("sortorder",'alpha');
 $page = GETPOST("page",'int');
+$limit = $conf->liste_limit;
 if ($page == -1) { $page = 0; }
-$offset = $conf->liste_limit * $page;
+$offset = $limit * $page;
 $pageprev = $page - 1;
 $pagenext = $page + 1;
 if (! $sortfield) $sortfield='c.rowid';
 if (! $sortorder) $sortorder='DESC';
-$limit = $conf->liste_limit;
 
 $viewstatut=GETPOST('viewstatut');
 
diff --git a/htdocs/compta/deplacement/list.php b/htdocs/compta/deplacement/list.php
index c3c5f7dd80b..7c849f67f50 100644
--- a/htdocs/compta/deplacement/list.php
+++ b/htdocs/compta/deplacement/list.php
@@ -46,13 +46,13 @@ $search_company=GETPOST('search_company','alpha');
 $sortfield = GETPOST("sortfield",'alpha');
 $sortorder = GETPOST("sortorder",'alpha');
 $page = GETPOST("page",'int');
+$limit = $conf->liste_limit;
 if ($page == -1) { $page = 0; }
-$offset = $conf->liste_limit * $page;
+$offset = $limit * $page;
 $pageprev = $page - 1;
 $pagenext = $page + 1;
 if (! $sortorder) $sortorder="DESC";
 if (! $sortfield) $sortfield="d.dated";
-$limit = $conf->liste_limit;
 
 $year=GETPOST("year");
 $month=GETPOST("month");
diff --git a/htdocs/compta/facture/list.php b/htdocs/compta/facture/list.php
index 707ad32eec7..0d0d1835732 100644
--- a/htdocs/compta/facture/list.php
+++ b/htdocs/compta/facture/list.php
@@ -77,14 +77,14 @@ if ($option == 'late') $filter = 'paye:0';
 
 $sortfield = GETPOST("sortfield",'alpha');
 $sortorder = GETPOST("sortorder",'alpha');
+$limit = $conf->liste_limit;
 $page = GETPOST("page",'int');
 if ($page == -1) {
     $page = 0;
 }
-$offset = $conf->liste_limit * $page;
+$offset = $limit * $page;
 if (! $sortorder) $sortorder='DESC';
 if (! $sortfield) $sortfield='f.datef';
-$limit = $conf->liste_limit;
 
 $pageprev = $page - 1;
 $pagenext = $page + 1;
diff --git a/htdocs/compta/paiement/cheque/list.php b/htdocs/compta/paiement/cheque/list.php
index c322863efc1..f4451178e71 100644
--- a/htdocs/compta/paiement/cheque/list.php
+++ b/htdocs/compta/paiement/cheque/list.php
@@ -43,12 +43,12 @@ $search_account = GETPOST('search_account','int');
 $search_amount = GETPOST('search_amount','alpha');
 $sortfield = GETPOST("sortfield",'alpha');
 $sortorder = GETPOST("sortorder",'alpha');
+$limit = $conf->liste_limit;
 $page = GETPOST("page",'int');
 if ($page == -1) { $page = 0; }
-$offset = $conf->liste_limit * $page;
+$offset = $limit * $page;
 $pageprev = $page - 1;
 $pagenext = $page + 1;
-$limit = $conf->liste_limit;
 if (! $sortorder) $sortorder="DESC";
 if (! $sortfield) $sortfield="dp";
 
diff --git a/htdocs/compta/paiement/list.php b/htdocs/compta/paiement/list.php
index 6e3d31364ce..0a5c2cd1572 100644
--- a/htdocs/compta/paiement/list.php
+++ b/htdocs/compta/paiement/list.php
@@ -57,12 +57,12 @@ $search_amount=GETPOST("search_amount");
 $search_company=GETPOST("search_company");
 $sortfield = GETPOST("sortfield",'alpha');
 $sortorder = GETPOST("sortorder",'alpha');
+$limit = $conf->liste_limit;
 $page = GETPOST("page",'int');
 if ($page == -1) { $page = 0; }
-$offset = $conf->liste_limit * $page;
+$offset = $limit * $page;
 $pageprev = $page - 1;
 $pagenext = $page + 1;
-$limit = $conf->liste_limit;
 if (! $sortorder) $sortorder="DESC";
 if (! $sortfield) $sortfield="p.rowid";
 
diff --git a/htdocs/compta/ventilation/list.php b/htdocs/compta/ventilation/list.php
index 03a1b658cd2..264673049ad 100644
--- a/htdocs/compta/ventilation/list.php
+++ b/htdocs/compta/ventilation/list.php
@@ -47,12 +47,12 @@ llxHeader('','Ventilation');
 
 $sortfield = GETPOST("sortfield",'alpha');
 $sortorder = GETPOST("sortorder",'alpha');
+$limit = $conf->liste_limit;
 $page = GETPOST("page",'int');
 if ($page == -1) { $page = 0; }
-$offset = $conf->liste_limit * $page;
+$offset = $limit * $page;
 $pageprev = $page - 1;
 $pagenext = $page + 1;
-$limit = $conf->liste_limit;
 
 $sql = "SELECT f.facnumber, f.rowid as facid, l.fk_product, l.description, f.total as price, l.rowid, l.fk_code_ventilation,";
 $sql.= " p.rowid as product_id, p.ref as product_ref, p.label as product_label, p.fk_product_type as type";
diff --git a/htdocs/don/list.php b/htdocs/don/list.php
index 0a91e59593d..9477e91837e 100644
--- a/htdocs/don/list.php
+++ b/htdocs/don/list.php
@@ -34,13 +34,13 @@ $langs->load("donations");
 $sortfield = GETPOST("sortfield",'alpha');
 $sortorder = GETPOST("sortorder",'alpha');
 $page = GETPOST("page",'int');
+$limit = $conf->liste_limit;
 if ($page == -1) { $page = 0; }
-$offset = $conf->liste_limit * $page;
+$offset = $limit * $page;
 $pageprev = $page - 1;
 $pagenext = $page + 1;
 if (! $sortorder) $sortorder="DESC";
 if (! $sortfield) $sortfield="d.datedon";
-$limit = $conf->liste_limit;
 
 $statut=isset($_GET["statut"])?$_GET["statut"]:"-1";
 $search_all=GETPOST('sall','alpha');
diff --git a/htdocs/expedition/list.php b/htdocs/expedition/list.php
index 5339538901e..bee47fe25bd 100644
--- a/htdocs/expedition/list.php
+++ b/htdocs/expedition/list.php
@@ -43,15 +43,14 @@ $optioncss = GETPOST('optioncss','alpha');
 $sortfield = GETPOST('sortfield','alpha');
 $sortorder = GETPOST('sortorder','alpha');
 $page = GETPOST('page','int');
+$limit = $conf->liste_limit;
 
 if ($page == -1) { $page = 0; }
-$offset = $conf->liste_limit * $page;
+$offset = $limit * $page;
 $pageprev = $page - 1;
 $pagenext = $page + 1;
-$limit = $conf->liste_limit;
 if (! $sortfield) $sortfield="e.ref";
 if (! $sortorder) $sortorder="DESC";
-$limit = $conf->liste_limit;
 
 $viewstatut=GETPOST('viewstatut');
 
diff --git a/htdocs/expensereport/list.php b/htdocs/expensereport/list.php
index 502125faf61..0d1dc22971a 100644
--- a/htdocs/expensereport/list.php
+++ b/htdocs/expensereport/list.php
@@ -93,15 +93,15 @@ $sortfield     = GETPOST("sortfield");
 $page          = GETPOST("page");
 if (!$sortorder) $sortorder="DESC";
 if (!$sortfield) $sortfield="d.date_debut";
+$limit = $conf->liste_limit;
 
 if ($page == -1) {
 	$page = 0 ;
 }
 
-$offset = $conf->liste_limit * $page;
+$offset = $limit * $page;
 $pageprev = $page - 1;
 $pagenext = $page + 1;
-$limit = $conf->liste_limit;
 
 $sql = "SELECT d.rowid, d.ref, d.fk_user_author, d.total_ht, d.total_tva, d.total_ttc, d.fk_statut as status,";
 $sql.= " d.date_debut, d.date_fin,";
diff --git a/htdocs/fichinter/list.php b/htdocs/fichinter/list.php
index 896d8c6a4fa..35224cb7780 100644
--- a/htdocs/fichinter/list.php
+++ b/htdocs/fichinter/list.php
@@ -44,9 +44,10 @@ $result = restrictedArea($user, 'ficheinter', $fichinterid,'fichinter');
 
 $sortfield = GETPOST('sortfield','alpha');
 $sortorder = GETPOST('sortorder','alpha');
+$limit = $conf->liste_limit;
 $page = GETPOST('page','int');
 if ($page == -1) { $page = 0; }
-$offset = $conf->liste_limit * $page;
+$offset = $limit * $page;
 $pageprev = $page - 1;
 $pagenext = $page + 1;
 if (! $sortorder) $sortorder="DESC";
@@ -55,7 +56,6 @@ if (! $sortfield)
  	if (empty($conf->global->FICHINTER_DISABLE_DETAILS)) $sortfield="fd.date";
  	else $sortfield="f.ref";
 }
-$limit = $conf->liste_limit;
 
 $search_ref=GETPOST('search_ref')?GETPOST('search_ref','alpha'):GETPOST('search_inter','alpha');
 $search_company=GETPOST('search_company','alpha');
diff --git a/htdocs/opensurvey/list.php b/htdocs/opensurvey/list.php
index 4844d9f8e59..fe73419c98b 100644
--- a/htdocs/opensurvey/list.php
+++ b/htdocs/opensurvey/list.php
@@ -38,9 +38,10 @@ $status=GETPOST('status');
 
 $sortfield = GETPOST("sortfield",'alpha');
 $sortorder = GETPOST("sortorder",'alpha');
+$limit = $conf->liste_limit;
 $page = GETPOST("page",'int');
 if ($page == -1) { $page = 0; }
-$offset = $conf->liste_limit * $page;
+$offset = $limit * $page;
 $pageprev = $page - 1;
 $pagenext = $page + 1;
 if (! $sortfield) $sortfield="p.date_fin";
@@ -48,8 +49,6 @@ if (! $sortorder) $sortorder="DESC";
 if ($page < 0) {
 	$page = 0;
 }
-$limit = $conf->liste_limit;
-$offset = $limit * $page;
 
 $langs->load("opensurvey");
 
diff --git a/htdocs/product/stock/mouvement.php b/htdocs/product/stock/mouvement.php
index c04766ab59f..fbb80551fad 100644
--- a/htdocs/product/stock/mouvement.php
+++ b/htdocs/product/stock/mouvement.php
@@ -54,11 +54,12 @@ $search_warehouse = trim(GETPOST("search_warehouse"));
 $search_inventorycode = trim(GETPOST("search_inventorycode"));
 $search_user = trim(GETPOST("search_user"));
 $search_batch = trim(GETPOST("search_batch"));
+$limit = $conf->liste_limit;
 $page = GETPOST("page",'int');
 $sortfield = GETPOST("sortfield",'alpha');
 $sortorder = GETPOST("sortorder",'alpha');
 if ($page < 0) $page = 0;
-$offset = $conf->liste_limit * $page;
+$offset = $limit * $page;
 
 if (! $sortfield) $sortfield="m.datem";
 if (! $sortorder) $sortorder="DESC";
diff --git a/htdocs/public/members/public_list.php b/htdocs/public/members/public_list.php
index ea2b70c2447..d96d238c41b 100644
--- a/htdocs/public/members/public_list.php
+++ b/htdocs/public/members/public_list.php
@@ -81,9 +81,10 @@ function llxFooterVierge()
 
 $sortfield = GETPOST("sortfield",'alpha');
 $sortorder = GETPOST("sortorder",'alpha');
+$limit = $conf->liste_limit;
 $page = GETPOST("page",'int');
 if ($page == -1) { $page = 0; }
-$offset = $conf->liste_limit * $page;
+$offset = $limit * $page;
 $pageprev = $page - 1;
 $pagenext = $page + 1;
 
diff --git a/htdocs/societe/price.php b/htdocs/societe/price.php
index 64ac2fbb256..6341f1dd37e 100644
--- a/htdocs/societe/price.php
+++ b/htdocs/societe/price.php
@@ -181,11 +181,12 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) {
 
 	$sortfield = GETPOST("sortfield", 'alpha');
 	$sortorder = GETPOST("sortorder", 'alpha');
+    $limit = $conf->liste_limit;
 	$page = GETPOST("page", 'int');
 	if ($page == - 1) {
 		$page = 0;
 	}
-	$offset = $conf->liste_limit * $page;
+	$offset = $limit * $page;
 	$pageprev = $page - 1;
 	$pagenext = $page + 1;
 	if (! $sortorder)
@@ -200,7 +201,7 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) {
 
 	$search_soc = GETPOST('search_soc');
 	if (! empty($search_soc)) {
-		$filter ['soc.nom'] = $search_soc;
+		$filter['soc.nom'] = $search_soc;
 	}
 
 	if ($action == 'add_customer_price') {
diff --git a/htdocs/supplier_proposal/list.php b/htdocs/supplier_proposal/list.php
index 6aad541c1f9..1df4b49b56a 100644
--- a/htdocs/supplier_proposal/list.php
+++ b/htdocs/supplier_proposal/list.php
@@ -139,15 +139,15 @@ $now=dol_now();
 
 $sortfield = GETPOST("sortfield",'alpha');
 $sortorder = GETPOST("sortorder",'alpha');
+$limit = $conf->liste_limit;
 $page = GETPOST("page",'int');
 if ($page == -1) { $page = 0; }
-$offset = $conf->liste_limit * $page;
+$offset = $limit * $page;
 $pageprev = $page - 1;
 $pagenext = $page + 1;
 
 if (! $sortfield) $sortfield='p.date_livraison';
 if (! $sortorder) $sortorder='DESC';
-$limit = $conf->liste_limit;
 
 
 $sql = 'SELECT s.rowid, s.nom as name, s.town, s.client, s.code_client,';
-- 
GitLab


From ba3c8de7858a68132d9d3984e4e0db89655cd772 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Thu, 17 Dec 2015 14:01:22 +0100
Subject: [PATCH 195/197] Update doc comment to make things cleaner to avoid
 confusion between old deprecated doActions of canvas and doActions of
 triggers.

---
 dev/skeletons/skeleton_card.php               |  2 +-
 dev/skeletons/skeleton_list.php               |  2 +-
 .../actions_adherentcard_common.class.php     |  3 +-
 .../actions_contactcard_common.class.php      |  3 +-
 htdocs/contact/list.php                       | 11 ++-
 htdocs/core/class/canvas.class.php            |  7 +-
 .../resource/class/actions_resource.class.php | 86 -------------------
 .../canvas/actions_card_common.class.php      |  3 +-
 .../company/actions_card_company.class.php    |  3 +-
 .../actions_card_individual.class.php         |  1 +
 10 files changed, 25 insertions(+), 96 deletions(-)
 delete mode 100644 htdocs/resource/class/actions_resource.class.php

diff --git a/dev/skeletons/skeleton_card.php b/dev/skeletons/skeleton_card.php
index 7f0ff1fc7d4..03f70955527 100644
--- a/dev/skeletons/skeleton_card.php
+++ b/dev/skeletons/skeleton_card.php
@@ -88,7 +88,7 @@ $extrafields = new ExtraFields($db);
 ********************************************************************/
 
 $parameters=array();
-$reshook=$hookmanager->executeHooks('doActions',$parameters);    // Note that $action and $object may have been modified by some hooks
+$reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action);    // Note that $action and $object may have been modified by some hooks
 if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
 
 if (empty($reshook))
diff --git a/dev/skeletons/skeleton_list.php b/dev/skeletons/skeleton_list.php
index dec170ae169..834e0b07e2f 100644
--- a/dev/skeletons/skeleton_list.php
+++ b/dev/skeletons/skeleton_list.php
@@ -124,7 +124,7 @@ if (is_array($extrafields->attribute_label) && count($extrafields->attribute_lab
 ********************************************************************/
 
 $parameters=array();
-$reshook=$hookmanager->executeHooks('doActions',$parameters);    // Note that $action and $object may have been modified by some hooks
+$reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action);    // Note that $action and $object may have been modified by some hooks
 if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
 
 include DOL_DOCUMENT_ROOT.'/core/actions_changeselectedfields.inc.php';
diff --git a/htdocs/adherents/canvas/actions_adherentcard_common.class.php b/htdocs/adherents/canvas/actions_adherentcard_common.class.php
index 06574f7ae10..8d629175902 100644
--- a/htdocs/adherents/canvas/actions_adherentcard_common.class.php
+++ b/htdocs/adherents/canvas/actions_adherentcard_common.class.php
@@ -98,7 +98,8 @@ abstract class ActionsAdherentCardCommon
     }
 
     /**
-     *  Load data control
+     *  doActions of a canvas is not the doActions of the hook
+     *  @deprecated Use the doActions of hooks instead of this.
      *
 	 *  @param	string	$action    Type of action
 	 *  @param	int		$id			Id of object
diff --git a/htdocs/contact/canvas/actions_contactcard_common.class.php b/htdocs/contact/canvas/actions_contactcard_common.class.php
index 7e43270a32c..3d6b792d99b 100644
--- a/htdocs/contact/canvas/actions_contactcard_common.class.php
+++ b/htdocs/contact/canvas/actions_contactcard_common.class.php
@@ -94,7 +94,8 @@ abstract class ActionsContactCardCommon
     }
 
     /**
-     *  Load data control
+     *  doActions of a canvas is not the doActions of the hook
+     *  @deprecated Use the doActions of hooks instead of this.
      *
 	 *  @param	string	$action    Type of action
 	 *  @param	int		$id			Id of object
diff --git a/htdocs/contact/list.php b/htdocs/contact/list.php
index dc2734b28a1..ac7411b49c3 100644
--- a/htdocs/contact/list.php
+++ b/htdocs/contact/list.php
@@ -36,7 +36,9 @@ $langs->load("companies");
 $langs->load("suppliers");
 
 // Security check
+$id = GETPOST('id','int');
 $contactid = GETPOST('id','int');
+$ref = '';  // There is no ref for contacts
 if ($user->societe_id) $socid=$user->societe_id;
 $result = restrictedArea($user, 'contact', $contactid,'');
 
@@ -150,13 +152,20 @@ if (is_array($extrafields->attribute_label) && count($extrafields->attribute_lab
    }
 }
 
+$object=new Contact($db);
+if (($id > 0 || ! empty($ref)) && $action != 'add')
+{
+    $result=$object->fetch($id,$ref);
+    if ($result < 0) dol_print_error($db);
+}
+
 
 /*
  * Actions
  */
 
 $parameters=array();
-$reshook=$hookmanager->executeHooks('doActions',$parameters);    // Note that $action and $object may have been modified by some hooks
+$reshook=$hookmanager->executeHooks('doActions',$parameters, $object, $action);    // Note that $action and $object may have been modified by some hooks
 if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
 
 include DOL_DOCUMENT_ROOT.'/core/actions_changeselectedfields.inc.php';
diff --git a/htdocs/core/class/canvas.class.php b/htdocs/core/class/canvas.class.php
index a8bb07e6ec6..6851c124743 100644
--- a/htdocs/core/class/canvas.class.php
+++ b/htdocs/core/class/canvas.class.php
@@ -179,13 +179,14 @@ class Canvas
 	}
 
 	/**
-	 * 	Shared method for canvas to execute actions
+	 * 	Shared method for canvas to execute actions.
+     *  @deprecated Use the doActions of hooks instead of this.
+	 * 	            This function is called if you add a doActions class inside your canvas. Try to not
+	 * 				do that and add action code into a hook instead.
 	 *
 	 * 	@param		string		$action	Action string
 	 * 	@param		int			$id			Object id
 	 * 	@return		mixed					Return return code of doActions of canvas
-	 * 	@deprecated	This function is called if you add a doActions class inside your canvas. Try to not
-	 * 				do that and add action code into a hook instead.
 	 * 	@see		http://wiki.dolibarr.org/index.php/Canvas_development
 	 */
 	function doActions(&$action='view', $id=0)
diff --git a/htdocs/resource/class/actions_resource.class.php b/htdocs/resource/class/actions_resource.class.php
deleted file mode 100644
index f8f0b5412f9..00000000000
--- a/htdocs/resource/class/actions_resource.class.php
+++ /dev/null
@@ -1,86 +0,0 @@
-<?php
-/* Copyright (C) 2013 Jean-François FERRY  <jfefe@aternatik.fr>
- *
-* This program is free software; you can redistribute it and/or modify
-* it under the terms of the GNU General Public License as published by
-* the Free Software Foundation; either version 3 of the License, or
-* (at your option) any later version.
-*
-* This program is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-* GNU General Public License for more details.
-*
-* You should have received a copy of the GNU General Public License
-* along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-/**
- *       \file       resource/class/actions_resource.class.php
- *       \brief      Place module actions
- */
-
-/**
- * Actions class file for resources
- *
- * TODO Remove this class and replace a method into commonobject
- */
-class ActionsResource
-{
-
-	var $db;
-	var $error;
-	var $errors=array();
-
-	/**
-	 *	Constructor
-	 *
-	 *  @param		DoliDB		$db      Database handler
-	*/
-	function __construct($db)
-	{
-		$this->db = $db;
-	}
-
-	/**
-	 * doActions for resource module
-	 *
-	 * @param 	array 	$parameters 	parameters
-	 * @param 	Object 	$object 		object
-	 * @param 	string 	$action 		action
-	 * @return	void
-	 */
-	/* Why a hook action ? TODO Remove this class and replace a method into commonobject
-	function doActions($parameters, &$object, &$action)
-	{
-		global $langs,$user;
-		$langs->load('resource');
-
-		if (in_array('resource_card',explode(':',$parameters['context'])))
-		{
-		    if($action == 'confirm_delete_resource' && !GETPOST('cancel'))
-		    {
-		        $res = $object->fetch(GETPOST('id'));
-		        if($res)
-		        {
-
-		            $result = $object->delete(GETPOST('id'));
-
-		            if ($result >= 0)
-		            {
-		                setEventMessage($langs->trans('RessourceSuccessfullyDeleted'));
-		                Header("Location: list.php");
-		                exit;
-		            }
-		            else {
-		                setEventMessage($object->error,'errors');
-		            }
-		        }
-		        else
-		        {
-		            setEventMessage($object->error,'errors');
-		        }
-		    }
-		}
-	}*/
-}
diff --git a/htdocs/societe/canvas/actions_card_common.class.php b/htdocs/societe/canvas/actions_card_common.class.php
index 0dd71b42baa..782a7f070c4 100644
--- a/htdocs/societe/canvas/actions_card_common.class.php
+++ b/htdocs/societe/canvas/actions_card_common.class.php
@@ -89,7 +89,8 @@ abstract class ActionsCardCommon
     }
 
     /**
-     *	Load data control
+     *  doActions of a canvas is not the doActions of the hook
+     *  @deprecated Use the doActions of hooks instead of this.
      *
      *	@param	int		$action	Action code
      *	@return	void
diff --git a/htdocs/societe/canvas/company/actions_card_company.class.php b/htdocs/societe/canvas/company/actions_card_company.class.php
index c7ed03080f6..19f9a2fbdb8 100644
--- a/htdocs/societe/canvas/company/actions_card_company.class.php
+++ b/htdocs/societe/canvas/company/actions_card_company.class.php
@@ -68,7 +68,8 @@ class ActionsCardCompany extends ActionsCardCommon
 
 
 	/**
-	 * 	Execute actions
+     *  doActions of a canvas is not the doActions of the hook
+     *  @deprecated Use the doActions of hooks instead of this.
 	 *
 	 *  @param	string	$action    Type of action
 	 *  @param	int		$id			Id of object
diff --git a/htdocs/societe/canvas/individual/actions_card_individual.class.php b/htdocs/societe/canvas/individual/actions_card_individual.class.php
index f38d0d034ef..78064004e37 100644
--- a/htdocs/societe/canvas/individual/actions_card_individual.class.php
+++ b/htdocs/societe/canvas/individual/actions_card_individual.class.php
@@ -69,6 +69,7 @@ class ActionsCardIndividual extends ActionsCardCommon
 
 	/**
 	 * Execute actions
+     * @deprecated Use the doActions of hooks instead of this.
 	 *
 	 * @param	string	$action	Action
 	 * @param	int		$id			Id of object (may be empty for creation)
-- 
GitLab


From 5eea1ce7d99f554f036d4f6ade4535ff35632dca Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Thu, 17 Dec 2015 19:37:24 +0100
Subject: [PATCH 196/197] Fix several warnings

---
 htdocs/admin/limits.php                       | 18 ++++++------
 htdocs/cashdesk/class/Facturation.class.php   |  4 +--
 htdocs/commande/class/commande.class.php      |  2 +-
 .../facture/class/facture-rec.class.php       |  4 ++-
 htdocs/compta/facture/class/facture.class.php |  8 ++++--
 htdocs/expedition/class/expedition.class.php  |  4 +--
 htdocs/expensereport/card.php                 |  3 +-
 htdocs/install/upgrade2.php                   | 28 +++++++++++++------
 htdocs/product/card.php                       |  2 +-
 .../class/supplier_proposal.class.php         |  4 +--
 10 files changed, 47 insertions(+), 30 deletions(-)

diff --git a/htdocs/admin/limits.php b/htdocs/admin/limits.php
index 823866f8ce6..66c1ae1ce56 100644
--- a/htdocs/admin/limits.php
+++ b/htdocs/admin/limits.php
@@ -180,21 +180,21 @@ else
 
 	// Always show vat rates with vat 0
 	$s=2/7;$qty=1;$vat=0;
-	$tmparray=calcul_price_total(1,$qty*price2num($s,'MU'),0,$vat,0,0,0,'HT',0,0);
+	$tmparray=calcul_price_total(1,$qty*price2num($s,'MU'),0,$vat,0,0,0,'HT',0,0,$mysoc);
 	print $langs->trans("UnitPriceOfProduct").": ".price2num($s,'MU');
 	print " x ".$langs->trans("Quantity").": ".$qty;
 	print " - ".$langs->trans("VAT").": ".$vat.'%';
 	print " &nbsp; -> &nbsp; ".$langs->trans("TotalPriceAfterRounding").": ".$tmparray[0].' / '.$tmparray[1].' / '.$tmparray[2]."<br>\n";
 
 	$s=10/3;$qty=1;$vat=0;
-	$tmparray=calcul_price_total(1,$qty*price2num($s,'MU'),0,$vat,0,0,0,'HT',0,0);
+	$tmparray=calcul_price_total(1,$qty*price2num($s,'MU'),0,$vat,0,0,0,'HT',0,0,$mysoc);
 	print $langs->trans("UnitPriceOfProduct").": ".price2num($s,'MU');
 	print " x ".$langs->trans("Quantity").": ".$qty;
 	print " - ".$langs->trans("VAT").": ".$vat.'%';
 	print " &nbsp; -> &nbsp; ".$langs->trans("TotalPriceAfterRounding").": ".$tmparray[0].' / '.$tmparray[1].' / '.$tmparray[2]."<br>\n";
 
 	$s=10/3;$qty=2;$vat=0;
-	$tmparray=calcul_price_total(1,$qty*price2num($s,'MU'),0,$vat,0,0,0,'HT',0, 0);
+	$tmparray=calcul_price_total(1,$qty*price2num($s,'MU'),0,$vat,0,0,0,'HT',0, 0,$mysoc);
 	print $langs->trans("UnitPriceOfProduct").": ".price2num($s,'MU');
 	print " x ".$langs->trans("Quantity").": ".$qty;
 	print " - ".$langs->trans("VAT").": ".$vat.'%';
@@ -230,7 +230,7 @@ else
 	        for ($qty=1; $qty<=2; $qty++)
 	        {
 	            $s=10/3;
-	            $tmparray=calcul_price_total(1,$qty*price2num($s,'MU'),0,$vat,0,0,0,'HT',0, 0);
+	            $tmparray=calcul_price_total(1,$qty*price2num($s,'MU'),0,$vat,0,0,0,'HT',0, 0,$mysoc);
 	            print $langs->trans("UnitPriceOfProduct").": ".price2num($s,'MU');
 	            print " x ".$langs->trans("Quantity").": ".$qty;
 	            print " - ".$langs->trans("VAT").": ".$vat.'%';
@@ -245,14 +245,14 @@ else
 	    // were calculated to show all possible cases of rounding. If we change this, examples becomes useless or show the same rounding rule.
 
 	    $s=10/3;$qty=1;$vat=10;
-	    $tmparray=calcul_price_total(1,$qty*price2num($s,'MU'),0,$vat,0,0,0,'HT',0, 0);
+	    $tmparray=calcul_price_total(1,$qty*price2num($s,'MU'),0,$vat,0,0,0,'HT',0, 0,$mysoc);
 	    print $langs->trans("UnitPriceOfProduct").": ".price2num($s,'MU');
 	    print " x ".$langs->trans("Quantity").": ".$qty;
 	    print " - ".$langs->trans("VAT").": ".$vat.'%';
 	    print " &nbsp; -> &nbsp; ".$langs->trans("TotalPriceAfterRounding").": ".$tmparray[0].' / '.$tmparray[1].' / '.$tmparray[2]."<br>\n";
 
 	    $s=10/3;$qty=2;$vat=10;
-	    $tmparray=calcul_price_total(1,$qty*price2num($s,'MU'),0,$vat,0,0,0,'HT',0, 0);
+	    $tmparray=calcul_price_total(1,$qty*price2num($s,'MU'),0,$vat,0,0,0,'HT',0, 0,$mysoc);
 	    print $langs->trans("UnitPriceOfProduct").": ".price2num($s,'MU');
 	    print " x ".$langs->trans("Quantity").": ".$qty;
 	    print " - ".$langs->trans("VAT").": ".$vat.'%';
@@ -272,8 +272,8 @@ else
 			$s2=2/7;
 
 			// Round by line
-			$tmparray1=calcul_price_total(1,$qty*price2num($s1,'MU'),0,$vat,0,0,0,'HT',0, 0);
-			$tmparray2=calcul_price_total(1,$qty*price2num($s2,'MU'),0,$vat,0,0,0,'HT',0, 0);
+			$tmparray1=calcul_price_total(1,$qty*price2num($s1,'MU'),0,$vat,0,0,0,'HT',0, 0,$mysoc);
+			$tmparray2=calcul_price_total(1,$qty*price2num($s2,'MU'),0,$vat,0,0,0,'HT',0, 0,$mysoc);
 			$total_ht = $tmparray1[0] + $tmparray2[0];
 			$total_tva = $tmparray1[1] + $tmparray2[1];
 			$total_ttc = $tmparray1[2] + $tmparray2[2];
@@ -296,7 +296,7 @@ else
 
 			// Global round
 			$subtotal_ht = (($qty*price2num($s1,'MU')) + ($qty*price2num($s2,'MU')));
-			$tmparray3=calcul_price_total(1,$subtotal_ht,0,$vat,0,0,0,'HT',0, 0);
+			$tmparray3=calcul_price_total(1,$subtotal_ht,0,$vat,0,0,0,'HT',0, 0,$mysoc);
 			$total_ht = $tmparray3[0];
 			$total_tva = $tmparray3[1];
 			$total_ttc = $tmparray3[2];
diff --git a/htdocs/cashdesk/class/Facturation.class.php b/htdocs/cashdesk/class/Facturation.class.php
index 296ced0f172..fd67bf9e2ae 100644
--- a/htdocs/cashdesk/class/Facturation.class.php
+++ b/htdocs/cashdesk/class/Facturation.class.php
@@ -89,7 +89,7 @@ class Facturation
      */
     public function ajoutArticle()
     {
-        global $conf,$db;
+        global $conf,$db,$mysoc;
 
         $thirdpartyid = $_SESSION['CASHDESK_ID_THIRDPARTY'];
 
@@ -118,7 +118,7 @@ class Facturation
         }
 
         // Define part of HT, VAT, TTC
-        $resultarray=calcul_price_total($this->qte,$this->prix(),$this->remisePercent(),$vat_rate,0,0,0,'HT',0,$product->type,0);
+        $resultarray=calcul_price_total($this->qte,$this->prix(),$this->remisePercent(),$vat_rate,0,0,0,'HT',0,$product->type,$mysoc);
 
         // Calcul du total ht sans remise
         $total_ht = $resultarray[0];
diff --git a/htdocs/commande/class/commande.class.php b/htdocs/commande/class/commande.class.php
index 8176d1f3c63..de32e30c5e6 100644
--- a/htdocs/commande/class/commande.class.php
+++ b/htdocs/commande/class/commande.class.php
@@ -1222,7 +1222,7 @@ class Commande extends CommonOrder
             $localtaxes_type=getLocalTaxesFromRate($txtva,0,$this->thirdparty,$mysoc);
             $txtva = preg_replace('/\s*\(.*\)/','',$txtva);  // Remove code into vatrate.
             
-            $tabprice = calcul_price_total($qty, $pu, $remise_percent, $txtva, $txlocaltax1, $txlocaltax2, 0, $price_base_type, $info_bits, $product_type,'', $localtaxes_type);
+            $tabprice = calcul_price_total($qty, $pu, $remise_percent, $txtva, $txlocaltax1, $txlocaltax2, 0, $price_base_type, $info_bits, $product_type, $mysoc, $localtaxes_type);
             $total_ht  = $tabprice[0];
             $total_tva = $tabprice[1];
             $total_ttc = $tabprice[2];
diff --git a/htdocs/compta/facture/class/facture-rec.class.php b/htdocs/compta/facture/class/facture-rec.class.php
index 204092b257a..35238d71a2f 100644
--- a/htdocs/compta/facture/class/facture-rec.class.php
+++ b/htdocs/compta/facture/class/facture-rec.class.php
@@ -405,6 +405,8 @@ class FactureRec extends Facture
 	 */
 	function addline($desc, $pu_ht, $qty, $txtva, $fk_product=0, $remise_percent=0, $price_base_type='HT', $info_bits=0, $fk_remise_except='', $pu_ttc=0, $type=0, $rang=-1, $special_code=0, $label='', $fk_unit=null)
 	{
+	    global $mysoc;
+	    
 		$facid=$this->id;
 
 		dol_syslog("FactureRec::addline facid=$facid,desc=$desc,pu_ht=$pu_ht,qty=$qty,txtva=$txtva,fk_product=$fk_product,remise_percent=$remise_percent,date_start=$date_start,date_end=$date_end,ventil=$ventil,info_bits=$info_bits,fk_remise_except=$fk_remise_except,price_base_type=$price_base_type,pu_ttc=$pu_ttc,type=$type,fk_unit=$fk_unit", LOG_DEBUG);
@@ -437,7 +439,7 @@ class FactureRec extends Facture
 			// qty, pu, remise_percent et txtva
 			// TRES IMPORTANT: C'est au moment de l'insertion ligne qu'on doit stocker
 			// la part ht, tva et ttc, et ce au niveau de la ligne qui a son propre taux tva.
-			$tabprice=calcul_price_total($qty, $pu, $remise_percent, $txtva, 0, 0, 0, $price_base_type, $info_bits, $type);
+			$tabprice=calcul_price_total($qty, $pu, $remise_percent, $txtva, 0, 0, 0, $price_base_type, $info_bits, $type, $mysoc);
 			$total_ht  = $tabprice[0];
 			$total_tva = $tabprice[1];
 			$total_ttc = $tabprice[2];
diff --git a/htdocs/compta/facture/class/facture.class.php b/htdocs/compta/facture/class/facture.class.php
index b58d2052b99..60f931ba90c 100644
--- a/htdocs/compta/facture/class/facture.class.php
+++ b/htdocs/compta/facture/class/facture.class.php
@@ -2401,18 +2401,20 @@ class Facture extends CommonInvoice
 	/**
 	 * Update invoice line with percentage
 	 *
-	 * @param FactureLigne $line Invoice line
-	 * @param int $percent Percentage
+	 * @param  FactureLigne $line       Invoice line
+	 * @param  int          $percent    Percentage
 	 * @return void
 	 */
 	function update_percent($line, $percent)
 	{
+	    global $mysoc;
+	    
 		include_once(DOL_DOCUMENT_ROOT . '/core/lib/price.lib.php');
 
 		// Cap percentages to 100
 		if ($percent > 100) $percent = 100;
 		$line->situation_percent = $percent;
-		$tabprice = calcul_price_total($line->qty, $line->subprice, $line->remise_percent, $line->tva_tx, $line->localtax1_tx, $line->localtax2_tx, $line->product_type, 'HT', 0, 0, '', '', $percent);
+		$tabprice = calcul_price_total($line->qty, $line->subprice, $line->remise_percent, $line->tva_tx, $line->localtax1_tx, $line->localtax2_tx, $line->product_type, 'HT', 0, 0, $mysoc, '', $percent);
 		$line->total_ht = $tabprice[0];
 		$line->total_tva = $tabprice[1];
 		$line->total_ttc = $tabprice[2];
diff --git a/htdocs/expedition/class/expedition.class.php b/htdocs/expedition/class/expedition.class.php
index 08b53bf9e25..2513de4caaa 100644
--- a/htdocs/expedition/class/expedition.class.php
+++ b/htdocs/expedition/class/expedition.class.php
@@ -1181,7 +1181,7 @@ class Expedition extends CommonObject
 	 */
 	function fetch_lines()
 	{
-		global $conf;
+		global $conf, $mysoc;
 		// TODO: recuperer les champs du document associe a part
 
 		$sql = "SELECT cd.rowid, cd.fk_product, cd.label as custom_label, cd.description, cd.qty as qty_asked";
@@ -1257,7 +1257,7 @@ class Expedition extends CommonObject
 				$line->volume_units   	= $obj->volume_units;
 
 				// For invoicing
-				$tabprice = calcul_price_total($obj->qty_shipped, $obj->subprice, $obj->remise_percent, $obj->tva_tx, $obj->localtax1_tx, $obj->localtax2_tx, 0, 'HT', $obj->info_bits, $obj->fk_product_type);	// We force type to 0
+				$tabprice = calcul_price_total($obj->qty_shipped, $obj->subprice, $obj->remise_percent, $obj->tva_tx, $obj->localtax1_tx, $obj->localtax2_tx, 0, 'HT', $obj->info_bits, $obj->fk_product_type, $mysoc);	// We force type to 0
 				$line->desc	         	= $obj->description;		// We need ->desc because some code into CommonObject use desc (property defined for other elements)
 				$line->qty 				= $line->qty_shipped;
 				$line->total_ht			= $tabprice[0];
diff --git a/htdocs/expensereport/card.php b/htdocs/expensereport/card.php
index aa36b690619..30642ad09c5 100644
--- a/htdocs/expensereport/card.php
+++ b/htdocs/expensereport/card.php
@@ -886,7 +886,8 @@ if ($action == "addline")
 		$object_ligne->fk_expensereport = $_POST['fk_expensereport'];
 
 		$type = 0;	// TODO What if service ?
-		$tmp = calcul_price_total($qty, $up, 0, $vatrate, 0, 0, 0, 'TTC', 0, $type);
+		$seller = '';  // seller is unknown
+		$tmp = calcul_price_total($qty, $up, 0, $vatrate, 0, 0, 0, 'TTC', 0, $type, $seller);
 
 		$object_ligne->vatrate = price2num($vatrate);
 		$object_ligne->total_ttc = $tmp[2];
diff --git a/htdocs/install/upgrade2.php b/htdocs/install/upgrade2.php
index a5d43a0d95e..8729dedc0a5 100644
--- a/htdocs/install/upgrade2.php
+++ b/htdocs/install/upgrade2.php
@@ -1292,7 +1292,10 @@ function migrate_paiementfourn_facturefourn($db,$langs,$conf)
 function migrate_price_facture($db,$langs,$conf)
 {
     $err=0;
-
+    
+    $tmpmysoc=new Societe($db);
+    $tmpmysoc->setMysoc($conf);
+    
     $db->begin();
 
     print '<tr><td colspan="4">';
@@ -1333,7 +1336,7 @@ function migrate_price_facture($db,$langs,$conf)
                 $facligne= new FactureLigne($db);
                 $facligne->fetch($rowid);
 
-                $result=calcul_price_total($qty,$pu,$remise_percent,$vatrate, 0, 0,$remise_percent_global,'HT',$info_bits,0);
+                $result=calcul_price_total($qty,$pu,$remise_percent,$vatrate, 0, 0,$remise_percent_global,'HT',$info_bits,$facligne->product_type,$tmpmysoc);
                 $total_ht  = $result[0];
                 $total_tva = $result[1];
                 $total_ttc = $result[2];
@@ -1407,6 +1410,9 @@ function migrate_price_facture($db,$langs,$conf)
  */
 function migrate_price_propal($db,$langs,$conf)
 {
+   	$tmpmysoc=new Societe($db);
+	$tmpmysoc->setMysoc($conf);
+    
     $db->begin();
 
     print '<tr><td colspan="4">';
@@ -1445,7 +1451,7 @@ function migrate_price_propal($db,$langs,$conf)
                 $propalligne= new PropaleLigne($db);
                 $propalligne->fetch($rowid);
 
-                $result=calcul_price_total($qty,$pu,$remise_percent,$vatrate,0,0,$remise_percent_global,'HT',$info_bits,0);
+                $result=calcul_price_total($qty,$pu,$remise_percent,$vatrate,0,0,$remise_percent_global,'HT',$info_bits,$propalligne->product_type,$tmpmysoc);
                 $total_ht  = $result[0];
                 $total_tva = $result[1];
                 $total_ttc = $result[2];
@@ -1552,9 +1558,9 @@ function migrate_price_contrat($db,$langs,$conf)
                 // On met a jour les 3 nouveaux champs
                 $contratligne= new ContratLigne($db);
                 //$contratligne->fetch($rowid); Non requis car le update_total ne met a jour que chp redefinis
-                $contratligne->id=$rowid;
+                $contratligne->fetch($rowid);
 
-                $result=calcul_price_total($qty,$pu,$remise_percent,$vatrate,0,0,0,'HT',$info_bits,0,$tmpmysoc);
+                $result=calcul_price_total($qty,$pu,$remise_percent,$vatrate,0,0,0,'HT',$info_bits,$contratligne->product_type,$tmpmysoc);
                 $total_ht  = $result[0];
                 $total_tva = $result[1];
                 $total_ttc = $result[2];
@@ -1603,6 +1609,9 @@ function migrate_price_commande($db,$langs,$conf)
 {
     $db->begin();
 
+    $tmpmysoc=new Societe($db);
+    $tmpmysoc->setMysoc($conf);
+    
     print '<tr><td colspan="4">';
 
     print '<br>';
@@ -1639,7 +1648,7 @@ function migrate_price_commande($db,$langs,$conf)
                 $commandeligne= new OrderLine($db);
                 $commandeligne->fetch($rowid);
 
-                $result=calcul_price_total($qty,$pu,$remise_percent,$vatrate,0,0,$remise_percent_global,'HT',$info_bits,0);
+                $result=calcul_price_total($qty,$pu,$remise_percent,$vatrate,0,0,$remise_percent_global,'HT',$info_bits,$commandeligne->product_type,$tmpmysoc);
                 $total_ht  = $result[0];
                 $total_tva = $result[1];
                 $total_ttc = $result[2];
@@ -1716,7 +1725,10 @@ function migrate_price_commande($db,$langs,$conf)
 function migrate_price_commande_fournisseur($db,$langs,$conf)
 {
     $db->begin();
-
+    
+    $tmpmysoc=new Societe($db);
+    $tmpmysoc->setMysoc($conf);
+    
     print '<tr><td colspan="4">';
 
     print '<br>';
@@ -1753,7 +1765,7 @@ function migrate_price_commande_fournisseur($db,$langs,$conf)
                 $commandeligne= new CommandeFournisseurLigne($db);
                 $commandeligne->fetch($rowid);
 
-                $result=calcul_price_total($qty,$pu,$remise_percent,$vatrate,0,0,$remise_percent_global,'HT',$info_bits,0);
+                $result=calcul_price_total($qty,$pu,$remise_percent,$vatrate,0,0,$remise_percent_global,'HT',$info_bits,$commandeligne->product_type,$tmpsoc);
                 $total_ht  = $result[0];
                 $total_tva = $result[1];
                 $total_ttc = $result[2];
diff --git a/htdocs/product/card.php b/htdocs/product/card.php
index bdb19e39a6d..33a84719ba7 100644
--- a/htdocs/product/card.php
+++ b/htdocs/product/card.php
@@ -184,7 +184,7 @@ if (empty($reshook))
             $action = "create";
             $error++;
         }
-        if (! empty(GETPOST('duration_value')) && empty(GETPOST('duration_unit')))
+        if (GETPOST('duration_value') && ! GETPOST('duration_unit'))
         {
             setEventMessage($langs->trans('ErrorFieldRequired',$langs->transnoentities('Unit')), 'errors');
             $action = "create";
diff --git a/htdocs/supplier_proposal/class/supplier_proposal.class.php b/htdocs/supplier_proposal/class/supplier_proposal.class.php
index 799a94a4104..54a578a1e61 100644
--- a/htdocs/supplier_proposal/class/supplier_proposal.class.php
+++ b/htdocs/supplier_proposal/class/supplier_proposal.class.php
@@ -371,7 +371,7 @@ class SupplierProposal extends CommonObject
             $localtaxes_type=getLocalTaxesFromRate($txtva,0,$this->thirdparty,$mysoc);
             $txtva = preg_replace('/\s*\(.*\)/','',$txtva);  // Remove code into vatrate.
             
-            $tabprice=calcul_price_total($qty, $pu, $remise_percent, $txtva, $txlocaltax1, $txlocaltax2, 0, $price_base_type, $info_bits, $type, '', $localtaxes_type);
+            $tabprice=calcul_price_total($qty, $pu, $remise_percent, $txtva, $txlocaltax1, $txlocaltax2, 0, $price_base_type, $info_bits, $type, $this->thirdparty, $localtaxes_type);
             $total_ht  = $tabprice[0];
             $total_tva = $tabprice[1];
             $total_ttc = $tabprice[2];
@@ -531,7 +531,7 @@ class SupplierProposal extends CommonObject
             $localtaxes_type=getLocalTaxesFromRate($txtva,0,$this->thirdparty,$mysoc);
             $txtva = preg_replace('/\s*\(.*\)/','',$txtva);  // Remove code into vatrate.
             
-            $tabprice=calcul_price_total($qty, $pu, $remise_percent, $txtva, $txlocaltax1, $txlocaltax2, 0, $price_base_type, $info_bits, $type,'', $localtaxes_type);
+            $tabprice=calcul_price_total($qty, $pu, $remise_percent, $txtva, $txlocaltax1, $txlocaltax2, 0, $price_base_type, $info_bits, $type, $this->thirdparty, $localtaxes_type);
             $total_ht  = $tabprice[0];
             $total_tva = $tabprice[1];
             $total_ttc = $tabprice[2];
-- 
GitLab


From b10f9d4ca30b802a22e0b6a304f0f3cc859687fe Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Thu, 17 Dec 2015 20:40:33 +0100
Subject: [PATCH 197/197] Fix: when doing an export of extrafields, we must use
 different table alias for each extrafield table.

---
 htdocs/core/extrafieldsinexport.inc.php   | 50 +++++++++++++
 htdocs/core/modules/modCommande.class.php | 47 +++---------
 htdocs/core/modules/modFacture.class.php  | 90 +++--------------------
 htdocs/core/modules/modPropale.class.php  | 47 +++---------
 htdocs/langs/en_US/products.lang          |  2 +-
 5 files changed, 79 insertions(+), 157 deletions(-)
 create mode 100644 htdocs/core/extrafieldsinexport.inc.php

diff --git a/htdocs/core/extrafieldsinexport.inc.php b/htdocs/core/extrafieldsinexport.inc.php
new file mode 100644
index 00000000000..1a608f6bc2e
--- /dev/null
+++ b/htdocs/core/extrafieldsinexport.inc.php
@@ -0,0 +1,50 @@
+<?php 
+
+if (empty($keyforselect) || empty($keyforelement) || empty($keyforaliasextra))
+{
+    //print $keyforselet.' - '.$keyforelement.' - '.$keyforaliasextra;
+    dol_print_error('', 'include of file extrafieldsinexport.inc.php was done but var $keyforselect or $keyforelement or $keyforaliasextra was not set');
+    exit;
+}
+
+// Add extra fields
+$sql="SELECT name, label, type, param FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = '".$keyforselect."' AND entity IN (0, ".$conf->entity.')';
+//print $sql;
+$resql=$this->db->query($sql);
+if ($resql)    // This can fail when class is used on old database (during migration for example)
+{
+	while ($obj=$this->db->fetch_object($resql))
+	{
+		$fieldname=$keyforaliasextra.'.'.$obj->name;
+		$fieldlabel=ucfirst($obj->label);
+		$typeFilter="Text";
+		switch($obj->type)
+		{
+			case 'int':
+			case 'double':
+			case 'price':
+				$typeFilter="Numeric";
+				break;
+			case 'date':
+			case 'datetime':
+				$typeFilter="Date";
+				break;
+			case 'boolean':
+				$typeFilter="Boolean";
+				break;
+			case 'sellist':
+				$tmp='';
+				$tmpparam=unserialize($obj->param);	// $tmp ay be array 'options' => array 'c_currencies:code_iso:code_iso' => null
+				if ($tmpparam['options'] && is_array($tmpparam['options'])) {
+					$tmpkeys=array_keys($tmpparam['options']);
+					$tmp=array_shift($tmpkeys);
+				}
+				if (preg_match('/[a-z0-9_]+:[a-z0-9_]+:[a-z0-9_]+/', $tmp)) $typeFilter="List:".$tmp;
+				break;
+		}
+		$this->export_fields_array[$r][$fieldname]=$fieldlabel;
+		$this->export_TypeFields_array[$r][$fieldname]=$typeFilter;
+		$this->export_entities_array[$r][$fieldname]=$keyforelement;
+	}
+}
+// End add axtra fields
diff --git a/htdocs/core/modules/modCommande.class.php b/htdocs/core/modules/modCommande.class.php
index 24a1c87182a..8390e1f10a0 100644
--- a/htdocs/core/modules/modCommande.class.php
+++ b/htdocs/core/modules/modCommande.class.php
@@ -183,52 +183,23 @@ class modCommande extends DolibarrModules
 		$this->export_TypeFields_array[$r]=array('s.nom'=>'Text','s.address'=>'Text','s.zip'=>'Text','s.town'=>'Text','co.label'=>'List:c_country:label:label','co.code'=>'Text','s.phone'=>'Text','s.siren'=>'Text','s.siret'=>'Text','s.ape'=>'Text','s.idprof4'=>'Text','c.ref'=>"Text",'c.ref_client'=>"Text",'c.date_creation'=>"Date",'c.date_commande'=>"Date",'c.amount_ht'=>"Numeric",'c.remise_percent'=>"Numeric",'c.total_ht'=>"Numeric",'c.total_ttc'=>"Numeric",'c.facture'=>"Boolean",'c.fk_statut'=>'Status','c.note_public'=>"Text",'c.date_livraison'=>'Date','cd.description'=>"Text",'cd.product_type'=>'Boolean','cd.tva_tx'=>"Numeric",'cd.qty'=>"Numeric",'cd.total_ht'=>"Numeric",'cd.total_tva'=>"Numeric",'cd.total_ttc'=>"Numeric",'p.rowid'=>'List:product:ref','p.ref'=>'Text','p.label'=>'Text');
 		$this->export_entities_array[$r]=array('s.rowid'=>"company",'s.nom'=>'company','s.address'=>'company','s.zip'=>'company','s.town'=>'company','co.label'=>'company','co.code'=>'company','s.phone'=>'company','s.siren'=>'company','s.ape'=>'company','s.idprof4'=>'company','s.siret'=>'company','c.rowid'=>"order",'c.ref'=>"order",'c.ref_client'=>"order",'c.fk_soc'=>"order",'c.date_creation'=>"order",'c.date_commande'=>"order",'c.amount_ht'=>"order",'c.remise_percent'=>"order",'c.total_ht'=>"order",'c.total_ttc'=>"order",'c.facture'=>"order",'c.fk_statut'=>"order",'c.note'=>"order",'c.date_livraison'=>"order",'cd.rowid'=>'order_line','cd.label'=>"order_line",'cd.description'=>"order_line",'cd.product_type'=>'order_line','cd.tva_tx'=>"order_line",'cd.qty'=>"order_line",'cd.total_ht'=>"order_line",'cd.total_tva'=>"order_line",'cd.total_ttc'=>"order_line",'p.rowid'=>'product','p.ref'=>'product','p.label'=>'product');
 		$this->export_dependencies_array[$r]=array('order_line'=>'cd.rowid','product'=>'cd.rowid'); // To add unique key if we ask a field of a child to avoid the DISTINCT to discard them
-		// Add extra fields
-		$sql="SELECT name, label, type FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = 'commande' AND entity IN (0, ".$conf->entity.')';
-		$resql=$this->db->query($sql);
-		if ($resql)    // This can fail when class is used on old database (during migration for example)
-		{
-		    while ($obj=$this->db->fetch_object($resql))
-		    {
-		        $fieldname='extra.'.$obj->name;
-		        $fieldlabel=ucfirst($obj->label);
-				$typeFilter="Text";
-				switch($obj->type)
-				{
-					case 'int':
-					case 'double':
-					case 'price':
-						$typeFilter="Numeric";
-						break;
-					case 'date':
-					case 'datetime':
-						$typeFilter="Date";
-						break;
-					case 'boolean':
-						$typeFilter="Boolean";
-						break;
-					case 'sellist':
-						$tmp='';
-						$tmpparam=unserialize($obj->param);	// $tmp ay be array 'options' => array 'c_currencies:code_iso:code_iso' => null
-						if ($tmpparam['options'] && is_array($tmpparam['options'])) $tmp=array_shift(array_keys($tmpparam['options']));
-						if (preg_match('/[a-z0-9_]+:[a-z0-9_]+:[a-z0-9_]+/', $tmp)) $typeFilter="List:".$tmp;
-						break;
-				}
-		        $this->export_fields_array[$r][$fieldname]=$fieldlabel;
-				$this->export_TypeFields_array[$r][$fieldname]=$typeFilter;
-		        $this->export_entities_array[$r][$fieldname]='order';
-		    }
-		}
-		// End add extra fields
+		$keyforselect='commande'; $keyforelement='order'; $keyforaliasextra='extra';
+		include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php';
+		$keyforselect='commandedet'; $keyforelement='order_line'; $keyforaliasextra='extra2';
+		include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php';
+		$keyforselect='product'; $keyforelement='product'; $keyforaliasextra='extra3';
+		include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php';
 		$this->export_sql_start[$r]='SELECT DISTINCT ';
 		$this->export_sql_end[$r]  =' FROM '.MAIN_DB_PREFIX.'societe as s';
 		$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'c_country as co ON s.fk_pays = co.rowid,';
 		$this->export_sql_end[$r] .=' '.MAIN_DB_PREFIX.'commande as c';
 		$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'user as uc ON c.fk_user_author = uc.rowid';
-		$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'user as uv ON c.fk_user_valid = uc.rowid';
+		$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'user as uv ON c.fk_user_valid = uv.rowid';
 		$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'commande_extrafields as extra ON c.rowid = extra.fk_object';
 		$this->export_sql_end[$r] .=' , '.MAIN_DB_PREFIX.'commandedet as cd';
+		$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'commandedet_extrafields as extra2 on cd.rowid = extra2.fk_object';
 		$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'product as p on cd.fk_product = p.rowid';
+		$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'product_extrafields as extra3 on p.rowid = extra3.fk_object';
 		$this->export_sql_end[$r] .=' WHERE c.fk_soc = s.rowid AND c.rowid = cd.fk_commande';
 		$this->export_sql_end[$r] .=' AND c.entity IN ('.getEntity('commande',1).')';
 	}
diff --git a/htdocs/core/modules/modFacture.class.php b/htdocs/core/modules/modFacture.class.php
index 72437d80b90..0b237c02c77 100644
--- a/htdocs/core/modules/modFacture.class.php
+++ b/htdocs/core/modules/modFacture.class.php
@@ -185,46 +185,12 @@ class modFacture extends DolibarrModules
 		$this->export_TypeFields_array[$r]=array('s.nom'=>'Text','s.address'=>'Text','s.zip'=>'Text','s.town'=>'Text','c.code'=>'Text','s.phone'=>'Text','s.siren'=>'Text','s.siret'=>'Text','s.ape'=>'Text','s.idprof4'=>'Text','s.code_compta'=>'Text','s.code_compta_fournisseur'=>'Text','s.tva_intra'=>'Text','f.facnumber'=>"Text",'f.datec'=>"Date",'f.datef'=>"Date",'f.date_lim_reglement'=>"Date",'f.total'=>"Numeric",'f.total_ttc'=>"Numeric",'f.tva'=>"Numeric",'f.paye'=>"Boolean",'f.fk_statut'=>'Status','f.note_private'=>"Text",'f.note_public'=>"Text",'fd.description'=>"Text",'fd.subprice'=>"Numeric",'fd.tva_tx'=>"Numeric",'fd.qty'=>"Numeric",'fd.total_ht'=>"Numeric",'fd.total_tva'=>"Numeric",'fd.total_ttc'=>"Numeric",'fd.date_start'=>"Date",'fd.date_end'=>"Date",'fd.special_code'=>'Numeric','fd.product_type'=>"Numeric",'fd.fk_product'=>'List:product:label','p.ref'=>'Text','p.label'=>'Text','p.accountancy_code_sell'=>'Text');
 		$this->export_entities_array[$r]=array('s.rowid'=>"company",'s.nom'=>'company','s.address'=>'company','s.zip'=>'company','s.town'=>'company','c.code'=>'company','s.phone'=>'company','s.siren'=>'company','s.siret'=>'company','s.ape'=>'company','s.idprof4'=>'company','s.code_compta'=>'company','s.code_compta_fournisseur'=>'company','s.tva_intra'=>'company','f.rowid'=>"invoice",'f.facnumber'=>"invoice",'f.datec'=>"invoice",'f.datef'=>"invoice",'f.date_lim_reglement'=>"invoice",'f.total'=>"invoice",'f.total_ttc'=>"invoice",'f.tva'=>"invoice",'f.paye'=>"invoice",'f.fk_statut'=>'invoice','f.note_private'=>"invoice",'f.note_public'=>"invoice",'fd.rowid'=>'invoice_line','fd.label'=>"invoice_line",'fd.description'=>"invoice_line",'fd.subprice'=>"invoice_line",'fd.total_ht'=>"invoice_line",'fd.total_tva'=>"invoice_line",'fd.total_ttc'=>"invoice_line",'fd.tva_tx'=>"invoice_line",'fd.qty'=>"invoice_line",'fd.date_start'=>"invoice_line",'fd.date_end'=>"invoice_line",'fd.special_code'=>'invoice_line','fd.product_type'=>'invoice_line','fd.fk_product'=>'product','p.ref'=>'product','p.label'=>'product','p.accountancy_code_sell'=>'product','f.fk_user_author'=>'user','uc.login'=>'user','f.fk_user_valid'=>'user','uv.login'=>'user');
 		$this->export_dependencies_array[$r]=array('invoice_line'=>'fd.rowid','product'=>'fd.rowid'); // To add unique key if we ask a field of a child to avoid the DISTINCT to discard them
-		// Add extra fields
-		$sql="SELECT name, label, type, param FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = 'facture'";
-		$resql=$this->db->query($sql);
-		if ($resql)    // This can fail when class is used on old database (during migration for example)
-		{
-        		while ($obj=$this->db->fetch_object($resql))
-        		{
-        			$fieldname='extra.'.$obj->name;
-        			$fieldlabel=ucfirst($obj->label);
-        			$typeFilter="Text";
-        			switch($obj->type)
-        			{
-        			case 'int':
-        			case 'double':
-        			case 'price':
-        				$typeFilter="Numeric";
-        				break;
-        			case 'date':
-        			case 'datetime':
-        				$typeFilter="Date";
-        				break;
-        			case 'boolean':
-        				$typeFilter="Boolean";
-        				break;
-        			case 'sellist':
-						$tmp='';
-						$tmpparam=unserialize($obj->param);	// $tmp ay be array 'options' => array 'c_currencies:code_iso:code_iso' => null
-						if ($tmpparam['options'] && is_array($tmpparam['options'])) {
-							$tmpkeys=array_keys($tmpparam['options']);
-							$tmp=array_shift($tmpkeys);
-						}
-						if (preg_match('/[a-z0-9_]+:[a-z0-9_]+:[a-z0-9_]+/', $tmp)) $typeFilter="List:".$tmp;
-						break;
-        			}
-        			$this->export_fields_array[$r][$fieldname]=$fieldlabel;
-        			$this->export_TypeFields_array[$r][$fieldname]=$typeFilter;
-        			$this->export_entities_array[$r][$fieldname]='facture';
-			}
-		}
-		// End add axtra fields
+		$keyforselect='facture'; $keyforelement='invoice'; $keyforaliasextra='extra';
+		include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php';
+		$keyforselect='facturedet'; $keyforelement='invoice_line'; $keyforaliasextra='extra2';
+		include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php';
+		$keyforselect='product'; $keyforelement='product'; $keyforaliasextra='extra3';
+		include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php';
 		$this->export_sql_start[$r]='SELECT DISTINCT ';
 		$this->export_sql_end[$r]  =' FROM '.MAIN_DB_PREFIX.'societe as s';
 		$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'c_country as c on s.fk_pays = c.rowid,';
@@ -233,7 +199,9 @@ class modFacture extends DolibarrModules
 		$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'user as uv ON f.fk_user_valid = uv.rowid';
 		$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'facture_extrafields as extra ON f.rowid = extra.fk_object';
 		$this->export_sql_end[$r] .=' , '.MAIN_DB_PREFIX.'facturedet as fd';
+		$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'facturedet_extrafields as extra2 on fd.rowid = extra2.fk_object';
 		$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'product as p on (fd.fk_product = p.rowid)';
+		$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'product_extrafields as extra3 on p.rowid = extra3.fk_object';
 		$this->export_sql_end[$r] .=' WHERE f.fk_soc = s.rowid AND f.rowid = fd.fk_facture';
 		$this->export_sql_end[$r] .=' AND f.entity IN ('.getEntity('facture',1).')';
 		$r++;
@@ -247,46 +215,8 @@ class modFacture extends DolibarrModules
 		$this->export_TypeFields_array[$r]=array('s.nom'=>'Text','s.address'=>'Text','s.zip'=>'Text','s.town'=>'Text','c.code'=>'Text','s.phone'=>'Text','s.siren'=>'Text','s.siret'=>'Text','s.ape'=>'Text','s.idprof4'=>'Text','s.code_compta'=>'Text','s.code_compta_fournisseur'=>'Text','s.tva_intra'=>'Text','f.rowid'=>"List:facture:facnumber",'f.facnumber'=>"Text",'f.datec'=>"Date",'f.datef'=>"Date",'f.date_lim_reglement'=>"Date",'f.total'=>"Numeric",'f.total_ttc'=>"Numeric",'f.tva'=>"Numeric",'f.paye'=>"Boolean",'f.fk_statut'=>'Status','f.note_private'=>"Text",'f.note_public'=>"Text",'pf.amount'=>'Numeric','p.datep'=>'Date','p.num_paiement'=>'Numeric','p.fk_bank'=>'Numeric','p.note'=>'Text');
 		$this->export_entities_array[$r]=array('s.rowid'=>"company",'s.nom'=>'company','s.address'=>'company','s.zip'=>'company','s.town'=>'company','c.code'=>'company','s.phone'=>'company','s.siren'=>'company','s.siret'=>'company','s.ape'=>'company','s.idprof4'=>'company','s.code_compta'=>'company','s.code_compta_fournisseur'=>'company','s.tva_intra'=>'company','f.rowid'=>"invoice",'f.facnumber'=>"invoice",'f.datec'=>"invoice",'f.datef'=>"invoice",'f.date_lim_reglement'=>"invoice",'f.total'=>"invoice",'f.total_ttc'=>"invoice",'f.tva'=>"invoice",'f.paye'=>"invoice",'f.fk_statut'=>'invoice','f.note_private'=>"invoice",'f.note_public'=>"invoice",'p.rowid'=>'payment','p.ref'=>'payment','p.amount'=>'payment','pf.amount'=>'payment','p.datep'=>'payment','p.num_paiement'=>'payment','pt.code'=>'payment','p.fk_bank'=>'payment','p.note'=>'payment','f.fk_user_author'=>'user','uc.login'=>'user','f.fk_user_valid'=>'user','uv.login'=>'user');
 		$this->export_dependencies_array[$r]=array('payment'=>'p.rowid'); // To add unique key if we ask a field of a child to avoid the DISTINCT to discard them
-		// Add extra fields
-		$sql="SELECT name, label, type, param FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = 'facture'";
-		$resql=$this->db->query($sql);
-		if ($resql)    // This can fail when class is used on old database (during migration for example)
-		{
-			while ($obj=$this->db->fetch_object($resql))
-			{
-				$fieldname='extra.'.$obj->name;
-				$fieldlabel=ucfirst($obj->label);
-				$typeFilter="Text";
-				switch($obj->type)
-				{
-					case 'int':
-					case 'double':
-					case 'price':
-						$typeFilter="Numeric";
-						break;
-					case 'date':
-					case 'datetime':
-						$typeFilter="Date";
-						break;
-					case 'boolean':
-						$typeFilter="Boolean";
-						break;
-					case 'sellist':
-						$tmp='';
-						$tmpparam=unserialize($obj->param);	// $tmp ay be array 'options' => array 'c_currencies:code_iso:code_iso' => null
-						if ($tmpparam['options'] && is_array($tmpparam['options'])) {
-							$tmpkeys=array_keys($tmpparam['options']);
-							$tmp=array_shift($tmpkeys);
-						}
-						if (preg_match('/[a-z0-9_]+:[a-z0-9_]+:[a-z0-9_]+/', $tmp)) $typeFilter="List:".$tmp;
-						break;
-				}
-				$this->export_fields_array[$r][$fieldname]=$fieldlabel;
-				$this->export_TypeFields_array[$r][$fieldname]=$typeFilter;
-				$this->export_entities_array[$r][$fieldname]='facture';
-			}
-		}
-		// End add axtra fields
+		$keyforselect='facture'; $keyforelement='invoice'; $keyforaliasextra='extra';
+		include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php';
 		$this->export_sql_start[$r]='SELECT DISTINCT ';
 		$this->export_sql_end[$r]  =' FROM '.MAIN_DB_PREFIX.'societe as s';
 		$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'c_country as c on s.fk_pays = c.rowid,';
diff --git a/htdocs/core/modules/modPropale.class.php b/htdocs/core/modules/modPropale.class.php
index 62fe7d2defe..65f5a4729b5 100644
--- a/htdocs/core/modules/modPropale.class.php
+++ b/htdocs/core/modules/modPropale.class.php
@@ -176,52 +176,23 @@ class modPropale extends DolibarrModules
 		$this->export_TypeFields_array[$r]=array('s.nom'=>'Text','s.address'=>'Text','s.zip'=>'Text','s.town'=>'Text','co.code'=>'Text','s.phone'=>'Text','s.siren'=>'Text','s.siret'=>'Text','s.ape'=>'Text','s.idprof4'=>'Text','c.ref'=>"Text",'c.ref_client'=>"Text",'c.datec'=>"Date",'c.datep'=>"Date",'c.fin_validite'=>"Date",'c.remise_percent'=>"Numeric",'c.total_ht'=>"Numeric",'c.total'=>"Numeric",'c.fk_statut'=>'Status','c.note_public'=>"Text",'c.date_livraison'=>'Date','cd.description'=>"Text",'cd.product_type'=>'Boolean','cd.tva_tx'=>"Numeric",'cd.qty'=>"Numeric",'cd.total_ht'=>"Numeric",'cd.total_tva'=>"Numeric",'cd.total_ttc'=>"Numeric",'p.ref'=>'Text','p.label'=>'Text');
 		$this->export_entities_array[$r]=array('s.rowid'=>"company",'s.nom'=>'company','s.address'=>'company','s.zip'=>'company','s.town'=>'company','co.code'=>'company','s.phone'=>'company','s.siren'=>'company','s.ape'=>'company','s.idprof4'=>'company','s.siret'=>'company','c.rowid'=>"propal",'c.ref'=>"propal",'c.ref_client'=>"propal",'c.fk_soc'=>"propal",'c.datec'=>"propal",'c.datep'=>"propal",'c.fin_validite'=>"propal",'c.remise_percent'=>"propal",'c.total_ht'=>"propal",'c.total'=>"propal",'c.fk_statut'=>"propal",'c.note_public'=>"propal",'c.date_livraison'=>"propal",'cd.rowid'=>'propal_line','cd.label'=>"propal_line",'cd.description'=>"propal_line",'cd.product_type'=>'propal_line','cd.tva_tx'=>"propal_line",'cd.qty'=>"propal_line",'cd.total_ht'=>"propal_line",'cd.total_tva'=>"propal_line",'cd.total_ttc'=>"propal_line",'p.rowid'=>'product','p.ref'=>'product','p.label'=>'product');
 		$this->export_dependencies_array[$r]=array('propal_line'=>'cd.rowid','product'=>'cd.rowid'); // To add unique key if we ask a field of a child to avoid the DISTINCT to discard them
-		// Add extra fields
-		$sql="SELECT name, label, type FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = 'propal' AND entity IN (0, ".$conf->entity.')';
-		$resql=$this->db->query($sql);
-		if ($resql)    // This can fail when class is used on old database (during migration for example)
-		{
-		    while ($obj=$this->db->fetch_object($resql))
-		    {
-		        $fieldname='extra.'.$obj->name;
-		        $fieldlabel=ucfirst($obj->label);
-				$typeFilter="Text";
-				switch($obj->type)
-				{
-					case 'int':
-					case 'double':
-					case 'price':
-						$typeFilter="Numeric";
-						break;
-					case 'date':
-					case 'datetime':
-						$typeFilter="Date";
-						break;
-					case 'boolean':
-						$typeFilter="Boolean";
-						break;
-					case 'sellist':
-						$tmp='';
-						$tmpparam=unserialize($obj->param);	// $tmp ay be array 'options' => array 'c_currencies:code_iso:code_iso' => null
-						if ($tmpparam['options'] && is_array($tmpparam['options'])) $tmp=array_shift(array_keys($tmpparam['options']));
-						if (preg_match('/[a-z0-9_]+:[a-z0-9_]+:[a-z0-9_]+/', $tmp)) $typeFilter="List:".$tmp;
-						break;
-				}
-		        $this->export_fields_array[$r][$fieldname]=$fieldlabel;
-				$this->export_TypeFields_array[$r][$fieldname]=$typeFilter;
-		        $this->export_entities_array[$r][$fieldname]='propal';
-		    }
-		}
-		// End add extra fields
+		$keyforselect='propal'; $keyforelement='propal'; $keyforaliasextra='extra';
+		include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php';
+		$keyforselect='propaldet'; $keyforelement='propal_line'; $keyforaliasextra='extra2';
+		include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php';
+		$keyforselect='product'; $keyforelement='product'; $keyforaliasextra='extra3';
+		include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php';
 		$this->export_sql_start[$r]='SELECT DISTINCT ';
 		$this->export_sql_end[$r]  =' FROM '.MAIN_DB_PREFIX.'societe as s ';
 		$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'c_country as co ON s.fk_pays = co.rowid,';
 		$this->export_sql_end[$r] .=' '.MAIN_DB_PREFIX.'propal as c';
 		$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'user as uc ON c.fk_user_author = uc.rowid';
-		$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'user as uv ON c.fk_user_valid = uc.rowid';
+		$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'user as uv ON c.fk_user_valid = uv.rowid';
 		$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'propal_extrafields as extra ON c.rowid = extra.fk_object';
 		$this->export_sql_end[$r] .=', '.MAIN_DB_PREFIX.'propaldet as cd';
+		$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'propaldet_extrafields as extra2 on cd.rowid = extra2.fk_object';
 		$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'product as p on (cd.fk_product = p.rowid)';
+		$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'product_extrafields as extra3 on p.rowid = extra3.fk_object';
 		$this->export_sql_end[$r] .=' WHERE c.fk_soc = s.rowid AND c.rowid = cd.fk_propal';
 		$this->export_sql_end[$r] .=' AND c.entity IN ('.getEntity('propal',1).')';
 	}
diff --git a/htdocs/langs/en_US/products.lang b/htdocs/langs/en_US/products.lang
index f345e59891a..8c850fdabd3 100644
--- a/htdocs/langs/en_US/products.lang
+++ b/htdocs/langs/en_US/products.lang
@@ -252,7 +252,7 @@ UnitPmp=Net unit VWAP
 CostPmpHT=Net total VWAP
 ProductUsedForBuild=Auto consumed by production
 ProductBuilded=Production completed
-ProductsMultiPrice=Product multi-price
+ProductsMultiPrice=Products and prices for each price level
 ProductsOrServiceMultiPrice=Customer prices (of products or services, multi-prices)
 ProductSellByQuarterHT=Products turnover quarterly before tax
 ServiceSellByQuarterHT=Services turnover quarterly before tax
-- 
GitLab